grub-devel.gnu.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/23] grub 64bit little-endian on power
@ 2014-02-26 18:30 Ram Pai
  2014-02-26 18:31 ` [RFC PATCH 01/23] Add a new architecture to the build process Ram Pai
                   ` (22 more replies)
  0 siblings, 23 replies; 68+ messages in thread
From: Ram Pai @ 2014-02-26 18:30 UTC (permalink / raw)
  To: grub-devel; +Cc: tonyb, anton, linuxram, tlfalcon, tbberry

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



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

end of thread, other threads:[~2014-09-28  6:34 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-26 18:30 [RFC PATCH 00/23] grub 64bit little-endian on power Ram Pai
2014-02-26 18:31 ` [RFC PATCH 01/23] Add a new architecture to the build process Ram Pai
2014-02-26 18:31 ` [RFC PATCH 02/23] Build LE grub as O1 Ram Pai
2014-02-26 18:31 ` [RFC PATCH 03/23] ignore .TOC. symbol Ram Pai
2014-04-01 16:52   ` Andrey Borzenkov
2014-02-26 18:31 ` [RFC PATCH 04/23] grub-install can now recognize and install a LE grub boot loader Ram Pai
2014-02-26 18:31 ` [RFC PATCH 05/23] set ABI version in e_flag of the PPC64LE ELF image Ram Pai
2014-02-26 18:31 ` [RFC PATCH 06/23] Add IEEE1275_ADDR helper Ram Pai
2014-04-01 17:11   ` Andrey Borzenkov
2014-02-26 18:31 ` [RFC PATCH 07/23] Fix some more warnings when casting Ram Pai
2014-02-26 18:31 ` [RFC PATCH 08/23] Add powerpc64 types Ram Pai
2014-04-01 17:15   ` Andrey Borzenkov
2014-04-02 17:02     ` Ram Pai
2014-02-26 18:31 ` [RFC PATCH 09/23] Fix warnings when building powerpc linux loader 64bit Ram Pai
2014-04-01 17:21   ` Andrey Borzenkov
2014-04-02 17:03     ` Ram Pai
2014-02-26 18:31 ` [RFC PATCH 10/23] GRUB_ELF_R_PPC_* processing is applicable only for 32 bit bootloader Ram Pai
2014-02-26 18:31 ` [RFC PATCH 11/23] Fix powerpc setjmp/longjmp 64bit issues Ram Pai
2014-04-01 17:27   ` Andrey Borzenkov
2014-04-02 17:06     ` Ram Pai
2014-04-02 17:19       ` Andrey Borzenkov
2014-04-02 17:48         ` Ram Pai
2014-04-02 17:56           ` Andrey Borzenkov
2014-04-02 18:55             ` Ram Pai
2014-02-26 18:31 ` [RFC PATCH 12/23] Add powerpc64 ieee1275 trampoline Ram Pai
2014-02-26 18:31 ` [RFC PATCH 13/23] Add 64bit support to powerpc startup code Ram Pai
2014-02-26 18:31 ` [RFC PATCH 14/23] Add grub_dl_find_section_addr Ram Pai
2014-02-26 18:31 ` [RFC PATCH 15/23] Add ppc64 relocations Ram Pai
2014-02-26 18:31 ` [RFC PATCH 16/23] ppc64 doesn't need libgcc routines Ram Pai
2014-02-26 18:31 ` [RFC PATCH 17/23] Use FUNC_START/FUNC_END for powerpc function definitions Ram Pai
2014-02-26 18:31 ` [RFC PATCH 18/23] .TOC. symbol is special in ppc64le Ram Pai
2014-02-26 18:31 ` [RFC PATCH 19/23] align .toc section on 4byte boundary Ram Pai
2014-02-26 18:31 ` [RFC PATCH 20/23] fix parameter to firmware calls Ram Pai
2014-04-01 17:45   ` Andrey Borzenkov
2014-04-02 17:08     ` Ram Pai
2014-04-02 17:16       ` Andrey Borzenkov
2014-02-26 18:31 ` [RFC PATCH 21/23] powerpc64 is not necessarily BigEndian anymore! :) Ram Pai
2014-04-01 17:49   ` Andrey Borzenkov
2014-04-01 20:22     ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-04-03 17:33       ` Ram Pai
2014-04-03 17:53         ` Andrey Borzenkov
2014-04-03 18:37           ` Ram Pai
2014-04-03 19:03             ` Andrey Borzenkov
2014-04-03 19:26               ` Ram Pai
2014-04-03 19:42                 ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-04-03 20:23                   ` Ram Pai
2014-04-03 19:54                 ` Andrey Borzenkov
2014-04-03 20:32                   ` Ram Pai
2014-04-03 21:41                     ` Vladimir 'phcoder' Serbinenko
2014-04-04  2:28                     ` Andrey Borzenkov
2014-04-04 17:47                       ` Ram Pai
2014-04-04 18:17                         ` Andrey Borzenkov
2014-04-04 18:24                           ` Dinar Valeev
2014-04-04 19:12                             ` Andrey Borzenkov
2014-04-04 20:29                               ` Dinar Valeev
2014-04-04 22:19                                 ` Ram Pai
     [not found]                                   ` <CAEaD8JN9SkqU9+BkU2MYub=aC3Wb143nMPgRWjVbFvgit90yBQ@mail.gmail.com>
2014-04-05  0:04                                     ` Fwd: " Vladimir 'phcoder' Serbinenko
2014-09-27  5:42                             ` Andrei Borzenkov
2014-09-28  6:33                               ` Andrei Borzenkov
2014-04-04  6:37                   ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-04-04 17:08                     ` Andrey Borzenkov
2014-04-05 15:45                       ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-04-05 16:49                         ` Andrey Borzenkov
2014-04-05 18:29                           ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-04-05 18:48                             ` Andrey Borzenkov
2014-04-02 17:09     ` Ram Pai
2014-02-26 18:31 ` [RFC PATCH 22/23] fix segfaults if initrd Ram Pai
2014-02-26 18:31 ` [RFC PATCH 23/23] Optional: Power7 VSX instructions workaround Ram Pai

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).