Octeon II CPUs can switch from Big Endian to Little Endian freely even in kernel/supervisor mode. These patches allow an EdgeRouterPro to boot in LE mode with no hardware modifications. They have not been subjected to extensive testing yet and should be considered experimental. (I have seen some strange memory corruption in libstdc++ which I haven't yet been able to trace.) Parts of this patchset are based on the "GPL" sources released by Ubiquiti. Paul Martin (6): MIPS: OCTEON: Tell the kernel build system we can do Little Endian MIPS: OCTEON: Ensure CPUs come up little endian 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 arch/mips/Kconfig | 1 + arch/mips/cavium-octeon/executive/cvmx-l2c.c | 45 ++++ arch/mips/cavium-octeon/octeon-platform.c | 12 + .../asm/mach-cavium-octeon/kernel-entry-init.h | 137 +++++++++++- 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 | 3 + drivers/staging/octeon/ethernet.c | 10 + 16 files changed, 738 insertions(+), 1 deletion(-) -- 2.1.4