summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/gecko.py
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2025-09-03 16:07:29 +0300
committerJakub Kicinski <kuba@kernel.org>2025-09-05 19:03:40 -0700
commitdda916111e296329fd6c8f69dcb19d690660d47a (patch)
tree96a76d060cd9eb11e4f377c1178a2d7bfd6282bc /tools/perf/scripts/python/gecko.py
parent5d59109d47c00e3e98aba612529b3871e69efb9d (diff)
net: phy: aquantia: create and store a 64-bit firmware image fingerprint
Some PHY features cannot be queried through MDIO registers and require alternative driver detection methods. One such feature is 10G-QXGMII (4 ports of up to 2.5G multiplexed over a single SerDes lane), or "MUSX" as it is called by Aquantia/Marvell. The firmware has provisioning to modify some registers which seem inaccessible for read or write over MDIO, which configure an internal mux for MUSX. To the host, over MDIO, the system interface appears indistinguishable from single-port-per-lane USXGMII. Marvell FAE Ziang You recommended a detection method for this feature based on a tuple which should hopefully identify the firmware build uniquely. Most of the tuple items are already printed by aqr107_chip_info(), and an extra set is the misc ID (reg 1.c41d) and the misc version (reg 1.c41e). These are auto-generated by the Marvell firmware tool for formal builds, and should be unique (not my claim). In addition, at least for the builds provided to NXP and redistributed here: https://github.com/nxp-qoriq/qoriq-firmware-aquantia/tree/master these registers are part of the name, for example in AQR-G3_v4.3.C-AQR_NXP_SPF-30841_MUSX_ID40019_VER1198.cld, reg 1.c41d will contain 40019 and reg 1.c41e will contain 1198. Note that according to commit 43429a0353af ("net: phy: aquantia: report PHY details like firmware version"), the "chip may be functional even w/o firmware image." In that case, we can't construct a fingerprint and it will remain zero. That shouldn't imact the use case though. Dereferencing phydev->priv should be ok in all cases: all aqr_gen1_config_init() callers have also previously called aqr107_probe(). Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://patch.msgid.link/20250903130730.2836022-6-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/gecko.py')
0 files changed, 0 insertions, 0 deletions