diff options
| -rw-r--r-- | bsp/coreip-e20-arty/metal.lds | 225 | ||||
| -rw-r--r-- | bsp/coreip-e20-rtl/metal.lds | 223 | ||||
| -rw-r--r-- | bsp/coreip-e21-arty/metal.lds | 225 | ||||
| -rw-r--r-- | bsp/coreip-e21-rtl/metal.lds | 223 | ||||
| -rw-r--r-- | bsp/coreip-e24-arty/metal.lds | 225 | ||||
| -rw-r--r-- | bsp/coreip-e24-rtl/metal.lds | 223 | ||||
| -rw-r--r-- | bsp/coreip-e31-arty/metal.lds | 226 | ||||
| -rw-r--r-- | bsp/coreip-e31-rtl/metal.lds | 224 | ||||
| -rw-r--r-- | bsp/coreip-e34-arty/metal.lds | 226 | ||||
| -rw-r--r-- | bsp/coreip-e34-rtl/metal.lds | 224 | ||||
| -rw-r--r-- | bsp/coreip-e76-arty/metal.lds | 225 | ||||
| -rw-r--r-- | bsp/coreip-e76-rtl/metal.lds | 223 | ||||
| -rw-r--r-- | bsp/coreip-s51-arty/metal.lds | 226 | ||||
| -rw-r--r-- | bsp/coreip-s51-rtl/metal.lds | 224 | ||||
| -rw-r--r-- | bsp/coreip-s54-arty/metal.lds | 226 | ||||
| -rw-r--r-- | bsp/coreip-s54-rtl/metal.lds | 224 | ||||
| -rw-r--r-- | bsp/coreip-s76-arty/metal.lds | 225 | ||||
| -rw-r--r-- | bsp/coreip-s76-rtl/metal.lds | 223 | ||||
| -rw-r--r-- | bsp/freedom-e310-arty/metal.lds | 226 | ||||
| -rw-r--r-- | bsp/sifive-hifive1-revb/metal.lds | 225 | ||||
| -rw-r--r-- | bsp/sifive-hifive1/metal.lds | 225 | 
21 files changed, 0 insertions, 4716 deletions
diff --git a/bsp/coreip-e20-arty/metal.lds b/bsp/coreip-e20-arty/metal.lds deleted file mode 100644 index 4c81b1b..0000000 --- a/bsp/coreip-e20-arty/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e20-rtl/metal.lds b/bsp/coreip-e20-rtl/metal.lds deleted file mode 100644 index d98efc5..0000000 --- a/bsp/coreip-e20-rtl/metal.lds +++ /dev/null @@ -1,223 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>ram :ram_init - - -	.itim 		: -	{ -	} >ram AT>ram :ram_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e21-arty/metal.lds b/bsp/coreip-e21-arty/metal.lds deleted file mode 100644 index 4c81b1b..0000000 --- a/bsp/coreip-e21-arty/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e21-rtl/metal.lds b/bsp/coreip-e21-rtl/metal.lds deleted file mode 100644 index d98efc5..0000000 --- a/bsp/coreip-e21-rtl/metal.lds +++ /dev/null @@ -1,223 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>ram :ram_init - - -	.itim 		: -	{ -	} >ram AT>ram :ram_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e24-arty/metal.lds b/bsp/coreip-e24-arty/metal.lds deleted file mode 100644 index 4c81b1b..0000000 --- a/bsp/coreip-e24-arty/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e24-rtl/metal.lds b/bsp/coreip-e24-rtl/metal.lds deleted file mode 100644 index d98efc5..0000000 --- a/bsp/coreip-e24-rtl/metal.lds +++ /dev/null @@ -1,223 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>ram :ram_init - - -	.itim 		: -	{ -	} >ram AT>ram :ram_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e31-arty/metal.lds b/bsp/coreip-e31-arty/metal.lds deleted file mode 100644 index ae57468..0000000 --- a/bsp/coreip-e31-arty/metal.lds +++ /dev/null @@ -1,226 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>flash :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>flash :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e31-rtl/metal.lds b/bsp/coreip-e31-rtl/metal.lds deleted file mode 100644 index 11c32e0..0000000 --- a/bsp/coreip-e31-rtl/metal.lds +++ /dev/null @@ -1,224 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>ram :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>ram :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e34-arty/metal.lds b/bsp/coreip-e34-arty/metal.lds deleted file mode 100644 index ae57468..0000000 --- a/bsp/coreip-e34-arty/metal.lds +++ /dev/null @@ -1,226 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>flash :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>flash :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e34-rtl/metal.lds b/bsp/coreip-e34-rtl/metal.lds deleted file mode 100644 index 11c32e0..0000000 --- a/bsp/coreip-e34-rtl/metal.lds +++ /dev/null @@ -1,224 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x8000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>ram :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>ram :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e76-arty/metal.lds b/bsp/coreip-e76-arty/metal.lds deleted file mode 100644 index 3875c94..0000000 --- a/bsp/coreip-e76-arty/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-e76-rtl/metal.lds b/bsp/coreip-e76-rtl/metal.lds deleted file mode 100644 index 34f97e6..0000000 --- a/bsp/coreip-e76-rtl/metal.lds +++ /dev/null @@ -1,223 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x20000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>ram :ram_init - - -	.itim 		: -	{ -	} >ram AT>ram :ram_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-s51-arty/metal.lds b/bsp/coreip-s51-arty/metal.lds deleted file mode 100644 index ae57468..0000000 --- a/bsp/coreip-s51-arty/metal.lds +++ /dev/null @@ -1,226 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>flash :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>flash :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-s51-rtl/metal.lds b/bsp/coreip-s51-rtl/metal.lds deleted file mode 100644 index d5d77a3..0000000 --- a/bsp/coreip-s51-rtl/metal.lds +++ /dev/null @@ -1,224 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>ram :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>ram :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-s54-arty/metal.lds b/bsp/coreip-s54-arty/metal.lds deleted file mode 100644 index ae57468..0000000 --- a/bsp/coreip-s54-arty/metal.lds +++ /dev/null @@ -1,226 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000 -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>flash :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>flash :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-s54-rtl/metal.lds b/bsp/coreip-s54-rtl/metal.lds deleted file mode 100644 index d5d77a3..0000000 --- a/bsp/coreip-s54-rtl/metal.lds +++ /dev/null @@ -1,224 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 0x4000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>ram :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>ram :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-s76-arty/metal.lds b/bsp/coreip-s76-arty/metal.lds deleted file mode 100644 index 3875c94..0000000 --- a/bsp/coreip-s76-arty/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x10000000 -	flash (rxai!w) : ORIGIN = 0x40400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/coreip-s76-rtl/metal.lds b/bsp/coreip-s76-rtl/metal.lds deleted file mode 100644 index 34f97e6..0000000 --- a/bsp/coreip-s76-rtl/metal.lds +++ /dev/null @@ -1,223 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x20000000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_LOAD; -	itim PT_LOAD; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >ram AT>ram :ram - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >ram AT>ram :ram - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >ram AT>ram :ram - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >ram AT>ram :ram - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >ram AT>ram :ram - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >ram AT>ram :ram - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >ram AT>ram :ram - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >ram AT>ram :ram - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >ram AT>ram :ram - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >ram AT>ram :ram - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>ram :ram_init - - -	.itim 		: -	{ -	} >ram AT>ram :ram_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >ram AT>ram :ram - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>ram :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>ram :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/freedom-e310-arty/metal.lds b/bsp/freedom-e310-arty/metal.lds deleted file mode 100644 index 1a1801b..0000000 --- a/bsp/freedom-e310-arty/metal.lds +++ /dev/null @@ -1,226 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x4000 -	itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x20400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >itim AT>flash :itim_init - - -	.itim 		: -	{ -		*(.itim .itim.*) -	} >itim AT>flash :itim_init - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/sifive-hifive1-revb/metal.lds b/bsp/sifive-hifive1-revb/metal.lds deleted file mode 100644 index f7050c4..0000000 --- a/bsp/sifive-hifive1-revb/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x20010000, LENGTH = 0x6a120 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} - diff --git a/bsp/sifive-hifive1/metal.lds b/bsp/sifive-hifive1/metal.lds deleted file mode 100644 index 32455d8..0000000 --- a/bsp/sifive-hifive1/metal.lds +++ /dev/null @@ -1,225 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ -	ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x4000 -	flash (rxai!w) : ORIGIN = 0x20400000, LENGTH = 0x1fc00000 -} - -PHDRS -{ -	flash PT_LOAD; -	ram_init PT_LOAD; -	itim_init PT_LOAD; -	ram PT_NULL; -	itim PT_NULL; -} - -SECTIONS -{ -	__stack_size = DEFINED(__stack_size) ? __stack_size : 0x400; -	__heap_size = DEFINED(__heap_size) ? __heap_size : 0x400; - - -	.init 		: -	{ -		KEEP (*(.text.metal.init.enter)) -		KEEP (*(SORT_NONE(.init))) -	} >flash AT>flash :flash - - -	.text 		: -	{ -		*(.text.unlikely .text.unlikely.*) -		*(.text.startup .text.startup.*) -		*(.text .text.*) -		*(.itim .itim.*) -		*(.gnu.linkonce.t.*) -	} >flash AT>flash :flash - - -	.fini 		: -	{ -		KEEP (*(SORT_NONE(.fini))) -	} >flash AT>flash :flash - - -	PROVIDE (__etext = .); -	PROVIDE (_etext = .); -	PROVIDE (etext = .); - - -	.rodata 		: -	{ -		*(.rdata) -		*(.rodata .rodata.*) -		*(.gnu.linkonce.r.*) -	} >flash AT>flash :flash - - -	. = ALIGN(4); - - -	.preinit_array 		: -	{ -		PROVIDE_HIDDEN (__preinit_array_start = .); -		KEEP (*(.preinit_array)) -		PROVIDE_HIDDEN (__preinit_array_end = .); -	} >flash AT>flash :flash - - -	.init_array 		: -	{ -		PROVIDE_HIDDEN (__init_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) -		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) -		PROVIDE_HIDDEN (__init_array_end = .); -	} >flash AT>flash :flash - - -	.finit_array 		: -	{ -		PROVIDE_HIDDEN (__finit_array_start = .); -		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) -		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) -		PROVIDE_HIDDEN (__finit_array_end = .); -	} >flash AT>flash :flash - - -	.ctors 		: -	{ -		/* gcc uses crtbegin.o to find the start of -		   the constructors, so we make sure it is -		   first.  Because this is a wildcard, it -		   doesn't matter if the user does not -		   actually link against crtbegin.o; the -		   linker won't look for a file to match a -		   wildcard.  The wildcard also means that it -		   doesn't matter which directory crtbegin.o -		   is in.  */ -		KEEP (*crtbegin.o(.ctors)) -		KEEP (*crtbegin?.o(.ctors)) -		/* We don't want to include the .ctor section from -		   the crtend.o file until after the sorted ctors. -		   The .ctor section from the crtend file contains the -		   end of ctors marker and it must be last */ -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) -		KEEP (*(SORT(.ctors.*))) -		KEEP (*(.ctors)) -	} >flash AT>flash :flash - - -	.dtors 		: -	{ -		KEEP (*crtbegin.o(.dtors)) -		KEEP (*crtbegin?.o(.dtors)) -		KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) -		KEEP (*(SORT(.dtors.*))) -		KEEP (*(.dtors)) -	} >flash AT>flash :flash - - -	.litimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_source_start = . ); -	} >flash AT>flash :flash - - -	.ditimalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_itim_target_start = . ); -	} >ram AT>flash :ram_init - - -	.itim 		: -	{ -	} >flash AT>flash :flash - - -	. = ALIGN(8); -	PROVIDE( metal_segment_itim_target_end = . ); - - -	.lalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( _data_lma = . ); -		PROVIDE( metal_segment_data_source_start = . ); -	} >flash AT>flash :flash - - -	.dalign 		: -	{ -		. = ALIGN(4); -		PROVIDE( metal_segment_data_target_start = . ); -	} >ram AT>flash :ram_init - - -	.data 		: -	{ -		*(.data .data.*) -		*(.gnu.linkonce.d.*) -		. = ALIGN(8); -		PROVIDE( __global_pointer$ = . + 0x800 ); -		*(.sdata .sdata.*) -		*(.gnu.linkonce.s.*) -		. = ALIGN(8); -		*(.srodata.cst16) -		*(.srodata.cst8) -		*(.srodata.cst4) -		*(.srodata.cst2) -		*(.srodata .srodata.*) -	} >ram AT>flash :ram_init - - -	. = ALIGN(4); -	PROVIDE( _edata = . ); -	PROVIDE( edata = . ); -	PROVIDE( metal_segment_data_target_end = . ); -	PROVIDE( _fbss = . ); -	PROVIDE( __bss_start = . ); -	PROVIDE( metal_segment_bss_target_start = . ); - - -	.bss 		: -	{ -		*(.sbss*) -		*(.gnu.linkonce.sb.*) -		*(.bss .bss.*) -		*(.gnu.linkonce.b.*) -		*(COMMON) -		. = ALIGN(4); -	} >ram AT>ram :ram - - -	. = ALIGN(8); -	PROVIDE( _end = . ); -	PROVIDE( end = . ); -	PROVIDE( metal_segment_bss_target_end = . ); - - -	.stack : -	{ -		PROVIDE(metal_segment_stack_begin = .); -		. = __stack_size; -		PROVIDE( _sp = . ); -		PROVIDE(metal_segment_stack_end = .); -	} >ram AT>ram :ram - - -	.heap : -	{ -		PROVIDE( metal_segment_heap_target_start = . ); -		. = __heap_size; -		. = __heap_size == 0 ? 0 : ORIGIN(ram) + LENGTH(ram); -		PROVIDE( metal_segment_heap_target_end = . ); -		PROVIDE( _heap_end = . ); -	} >ram AT>ram :ram - - -} -  | 
