[OpenBIOS] r303 - openbios-devel/arch/ppc/qemu

svn at openbios.org svn at openbios.org
Sun Dec 21 11:17:03 CET 2008


Author: blueswirl
Date: 2008-12-21 11:17:03 +0100 (Sun, 21 Dec 2008)
New Revision: 303

Modified:
   openbios-devel/arch/ppc/qemu/ldscript
   openbios-devel/arch/ppc/qemu/start.S
Log:
Avoid using NVRAM area for ROM, add SRE vector

Modified: openbios-devel/arch/ppc/qemu/ldscript
===================================================================
--- openbios-devel/arch/ppc/qemu/ldscript	2008-12-21 09:15:57 UTC (rev 302)
+++ openbios-devel/arch/ppc/qemu/ldscript	2008-12-21 10:17:03 UTC (rev 303)
@@ -5,6 +5,14 @@
  */
 BASE_ADDR = 0xfff00000;
 
+/* As NVRAM is at 0xfff04000, the .text needs to be after that
+ */
+TEXT_ADDR = 0xfff06000;
+
+/* Hard reset vector address
+ */
+HRESET_ADDR = 0xfffffffc;
+
 CSTACK_SIZE = 32768;	/* client stack size */
 
 SECTIONS
@@ -12,10 +20,13 @@
     . = BASE_ADDR;
 
     _start = BASE_ADDR + 0x0100;
+    .text.vectors ALIGN(4096): {
+        *(.text.vectors)
+    }
 
+    . = TEXT_ADDR;
     /* Normal sections */
     .text ALIGN(4096): {
-        *(.text.vectors)
         *(.text)
         *(.text.*)
     }
@@ -41,7 +52,7 @@
 	_ebss = .;
     }
 
-    . = 0xfffffffc;
+    . = HRESET_ADDR;
 
     .romentry : { *(.romentry) }
 

Modified: openbios-devel/arch/ppc/qemu/start.S
===================================================================
--- openbios-devel/arch/ppc/qemu/start.S	2008-12-21 09:15:57 UTC (rev 302)
+++ openbios-devel/arch/ppc/qemu/start.S	2008-12-21 10:17:03 UTC (rev 303)
@@ -62,7 +62,7 @@
 /************************************************************************/
 
 
-	.text
+        .section .text.vectors, "ax"
 	.space 0x0100
 GLOBL(_start):
 	/* clear MSR, disable MMU */
@@ -152,8 +152,10 @@
 	 *	r6 = address of client program arguments (unused)
 	 *	r7 = length of client program arguments (unsed)
 	 */
+        .data
 saved_stack:
 	.long	0
+        .previous
 	/* void call_elf( entry ) */
 GLOBL(call_elf):
 	mflr	r0
@@ -276,7 +278,9 @@
 	mflr	r3
 	b	unexpected_excep
 
-ILLEGAL_VECTOR( 0x100 )
+VECTOR( 0x100, "SRE" ):
+        b       _start
+
 ILLEGAL_VECTOR( 0x200 )
 
 VECTOR( 0x300, "DSI" ):
@@ -389,5 +393,6 @@
 exit_memloop:
 	blr
 
+        /* Hard reset vector */
 	.section .romentry,"ax"
 	bl	_start




More information about the OpenBIOS mailing list