diff options
Diffstat (limited to 'roms/openbios/arch/ppc64')
| -rw-r--r-- | roms/openbios/arch/ppc64/qemu/ldscript | 85 | 
1 files changed, 85 insertions, 0 deletions
diff --git a/roms/openbios/arch/ppc64/qemu/ldscript b/roms/openbios/arch/ppc64/qemu/ldscript new file mode 100644 index 00000000..fbbcc546 --- /dev/null +++ b/roms/openbios/arch/ppc64/qemu/ldscript @@ -0,0 +1,85 @@ +OUTPUT_FORMAT(elf64-powerpc) +OUTPUT_ARCH(powerpc:common64) + +/* Initial load address + */ +BASE_ADDR = 0xfff00000; + +/* As NVRAM is at 0xfff04000, the .text needs to be after that + * The value in arch/ppc/qemu/kernel.c must match this value! + */ +TEXT_ADDR = 0xfff08000; + +/* Hard reset vector address + */ +HRESET_ADDR = 0xfffffffc; + +CSTACK_SIZE = 32768;	/* client stack size */ + +SECTIONS +{ +    . = BASE_ADDR; + +    _start = BASE_ADDR + 0x0100; +    .text.vectors ALIGN(4096): { +        *(.text.vectors) +    } + +    . = TEXT_ADDR; +    /* Normal sections */ +    .data.dict ALIGN(4096): { +        _dict_start = .; +        *(.data.dict) +        _dict_end = .; +    } + +    .text ALIGN(4096): { +        *(.text) +        *(.text.*) +    } + +    .rodata ALIGN(4096): { +        _rodata = .; +	*(.rodata) +	*(.rodata.*) +        *(.note.ELFBoot) +    } +    .data ALIGN(4096): { +        _data = .; +        *(.data) +        *(.data.*) +        *(.toc1) +        *(.branch_lt) +	_edata = .; +    } +    .opd : { +        *(.opd) +    } +    .got : { +        __toc_start = .; +        *(.got) +        *(.toc) +    } + +    .bss ALIGN(4096): { +        _bss = .; +	*(.sbss) +	*(.sbss.*) +	*(.bss) +	*(.bss.*) +	*(COMMON) +	_ebss = .; +    } + +    . = HRESET_ADDR; + +    .romentry : { *(.romentry) } + +    . = ALIGN(4096); +    _end = .; + +    /* We discard .note sections other than .note.ELFBoot, +     * because some versions of GCC generates useless ones. */ + +    /DISCARD/ : { *(.comment*) *(.note.*) } +}  | 
