[Buildroot] [PATCH v3 3/5] uboot: zynqmp: allow to use custom psu_init files
Luca Ceresoli
luca at lucaceresoli.net
Thu May 3 16:23:35 UTC 2018
U-Boot SPL configures pinmuxes, clocks and other low-level devices. On
the Xilinx ZynqMP SoCs the code to do this resides in a file called
psu_init_gpl.c which is initially generated by the Xilinx development
tools. Add an option to pass these files from the outside (e.g. in the
board files).
Signed-off-by: Luca Ceresoli <luca at lucaceresoli.net>
---
Changes v2 -> v3:
- Add a bool option to show/hidw all ZynqMP-specific config knobs
- Move this patch before "uboot: zynqmp: generate SPL image with
PMUFW binary"
- Reword Config.in text
Changes v1 -> v2:
- split from a larger patch doing 2 things
- document the option of having psu_init_gpl.c without .h
---
boot/uboot/Config.in | 30 ++++++++++++++++++++++++++++++
boot/uboot/uboot.mk | 16 ++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index 95c17e39865e..adde4040e55b 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -365,6 +365,36 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE
for u-boot-dtb.img file so this U-Boot format is required
to be set.
+config BR2_TARGET_UBOOT_ZYNQMP
+ bool "Boot on the Xilinx ZynqMP SoCs"
+ depends on BR2_aarch64
+ help
+ Enable options specific to the Xilinx ZynqMP family of SoCs.
+
+if BR2_TARGET_UBOOT_ZYNQMP
+
+config BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_DIR
+ string "Custom psu_init_gpl files"
+ help
+ On ZynqMP the booloader is responsible for some basic
+ initializations, such as enabling peripherals and
+ configuring pinmuxes. The psu_init_gpl.c file (and,
+ optionally, psu_init_gpl.h) contains the code for such
+ initializations.
+
+ Although U-Boot contains psu_init_gpl.c files for some
+ boards, each of them describes only one specific
+ configuration. Users of a different board, or needing a
+ different configuration, can generate custom files using the
+ Xilinx development tools.
+
+ Set this variable to the path where the psu_init_gpl.c file
+ (and psu_init_gpl.h if needed) is located. U-Boot will build
+ and link the user-provided file instead of the built-in
+ one. Leave empty to use the files provided by U-Boot.
+
+endif
+
config BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC
bool "CRC image for Altera SoC FPGA (mkpimage)"
depends on BR2_arm
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 03bd7ea743ed..cbb899515181 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -274,6 +274,22 @@ define UBOOT_INSTALL_IMAGES_CMDS
$(BINARIES_DIR)/boot.scr)
endef
+ifeq ($(BR2_TARGET_UBOOT_ZYNQMP),y)
+
+ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_DIR)),)
+define UBOOT_ZYNQMP_COPY_PSU_INIT
+# In U-Boot's board/xilinx/zynqmp/Makefile the bundled psu_init_gpl.c
+# has precedence over ours if placed in a subdir whose name matches
+# CONFIG_DEFAULT_DEVICE_TREE. Delete them all to be sure we use ours.
+ rm -f $(@D)/board/xilinx/zynqmp/*/psu_init*.[ch]
+ cp $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_DIR))/psu_init_gpl.[ch] \
+ $(@D)/board/xilinx/zynqmp/
+endef
+UBOOT_PRE_CONFIGURE_HOOKS += UBOOT_ZYNQMP_COPY_PSU_INIT
+endif # BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_DIR
+
+endif # BR2_TARGET_UBOOT_ZYNQMP
+
define UBOOT_INSTALL_OMAP_IFT_IMAGE
cp -dpf $(@D)/$(UBOOT_BIN_IFT) $(BINARIES_DIR)/
endef
--
2.7.4
More information about the buildroot
mailing list