diff mbox series

[v4,2/4] boot/versal-pdi: new boot package

Message ID 20240630134503.3658120-2-neal.frager@amd.com
State New
Headers show
Series [v4,1/4] boot/xilinx-source: new boot package | expand

Commit Message

Neal Frager June 30, 2024, 1:45 p.m. UTC
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@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 mbox series

Patch

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