1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- From c7df098a71e05dc81cee818747759e8060b59626 Mon Sep 17 00:00:00 2001
- From: Luca Ceresoli <luca@lucaceresoli.net>
- Date: Mon, 4 Jun 2018 12:21:01 +0200
- Subject: [PATCH] arm64: zynqmp: accept an absolute path for PMUFW_INIT_FILE
- 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.
- Since 'readlink -f' produces an empty string if the file does not
- exist, we also add a check to ensure the file configured in
- PMUFW_INIT_FILE exists. Otherwise the build would exit successfully,
- but produce a boot.bin without PMUFW as if PMUFW_INIT_FILE were empty.
- Tested in the 12 possible combinations of:
- - PMUFW_INIT_FILE empty, relative, absolute, non-existing
- - building in-tree, in subdir, in other directory
- Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
- Cc: Michal Simek <michal.simek@xilinx.com>
- Cc: Simon Glass <sjg@chromium.org>
- Cc: Emmanuel Vadot <manu@bidouilliste.com>
- Signed-off-by: Michal Simek <michal.simek@xilinx.com>
- Backported from upstream: https://git.denx.de/?p=u-boot.git;a=commit;h=c7df098a71e05dc81cee818747759e8060b59626
- ---
- scripts/Makefile.spl | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
- diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
- index ef018b5b4056..252f13826d4c 100644
- --- a/scripts/Makefile.spl
- +++ b/scripts/Makefile.spl
- @@ -167,8 +167,14 @@ ifdef CONFIG_ARCH_ZYNQ
- MKIMAGEFLAGS_boot.bin = -T zynqimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE)
- endif
- ifdef CONFIG_ARCH_ZYNQMP
- +ifneq ($(CONFIG_PMUFW_INIT_FILE),"")
- +spl/boot.bin: zynqmp-check-pmufw
- +zynqmp-check-pmufw: FORCE
- + ( cd $(srctree) && test -r $(CONFIG_PMUFW_INIT_FILE) ) \
- + || ( echo "Cannot read $(CONFIG_PMUFW_INIT_FILE)" && false )
- +endif
- MKIMAGEFLAGS_boot.bin = -T zynqmpimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) \
- - -n $(srctree)/$(CONFIG_PMUFW_INIT_FILE)
- + -n "$(shell cd $(srctree); readlink -f $(CONFIG_PMUFW_INIT_FILE))"
- endif
-
- spl/boot.bin: $(obj)/u-boot-spl.bin FORCE
- --
- 2.7.4
|