diff mbox series

[v5,4/9] package/qoriq-rcw: add target rcw binary support

Message ID 20200207083857.28058-4-jerry.huang@nxp.com
State Accepted
Headers show
Series [v5,1/9] package/nxp: new package directory | expand

Commit Message

Changming Huang Feb. 7, 2020, 8:38 a.m. UTC
From: Jerry Huang <jerry.huang@nxp.com>

For NXP QorIQ (PowerPC and Layerscape) platform,
we need to specify the RCW file and build it to binary.

Introduce BR2_PACKAGE_HOST_QORIQ_RCW_BIN to specify the RCW binary file.

Signed-off-by: Jerry Huang <jerry.huang@nxp.com>
---
changes since v4:
no changes.

changes since v3:
no changes.

changes since v2:
1. modify the patch descrition.
2. more detail for BR2_PACKAGE_HOST_QORIQ_RCW_BIN.
3. remove two options not used in this patch.
4. add the condition detection in makefile for QorIQ RCW.

changes since v1:
1. add option BR2_PACKAGE_HOST_RCW_ATF for ATF.
---
 package/nxp/qoriq-rcw/Config.in.host | 12 ++++++++++++
 package/nxp/qoriq-rcw/qoriq-rcw.mk   | 15 +++++++++++++++
 2 files changed, 27 insertions(+)

Comments

Arnout Vandecappelle Jan. 6, 2022, 2:48 p.m. UTC | #1
On 07/02/2020 09:38, Changming Huang wrote:
> From: Jerry Huang <jerry.huang@nxp.com>
> 
> For NXP QorIQ (PowerPC and Layerscape) platform,
> we need to specify the RCW file and build it to binary.
> 
> Introduce BR2_PACKAGE_HOST_QORIQ_RCW_BIN to specify the RCW binary file.

  It took me some time to understand: this is actually simply about an in-tree 
RCW source, rather than a custom one. So I heavily modified this patch:

      - rename the option to _RCW_INTREE;
      - update commit message, documentation, and internal variables
        accordingly;
      - reorganise condition tree so it becomes a little simpler;
      - add patsubst so the source can be specified as either %.rcw or %.bin;
      - always install it as PBL.bin, to be consistent with the custom
        option.

  Note that that last one (PBL.bin) also affects post-image scripts that use it. 
But I didn't get down to the ls1028ardb defconfig.

  Regards,
  Arnout

> 
> Signed-off-by: Jerry Huang <jerry.huang@nxp.com>
> ---
> changes since v4:
> no changes.
> 
> changes since v3:
> no changes.
> 
> changes since v2:
> 1. modify the patch descrition.
> 2. more detail for BR2_PACKAGE_HOST_QORIQ_RCW_BIN.
> 3. remove two options not used in this patch.
> 4. add the condition detection in makefile for QorIQ RCW.
> 
> changes since v1:
> 1. add option BR2_PACKAGE_HOST_RCW_ATF for ATF.
> ---
>   package/nxp/qoriq-rcw/Config.in.host | 12 ++++++++++++
>   package/nxp/qoriq-rcw/qoriq-rcw.mk   | 15 +++++++++++++++
>   2 files changed, 27 insertions(+)
> 
> diff --git a/package/nxp/qoriq-rcw/Config.in.host b/package/nxp/qoriq-rcw/Config.in.host
> index 8f78a40908..9bf55894e8 100644
> --- a/package/nxp/qoriq-rcw/Config.in.host
> +++ b/package/nxp/qoriq-rcw/Config.in.host
> @@ -25,4 +25,16 @@ config BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH
>   	  included for use in the SDK or with post scripts but no
>   	  RCW binary will not be generated.
>   
> +config BR2_PACKAGE_HOST_QORIQ_RCW_BIN
> +	string "Custom RCW"
> +	depends on !BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH
> +	help
> +	  This option is used to specify the RCW binary file for board.
> +	  which is composed with platform/serdes_value/rcw_file, platform
> +	  is the platform name, serdes_value is the setting of the Serdes,
> +	  rcw_file is the file name of RCW, for example:
> +	  "ls1028ardb/R_SQPP_0x85bb/rcw_1300_sdboot.bin"
> +
> +	  If this option is empty, no rcw file is used.
> +
>   endif
> diff --git a/package/nxp/qoriq-rcw/qoriq-rcw.mk b/package/nxp/qoriq-rcw/qoriq-rcw.mk
> index 7a0494adc6..bbd085f277 100644
> --- a/package/nxp/qoriq-rcw/qoriq-rcw.mk
> +++ b/package/nxp/qoriq-rcw/qoriq-rcw.mk
> @@ -37,6 +37,21 @@ endef
>   define HOST_QORIQ_RCW_INSTALL_DELIVERY_FILE
>   	$(INSTALL) -D -m 0644 $(@D)/PBL.bin $(BINARIES_DIR)/PBL.bin
>   endef
> +else
> +QORIQ_RCW_PATH_FILE_BIN = $(call qstrip,$(BR2_PACKAGE_HOST_QORIQ_RCW_BIN))
> +
> +ifneq ($(QORIQ_RCW_PATH_FILE_BIN),)
> +QORIQ_RCW_PLATFORM = $(firstword $(subst /, ,$(QORIQ_RCW_PATH_FILE_BIN)))
> +QORIQ_RCW_FILE_BIN = $(lastword $(subst /, ,$(QORIQ_RCW_PATH_FILE_BIN)))
> +
> +define HOST_QORIQ_RCW_BUILD_CMDS
> +	$(MAKE) -C $(@D)/$(QORIQ_RCW_PLATFORM)
> +endef
> +
> +define HOST_QORIQ_RCW_INSTALL_DELIVERY_FILE
> +	$(INSTALL) -D -m 0644 $(@D)/$(QORIQ_RCW_PATH_FILE_BIN) $(BINARIES_DIR)/$(QORIQ_RCW_FILE_BIN)
> +endef
> +endif
>   endif
>   
>   # Copy source files and script into $(HOST_DIR)/share/rcw/ so a developer
>
diff mbox series

