boot/xilinx-prebuilt: new boot package

This patch add a new boot package for downloading prebuilt firmware for Xilinx
versal and zynqmp evaluation boards.

It solves the problem of being able to verify the hash when downloading a
prebuilt zynqmp pmufw.elf binary.

Signed-off-by: Neal Frager <neal.frager@amd.com>
Reviewed-by: Brandon Maier <brandon.maier@collins.com>
[yann.morin.1998@free.fr:
  - move the hash file to the package dir, not the board dir
  - move board name after familly choice
  - add default board name for each family
  - qstrip the Kconfig strings before use
  - introduce XILINX_PREBUILT_BOARD_DIR to simplify paths
  - explain the *.pdi glob
  - simplify non-versal install
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Neal Frager
2024-06-13 07:14:19 +01:00
committed by Yann E. MORIN
parent 106e43e303
commit a6648ad8da
5 changed files with 96 additions and 0 deletions

View File

@@ -2336,8 +2336,10 @@ F: package/qt5/qt5opcua/
N: Neal Frager <neal.frager@amd.com>
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

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 7abcba4e0e44e3a4adf9c1f971d918575226d7604dfd64a386baaa00c1c6c35f xilinx-prebuilt-xilinx_v2024.1.tar.gz

View File

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