riscv: add support for modifying compiler options

Each HART of a SoC like fu540 supports a different ISA. In order for the
coreboot's code can run on each core, need to modify the compile options. 
So add this code.

Change-Id: Ie33edc175e612846d4a74f3cbf7520d4145cb68b
Signed-off-by: Xiang Wang <wxjstz@126.com>
Reviewed-on: https://review.coreboot.org/27442
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-by: Philipp Hug <philipp@hug.cx>
This commit is contained in:
Xiang Wang 2018-07-12 14:56:05 +08:00 committed by Martin Roth
parent 745e58a5ee
commit 5fed693a52
5 changed files with 50 additions and 12 deletions

View File

@ -2,12 +2,14 @@ config ARCH_RISCV
bool
default n
config ARCH_RISCV_COMPRESSED
bool
default n
help
Enable this option if your RISC-V processor supports compressed
instructions (RVC). Currently, this enables RVC for all stages.
config RISCV_ARCH
string
config RISCV_ABI
string
config RISCV_CODEMODEL
string
config ARCH_BOOTBLOCK_RISCV
bool

View File

@ -23,15 +23,15 @@ ifeq ($(CONFIG_ARCH_RAMSTAGE_RISCV),y)
check-ramstage-overlap-regions += stack
endif
riscv_arch = rv64imafd
riscv_flags = -I$(src)/arch/riscv/ -mcmodel=$(CONFIG_RISCV_CODEMODEL) -march=$(CONFIG_RISCV_ARCH) -mabi=$(CONFIG_RISCV_ABI)
ifeq ($(CONFIG_ARCH_RISCV_COMPRESSED),y)
riscv_arch := $(riscv_arch)c
endif
riscv_asm_flags = -march=$(CONFIG_RISCV_ARCH) -mabi=$(CONFIG_RISCV_ABI)
riscv_flags = -I$(src)/arch/riscv/ -mcmodel=medany -march=$(riscv_arch)
COMPILER_RT_bootblock = $(shell $(GCC_bootblock) $(riscv_flags) -print-libgcc-file-name)
riscv_asm_flags = -march=$(riscv_arch)
COMPILER_RT_romstage = $(shell $(GCC_romstage) $(riscv_flags) -print-libgcc-file-name)
COMPILER_RT_ramstage = $(shell $(GCC_ramstage) $(riscv_flags) -print-libgcc-file-name)
################################################################################
## bootblock

View File

@ -11,4 +11,16 @@ config SOC_LOWRISC_LOWRISC
if SOC_LOWRISC_LOWRISC
config RISCV_ARCH
string
default "rv64imafd"
config RISCV_ABI
string
default "lp64d"
config RISCV_CODEMODEL
string
default "medany"
endif

View File

@ -23,4 +23,16 @@ config SOC_SIFIVE_FU540
if SOC_SIFIVE_FU540
config RISCV_ARCH
string
default "rv64imac"
config RISCV_ABI
string
default "lp64"
config RISCV_CODEMODEL
string
default "medany"
endif

View File

@ -10,4 +10,16 @@ config SOC_UCB_RISCV
if SOC_UCB_RISCV
config RISCV_ARCH
string
default "rv64imafd"
config RISCV_ABI
string
default "lp64d"
config RISCV_CODEMODEL
string
default "medany"
endif