Files
openbios/arch/sparc64/ldscript
Blue Swirl f3bac24932 Finally fix the very obscure problem which prevented normal and especially
FCode boot: too small heap (used for Forth memory)!
Remove forced arch_init and boot hacks



git-svn-id: svn://coreboot.org/openbios/openbios-devel@218 f158a5a8-5612-0410-a976-696ce0be7e32
2008-08-02 10:59:05 +00:00

84 lines
1.6 KiB
Plaintext

OUTPUT_FORMAT(elf64-sparc)
OUTPUT_ARCH(sparc:v9)
/* Qemu ELF loader can't handle very complex files, so we put ELFBoot
info to rodata and put initctx to data.*/
ENTRY(trap_table)
/* Initial load address
*/
BASE_ADDR = 0x00000000ffd00000;
/* 512KB heap and 16KB stack */
HEAP_SIZE = 512 * 1024;
STACK_SIZE = 16384;
VMEM_SIZE = 128 * 1024;
IOMEM_SIZE = 256 * 1024 + 768 * 1024;
SECTIONS
{
. = BASE_ADDR;
/* Start of the program.
* Now the version string is in the note, we must include it
* in the program. Otherwise we lose the string after relocation. */
_start = .;
/* Normal sections */
.text ALIGN(65536): {
*(.text.vectors)
*(.text)
*(.text.*)
}
.rodata ALIGN(65536): {
_rodata = .;
sound_drivers_start = .;
*(.rodata.sound_drivers)
sound_drivers_end = .;
*(.rodata)
*(.rodata.*)
*(.note.ELFBoot)
}
.data ALIGN(65536): {
_data = .;
*(.data)
*(.data.*)
}
.bss ALIGN(4096): {
_bss = .;
*(.bss)
*(.bss.*)
*(COMMON)
/* Put heap and stack here, so they are included in PT_LOAD segment
* and the bootloader is aware of it. */
. = ALIGN(16);
_heap = .;
. += HEAP_SIZE;
. = ALIGN(16);
_eheap = .;
. = ALIGN(4096);
_vmem = .;
. += VMEM_SIZE;
_evmem = .;
_stack = .;
. += STACK_SIZE;
. = ALIGN(16);
_estack = .;
}
. = ALIGN(4096);
_end = .;
_iomem = _end + IOMEM_SIZE;
/* We discard .note sections other than .note.ELFBoot,
* because some versions of GCC generates useless ones. */
/DISCARD/ : { *(.comment*) *(.note.*) }
}