[PATCH 00/18] powerpc/boot: 64bit little endian wrapper
Cédric Le Goater
clg at fr.ibm.com
Fri Mar 21 02:09:55 EST 2014
Hi,
The following patchset adds support for 64bit little endian boot
wrapper. It is based on original code from Andrew Tauferner.
The first patches provide fixes for 64bit support. I also changed
the prom code to make it converge with the prom_init kernel code.
They have a lot in common and they could probably be merged.
powerpc/boot: fix do_div for 64bit wrapper
powerpc/boot: use a common prom_args struct in oflib
powerpc/boot: use prom_arg_t in oflib
powerpc/boot: add byteswapping routines in oflib
powerpc/boot: add PROM_ERROR define in oflib
powerpc/boot: rework of_claim() to make it 64bit friendly
powerpc/boot: define typedef ihandle as u32
powerpc/boot: fix compile warning in 64bit
These are for little endian only:
powerpc/boot: define byteswapping routines for little endian
powerpc/boot: add 64bit and little endian support to addnote
powerpc/boot: add little endian support to elf utils
and these to support a 64bit boot wrapper in both endian
order :
powerpc/boot: define a routine to enter prom
powerpc/boot: modify entry point for 64bit
powerpc/boot: modify how we enter kernel on 64bit
powerpc/boot: add a global entry point for pseries
powerpc/boot: add support for 64bit big endian wrapper
powerpc/boot: add support for 64bit little endian wrapper
This final patch restores the previous configuration for
64bit big endian kernel, which is to compile in 32bit :
powerpc/boot: add PPC64_BOOT_WRAPPER config option
Here are some topics to discuss :
- to compile in 64bit, -m64 is added to the cross32 compiler.
- There are still some compile warnings due to 64bit, in addnote
and in the device tree library.
- the wrapper is compiled as a position independent executable.
This might not be an issue.
- is the addnote executable still in use ? It seems important for
RS6000.
This patchset is based on a 3.14-rc7 and was tested on qemu with
the -kernel option on little and big endian guests and with a custom
yaboot suporting LE. An another round of tests will be required when
a 64bit grub is available.
Best,
C.
Cédric Le Goater (18):
powerpc/boot: fix do_div for 64bit wrapper
powerpc/boot: use a common prom_args struct in oflib
powerpc/boot: use prom_arg_t in oflib
powerpc/boot: add byteswapping routines in oflib
powerpc/boot: add PROM_ERROR define in oflib
powerpc/boot: rework of_claim() to make it 64bit friendly
powerpc/boot: define typedef ihandle as u32
powerpc/boot: fix compile warning in 64bit
powerpc/boot: define byteswapping routines for little endian
powerpc/boot: add 64bit and little endian support to addnote
powerpc/boot: add little endian support to elf utils
powerpc/boot: define a routine to enter prom
powerpc/boot: modify entry point for 64bit
powerpc/boot: modify how we enter kernel on 64bit
powerpc/boot: add a global entry point for pseries
powerpc/boot: add support for 64bit big endian wrapper
powerpc/boot: add support for 64bit little endian wrapper
powerpc/boot: add PPC64_BOOT_WRAPPER config option
arch/powerpc/boot/Makefile | 18 +++-
arch/powerpc/boot/addnote.c | 128 +++++++++++++++--------
arch/powerpc/boot/crt0.S | 180 +++++++++++++++++++++++++++++++-
arch/powerpc/boot/elf_util.c | 4 +
arch/powerpc/boot/main.c | 4 +
arch/powerpc/boot/of.c | 4 +-
arch/powerpc/boot/of.h | 17 ++-
arch/powerpc/boot/ofconsole.c | 6 +-
arch/powerpc/boot/oflib.c | 94 +++++++++--------
arch/powerpc/boot/ppc_asm.h | 12 +++
arch/powerpc/boot/pseries-head.S | 8 ++
arch/powerpc/boot/stdio.c | 14 +++
arch/powerpc/boot/swab.h | 29 +++++
arch/powerpc/boot/wrapper | 17 ++-
arch/powerpc/boot/zImage.lds.S | 25 ++++-
arch/powerpc/platforms/Kconfig.cputype | 5 +
16 files changed, 465 insertions(+), 100 deletions(-)
create mode 100644 arch/powerpc/boot/pseries-head.S
create mode 100644 arch/powerpc/boot/swab.h
--
1.7.10.4
More information about the Linuxppc-dev
mailing list