[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