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

Emmanuel Vadot manu at bidouilliste.com
Mon Jun 4 10:47:41 UTC 2018


 Hi Luca,

On Mon, 4 Jun 2018 12:23:17 +0200
Luca Ceresoli <luca at lucaceresoli.net> wrote:

> Hi Emmanuel,
> 
> On 31/05/2018 17:14, Emmanuel Vadot wrote:
> > On Thu, 31 May 2018 16:28:46 +0200
> > Michal Simek <michal.simek at xilinx.com> wrote:
> > 
> >> On 31.5.2018 14:58, Luca Ceresoli wrote:
> >>> 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
> >>>
> >>
> >> looks good.
> >>
> >> Tom: Do we still have people who build u-boot on BSD system?
> >> I would like to know if this readlink -m works there.
> >>
> >> Thanks,
> >> Michal
> >> _______________________________________________
> >> U-Boot mailing list
> >> U-Boot at lists.denx.de
> >> https://lists.denx.de/listinfo/u-boot
> > 
> >  We don't have -m on FreeBSD and after checking they don't either on
> > OpenBSD and NetBSD.
> 
> I just sent v2, where readlink -f is used. However it also uses 'test
> -r' and 'false', can you confirm those commands portable on BSDs?
> 
> Thanks,
> -- 
> Luca

 No problem for this two commands, thanks a lot.

-- 
Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>


More information about the U-Boot mailing list