Patch

diff --git a/package/nxp/qoriq-rcw/Config.in.host b/package/nxp/qoriq-rcw/Config.in.host
index 8f78a40908..9bf55894e8 100644
--- a/package/nxp/qoriq-rcw/Config.in.host
+++ b/package/nxp/qoriq-rcw/Config.in.host
@@ -25,4 +25,16 @@  config BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH
 	  included for use in the SDK or with post scripts but no
 	  RCW binary will not be generated.
 
+config BR2_PACKAGE_HOST_QORIQ_RCW_BIN
+	string "Custom RCW"
+	depends on !BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH
+	help
+	  This option is used to specify the RCW binary file for board.
+	  which is composed with platform/serdes_value/rcw_file, platform
+	  is the platform name, serdes_value is the setting of the Serdes,
+	  rcw_file is the file name of RCW, for example:
+	  "ls1028ardb/R_SQPP_0x85bb/rcw_1300_sdboot.bin"
+
+	  If this option is empty, no rcw file is used.
+
 endif
diff --git a/package/nxp/qoriq-rcw/qoriq-rcw.mk b/package/nxp/qoriq-rcw/qoriq-rcw.mk
index 7a0494adc6..bbd085f277 100644
--- a/package/nxp/qoriq-rcw/qoriq-rcw.mk
+++ b/package/nxp/qoriq-rcw/qoriq-rcw.mk
@@ -37,6 +37,21 @@  endef
 define HOST_QORIQ_RCW_INSTALL_DELIVERY_FILE
 	$(INSTALL) -D -m 0644 $(@D)/PBL.bin $(BINARIES_DIR)/PBL.bin
 endef
+else
+QORIQ_RCW_PATH_FILE_BIN = $(call qstrip,$(BR2_PACKAGE_HOST_QORIQ_RCW_BIN))
+
+ifneq ($(QORIQ_RCW_PATH_FILE_BIN),)
+QORIQ_RCW_PLATFORM = $(firstword $(subst /, ,$(QORIQ_RCW_PATH_FILE_BIN)))
+QORIQ_RCW_FILE_BIN = $(lastword $(subst /, ,$(QORIQ_RCW_PATH_FILE_BIN)))
+
+define HOST_QORIQ_RCW_BUILD_CMDS
+	$(MAKE) -C $(@D)/$(QORIQ_RCW_PLATFORM)
+endef
+
+define HOST_QORIQ_RCW_INSTALL_DELIVERY_FILE
+	$(INSTALL) -D -m 0644 $(@D)/$(QORIQ_RCW_PATH_FILE_BIN) $(BINARIES_DIR)/$(QORIQ_RCW_FILE_BIN)
+endef
+endif
 endif
 
 # Copy source files and script into $(HOST_DIR)/share/rcw/ so a developer