usbloadergx/ehcmodule/scripts/link.ld

51 lines
2.3 KiB
Plaintext
Raw Permalink Normal View History

OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
/*
Change exe start and ram start as needed for the custom IOS module.
Current settings are for the EHC module from IOS 31. actually this is free space in this IOS
*/
MEMORY {
ios_info_table : ORIGIN = 0x0, LENGTH = 0x4000
exe(rwx) : ORIGIN = 0x13700000, LENGTH = 0x6000
ram(rw) : ORIGIN = 0x13706000, LENGTH = 0x2A000 /* END 0x13730000 */
}
__exe_start_virt__ = 0x13700000;
__exe_start_phys__ = 0x13700000;
__ram_start_virt__ = 0x13706000;
__ram_start_phys__ = 0x13706000;
__ios_info_table_start = 0x0;
SECTIONS
{
.debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } .note.arm.ident 0 : { KEEP (*(.note.arm.ident)) }
.ios_info_table __ios_info_table_start : { . = .; KEEP (*(.ios_info_table)) } > ios_info_table
.init __exe_start_virt__ : AT (__exe_start_phys__) { . = .; KEEP (*(.init)) } > exe
.text ALIGN (0x20) : {
*(.text*)
*(.gnu.warning)
*(.gnu.linkonce.t.*)
*(.init)
*(.glue_7)
*(.glue_7t) } > exe
.data __ram_start_virt__ : AT (__ram_start_phys__) { KEEP( *(.ios_data) ) *(.data*) *(.data1) *(.gnu.linkonce.d.*) . = ALIGN (4); __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) . = ALIGN (4); *(.2ram.*) } > ram
.fini : { . = .; *(.fini) } > ram
.rodata ALIGN (0x4) : {
. = .;
*(.rodata*)
*(.gnu.linkonce.r.*) } > ram
.rodata1 ALIGN (0x4) : { . = .; *(.rodata1) } > ram
.fixup ALIGN (0x4) : { . = .; *(.fixup) } > ram
.gcc_except_table ALIGN (0x4) : { . = .; *(.gcc_except_table) } > ram
.got ALIGN (0x4) : { *(.got.plt) *(.got) } > ram
.bss ALIGN (0x20) : { *(.scommon) *(.dynsbss) *(.sbss*) *(.gnu.linkonce.sb.*) *(.dynbss) *(.bss*) *(.gnu.linkonce.b.*) *(COMMON) KEEP( *(.ios_bss) ) } > ram
. = ALIGN(4);
}