mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-06 21:03:21 +09:00
![Rick Chen](/assets/img/avatar_default.png)
We have almost all pieces needed to support RISC-V UEFI binaries in place already. The only missing piece are ELF relocations for runtime code and data. This patch adds respective support in the linker script and the runtime relocation code. It also allows users to enable the EFI_LOADER configuration switch on RISC-V platforms. Signed-off-by: Alexander Graf <agraf@suse.de>
85 lines
1.3 KiB
Plaintext
85 lines
1.3 KiB
Plaintext
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2017 Andes Technology Corporation
|
|
* Rick Chen, Andes Technology Corporation <rick@andestech.com>
|
|
*/
|
|
OUTPUT_ARCH("riscv")
|
|
ENTRY(_start)
|
|
|
|
SECTIONS
|
|
{
|
|
. = ALIGN(4);
|
|
.text :
|
|
{
|
|
arch/riscv/cpu/nx25/start.o (.text)
|
|
*(.text)
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
|
|
|
|
. = ALIGN(4);
|
|
.data : {
|
|
__global_pointer$ = . + 0x800;
|
|
*(.data*)
|
|
}
|
|
. = ALIGN(4);
|
|
|
|
.got : {
|
|
__got_start = .;
|
|
*(.got.plt) *(.got)
|
|
__got_end = .;
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
|
|
.u_boot_list : {
|
|
KEEP(*(SORT(.u_boot_list*)));
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
|
|
.efi_runtime : {
|
|
__efi_runtime_start = .;
|
|
*(efi_runtime_text)
|
|
*(efi_runtime_data)
|
|
__efi_runtime_stop = .;
|
|
}
|
|
|
|
.efi_runtime_rel : {
|
|
__efi_runtime_rel_start = .;
|
|
*(.relaefi_runtime_text)
|
|
*(.relaefi_runtime_data)
|
|
__efi_runtime_rel_stop = .;
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
|
|
/DISCARD/ : { *(.rela.plt*) }
|
|
.rela.dyn : {
|
|
__rel_dyn_start = .;
|
|
*(.rela*)
|
|
__rel_dyn_end = .;
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
|
|
.dynsym : {
|
|
__dyn_sym_start = .;
|
|
*(.dynsym)
|
|
__dyn_sym_end = .;
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
|
|
_end = .;
|
|
|
|
.bss : {
|
|
__bss_start = .;
|
|
*(.bss)
|
|
. = ALIGN(4);
|
|
__bss_end = .;
|
|
}
|
|
|
|
}
|