diff options
author | Stefan Reinauer <stepan@openbios.org> | 2004-05-26 15:43:27 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2004-05-26 15:43:27 +0000 |
commit | 38ffff0d724fdbce9bf525f01f3e969de9b583d9 (patch) | |
tree | dd93a4e0e5fc974a201e47ad4f6a0d3bcd83d212 /src/arch/ppc | |
parent | e891783e5ffa8ba9d17f088ee2e9bfa9653184d0 (diff) |
move arch/<arch>/config to arch/<arch>/init
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1571 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/ppc')
-rw-r--r-- | src/arch/ppc/Config.lb | 2 | ||||
-rw-r--r-- | src/arch/ppc/init/ldscript.lb | 94 |
2 files changed, 95 insertions, 1 deletions
diff --git a/src/arch/ppc/Config.lb b/src/arch/ppc/Config.lb index 87b54ed080..31ccc297ce 100644 --- a/src/arch/ppc/Config.lb +++ b/src/arch/ppc/Config.lb @@ -1,4 +1,4 @@ -ldscript config/ldscript.lb +ldscript init/ldscript.lb makerule linuxbios.rom depends "linuxbios" diff --git a/src/arch/ppc/init/ldscript.lb b/src/arch/ppc/init/ldscript.lb new file mode 100644 index 0000000000..a8ad86f1c0 --- /dev/null +++ b/src/arch/ppc/init/ldscript.lb @@ -0,0 +1,94 @@ +/* + * Memory map: + * + * _ROMBASE : start of ROM + * _RESET : reset vector (may be at top of ROM) + * _EXCEPTIONS_VECTORS : exception table + * + * _ROMSTART : linuxbios text + * : payload text + * + * _RAMBASE : address to copy payload + */ + +/* + * Written by Johan Rydberg, based on work by Daniel Kahlin. + * Rewritten by Eric Biederman + * Re-rewritten by Greg Watson for PPC + */ + +/* + * We use ELF as output format. So that we can + * debug the code in some form. + */ + +OUTPUT_FORMAT("elf32-powerpc") +ENTRY(_start) + +TARGET(binary) +INPUT(linuxbios_payload) +SECTIONS +{ + /* + * Absolute location of base of ROM + */ + . = _ROMBASE; + + /* + * Absolute location of reset vector. This may actually be at the + * the top of ROM. + */ + . = _RESET; + .reset . : { + *(.rom.reset); + . = ALIGN(16); + } + + /* + * Absolute location of exception vector table. + */ + . = _EXCEPTION_VECTORS; + .exception_vectors . : { + *(.rom.exception_vectors); + . = ALIGN(16); + } + + /* + * Absolute location of LinuxBIOS initialization code in ROM. + */ + . = _ROMSTART; + .rom . : { + _rom = .; + *(.rom.text); + *(.text); + *(.rom.data); + *(.rodata); + *(EXCLUDE_FILE(linuxbios_payload) .data); + . = ALIGN(16); + _erom = .; + } + _lrom = LOADADDR(.rom); + _elrom = LOADADDR(.rom) + SIZEOF(.rom); + + /* + * Payload is LinuxBIOS proper. + */ + .payload . : { + _payload = . ; + linuxbios_payload(*) + _epayload = . ; + } + + /* + * Absolute location of where payload will be relocated in RAM. + */ + _iseg = _RAMBASE; + _eiseg = _iseg + SIZEOF(.payload); + _liseg = _payload; + _eliseg = _epayload; + + /DISCARD/ : { + *(.comment) + *(.note) + } +} |