The following patches enable grub to support 64bit Little Endian Power architecture.
Anton Blanchard (12): Add IEEE1275_ADDR helper Fix some more warnings when casting. Add powerpc64 types Fix warnings when building powerpc linux loader 64bit Fix powerpc setjmp/longjmp 64bit issues Add powerpc64 ieee1275 trampoline Add 64bit support to powerpc startup code Add grub_dl_find_section_addr Add ppc64 relocations ppc64 doesn't need libgcc routines Use FUNC_START/FUNC_END for powerpc function definitions powerpc64 is not necessarily BigEndian anymore! :) Ram Pai (11): Add a new architecture to the build process Build grub as O1 until we add savegpr and restgpr routines powerpc64 LE's linker knows how to handle the undefined symbol .TOC. in grub modules. So just ignore that symbol during build. grub-install can now recognize and install a LE grub boot loader set the ABI version to 0x02 in the e_flag of the PPC64LE ELF image. GRUB_ELF_R_PPC_* processing is applicable only for 32 bit bootloader. .TOC. symbol is special in ppc64le . It maps to the address of the .toc section. the .toc section in powerpc64le modules are sometimes not aligned on a four byte boundary. This fails the module linker especially when processing R_PPC64_TOC16_LO_DS, since the addresses are expected to be aligned on 4byte boundary. all parameter to firmware calls should to be BigEndian and the results should be CPU endian. grub segfaults if initrd is specified before specifying the kernel. The problem is the initrd module sees that kernel is not specified and takes the fail path. In the fail path it checks if anything has be malloc'ed. Unfortunately the variable that it looks to check for is a uninitialized stack variable. The stack variable can incorrectly indicate something is malloced, which leads the module to free some unallocated memory. This patch fixes the problem by initializing the stack variable. Power7 cannot handle VSX instructions correctly. It segfaults. This patch is applicable only for power7 systems. Thomas Falcon (1): Add a new architecture to the build process Tomohiro B Berry (1): Add a new architecture to the build process Makefile.am | 4 + config.h.in | 4 + configure.ac | 17 ++- gentpl.py | 7 +- grub-core/Makefile.am | 7 ++ grub-core/Makefile.core.def | 20 ++++ grub-core/disk/ieee1275/nand.c | 41 +++---- grub-core/disk/ieee1275/ofdisk.c | 28 +++-- grub-core/fs/fshelp.c | 10 ++ grub-core/gensyminfo.sh.in | 7 +- grub-core/kern/dl.c | 66 +++++++++++- grub-core/kern/ieee1275/ieee1275.c | 162 ++++++++++++++++------------ grub-core/kern/ieee1275/openfw.c | 25 ++--- grub-core/kern/powerpc/cache.S | 6 +- grub-core/kern/powerpc/dl.c | 172 +++++++++++++++++++++++++++++- grub-core/kern/powerpc/ieee1275/entry.S | 150 ++++++++++++++++++++++++++ grub-core/kern/powerpc/ieee1275/startup.S | 30 +++++- grub-core/kern/term.c | 11 ++ grub-core/lib/ieee1275/datetime.c | 36 +++---- grub-core/lib/powerpc/relocator.c | 8 +- grub-core/lib/powerpc/setjmp.S | 102 ++++++++++-------- grub-core/loader/powerpc/ieee1275/linux.c | 10 +- grub-core/net/drivers/ieee1275/ofnet.c | 8 +- grub-core/normal/term.c | 42 ++++++++ include/grub/dl.h | 2 + include/grub/elf.h | 4 + include/grub/ieee1275/ieee1275.h | 8 +- include/grub/libgcc.h | 2 +- include/grub/offsets.h | 5 + include/grub/powerpc/ieee1275/ieee1275.h | 6 ++ include/grub/powerpc/types.h | 16 ++- include/grub/powerpc64le | 1 + include/grub/util/install.h | 1 + util/grub-install-common.c | 1 + util/grub-install.c | 15 ++- util/grub-mkimagexx.c | 4 + util/mkimage.c | 19 ++++ 37 files changed, 843 insertions(+), 214 deletions(-) create mode 100644 grub-core/kern/powerpc/ieee1275/entry.S create mode 120000 include/grub/powerpc64le -- 1.8.5.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel