[OpenBIOS] [commit] r969 - in trunk/openbios-devel/arch: ppc/qemu ppc64/qemu

repository service svn at openbios.org
Thu Nov 25 22:56:23 CET 2010


Author: afaerber
Date: Thu Nov 25 22:56:23 2010
New Revision: 969
URL: http://tracker.coreboot.org/trac/openbios/changeset/969

Log:
ppc: Set up TOC base for ppc64

r2 points to TOC base, __toc_start + 0x8000.
This value is stored as part of the function descriptor.

Include some related ELF sections in the linker script.

Cc: Alexander Graf <agraf at suse.de>
Cc: Segher Boessenkool <segher at kernel.crashing.org>
Signed-off-by: Andreas Färber <andreas.faerber at web.de>

Modified:
   trunk/openbios-devel/arch/ppc/qemu/start.S
   trunk/openbios-devel/arch/ppc64/qemu/ldscript

Modified: trunk/openbios-devel/arch/ppc/qemu/start.S
==============================================================================
--- trunk/openbios-devel/arch/ppc/qemu/start.S	Thu Nov 25 22:53:25 2010	(r968)
+++ trunk/openbios-devel/arch/ppc/qemu/start.S	Thu Nov 25 22:56:23 2010	(r969)
@@ -445,6 +445,13 @@
 
 	/* save memory size in stack */
 
+#ifdef __powerpc64__
+	/* set up TOC pointer */
+
+	LOAD_REG_IMMEDIATE(r2, setup_mmu)
+	ld r2, 8(r2)
+#endif
+
 	bl	BRANCH_LABEL(setup_mmu)
 	bl	BRANCH_LABEL(entry)
 1:	nop

Modified: trunk/openbios-devel/arch/ppc64/qemu/ldscript
==============================================================================
--- trunk/openbios-devel/arch/ppc64/qemu/ldscript	Thu Nov 25 22:53:25 2010	(r968)
+++ trunk/openbios-devel/arch/ppc64/qemu/ldscript	Thu Nov 25 22:56:23 2010	(r969)
@@ -41,8 +41,18 @@
         _data = .;
         *(.data)
         *(.data.*)
+        *(.toc1)
+        *(.branch_lt)
 	_edata = .;
     }
+    .opd : {
+        *(.opd)
+    }
+    .got : {
+        __toc_start = .;
+        *(.got)
+        *(.toc)
+    }
 
     .bss ALIGN(4096): {
         _bss = .;



More information about the OpenBIOS mailing list