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