diff --git a/DEVELOPERS b/DEVELOPERS index 52a7572d41..75642ed77f 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2336,8 +2336,10 @@ F: package/qt5/qt5opcua/ N: Neal Frager F: board/versal/ +F: board/xilinx/ F: board/zynq/ F: board/zynqmp/ +F: boot/xilinx-prebuilt/ F: configs/versal_vck190_defconfig F: configs/zynq_zc702_defconfig F: configs/zynq_zc706_defconfig diff --git a/boot/Config.in b/boot/Config.in index 14e0ca65fa..25a50265d2 100644 --- a/boot/Config.in +++ b/boot/Config.in @@ -21,5 +21,6 @@ source "boot/ti-k3-boot-firmware/Config.in" source "boot/ti-k3-r5-loader/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in" +source "boot/xilinx-prebuilt/Config.in" endmenu diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in new file mode 100644 index 0000000000..7c992e6de3 --- /dev/null +++ b/boot/xilinx-prebuilt/Config.in @@ -0,0 +1,48 @@ +config BR2_TARGET_XILINX_PREBUILT + bool "xilinx-prebuilt" + depends on BR2_aarch64 + help + Pre-built firmware files for Xilinx boards. + + https://github.com/Xilinx/soc-prebuilt-firmware + +if BR2_TARGET_XILINX_PREBUILT + +config BR2_TARGET_XILINX_PREBUILT_VERSION + string "prebuilt version" + default "xilinx_v2024.1" + help + Release version of Xilinx firmware. + Must be xilinx_v2023.1 or newer. + +choice + bool "family variant" + default BR2_TARGET_XILINX_PREBUILT_ZYNQMP + +config BR2_TARGET_XILINX_PREBUILT_ZYNQMP + bool "zynqmp" + +config BR2_TARGET_XILINX_PREBUILT_KRIA + bool "kria" + +config BR2_TARGET_XILINX_PREBUILT_VERSAL + bool "versal" + +endchoice + +config BR2_TARGET_XILINX_PREBUILT_FAMILY + string + default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP + default "kria" if BR2_TARGET_XILINX_PREBUILT_KRIA + default "versal" if BR2_TARGET_XILINX_PREBUILT_VERSAL + +config BR2_TARGET_XILINX_PREBUILT_BOARD + string "board name" + default "zcu102" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP + default "kr260" if BR2_TARGET_XILINX_PREBUILT_KRIA + default "vck190" if BR2_TARGET_XILINX_PREBUILT_VERSAL + help + Name of Xilinx target board. + Used for installing the appropriate firmware. + +endif # BR2_TARGET_XILINX_PREBUILT diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.hash b/boot/xilinx-prebuilt/xilinx-prebuilt.hash new file mode 100644 index 0000000000..c955cd79f5 --- /dev/null +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 7abcba4e0e44e3a4adf9c1f971d918575226d7604dfd64a386baaa00c1c6c35f xilinx-prebuilt-xilinx_v2024.1.tar.gz diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk new file mode 100644 index 0000000000..eb78ed10cd --- /dev/null +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk @@ -0,0 +1,43 @@ +################################################################################ +# +# xilinx-prebuilt +# +################################################################################ + +XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION)) +XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION)) +XILINX_PREBUILT_LICENSE = MIT +XILINX_PREBUILT_LICENSE_FILES = LICENSE +XILINX_PREBUILT_INSTALL_TARGET = NO +XILINX_PREBUILT_INSTALL_IMAGES = YES + +XILINX_PREBUILT_FAMILY = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_FAMILY)) +XILINX_PREBUILT_BOARD = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_BOARD)) + +XILINX_PREBUILT_BOARD_DIR = $(@D)/$(XILINX_PREBUILT_BOARD)-$(XILINX_PREBUILT_FAMILY) + +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y) +# We need the *.pdi glob, because the file has different names for the +# different boards, but htere is only one, and it has to be named +# vpl_gen_fixed.pdi when installed. +define XILINX_PREBUILT_INSTALL_VERSAL + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \ + $(BINARIES_DIR)/plm.elf + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \ + $(BINARIES_DIR)/psmfw.elf + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \ + $(BINARIES_DIR)/vpl_gen_fixed.pdi +endef +else # BR2_TARGET_XILINX_PREBUILT_VERSAL +define XILINX_PREBUILT_INSTALL_OTHERS + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/pmufw.elf \ + $(BINARIES_DIR)/pmufw.elf +endef +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL + +define XILINX_PREBUILT_INSTALL_IMAGES_CMDS + $(XILINX_PREBUILT_INSTALL_VERSAL) + $(XILINX_PREBUILT_INSTALL_OTHERS) +endef + +$(eval $(generic-package))