[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 00/23] grub 64bit little-endian on power
From: |
Ram Pai |
Subject: |
[RFC PATCH 00/23] grub 64bit little-endian on power |
Date: |
Wed, 26 Feb 2014 10:30:59 -0800 |
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
- [RFC PATCH 00/23] grub 64bit little-endian on power,
Ram Pai <=
- [RFC PATCH 01/23] Add a new architecture to the build process, Ram Pai, 2014/02/26
- [RFC PATCH 02/23] Build LE grub as O1, Ram Pai, 2014/02/26
- [RFC PATCH 03/23] ignore .TOC. symbol, Ram Pai, 2014/02/26
- [RFC PATCH 04/23] grub-install can now recognize and install a LE grub boot loader, Ram Pai, 2014/02/26
- [RFC PATCH 06/23] Add IEEE1275_ADDR helper, Ram Pai, 2014/02/26
- [RFC PATCH 05/23] set ABI version in e_flag of the PPC64LE ELF image., Ram Pai, 2014/02/26
- [RFC PATCH 07/23] Fix some more warnings when casting., Ram Pai, 2014/02/26
- [RFC PATCH 08/23] Add powerpc64 types, Ram Pai, 2014/02/26
- [RFC PATCH 09/23] Fix warnings when building powerpc linux loader 64bit, Ram Pai, 2014/02/26
- [RFC PATCH 11/23] Fix powerpc setjmp/longjmp 64bit issues, Ram Pai, 2014/02/26