From: Anton Blanchard <an...@samba.org>

 Add 64bit support to powerpc startup code

Signed-off-by: Ram Pai <linux...@us.ibm.com>
From: Anton Blanchard <an...@samba.org>
---
 grub-core/kern/powerpc/ieee1275/startup.S | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/grub-core/kern/powerpc/ieee1275/startup.S 
b/grub-core/kern/powerpc/ieee1275/startup.S
index 21c884b..d93682e 100644
--- a/grub-core/kern/powerpc/ieee1275/startup.S
+++ b/grub-core/kern/powerpc/ieee1275/startup.S
@@ -19,15 +19,26 @@
 
 #include <grub/symbol.h>
 #include <grub/offsets.h>
+#include <ppc-asm.h>
 
 .extern __bss_start
 .extern _end
 
        .text
-       .align  2
-       .globl  start, _start
-start:
-_start:
+
+FUNC_START(_start)
+
+#if defined(_CALL_ELF) && _CALL_ELF == 2 /* Little endian */
+        .long 0x05009f42            /* bcl 20,31,$+4                      */
+        .long 0xa602487d            /* mflr r10                           */
+        .long 0x1c004a39            /* addi r10,r10,28                    */
+        .long 0xa600607d            /* mfmsr r11                          */
+        .long 0x01006b69            /* xori r11,r11,1                     */
+        .long 0xa6035a7d            /* mtsrr0 r10                         */
+        .long 0xa6037b7d            /* mtsrr1 r11                         */
+        .long 0x2400004c            /* rfid                               */
+#endif
+
        li      2, 0
        li      13, 0
 
@@ -61,7 +72,18 @@ _start:
 
        /* Store r5 in grub_ieee1275_entry_fn.  */
        lis     9, grub_ieee1275_entry_fn@ha
+
+#if defined( __powerpc64__ ) || defined ( __powerpc64le__ )
+       std     5, grub_ieee1275_entry_fn@l(9)
+       /* Set up the TOC */
+       bl      3f
+3:     mflr    9
+       addis   2,9,.TOC.-3b@ha
+       addi    2,2,.TOC.-3b@l
+#else
        stw     5, grub_ieee1275_entry_fn@l(9)
+#endif
 
        bl      grub_main
 1:     b       1b
+FUNC_END(_start)
-- 
1.8.5.3


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to