We want to add the Cavium OCTEON-III network driver. But since interacting with the input and output queues is done via special CPU local memory, we also need to add support to the MIPS/Octeon architecture code. Aren't SoCs nice in this way? These are the prerequisite patches that are needed before the network driver can be merged.
Changes in v8: o Rebased to v4.16-rc2 Changes in v7: o Splitting of the patch set only. These 4 mips patches are unchanged from the previous posting. Changes in v6: o Added back cleanup patch for previous generation SoC "staging" driver, as Greg K-H acked it. o Moved FPA driver to drivers/net/ethernet/cavium/octeon as it is currently only used by the octeon3-ethernet driver. o Many code formatting fixes as noted by davem. Changes in v5: o Removed cleanup patch for previous generation SoC "staging" driver, as it will be sent as a follow-on. o Fixed kernel doc formatting in all patches. o Removed redundant licensing text boilerplate. o Reviewed-by: header added to 2/7. o Rewrote locking code in 3/7 to eliminate inline asm. Changes in v4: o Use phy_print_status() instead of open coding the equivalent. o Print warning on phy mode mismatch. o Improve dt-bindings and add Acked-by. Changes in v3: o Fix PKI (RX path) initialization to work with little endian kernel. Changes in v2: o Cleanup and use of standard bindings in the device tree bindings document. o Added (hopefully) clarifying comments about several OCTEON architectural peculiarities. o Removed unused testing code from the driver. o Removed some module parameters that already default to the proper values. o KConfig cleanup, including testing on x86_64, arm64 and mips. o Fixed breakage to the driver for previous generation of OCTEON SoCs (in the staging directory still). o Verified bisectability of the patch set. Carlos Munoz (2): MIPS: Octeon: Enable LMTDMA/LMTST operations. MIPS: Octeon: Add a global resource manager. David Daney (2): MIPS: Octeon: Automatically provision CVMSEG space. staging: octeon: Remove USE_ASYNC_IOBDMA macro. arch/mips/cavium-octeon/Kconfig | 27 +- arch/mips/cavium-octeon/Makefile | 1 + arch/mips/cavium-octeon/resource-mgr.c | 351 +++++++++++++++++++++ arch/mips/cavium-octeon/setup.c | 22 +- .../asm/mach-cavium-octeon/kernel-entry-init.h | 20 +- arch/mips/include/asm/mipsregs.h | 2 + arch/mips/include/asm/octeon/octeon.h | 32 +- arch/mips/include/asm/processor.h | 2 +- arch/mips/kernel/octeon_switch.S | 2 - arch/mips/mm/tlbex.c | 29 +- drivers/staging/octeon/ethernet-defines.h | 6 - drivers/staging/octeon/ethernet-rx.c | 25 +- drivers/staging/octeon/ethernet-tx.c | 85 ++--- 13 files changed, 472 insertions(+), 132 deletions(-) create mode 100644 arch/mips/cavium-octeon/resource-mgr.c -- 2.14.3