From f3c79e71e1e06270dc5c6992fba78004383549b7 Mon Sep 17 00:00:00 2001 From: mwojcik Date: Mon, 9 Oct 2023 13:24:32 +0800 Subject: [PATCH] firmware: merge runtime and satman linker scripts --- .../{runtime/runtime.ld => firmware.ld} | 28 +++--- artiq/firmware/runtime/Makefile | 2 +- artiq/firmware/satman/Makefile | 2 +- artiq/firmware/satman/satman.ld | 91 ------------------- 4 files changed, 16 insertions(+), 107 deletions(-) rename artiq/firmware/{runtime/runtime.ld => firmware.ld} (79%) delete mode 100644 artiq/firmware/satman/satman.ld diff --git a/artiq/firmware/runtime/runtime.ld b/artiq/firmware/firmware.ld similarity index 79% rename from artiq/firmware/runtime/runtime.ld rename to artiq/firmware/firmware.ld index 9f60bf3ac..9778cb541 100644 --- a/artiq/firmware/runtime/runtime.ld +++ b/artiq/firmware/firmware.ld @@ -6,7 +6,7 @@ ENTRY(_reset_handler) * ld does not allow this expression here. */ MEMORY { - runtime (RWX) : ORIGIN = 0x40000000, LENGTH = 0x4000000 /* 64M */ + firmware (RWX) : ORIGIN = 0x40000000, LENGTH = 0x4000000 /* 64M */ } SECTIONS @@ -14,24 +14,24 @@ SECTIONS .vectors : { *(.vectors) - } > runtime + } > firmware .text : { *(.text .text.*) - } > runtime + } > firmware .eh_frame : { __eh_frame_start = .; KEEP(*(.eh_frame)) __eh_frame_end = .; - } > runtime + } > firmware .eh_frame_hdr : { KEEP(*(.eh_frame_hdr)) - } > runtime + } > firmware __eh_frame_hdr_start = SIZEOF(.eh_frame_hdr) > 0 ? ADDR(.eh_frame_hdr) : 0; __eh_frame_hdr_end = SIZEOF(.eh_frame_hdr) > 0 ? . : 0; @@ -39,35 +39,35 @@ SECTIONS .gcc_except_table : { *(.gcc_except_table) - } > runtime + } > firmware /* https://sourceware.org/bugzilla/show_bug.cgi?id=20475 */ .got : { *(.got) - } > runtime + } > firmware .got.plt : { *(.got.plt) - } > runtime + } > firmware .rodata : { *(.rodata .rodata.*) - } > runtime + } > firmware .data : { *(.data .data.*) - } > runtime + } > firmware .bss (NOLOAD) : ALIGN(4) { _fbss = .; *(.sbss .sbss.* .bss .bss.*); _ebss = .; - } > runtime + } > firmware .stack (NOLOAD) : ALIGN(0x1000) { @@ -76,12 +76,12 @@ SECTIONS _estack = .; . += 0x10000; _fstack = . - 16; - } > runtime + } > firmware .heap (NOLOAD) : ALIGN(16) { _fheap = .; - . = ORIGIN(runtime) + LENGTH(runtime); + . = ORIGIN(firmware) + LENGTH(firmware); _eheap = .; - } > runtime + } > firmware } diff --git a/artiq/firmware/runtime/Makefile b/artiq/firmware/runtime/Makefile index 0427d763f..2508b66b4 100644 --- a/artiq/firmware/runtime/Makefile +++ b/artiq/firmware/runtime/Makefile @@ -21,7 +21,7 @@ $(RUSTOUT)/libruntime.a: --target $(RUNTIME_DIRECTORY)/../$(CARGO_TRIPLE).json runtime.elf: $(RUSTOUT)/libruntime.a ksupport_data.o - $(link) -T $(RUNTIME_DIRECTORY)/runtime.ld \ + $(link) -T $(RUNTIME_DIRECTORY)/../firmware.ld \ -lunwind-vexriscv-bare -m elf32lriscv ksupport_data.o: ../ksupport/ksupport.elf diff --git a/artiq/firmware/satman/Makefile b/artiq/firmware/satman/Makefile index 55befda95..a7aab9e21 100644 --- a/artiq/firmware/satman/Makefile +++ b/artiq/firmware/satman/Makefile @@ -21,7 +21,7 @@ $(RUSTOUT)/libsatman.a: --target $(SATMAN_DIRECTORY)/../$(CARGO_TRIPLE).json satman.elf: $(RUSTOUT)/libsatman.a ksupport_data.o - $(link) -T $(SATMAN_DIRECTORY)/satman.ld \ + $(link) -T $(SATMAN_DIRECTORY)/../firmware.ld \ -lunwind-vexriscv-bare -m elf32lriscv ksupport_data.o: ../ksupport/ksupport.elf diff --git a/artiq/firmware/satman/satman.ld b/artiq/firmware/satman/satman.ld deleted file mode 100644 index c188dc3ec..000000000 --- a/artiq/firmware/satman/satman.ld +++ /dev/null @@ -1,91 +0,0 @@ -INCLUDE generated/output_format.ld -INCLUDE generated/regions.ld -ENTRY(_reset_handler) - -SECTIONS -{ - .vectors : - { - *(.vectors) - } > main_ram - - .text : - { - *(.text .text.*) - . = ALIGN(0x40000); - } > main_ram - - .eh_frame : - { - __eh_frame_start = .; - KEEP(*(.eh_frame)) - __eh_frame_end = .; - } > main_ram - - .eh_frame_hdr : - { - KEEP(*(.eh_frame_hdr)) - } > main_ram - - __eh_frame_hdr_start = SIZEOF(.eh_frame_hdr) > 0 ? ADDR(.eh_frame_hdr) : 0; - __eh_frame_hdr_end = SIZEOF(.eh_frame_hdr) > 0 ? . : 0; - - .gcc_except_table : - { - *(.gcc_except_table) - } > main_ram - - /* https://sourceware.org/bugzilla/show_bug.cgi?id=20475 */ - .got : - { - PROVIDE(_GLOBAL_OFFSET_TABLE_ = .); - *(.got) - } > main_ram - - .got.plt : - { - *(.got.plt) - } > main_ram - - .rodata : - { - _frodata = .; - *(.rodata .rodata.*) - _erodata = .; - } > main_ram - - .data : - { - *(.data .data.*) - } > main_ram - - .sdata : - { - *(.sdata .sdata.*) - } > main_ram - - .bss (NOLOAD) : ALIGN(4) - { - _fbss = .; - *(.sbss .sbss.* .bss .bss.*); - . = ALIGN(4); - _ebss = .; - } > main_ram - - .stack (NOLOAD) : ALIGN(0x1000) - { - _sstack_guard = .; - . += 0x1000; - _estack = .; - . += 0x10000; - _fstack = . - 16; - } > main_ram - - /* remainder of 64MB for heap for alloc use */ - .heap (NOLOAD) : ALIGN(16) - { - _fheap = .; - . = 0x44000000; // not to overwrite RPC queue - _eheap = .; - } > main_ram -}