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