This is an experimental patch set for enabling Little Endian working on the Cavium Octeon II. It may work for other Octeon models but has not been tested on them. It's been extensively tested on a Ubiquiti EdgeRouter Pro, building a current GNU/Linux toolchain from sources using an external USB drive. My contributions (with the exception of the changes to octeon-md5) are mainly cherry-picked from the GPL tarball released by Ubiquiti, and appear to have originally been authored by Cavium. David Daney (3): MIPS: OCTEON: Handle bootloader structures in little-endian mode. MIPS: OCTEON: Add mach-cavium-octeon/mangle-port.h MIPS: OCTEON: Enable little endian kernel. Paul Martin (7): MIPS: OCTEON: Turn hardware bitfields and structures inside out. MIPS: OCTEON: Set appropriate endianness in L2C registers MIPS: OCTEON: Reverse the order of register accesses to the FAU MIPS: OCTEON: Set up ethernet hardware for little endian MIPS: OCTEON: Make octeon-md5 driver endian-agnostic MIPS: OCTEON: Fix to IP checksum offloading in Little Endian MIPS: OCTEON: Fix Kconfig file typo arch/mips/Kconfig | 3 +- arch/mips/cavium-octeon/crypto/octeon-crypto.h | 8 +- arch/mips/cavium-octeon/executive/cvmx-l2c.c | 45 ++++ arch/mips/cavium-octeon/octeon-platform.c | 12 + arch/mips/cavium-octeon/octeon_boot.h | 23 ++ .../include/asm/mach-cavium-octeon/mangle-port.h | 74 ++++++ arch/mips/include/asm/octeon/cvmx-address.h | 67 ++++++ arch/mips/include/asm/octeon/cvmx-bootinfo.h | 55 +++++ arch/mips/include/asm/octeon/cvmx-bootmem.h | 14 ++ arch/mips/include/asm/octeon/cvmx-fau.h | 22 ++ arch/mips/include/asm/octeon/cvmx-fpa.h | 7 + arch/mips/include/asm/octeon/cvmx-l2c.h | 9 + arch/mips/include/asm/octeon/cvmx-packet.h | 8 + arch/mips/include/asm/octeon/cvmx-pko.h | 31 +++ arch/mips/include/asm/octeon/cvmx-pow.h | 247 +++++++++++++++++++++ arch/mips/include/asm/octeon/cvmx-wqe.h | 71 ++++++ drivers/staging/octeon/ethernet-tx.c | 5 +- drivers/staging/octeon/ethernet.c | 10 + 18 files changed, 705 insertions(+), 6 deletions(-) create mode 100644 arch/mips/include/asm/mach-cavium-octeon/mangle-port.h -- 2.1.4