diff options
-rw-r--r-- | src/arch/riscv/Kconfig | 20 | ||||
-rw-r--r-- | src/arch/riscv/Makefile.mk | 7 |
2 files changed, 24 insertions, 3 deletions
diff --git a/src/arch/riscv/Kconfig b/src/arch/riscv/Kconfig index 66c64c2cd3..148d966059 100644 --- a/src/arch/riscv/Kconfig +++ b/src/arch/riscv/Kconfig @@ -55,15 +55,29 @@ config RISCV_OPENSBI Load OpenSBI after payload has been loaded and use it to provide the SBI and to handover control to payload. +if RISCV_OPENSBI + +config OPENSBI_BLOB + bool "Include OpenSBI ELF binary blob" + depends on RISCV_OPENSBI + help + If enabled it allows to specify a file path to an already compiled OpenSBI binary. + If disabled the OpenSBI binary will be compiled from upstream OpenSBI repository. + This option is discouraged as compatibility with out-of-tree blobs may break anytime. + +config OPENSBI_BLOB_PATH + string "Path to external opensbi.elf" + depends on OPENSBI_BLOB + help + Absolute (or relative to coreboot directory) path to the OpenSBI ELF file. + config OPENSBI_PLATFORM string - depends on RISCV_HAS_OPENSBI help The OpenSBI platform to build for. config OPENSBI_TEXT_START hex - depends on RISCV_HAS_OPENSBI help The linking address used to build opensbi. @@ -77,6 +91,8 @@ config OPENSBI_FW_DYNAMIC_BOOT_HART that is the mode usually used for the payload. If the hart does not support Supervisor mode OpenSBI will again look for a hart that does support it. +endif # RISCV_OPENSBI + config ARCH_RISCV_U # U (user) mode is for programs. bool diff --git a/src/arch/riscv/Makefile.mk b/src/arch/riscv/Makefile.mk index 51ed016653..bda392adb4 100644 --- a/src/arch/riscv/Makefile.mk +++ b/src/arch/riscv/Makefile.mk @@ -159,7 +159,12 @@ $(OPENSBI_TARGET): $(obj)/config.h | $(OPENSBI_SOURCE) FW_PAYLOAD=n \ FW_TEXT_START=$(CONFIG_OPENSBI_TEXT_START) -$(OPENSBI): $(OPENSBI_TARGET) +# build upstream OpenSBI source tree +opensbi-source-y = $(OPENSBI_TARGET) +# get OpenSBI from specified binary +opensbi-source-$(CONFIG_OPENSBI_BLOB) = $(call strip_quotes,$(CONFIG_OPENSBI_BLOB_PATH)) + +$(OPENSBI): $(opensbi-source-y) cp $< $@ OPENSBI_CBFS := $(CONFIG_CBFS_PREFIX)/opensbi |