[U-Boot] [PATCH] arm64: zynqmp: fail SPL build if no psu_init found

Michal Simek michal.simek at xilinx.com
Mon Apr 3 06:55:46 UTC 2017


Hi,

On 3.4.2017 02:51, Jean-Francois Dagenais wrote:
> When doing the SPL build, not finding the psu_init files yields an
> unuseable spl binary. Time is wasted as the build is carried through dev
> ops all the way to trying to boot the DUD build.
> 
> A failure immediately alerts developers that something is wrong in the
> configuration of the u-boot tree, thus allowing quicker recovery.
> 
> Adding an extra test in this section made the logic a bit too clunky so
> the layout of the tests was refactored for the reader's benefit.
> 
> Signed-off-by: Jean-Francois Dagenais <jeff.dagenais at gmail.com>
> ---
>  board/xilinx/zynqmp/Makefile | 28 ++++++++++++++++++++++------
>  1 file changed, 22 insertions(+), 6 deletions(-)
> 
> diff --git a/board/xilinx/zynqmp/Makefile b/board/xilinx/zynqmp/Makefile
> index 2bf0375..78cb550 100644
> --- a/board/xilinx/zynqmp/Makefile
> +++ b/board/xilinx/zynqmp/Makefile
> @@ -7,22 +7,38 @@
>  
>  obj-y	:= zynqmp.o
>  
> -hw-platform-y :=$(shell echo $(CONFIG_DEFAULT_DEVICE_TREE))
> +ifeq ($(CONFIG_SPL_BUILD), y)
>  
> +# use the devicetree name as a hint for the psu_init file dir name
> +hw-platform-y :=$(shell echo $(CONFIG_DEFAULT_DEVICE_TREE))
>  init-objs := $(if $(wildcard $(srctree)/$(src)/$(hw-platform-y)/psu_init_gpl.c),\
>  	$(hw-platform-y)/psu_init_gpl.o)
>  
> +# if couldn't find psu_init files where they *should*, be...
>  ifeq ($(init-objs),)
> -ifneq ($(wildcard $(srctree)/$(src)/psu_init_gpl.c),)
> -init-objs := psu_init_gpl.o
> -$(if $(CONFIG_SPL_BUILD),\
> -$(warning Put custom psu_init_gpl.c/h to board/xilinx/zynqmp/custom_hw_platform/))
> +# then fallback to this current dir, if file exists
> +init-objs := $(if $(wildcard $(srctree)/$(src)/psu_init_gpl.c), psu_init_gpl.o)
>  endif
> +
> +# if init-objs still empty, then abort
> +ifeq ($(init-objs),)
> +# define a \n equivalent:
> +define n
> +
> +
> +endef
> +
> +$(error Could not locate psu_init_gpl.c/h files, tried: $n\
> +	$(srctree)/$(src)/$(hw-platform-y)/psu_init_gpl.c and $n\
> +	$(srctree)/$(src)/psu_init_gpl.c)
>  endif
>  
> -obj-$(CONFIG_ZYNQ_SDHCI) += tap_delays.o
>  obj-$(CONFIG_SPL_BUILD) += $(init-objs)
>  
> +endif # if SPL_BUILD
> +
> +obj-$(CONFIG_ZYNQ_SDHCI) += tap_delays.o
> +
>  # Suppress "warning: function declaration isn't a prototype"
>  CFLAGS_REMOVE_psu_init_gpl.o := -Wstrict-prototypes
>  
> 

This is not only one way how to configure system. You can use
psu_init*.tcl and configure chip through jtag and then you don't need
this .c/.h files.
You should be able to see warning already about it if you miss that files.

Thanks,
Michal



More information about the U-Boot mailing list