saturn/cartridge.lds

89 lines
1.5 KiB
Plaintext

OUTPUT_FORMAT("elf32-sh", "elf32-sh", "elf32-sh")
OUTPUT_ARCH(sh)
MEMORY
{
cs0 (arx ) : ORIGIN = 0x22000000, LENGTH = 32M
work_ram_h (arwx) : ORIGIN = 0x26000000, LENGTH = 1M
}
__ip_bin_offset = 0x2000;
SECTIONS
{
. = ORIGIN(work_ram_h) + __ip_bin_offset;
.text.start ALIGN(4) : SUBALIGN(4)
{
KEEP(*(.text.id))
KEEP(*(.text.sec))
KEEP(*(.text.arej))
KEEP(*(.text.area))
KEEP(*(.text.areb))
KEEP(*(.text.aree))
KEEP(*(.text.arek))
KEEP(*(.text.arel))
KEEP(*(.text.aret))
KEEP(*(.text.areu))
KEEP(*(.text.init))
KEEP(*(.text.start))
KEEP(*(.text.startup.*))
. = ALIGN (4096);
} > work_ram_h AT> cs0
.text ALIGN(4) : SUBALIGN(4)
{
*(.text.*)
*(.text)
. = ALIGN (4);
} > work_ram_h AT> cs0
.data ALIGN(4) : SUBALIGN(4)
{
*(.data)
*(.data.*)
. = ALIGN (4);
} > work_ram_h AT> cs0
.rodata ALIGN(4) : SUBALIGN(4)
{
*(.rodata)
*(.rodata.*)
. = ALIGN (4);
} > work_ram_h AT> cs0
.bss ALIGN(4) (NOLOAD) : SUBALIGN(4)
{
*(.bss)
*(.bss.*)
*(COMMON)
. = ALIGN (4);
} > work_ram_h
. = ORIGIN(cs0) + (. - (ORIGIN(work_ram_h) + __ip_bin_offset));
.ctors ALIGN(4) : SUBALIGN(4)
{
KEEP(*(.ctors))
KEEP(*(.ctors.*))
. = ALIGN (4);
} > cs0
.rom ALIGN(4) : SUBALIGN(4)
{
*(.rom)
*(.rom.*)
} > cs0
INCLUDE "debug.lds"
}
_text_size = SIZEOF(.text.start);
_load_addr = 0x00000000; /* not used; there is no 1ST_READ.BIN */
INCLUDE "symbols.lds"
INCLUDE "addresses.lds"