boot/xilinx-prebuilt: add local versal xsa support

Most of the time, users will be running Vivado on their local host machine,
and will generate a XSA (Xilinx Shell Archive) locally.

Instead of requiring users to create a URL location for their XSA file,
this patch improves ease of use by allowing users to work directly with
just a path on the local host machine.

BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION can thus be defined as either
a simple local location or a URL location for the XSA file.

In either case, a hash for the XSA file needs to be added to the
boot/xilinx-prebuilt/xilinx-prebuilt.hash when using this option.

Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Neal Frager
2025-12-04 11:44:09 +00:00
committed by Julien Olivain
parent a805d5b905
commit df4a87e6e6
2 changed files with 6 additions and 3 deletions

View File

@@ -68,9 +68,9 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
file. This URL can use any protocol recognized by Buildroot,
like http://, ftp://, file:// or scp://.
When pointing to a local XSA using file://, you may want to
use a make variable like $(TOPDIR) to reference the root of
the Buildroot tree.
When pointing to a local XSA using file:// or simply the
local path, you may want to use a make variable like
$(TOPDIR) to reference the root of the Buildroot tree.
This option applies to either versal or versal2.

View File

@@ -10,6 +10,9 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
XILINX_PREBUILT_FILE = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION))
XILINX_PREBUILT_SITE = $(patsubst %/,%,$(dir $(XILINX_PREBUILT_FILE)))
XILINX_PREBUILT_SOURCE = $(notdir $(XILINX_PREBUILT_FILE))
ifeq ($(findstring ://,$(XILINX_PREBUILT_FILE)),)
XILINX_PREBUILT_SITE_METHOD = file
endif
define XILINX_PREBUILT_EXTRACT_CMDS
$(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
endef