linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Introduce support for little endian PowerPC
@ 2010-10-01  7:05 Ian Munsie
  2010-10-01  7:05 ` [PATCH 01/18] powerpc: Add ability to build little endian kernels Ian Munsie
                   ` (19 more replies)
  0 siblings, 20 replies; 52+ messages in thread
From: Ian Munsie @ 2010-10-01  7:05 UTC (permalink / raw)
  To: linux-kernel, linuxppc-dev, benh; +Cc: paulus

Some PowerPC processors can be run in either big or little endian modes, some
others can map selected pages of memory as little endian, which allows the same
thing. Until now we have only supported the default big endian mode in Linux.
This patch set introduces little endian support for the 44x family of PowerPC
processors.

This patch set in combination with a patched GCC, binutils, uClibc and
buildroot has allowed for a full proof of concept little endian environment on
a 440 Taishan board, which was able to successfully run busybox, OpenSSH and a
handful of other userspace programs without problems.

I am not currently in a position to release my patches for the toolchain, but
in the meantime I thought I would send my patches on the kernel side for review
and feedback.

While my toolchain patches are necessary to support the powerpcle-linux target,
the kernel can still be built with an unpatched toolchain using the
powerpcle-elf target instead. Userspace programs, however, do require the
patched toolchain to build.

Since the processor still starts as big endian, the boot wrapper must still be
compiled with a big endian 32bit toolchain. This can be passed into the build
as CROSSBE_COMPILE in the same manner as the CROSS_COMPILE variable. When the
boot wrapper is finished it runs some platform specific assembly to switch to
little endian and execute the kernel.

This is not yet complete support for little endian PowerPC, some outstanding
issues that I am aware of are:
 * We only support 32bit PowerPC for now (and indeed, only 44x)
 * The vdso has not been fixed to be endian agnostic - any userspace program
   accessing it will get an unexpected result.
 * I have not touched PCI at all
 * Remaining device tree accesses still need to be examined to ensure they are
   correctly handling the endianess of the device tree.
 * Any other driver that uses the device tree is likely be broken for the same reason.
 * I've included a patch for the alignment handler, however it is as yet
   completely untested due to a property of the hardware I've been using for
   testing.

^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2010-10-07 23:23 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-01  7:05 Introduce support for little endian PowerPC Ian Munsie
2010-10-01  7:05 ` [PATCH 01/18] powerpc: Add ability to build little endian kernels Ian Munsie
2010-10-01  9:18   ` Kumar Gala
2010-10-01 11:28     ` Josh Boyer
2010-10-01 12:09       ` Benjamin Herrenschmidt
2010-10-01 11:40   ` Josh Boyer
2010-10-01 12:22     ` Benjamin Herrenschmidt
2010-10-01  7:05 ` [PATCH 02/18] powerpc: Add CROSSBE_COMPILE to build big endian boot wrapper Ian Munsie
2010-10-01  7:13   ` Geert Uytterhoeven
2010-10-01  7:19     ` Ian Munsie
2010-10-01  7:05 ` [PATCH 03/18] powerpc: Support parsing a little endian kernel from zImage wrapper Ian Munsie
2010-10-01  7:05 ` [PATCH 04/18] powerpc: Allow taishan platform to boot a little endian kernel Ian Munsie
2010-10-01  7:05 ` [PATCH 05/18] powerpc: Wire up 44x little endian boot for remaining 44x targets Ian Munsie
2010-10-01 11:27   ` Josh Boyer
2010-10-06  1:28     ` Ian Munsie
2010-10-06  1:55       ` Josh Boyer
2010-10-06  2:10         ` Sean MacLennan
2010-10-01  7:05 ` [PATCH 06/18] powerpc 44x: Set E bit in TLBs and PTEs when CPU is in little endian mode Ian Munsie
2010-10-01  7:06 ` [PATCH 07/18] powerpc: Use generic bitops for little endian bitmap operations Ian Munsie
2010-10-01  7:06 ` [PATCH 08/18] powerpc: Include the appropriate endianness header Ian Munsie
2010-10-01  7:06 ` [PATCH 09/18] powerpc: Support device tree regardless of CPU endianness Ian Munsie
2010-10-03  3:15   ` Grant Likely
2010-10-03  6:22     ` Benjamin Herrenschmidt
2010-10-01  7:06 ` [PATCH 10/18] powerpc: Support endian agnostic MMIO Ian Munsie
2010-10-01  7:06 ` [PATCH 11/18] powerpc: Make assembly endian agnostic when accessing 64bit values Ian Munsie
2010-10-01  7:06 ` [PATCH 12/18] powerpc 44x: Handle TLB miss regardless of endianness Ian Munsie
2010-10-01  7:06 ` [PATCH 13/18] powerpc 44x: Make DCR endianness agnostic Ian Munsie
2010-10-01  7:06 ` [PATCH 14/18] powerpc, of_serial: Endianness issues setting up the serial ports Ian Munsie
2010-10-07 23:23   ` Grant Likely
2010-10-01  7:06 ` [PATCH 15/18] mtd: Fix endianness issues from device tree Ian Munsie
2010-10-01 19:29   ` Artem Bityutskiy
2010-10-01  7:06 ` [PATCH 16/18] powerpc: Fix endianness issues in alignment handler Ian Munsie
2010-10-01  7:06 ` [PATCH 17/18] net: Fix endianess issues in IBM newemac driver Ian Munsie
2010-10-01  7:06 ` [PATCH 18/18] powerpc: Fix jiffies variable on little endian Ian Munsie
2010-10-01  9:02 ` Introduce support for little endian PowerPC Kumar Gala
2010-10-01 11:30   ` Josh Boyer
2010-10-01 11:55     ` Gary Thomas
2010-10-01 12:15       ` Benjamin Herrenschmidt
2010-10-01 12:37         ` Gary Thomas
2010-10-01 12:14     ` Benjamin Herrenschmidt
2010-10-01 16:20       ` Michel Dänzer
2010-10-01 20:50         ` Benjamin Herrenschmidt
2010-10-04 10:30           ` Michel Dänzer
2010-10-04 22:50             ` Benjamin Herrenschmidt
2010-10-01 17:59       ` Kumar Gala
2010-10-01 20:51         ` Benjamin Herrenschmidt
2010-10-01 22:03           ` Olof Johansson
2010-10-01 22:28             ` Benjamin Herrenschmidt
2010-10-07 16:25             ` Hollis Blanchard
2010-10-01 11:36 ` Josh Boyer
2010-10-01 12:21   ` Benjamin Herrenschmidt
2010-10-06  1:04   ` Ian Munsie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).