2006-04-26 16:39:16 +00:00
|
|
|
OUTPUT_FORMAT(elf32-sparc)
|
|
|
|
|
OUTPUT_ARCH(sparc)
|
|
|
|
|
|
|
|
|
|
ENTRY(trap_table)
|
|
|
|
|
|
|
|
|
|
/* Initial load address
|
|
|
|
|
*/
|
|
|
|
|
BASE_ADDR = 0xffd00000;
|
|
|
|
|
|
|
|
|
|
/* 16KB heap and stack */
|
|
|
|
|
HEAP_SIZE = 16384;
|
|
|
|
|
STACK_SIZE = 16384;
|
2006-05-06 21:33:36 +00:00
|
|
|
VMEM_SIZE = 128 * 1024;
|
|
|
|
|
IOMEM_SIZE = 128 * 1024;
|
2006-04-26 16:39:16 +00:00
|
|
|
|
|
|
|
|
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(4096): {
|
|
|
|
|
*(.text.vectors)
|
|
|
|
|
*(.text)
|
|
|
|
|
*(.text.*)
|
|
|
|
|
}
|
|
|
|
|
.rodata ALIGN(4096): {
|
|
|
|
|
_rodata = .;
|
|
|
|
|
sound_drivers_start = .;
|
|
|
|
|
*(.rodata.sound_drivers)
|
|
|
|
|
sound_drivers_end = .;
|
|
|
|
|
*(.rodata)
|
|
|
|
|
*(.rodata.*)
|
|
|
|
|
}
|
|
|
|
|
.data ALIGN(4096): {
|
|
|
|
|
_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 = .;
|
|
|
|
|
|
2006-05-06 21:33:36 +00:00
|
|
|
. = ALIGN(4096);
|
|
|
|
|
_vmem = .;
|
|
|
|
|
. += VMEM_SIZE;
|
|
|
|
|
_evmem = .;
|
|
|
|
|
|
2006-04-26 16:39:16 +00:00
|
|
|
_stack = .;
|
|
|
|
|
. += STACK_SIZE;
|
|
|
|
|
. = ALIGN(16);
|
|
|
|
|
_estack = .;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.initctx : {
|
|
|
|
|
/* Initial contents of stack. This MUST BE just after the stack. */
|
|
|
|
|
*(.initctx)
|
|
|
|
|
}
|
|
|
|
|
/* Putting ELF notes near beginning of file might help bootloaders.
|
|
|
|
|
* We discard .note sections other than .note.ELFBoot,
|
|
|
|
|
* because some versions of GCC generates useless ones. */
|
|
|
|
|
.note : { *(.note.ELFBoot) }
|
|
|
|
|
|
|
|
|
|
. = ALIGN(4096);
|
|
|
|
|
_end = .;
|
2006-05-06 21:33:36 +00:00
|
|
|
_iomem = _end + IOMEM_SIZE;
|
2006-04-26 16:39:16 +00:00
|
|
|
|
|
|
|
|
/DISCARD/ : { *(.comment.*) *(.note.*) }
|
|
|
|
|
}
|