[meta-xilinx] [PATCH 1/2] u-boot-spl-zynq-init.inc: Add virtual/boot-bin provider
Nathan Rossi
nathan at nathanrossi.com
Sun Dec 3 01:03:12 PST 2017
Add back the PROVIDES for virtual/boot-bin and additionally improve the
logic that enables the provide so that U-Boot can be built without
providing virtual/boot-bin.
In order for the u-boot recipe to provide virtual/boot-bin for Zynq and
ZynqMP targets the selected provider for virtual/boot-bin must be the
current u-boot (e.g. u-boot or u-boot-xlnx) or the provider must be
unset. When u-boot provides virtual/boot-bin it is only enabling the
deployment of boot.bin. In cases where it is not the provider it
forcibly prevents the deployment of boot.bin. This ensures that the
platform-init files are still provided even if SPL is not used for the
boot.bin.
Additionally for ZynqMP if u-boot is not providing the boot.bin do not
depend on virtual/pmu-firmware. Since the boot.bin is what contains the
pmu binary.
Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
---
recipes-bsp/u-boot/u-boot-spl-zynq-init.inc | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc b/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
index 2123e27168..50eae1f129 100644
--- a/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
+++ b/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
@@ -34,8 +34,12 @@ python () {
return c[0:len(c) - len(i)]
return c
+ if d.getVar("SOC_FAMILY") not in ["zynq", "zynqmp"]:
+ # continue on this is not a zynq/zynqmp target
+ return
+
# Determine if target machine needs to provide a custom platform init files
- if d.getVar("SPL_BINARY") and d.getVar("SOC_FAMILY") in ["zynq", "zynqmp"]:
+ if d.getVar("SPL_BINARY"):
hasconfigs = [strip_config_name(c) for c in (d.getVar("HAS_PLATFORM_INIT") or "").split()]
currentconfig = strip_config_name(d.getVar("UBOOT_MACHINE"))
@@ -46,7 +50,20 @@ python () {
# setup task to modify platform init after unpack and before configure
bb.build.addtask("do_zynq_platform_init", "do_configure", "do_prepare_recipe_sysroot", d)
- if "boot.bin" in d.getVar("SPL_BINARY") and d.getVar("SOC_FAMILY") in ["zynqmp"]:
+ if "boot.bin" not in d.getVar("SPL_BINARY"):
+ # not deploying the boot.bin, just building SPL
+ return
+
+ # assume that U-Boot is to provide the boot.bin if no other provides are selected or U-Boot is selected
+ providesbin = not(d.getVar("PREFERRED_PROVIDER_virtual/boot-bin")) or d.getVar("PREFERRED_PROVIDER_virtual/boot-bin") == d.getVar("PN")
+ if providesbin:
+ # add provides, if U-Boot is set to provide boot.bin
+ d.appendVar("PROVIDES", " virtual/boot-bin")
+ else:
+ # prevent U-Boot from deploying the boot.bin
+ d.setVar("SPL_BINARY", "")
+
+ if providesbin and d.getVar("SOC_FAMILY") in ["zynqmp"]:
# depend on the pmu-firmware build
d.appendVar("DEPENDS", " virtual/pmu-firmware")
# determine the path relative to the source tree
--
2.15.0
More information about the meta-xilinx
mailing list