diff options
author | Uros Majstorovic <majstor@majstor.org> | 2020-08-05 02:52:42 +0200 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2020-08-05 02:52:42 +0200 |
commit | 0894a1e7664504312a9cdfc826eef89030aaaa1b (patch) | |
tree | 51e37e46d7862437583dbe02e6ebf03997a664be /code/fe310/default.lds | |
parent | dff71bc297b744856e303ad9a175de92c9acae0d (diff) |
new directory sructure for fe310 fw
Diffstat (limited to 'code/fe310/default.lds')
-rw-r--r-- | code/fe310/default.lds | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/code/fe310/default.lds b/code/fe310/default.lds deleted file mode 100644 index cabcf01..0000000 --- a/code/fe310/default.lds +++ /dev/null @@ -1,153 +0,0 @@ -OUTPUT_ARCH("riscv") - -ENTRY(_enter) - -MEMORY -{ - flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 0x6a120 - itim (wx!rai) : ORIGIN = 0x8000000, LENGTH = 0x2000 - ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 0x4000 -} - -PHDRS -{ - flash PT_LOAD; - ram PT_LOAD; - ram_init PT_LOAD; - itim PT_LOAD; - itim_init PT_LOAD; -} - -SECTIONS -{ - - __stack_size = 0x1000; - PROVIDE(__metal_boot_hart = 0); - PROVIDE(__metal_chicken_bit = 0); - - .init : { - KEEP (*(.text.metal.init.enter)) - KEEP (*(.text.metal.init.*)) - KEEP (*(SORT_NONE(.init))) - KEEP (*(.text.libgloss.start)) - } >flash AT>flash :flash - - .fini : { - KEEP (*(SORT_NONE(.fini))) - } >flash AT>flash :flash - - .text : { - *(.text.unlikely .text.unlikely.*) - *(.text.startup .text.startup.*) - *(.text .text.*) - *(.gnu.linkonce.t.*) - } >flash AT>flash :flash - - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - - .rodata : { - *(.rdata) - *(.rodata .rodata.*) - *(.gnu.linkonce.r.*) - . = ALIGN(8); - *(.srodata.cst16) - *(.srodata.cst8) - *(.srodata.cst4) - *(.srodata.cst2) - *(.srodata .srodata.*) - } >flash AT>flash :flash - - . = ALIGN(8); - - .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 - - .fini_array : { - PROVIDE_HIDDEN (__fini_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 (__fini_array_end = .); - } >flash AT>flash :flash - - .ctors : { - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - 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 - - .itim : ALIGN(8) { - *(.itim .itim.*) - } >itim AT>flash :itim_init - - PROVIDE( metal_segment_itim_source_start = LOADADDR(.itim) ); - PROVIDE( metal_segment_itim_target_start = ADDR(.itim) ); - PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) ); - - .data : ALIGN(8) { - *(.data .data.*) - *(.gnu.linkonce.d.*) - . = ALIGN(8); - PROVIDE( __global_pointer$ = . + 0x800 ); - *(.sdata .sdata.* .sdata2.*) - *(.gnu.linkonce.s.*) - } >itim AT>flash :itim_init -/* >ram AT>flash :ram_init */ - - PROVIDE( metal_segment_data_source_start = LOADADDR(.data) ); - PROVIDE( metal_segment_data_target_start = ADDR(.data) ); - PROVIDE( metal_segment_data_target_end = ADDR(.data) + SIZEOF(.data) ); - - .bss : ALIGN(8) { - *(.ibss .ibss.*) - *(.sbss*) - *(.gnu.linkonce.sb.*) - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - } >itim AT>ram :itim -/* >ram AT>ram :ram */ - - PROVIDE( metal_segment_bss_target_start = ADDR(.bss) ); - PROVIDE( metal_segment_bss_target_end = ADDR(.bss) + SIZEOF(.bss) ); - - __heap_size = 0x4000 - __stack_size; - .heap : { - PROVIDE( metal_segment_heap_target_start = . ); - . += __heap_size; - PROVIDE( metal_segment_heap_target_end = . ); - PROVIDE( _heap_end = . ); - } >ram AT>ram :ram - - PROVIDE(__stack_size = __stack_size); - - .stack : { - PROVIDE(metal_segment_stack_begin = .); - . += __stack_size; - PROVIDE(metal_segment_stack_end = .); - PROVIDE( _sp = . ); - } >ram AT>ram :ram - -} - |