mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
Avoid using NVRAM area for ROM, add SRE vector
git-svn-id: svn://coreboot.org/openbios/openbios-devel@303 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
@@ -5,6 +5,14 @@ OUTPUT_ARCH(powerpc)
|
||||
*/
|
||||
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 @@ SECTIONS
|
||||
. = 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 @@ SECTIONS
|
||||
_ebss = .;
|
||||
}
|
||||
|
||||
. = 0xfffffffc;
|
||||
. = HRESET_ADDR;
|
||||
|
||||
.romentry : { *(.romentry) }
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
.text
|
||||
.section .text.vectors, "ax"
|
||||
.space 0x0100
|
||||
GLOBL(_start):
|
||||
/* clear MSR, disable MMU */
|
||||
@@ -152,8 +152,10 @@ GLOBL(_start):
|
||||
* 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 @@ trap_error:
|
||||
mflr r3
|
||||
b unexpected_excep
|
||||
|
||||
ILLEGAL_VECTOR( 0x100 )
|
||||
VECTOR( 0x100, "SRE" ):
|
||||
b _start
|
||||
|
||||
ILLEGAL_VECTOR( 0x200 )
|
||||
|
||||
VECTOR( 0x300, "DSI" ):
|
||||
@@ -389,5 +393,6 @@ memloop:
|
||||
exit_memloop:
|
||||
blr
|
||||
|
||||
/* Hard reset vector */
|
||||
.section .romentry,"ax"
|
||||
bl _start
|
||||
|
||||
Reference in New Issue
Block a user