RISCV: add this architecture to cbfstool
Change-Id: I6d972e595f12585cda08e1a6d2b94b4bf4f212f5 Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: http://review.coreboot.org/7067 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
a9db82fbaf
commit
833bf20f92
|
@ -53,6 +53,7 @@ struct cbfs_header {
|
|||
#define CBFS_ARCHITECTURE_X86 0x00000001
|
||||
#define CBFS_ARCHITECTURE_ARM 0x00000010
|
||||
#define CBFS_ARCHITECTURE_AARCH64 0x0000aa64
|
||||
#define CBFS_ARCHITECTURE_RISCV 0xc001d0de
|
||||
|
||||
#define CBFS_FILE_MAGIC "LARCHIVE"
|
||||
|
||||
|
|
|
@ -132,6 +132,7 @@ static struct {
|
|||
} arch_names[] = {
|
||||
{ CBFS_ARCHITECTURE_AARCH64, "arm64" },
|
||||
{ CBFS_ARCHITECTURE_ARM, "arm" },
|
||||
{ CBFS_ARCHITECTURE_RISCV, "riscv" },
|
||||
{ CBFS_ARCHITECTURE_X86, "x86" },
|
||||
{ CBFS_ARCHITECTURE_UNKNOWN, "unknown" }
|
||||
};
|
||||
|
|
|
@ -2688,4 +2688,48 @@ typedef Elf32_Addr Elf32_Conflict;
|
|||
#define R_M32R_NUM 256 /* Keep this the last entry. */
|
||||
|
||||
|
||||
/* RISC-V relocation types */
|
||||
#define R_RISCV_NONE 0
|
||||
#define R_RISCV_32 2
|
||||
#define R_RISCV_REL32 3
|
||||
#define R_RISCV_JAL 4
|
||||
#define R_RISCV_HI20 5
|
||||
#define R_RISCV_LO12_I 6
|
||||
#define R_RISCV_LO12_S 7
|
||||
#define R_RISCV_PCREL_LO12_I 8
|
||||
#define R_RISCV_PCREL_LO12_S 9
|
||||
#define R_RISCV_BRANCH 10
|
||||
#define R_RISCV_CALL 11
|
||||
#define R_RISCV_PCREL_HI20 12
|
||||
#define R_RISCV_CALL_PLT 13
|
||||
#define R_RISCV_64 18
|
||||
#define R_RISCV_GOT_HI20 22
|
||||
#define R_RISCV_GOT_LO12 23
|
||||
#define R_RISCV_COPY 24
|
||||
#define R_RISCV_JUMP_SLOT 25
|
||||
/* TLS relocations */
|
||||
#define R_RISCV_TPREL_HI20 30
|
||||
#define R_RISCV_TPREL_LO12_I 31
|
||||
#define R_RISCV_TPREL_LO12_S 32
|
||||
#define R_RISCV_TLS_DTPMOD32 38
|
||||
#define R_RISCV_TLS_DTPREL32 39
|
||||
#define R_RISCV_TLS_DTPMOD64 40
|
||||
#define R_RISCV_TLS_DTPREL64 41
|
||||
#define R_RISCV_TLS_GD 42
|
||||
#define R_RISCV_TLS_DTPREL_HI16 44
|
||||
#define R_RISCV_TLS_DTPREL_LO16 45
|
||||
#define R_RISCV_TLS_GOTTPREL 46
|
||||
#define R_RISCV_TLS_TPREL32 47
|
||||
#define R_RISCV_TLS_TPREL64 48
|
||||
#define R_RISCV_TLS_GOT_HI20 51
|
||||
#define R_RISCV_TLS_GOT_LO12 52
|
||||
#define R_RISCV_TLS_GD_HI20 53
|
||||
#define R_RISCV_TLS_GD_LO12 54
|
||||
#define R_RISCV_GLOB_DAT 57
|
||||
#define R_RISCV_ADD32 58
|
||||
#define R_RISCV_ADD64 59
|
||||
#define R_RISCV_SUB32 60
|
||||
#define R_RISCV_SUB64 61
|
||||
|
||||
#define EM_RISCV 0xF3
|
||||
#endif /* elf.h */
|
||||
|
|
|
@ -611,6 +611,7 @@ elf_headers(const struct buffer *pinput,
|
|||
// The tool may work in architecture-independent way.
|
||||
if (arch != CBFS_ARCHITECTURE_UNKNOWN &&
|
||||
!((ehdr->e_machine == EM_ARM) && (arch == CBFS_ARCHITECTURE_ARM)) &&
|
||||
!((ehdr->e_machine == EM_RISCV) && (arch == CBFS_ARCHITECTURE_RISCV)) &&
|
||||
!((ehdr->e_machine == EM_386) && (arch == CBFS_ARCHITECTURE_X86))) {
|
||||
ERROR("The stage file has the wrong architecture\n");
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue