From 24010550be1ef4ea0e4fafffc6c58361b9a6730c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 4 May 2021 22:51:33 +0200 Subject: [PATCH] boot/opensbi: add options to enable/disable image installation Until now, whenever a BR2_TARGET_OPENSBI_PLAT value was specified, opensbi.mk was assuming that both fw_jump and fw_dynamic would be produced. However, this is not the case: the OpenSBI per-platform config.mk can decide which image to build. As an example, the config.mk for VIC7100-based BeagleV only enables producing the fw_payload image. This commit adds three options to enable the installation of images: one for fw_jump, one for fw_dynamic, one for fw_payload. The options for fw_jump and fw_dynamic are "default y" when BR2_TARGET_OPENSBI_PLAT is not empty, to preserve existing behavior. The option for fw_payload is forcefully selected when either Linux or U-Boot are selected as payloads. Signed-off-by: Thomas Petazzoni Reviewed-by: Alistair Francis Signed-off-by: Yann E. MORIN --- boot/opensbi/Config.in | 20 ++++++++++++++++++++ boot/opensbi/opensbi.mk | 18 +++++++++++------- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/boot/opensbi/Config.in b/boot/opensbi/Config.in index 236bf74a90..55a644506f 100644 --- a/boot/opensbi/Config.in +++ b/boot/opensbi/Config.in @@ -74,11 +74,30 @@ config BR2_TARGET_OPENSBI_PLAT the platform specific static library libplatsbi.a and firmware examples are built. +config BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG + bool "Install fw_dynamic image" + default y if BR2_TARGET_OPENSBI_PLAT != "" + help + This installs the fw_dynamic image. + +config BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG + bool "Install fw_jump image" + default y if BR2_TARGET_OPENSBI_PLAT != "" + help + This installs the fw_jump image. + +config BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG + bool "Install fw_payload image" + help + This option enables the installation of the fw_paylaod + image. + config BR2_TARGET_OPENSBI_LINUX_PAYLOAD bool "Include Linux as OpenSBI Payload" depends on BR2_TARGET_OPENSBI_PLAT != "" depends on BR2_LINUX_KERNEL depends on BR2_LINUX_KERNEL_IMAGE + select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG help Build OpenSBI with the Linux kernel as a Payload. @@ -86,6 +105,7 @@ config BR2_TARGET_OPENSBI_UBOOT_PAYLOAD bool "Include U-Boot as OpenSBI Payload" depends on BR2_TARGET_OPENSBI_PLAT != "" depends on BR2_TARGET_UBOOT + select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG help Build OpenSBI with the U-Boot as a Payload. diff --git a/boot/opensbi/opensbi.mk b/boot/opensbi/opensbi.mk index 8ebe4566fd..f8cbbb8fcc 100644 --- a/boot/opensbi/opensbi.mk +++ b/boot/opensbi/opensbi.mk @@ -50,16 +50,20 @@ define OPENSBI_BUILD_CMDS $(TARGET_MAKE_ENV) $(OPENSBI_MAKE_ENV) $(MAKE) -C $(@D) endef -ifneq ($(OPENSBI_PLAT),) +ifeq ($(BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG),y) +OPENSBI_INSTALL_IMAGES = YES +OPENSBI_FW_IMAGES += dynamic +endif + +ifeq ($(BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG),y) +OPENSBI_INSTALL_IMAGES = YES +OPENSBI_FW_IMAGES += jump +endif + +ifeq ($(BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG),y) OPENSBI_INSTALL_IMAGES = YES -OPENSBI_FW_IMAGES += jump dynamic -ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y) OPENSBI_FW_IMAGES += payload endif -ifeq ($(BR2_TARGET_OPENSBI_UBOOT_PAYLOAD),y) -OPENSBI_FW_IMAGES = payload -endif -endif define OPENSBI_INSTALL_IMAGES_CMDS $(foreach f,$(OPENSBI_FW_IMAGES),\