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 finally, these add support for the 64bit little endian boot wrapper : powerpc/boot: define a routine to enter prom powerpc/boot: modify entry point for 64bit powerpc/boot: add a global entry point for pseries powerpc/boot: add support for 64bit little endian wrapper 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 patchset is based on a 3.15-rc2 and was tested on qemu with the -kernel option, yaboot and grub for little and big endian guests. Tests were also done to check that the PowerVM stack was not broken by these changes. It is also available from : https://github.com/legoater/linux v3.15-rc2-zimagev2 Cheers, C. Changes since v1 : - Fixed Makefile for platforms generating a zImage.pseries - used PROM_ERROR (-1u) to test return addr when claiming memory - removed patch modifying the call to the kernel entry point - merged last 3 patches to preserve bisectability Cédric Le Goater (15): 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: add a global entry point for pseries powerpc/boot: add support for 64bit little endian wrapper arch/powerpc/boot/Makefile | 21 +++- arch/powerpc/boot/addnote.c | 128 +++++++++++++++-------- arch/powerpc/boot/crt0.S | 180 +++++++++++++++++++++++++++++++- arch/powerpc/boot/elf_util.c | 4 + arch/powerpc/boot/of.c | 4 +- arch/powerpc/boot/of.h | 19 +++- arch/powerpc/boot/ofconsole.c | 6 +- arch/powerpc/boot/oflib.c | 92 ++++++++-------- 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 + 15 files changed, 464 insertions(+), 100 deletions(-) create mode 100644 arch/powerpc/boot/pseries-head.S create mode 100644 arch/powerpc/boot/swab.h -- 1.7.10.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev