diff mbox series

[v2,1/6] boot/opensbi: add options to enable/disable image installation

Message ID 20210502212141.934384-2-thomas.petazzoni@bootlin.com
State Changes Requested
Headers show
Series Support for the BeagleV platform | expand

Commit Message

Thomas Petazzoni May 2, 2021, 9:21 p.m. UTC
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 <thomas.petazzoni@bootlin.com>
---
 boot/opensbi/Config.in  | 20 ++++++++++++++++++++
 boot/opensbi/opensbi.mk | 16 ++++++++++------
 2 files changed, 30 insertions(+), 6 deletions(-)

Comments

Alistair Francis May 3, 2021, 12:08 a.m. UTC | #1
On Mon, May 3, 2021 at 7:23 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> 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 <thomas.petazzoni@bootlin.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  boot/opensbi/Config.in  | 20 ++++++++++++++++++++
>  boot/opensbi/opensbi.mk | 16 ++++++++++------
>  2 files changed, 30 insertions(+), 6 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,15 +50,19 @@ 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 += jump dynamic
> -ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y)
> -OPENSBI_FW_IMAGES += payload
> +OPENSBI_FW_IMAGES += dynamic
>  endif
> -ifeq ($(BR2_TARGET_OPENSBI_UBOOT_PAYLOAD),y)
> -OPENSBI_FW_IMAGES = payload
> +
> +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 += payload
>  endif
>
>  define OPENSBI_INSTALL_IMAGES_CMDS
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Bin Meng May 3, 2021, 11:26 a.m. UTC | #2
On Mon, May 3, 2021 at 5:21 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> 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 <thomas.petazzoni@bootlin.com>
> ---
>  boot/opensbi/Config.in  | 20 ++++++++++++++++++++
>  boot/opensbi/opensbi.mk | 16 ++++++++++------
>  2 files changed, 30 insertions(+), 6 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.

nits: this help message should be in consistent with the other 2

> +
>  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,15 +50,19 @@ 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 += jump dynamic
> -ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y)
> -OPENSBI_FW_IMAGES += payload
> +OPENSBI_FW_IMAGES += dynamic
>  endif
> -ifeq ($(BR2_TARGET_OPENSBI_UBOOT_PAYLOAD),y)
> -OPENSBI_FW_IMAGES = payload
> +
> +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 += payload
>  endif
>
>  define OPENSBI_INSTALL_IMAGES_CMDS
> --

Otherwise LGTM:
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
diff mbox series

Patch

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,15 +50,19 @@  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 += jump dynamic
-ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y)
-OPENSBI_FW_IMAGES += payload
+OPENSBI_FW_IMAGES += dynamic
 endif
-ifeq ($(BR2_TARGET_OPENSBI_UBOOT_PAYLOAD),y)
-OPENSBI_FW_IMAGES = payload
+
+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 += payload
 endif
 
 define OPENSBI_INSTALL_IMAGES_CMDS