grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH 13/23] Add 64bit support to powerpc startup code


From: Ram Pai
Subject: [RFC PATCH 13/23] Add 64bit support to powerpc startup code
Date: Wed, 26 Feb 2014 10:31:12 -0800

From: Anton Blanchard <address@hidden>

 Add 64bit support to powerpc startup code

Signed-off-by: Ram Pai <address@hidden>
From: Anton Blanchard <address@hidden>
---
 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, address@hidden
+
+#if defined( __powerpc64__ ) || defined ( __powerpc64le__ )
+       std     5, address@hidden(9)
+       /* Set up the TOC */
+       bl      3f
+3:     mflr    9
+       addis   2,9,address@hidden
+       addi    2,2,address@hidden
+#else
        stw     5, address@hidden(9)
+#endif
 
        bl      grub_main
 1:     b       1b
+FUNC_END(_start)
-- 
1.8.5.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]