
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@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