Commit 068feb9b86d991283c43b56e36094f4e6f484d04
Committed by
Tom Rini
1 parent
c7d7e80acd
Exists in
smarc_8mq_lf_v2020.04
and in
17 other branches
riscv: Modify generic codes to support RISC-V
Support common commands bdinfo and image format, also modify common generic flow for RISC-V. Signed-off-by: Rick Chen <rick@andestech.com> Signed-off-by: Rick Chen <rickchen36@gmail.com> Signed-off-by: Greentime Hu <green.hu@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
Showing 6 changed files with 29 additions and 3 deletions Side-by-side Diff
arch/Kconfig
... | ... | @@ -54,6 +54,10 @@ |
54 | 54 | select HAVE_PRIVATE_LIBGCC |
55 | 55 | select SUPPORT_OF_CONTROL |
56 | 56 | |
57 | +config RISCV | |
58 | + bool "riscv architecture" | |
59 | + select SUPPORT_OF_CONTROL | |
60 | + | |
57 | 61 | config SANDBOX |
58 | 62 | bool "Sandbox" |
59 | 63 | select BOARD_LATE_INIT |
... | ... | @@ -194,4 +198,5 @@ |
194 | 198 | source "arch/sh/Kconfig" |
195 | 199 | source "arch/x86/Kconfig" |
196 | 200 | source "arch/xtensa/Kconfig" |
201 | +source "arch/riscv/Kconfig" |
cmd/bdinfo.c
... | ... | @@ -417,6 +417,21 @@ |
417 | 417 | return 0; |
418 | 418 | } |
419 | 419 | |
420 | +#elif defined(CONFIG_RISCV) | |
421 | + | |
422 | +int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) | |
423 | +{ | |
424 | + bd_t *bd = gd->bd; | |
425 | + | |
426 | + print_num("arch_number", bd->bi_arch_number); | |
427 | + print_bi_boot_params(bd); | |
428 | + print_bi_dram(bd); | |
429 | + print_eth_ip_addr(); | |
430 | + print_baudrate(); | |
431 | + | |
432 | + return 0; | |
433 | +} | |
434 | + | |
420 | 435 | #elif defined(CONFIG_ARC) |
421 | 436 | |
422 | 437 | int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
common/board_f.c
... | ... | @@ -218,7 +218,7 @@ |
218 | 218 | gd->mon_len = (ulong)&_end - (ulong)_init; |
219 | 219 | #elif defined(CONFIG_NIOS2) || defined(CONFIG_XTENSA) |
220 | 220 | gd->mon_len = CONFIG_SYS_MONITOR_LEN; |
221 | -#elif defined(CONFIG_NDS32) || defined(CONFIG_SH) | |
221 | +#elif defined(CONFIG_NDS32) || defined(CONFIG_SH) || defined(CONFIG_RISCV) | |
222 | 222 | gd->mon_len = (ulong)(&__bss_end) - (ulong)(&_start); |
223 | 223 | #elif defined(CONFIG_SYS_MONITOR_BASE) |
224 | 224 | /* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */ |
common/board_r.c
... | ... | @@ -126,7 +126,7 @@ |
126 | 126 | { |
127 | 127 | #ifdef __ARM__ |
128 | 128 | monitor_flash_len = _end - __image_copy_start; |
129 | -#elif defined(CONFIG_NDS32) | |
129 | +#elif defined(CONFIG_NDS32) || defined(CONFIG_RISCV) | |
130 | 130 | monitor_flash_len = (ulong)&_end - (ulong)&_start; |
131 | 131 | #elif !defined(CONFIG_SANDBOX) && !defined(CONFIG_NIOS2) |
132 | 132 | monitor_flash_len = (ulong)&__init_end - gd->relocaddr; |
... | ... | @@ -704,7 +704,7 @@ |
704 | 704 | #ifdef CONFIG_DM |
705 | 705 | initr_dm, |
706 | 706 | #endif |
707 | -#if defined(CONFIG_ARM) || defined(CONFIG_NDS32) | |
707 | +#if defined(CONFIG_ARM) || defined(CONFIG_NDS32) || defined(CONFIG_RISCV) | |
708 | 708 | board_init, /* Setup chipselects */ |
709 | 709 | #endif |
710 | 710 | /* |
include/elf.h
... | ... | @@ -613,6 +613,11 @@ |
613 | 613 | #define R_AARCH64_NONE 0 /* No relocation. */ |
614 | 614 | #define R_AARCH64_RELATIVE 1027 /* Adjust by program base. */ |
615 | 615 | |
616 | +/* RISC-V relocations */ | |
617 | +#define R_RISCV_32 1 | |
618 | +#define R_RISCV_64 2 | |
619 | +#define R_RISCV_RELATIVE 3 | |
620 | + | |
616 | 621 | #ifndef __ASSEMBLER__ |
617 | 622 | int valid_elf_image(unsigned long addr); |
618 | 623 | #endif |