Skip to content

Commit ade0ea0

Browse files
Rick ChenJosephChen2017
authored andcommitted
UPSTREAM: 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 <[email protected]> Signed-off-by: Rick Chen <[email protected]> Signed-off-by: Greentime Hu <[email protected]> Signed-off-by: Jason Zhu <[email protected]> Reviewed-by: Tom Rini <[email protected]> Change-Id: Id58d17cd58433fdadc8ce7ee78d72035f84adb53 (cherry picked from commit 068feb9)
1 parent 342d050 commit ade0ea0

File tree

6 files changed

+28
-3
lines changed

6 files changed

+28
-3
lines changed

arch/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ config PPC
5454
select HAVE_PRIVATE_LIBGCC
5555
select SUPPORT_OF_CONTROL
5656

57+
config RISCV
58+
bool "riscv architecture"
59+
select SUPPORT_OF_CONTROL
60+
5761
config SANDBOX
5862
bool "Sandbox"
5963
select BOARD_LATE_INIT

cmd/bdinfo.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,21 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
417417
return 0;
418418
}
419419

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+
420435
#elif defined(CONFIG_ARC)
421436

422437
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])

common/board_f.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ static int setup_mon_len(void)
237237
gd->mon_len = (ulong)&_end - (ulong)_init;
238238
#elif defined(CONFIG_NIOS2) || defined(CONFIG_XTENSA)
239239
gd->mon_len = CONFIG_SYS_MONITOR_LEN;
240-
#elif defined(CONFIG_NDS32) || defined(CONFIG_SH)
240+
#elif defined(CONFIG_NDS32) || defined(CONFIG_SH) || defined(CONFIG_RISCV)
241241
gd->mon_len = (ulong)(&__bss_end) - (ulong)(&_start);
242242
#elif defined(CONFIG_SYS_MONITOR_BASE)
243243
/* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */

common/board_r.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ static int initr_reloc_global_data(void)
129129
{
130130
#ifdef __ARM__
131131
monitor_flash_len = _end - __image_copy_start;
132-
#elif defined(CONFIG_NDS32)
132+
#elif defined(CONFIG_NDS32) || defined(CONFIG_RISCV)
133133
monitor_flash_len = (ulong)&_end - (ulong)&_start;
134134
#elif !defined(CONFIG_SANDBOX) && !defined(CONFIG_NIOS2)
135135
monitor_flash_len = (ulong)&__init_end - gd->relocaddr;
@@ -849,7 +849,7 @@ static init_fnc_t init_sequence_r[] = {
849849
board_early_init_r,
850850
#endif
851851

852-
#if defined(CONFIG_ARM) || defined(CONFIG_NDS32)
852+
#if defined(CONFIG_ARM) || defined(CONFIG_NDS32) || defined(CONFIG_RISCV)
853853
board_init, /* Setup chipselects */
854854
#endif
855855

include/elf.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -613,6 +613,11 @@ unsigned long elf_hash(const unsigned char *name);
613613
#define R_AARCH64_NONE 0 /* No relocation. */
614614
#define R_AARCH64_RELATIVE 1027 /* Adjust by program base. */
615615

616+
/* RISC-V relocations */
617+
#define R_RISCV_32 1
618+
#define R_RISCV_64 2
619+
#define R_RISCV_RELATIVE 3
620+
616621
#ifndef __ASSEMBLER__
617622
int valid_elf_image(unsigned long addr);
618623
#endif

include/image.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ enum {
191191
IH_ARCH_ARC, /* Synopsys DesignWare ARC */
192192
IH_ARCH_X86_64, /* AMD x86_64, Intel and Via */
193193
IH_ARCH_XTENSA, /* Xtensa */
194+
IH_ARCH_RISCV, /* RISC-V */
194195

195196
IH_ARCH_COUNT,
196197
};

0 commit comments

Comments
 (0)