diff options
author | Alexander Graf <agraf@suse.de> | 2018-04-23 07:59:45 +0200 |
---|---|---|
committer | Andes <uboot@andestech.com> | 2018-05-29 14:43:12 +0800 |
commit | 493d1e88b676675e0c2a8614abcba0dcbb9befa4 (patch) | |
tree | 44d9269532c66ff2db4eb46cda276d6415a59219 /arch/riscv/lib/elf_riscv64_efi.lds | |
parent | 6cc1a2af46c448e7d822fa4976a8d6e10fc5273b (diff) | |
download | u-boot-493d1e88b676675e0c2a8614abcba0dcbb9befa4.zip u-boot-493d1e88b676675e0c2a8614abcba0dcbb9befa4.tar.gz u-boot-493d1e88b676675e0c2a8614abcba0dcbb9befa4.tar.bz2 |
riscv: Add EFI application infrastructure
The hello world binary and a few selftests require to build EFI target
binaries, not just the EFI host environment.
This patch adds all required files to generate an EFI binary for
RISC-V.
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/riscv/lib/elf_riscv64_efi.lds')
-rw-r--r-- | arch/riscv/lib/elf_riscv64_efi.lds | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/arch/riscv/lib/elf_riscv64_efi.lds b/arch/riscv/lib/elf_riscv64_efi.lds new file mode 100644 index 0000000..25c863d --- /dev/null +++ b/arch/riscv/lib/elf_riscv64_efi.lds @@ -0,0 +1,70 @@ +/* + * U-Boot riscv64 EFI linker script + * + * SPDX-License-Identifier: BSD-2-Clause + * + * Modified from arch/arm/lib/elf_aarch64_efi.lds + */ + +OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") +OUTPUT_ARCH(riscv) +ENTRY(_start) +SECTIONS +{ + .text 0x0 : { + _text = .; + *(.text.head) + *(.text) + *(.text.*) + *(.gnu.linkonce.t.*) + *(.srodata) + *(.rodata*) + . = ALIGN(16); + } + _etext = .; + _text_size = . - _text; + .dynamic : { *(.dynamic) } + .data : { + _data = .; + *(.sdata) + *(.data) + *(.data1) + *(.data.*) + *(.got.plt) + *(.got) + + /* + * The EFI loader doesn't seem to like a .bss section, so we + * stick it all into .data: + */ + . = ALIGN(16); + _bss = .; + *(.sbss) + *(.scommon) + *(.dynbss) + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(16); + _bss_end = .; + _edata = .; + } + .rela.dyn : { *(.rela.dyn) } + .rela.plt : { *(.rela.plt) } + .rela.got : { *(.rela.got) } + .rela.data : { *(.rela.data) *(.rela.data*) } + _data_size = . - _etext; + + . = ALIGN(4096); + .dynsym : { *(.dynsym) } + . = ALIGN(4096); + .dynstr : { *(.dynstr) } + . = ALIGN(4096); + .note.gnu.build-id : { *(.note.gnu.build-id) } + /DISCARD/ : { + *(.rel.reloc) + *(.eh_frame) + *(.note.GNU-stack) + } + .comment 0 : { *(.comment) } +} |