[Buildroot] [PATCH v4 2/4] boot/versal-pdi: new boot package
Neal Frager
neal.frager at amd.com
Sun Jun 30 13:45:01 UTC 2024
This patch adds a new boot package for downloading a Xilinx Vivado generated
PDI file to be used with the xilinx-source package when building microblaze
boot firmware for versal targets.
Signed-off-by: Neal Frager <neal.frager at amd.com>
---
V4:
- new package added starting with v4
---
DEVELOPERS | 1 +
boot/Config.in | 1 +
boot/versal-pdi/Config.in | 20 ++++++++++++++++++++
boot/versal-pdi/versal-pdi.hash | 2 ++
boot/versal-pdi/versal-pdi.mk | 25 +++++++++++++++++++++++++
5 files changed, 49 insertions(+)
create mode 100644 boot/versal-pdi/Config.in
create mode 100644 boot/versal-pdi/versal-pdi.hash
create mode 100644 boot/versal-pdi/versal-pdi.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index af7f46fc6c..3867234bfd 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2341,6 +2341,7 @@ F: board/versal/
F: board/xilinx/
F: board/zynq/
F: board/zynqmp/
+F: boot/versal-pdi/
F: boot/xilinx-prebuilt/
F: boot/xilinx-source/
F: configs/versal_vck190_defconfig
diff --git a/boot/Config.in b/boot/Config.in
index da22f15e8a..14a674596f 100644
--- a/boot/Config.in
+++ b/boot/Config.in
@@ -20,6 +20,7 @@ source "boot/syslinux/Config.in"
source "boot/ti-k3-boot-firmware/Config.in"
source "boot/ti-k3-r5-loader/Config.in"
source "boot/uboot/Config.in"
+source "boot/versal-pdi/Config.in"
source "boot/vexpress-firmware/Config.in"
source "boot/xilinx-prebuilt/Config.in"
source "boot/xilinx-source/Config.in"
diff --git a/boot/versal-pdi/Config.in b/boot/versal-pdi/Config.in
new file mode 100644
index 0000000000..25854bcf4b
--- /dev/null
+++ b/boot/versal-pdi/Config.in
@@ -0,0 +1,20 @@
+config BR2_TARGET_VERSAL_PDI
+ bool "versal-pdi"
+ depends on BR2_aarch64
+ depends on BR2_TARGET_XILINX_SOURCE_VERSAL
+ help
+ Pre-built versal PDI file generated by Xilinx Vivado.
+ Depends on xilinx-source package for building microblaze firmware.
+
+ https://github.com/Xilinx/soc-prebuilt-firmware
+
+if BR2_TARGET_VERSAL_PDI
+
+config BR2_TARGET_VERSAL_PDI_BOARD
+ string "board name"
+ default "vck190"
+ help
+ Name of versal target board.
+ Used for installing the appropriate PDI file.
+
+endif # BR2_TARGET_VERSAL_PDI
diff --git a/boot/versal-pdi/versal-pdi.hash b/boot/versal-pdi/versal-pdi.hash
new file mode 100644
index 0000000000..b609fddc4c
--- /dev/null
+++ b/boot/versal-pdi/versal-pdi.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 7abcba4e0e44e3a4adf9c1f971d918575226d7604dfd64a386baaa00c1c6c35f versal-pdi-xilinx_v2024.1.tar.gz
diff --git a/boot/versal-pdi/versal-pdi.mk b/boot/versal-pdi/versal-pdi.mk
new file mode 100644
index 0000000000..81b5e89b3f
--- /dev/null
+++ b/boot/versal-pdi/versal-pdi.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# versal-pdi
+#
+################################################################################
+
+VERSAL_PDI_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_SOURCE_VERSION))
+VERSAL_PDI_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(VERSAL_PDI_VERSION))
+VERSAL_PDI_LICENSE = MIT
+VERSAL_PDI_LICENSE_FILES = LICENSE
+VERSAL_PDI_INSTALL_TARGET = NO
+VERSAL_PDI_INSTALL_IMAGES = YES
+
+VERSAL_PDI_BOARD = $(call qstrip,$(BR2_TARGET_VERSAL_PDI_BOARD))
+VERSAL_PDI_BOARD_DIR = $(@D)/$(VERSAL_PDI_BOARD)-versal
+
+# We need the *.pdi glob, because the file has different names for the
+# different boards, but there is only one, and it has to be named
+# vpl_gen_fixed.pdi when installed.
+define VERSAL_PDI_INSTALL_IMAGES_CMDS
+ $(INSTALL) -D -m 0755 $(VERSAL_PDI_BOARD_DIR)/*.pdi \
+ $(BINARIES_DIR)/vpl_gen_fixed.pdi
+endef
+
+$(eval $(generic-package))
--
2.25.1
More information about the buildroot
mailing list