Add debug dump implementation to the NFP driver. This makes use of existing ethtool infrastructure. ethtool -W is used to select the dump level and ethtool -w is used to dump NFP state.
The existing behaviour of dump level 0, dumping the arm.diag resource, is preserved. Dump levels greater than 0 are implemented by this patchset and optionally supported by firmware providing a _abi_dump_spec rtsym. This rtsym provides a specification, in TLV format, of the information to be dumped from the NFP at each supported dump level. Dumps are also structured using a TLVs. They consist a prolog and the data described int he corresponding dump. Carl Heymann (10): nfp: debug dump ethtool ops nfp: load debug dump spec nfp: dump prolog nfp: dumpspec TLV traversal nfp: dump rtsyms nfp: dump all hwinfo nfp: dump single hwinfo field by key nfp: dump firmware name nfp: dump CPP, XPB and direct ME CSRs nfp: dump indirect ME CSRs drivers/net/ethernet/netronome/nfp/Makefile | 1 + drivers/net/ethernet/netronome/nfp/nfp_asm.h | 10 + drivers/net/ethernet/netronome/nfp/nfp_main.c | 6 + drivers/net/ethernet/netronome/nfp/nfp_main.h | 29 + .../net/ethernet/netronome/nfp/nfp_net_debugdump.c | 787 +++++++++++++++++++++ .../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 55 +- drivers/net/ethernet/netronome/nfp/nfpcore/nfp.h | 2 + .../ethernet/netronome/nfp/nfpcore/nfp_hwinfo.c | 10 + 8 files changed, 892 insertions(+), 8 deletions(-) create mode 100644 drivers/net/ethernet/netronome/nfp/nfp_net_debugdump.c -- 2.11.0