[U-Boot] [PATCH] arm64: zynqmp: accept an absolute path for PMUFW_INIT_FILE

Luca Ceresoli luca at lucaceresoli.net
Thu May 31 12:58:15 UTC 2018


The value of PMUFW_INIT_FILE is prefixed with "$(srctree)/", thus
forcing it to be a relative path inside the U-Boot source tree. Since
the PMUFW is a binary file generated outside of U-Boot, the PMUFW
binary must be copied inside the U-Boot source tree before the
build.

This generates a few problems:

 * if the source tree is shared among different out-of-tree builds,
   they will pollute (and potentially corrupt) each other
 * the source tree cannot be read-only
 * any buildsystem must add a command to copy the PMUFW binary
 * putting an externally-generated binary in the source tree is ugly
   as hell

Avoid these problems by accepting an absolute path for
PMUFW_INIT_FILE. This would be as simple as removing the "$(srctree)/"
prefix, but in order to keep backward compatibility we rather use the
shell and readlink to get the absolute path even when starting from a
relative path.

Tested in the 9 possible combinations of:
 - PMUFW_INIT_FILE empty, relative or absolute
 - building in-tree, in subdir, in other directory

Signed-off-by: Luca Ceresoli <luca at lucaceresoli.net>
Cc: Michal Simek <michal.simek at xilinx.com>
Cc: Simon Glass <sjg at chromium.org>
---
 scripts/Makefile.spl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 057389997de6..ef1681ef4bf5 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -168,7 +168,7 @@ MKIMAGEFLAGS_boot.bin = -T zynqimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE)
 endif
 ifdef CONFIG_ARCH_ZYNQMP
 MKIMAGEFLAGS_boot.bin = -T zynqmpimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) \
-	-n $(srctree)/$(CONFIG_PMUFW_INIT_FILE)
+	-n "$(shell cd $(srctree); readlink -m $(CONFIG_PMUFW_INIT_FILE))"
 endif
 
 spl/boot.bin: $(obj)/u-boot-spl.bin FORCE
-- 
2.7.4



More information about the U-Boot mailing list