* [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
@ 2024-07-01 16:48 Brandon Maier via buildroot
2024-07-13 16:08 ` Romain Naour via buildroot
0 siblings, 1 reply; 8+ messages in thread
From: Brandon Maier via buildroot @ 2024-07-01 16:48 UTC (permalink / raw)
To: buildroot; +Cc: Yann E. MORIN, Brandon Maier, Neal Frager
The xilinx-prebuilt package only supports development boards that Xilinx
has published firmware for. Custom designs based on the Xilinx platform
must generate their own firmware using the AMD Vivado Design Suite.
Vivado produces an XSA file, which is a Zip file containing all the
firmware needed by xilinx-prebuilt. We extend xilinx-prebuilt to
download custom XSA files and extract their contents.
Reviewed-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
---
Changes in v3:
- Rebase on upstream changes to boot/xilinx-prebuilt
- Link to v2: https://lore.kernel.org/r/20240626-versal-xsa-support-prebuilt-v2-1-724b00c4596d@collins.com
Changes in v2:
- Fix help text to say XSA is created by Vivado [Neal]
- Link to v1: https://lore.kernel.org/r/20240625-versal-xsa-support-prebuilt-v1-1-f64a7a396a34@collins.com
---
boot/xilinx-prebuilt/Config.in | 24 ++++++++++++++++++++++++
boot/xilinx-prebuilt/xilinx-prebuilt.mk | 27 ++++++++++++++++++++++++---
2 files changed, 48 insertions(+), 3 deletions(-)
diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
index d3df1c06e7..94ef3dd111 100644
--- a/boot/xilinx-prebuilt/Config.in
+++ b/boot/xilinx-prebuilt/Config.in
@@ -31,6 +31,30 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
endchoice
+config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
+ bool "download a prebuilt Versal XSA"
+ depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
+ help
+ The Xilinx Support Archive (XSA) provides custom Xilinx
+ firmware files generated by the AMD Vivado Design Suite.
+
+ https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
+
+if BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
+
+config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
+ string "URL of custom XSA"
+ help
+ This option allows to specify a URL pointing to an XSA source
+ 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.
+
+endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
+
config BR2_TARGET_XILINX_PREBUILT_FAMILY
string
default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
index d09f4b13e2..c3000b7e45 100644
--- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk
+++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
@@ -5,9 +5,20 @@
################################################################################
XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
+
+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))
+define XILINX_PREBUILT_EXTRACT_CMDS
+ $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
+endef
+else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
XILINX_PREBUILT_LICENSE = MIT
XILINX_PREBUILT_LICENSE_FILES = LICENSE
+endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
+
XILINX_PREBUILT_INSTALL_TARGET = NO
XILINX_PREBUILT_INSTALL_IMAGES = YES
@@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
# 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.
+ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
+XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
+XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
+XILINX_PREBUILT_PDI = $(@D)/*.pdi
+else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
+XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
+XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
+XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
+endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
+
define XILINX_PREBUILT_INSTALL
- $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \
+ $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
$(BINARIES_DIR)/plm.elf
- $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \
+ $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
$(BINARIES_DIR)/psmfw.elf
- $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \
+ $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
$(BINARIES_DIR)/vpl_gen_fixed.pdi
endef
else # BR2_TARGET_XILINX_PREBUILT_VERSAL
---
base-commit: 55c8c2328e73725e9ab41c8dc566b09f49f2aad5
change-id: 20240621-versal-xsa-support-prebuilt-9c5aed5be687
Best regards,
--
Brandon Maier <brandon.maier@collins.com>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-01 16:48 [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA Brandon Maier via buildroot
@ 2024-07-13 16:08 ` Romain Naour via buildroot
2024-07-13 16:21 ` Brandon Maier via buildroot
0 siblings, 1 reply; 8+ messages in thread
From: Romain Naour via buildroot @ 2024-07-13 16:08 UTC (permalink / raw)
To: Brandon Maier, buildroot; +Cc: Yann E. MORIN, Neal Frager
Hello Brandon, All,
Le 01/07/2024 à 18:48, Brandon Maier via buildroot a écrit :
> The xilinx-prebuilt package only supports development boards that Xilinx
> has published firmware for. Custom designs based on the Xilinx platform
> must generate their own firmware using the AMD Vivado Design Suite.
>
> Vivado produces an XSA file, which is a Zip file containing all the
> firmware needed by xilinx-prebuilt. We extend xilinx-prebuilt to
> download custom XSA files and extract their contents.
>
> Reviewed-by: Neal Frager <neal.frager@amd.com>
> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
> ---
> Changes in v3:
> - Rebase on upstream changes to boot/xilinx-prebuilt
> - Link to v2: https://lore.kernel.org/r/20240626-versal-xsa-support-prebuilt-v2-1-724b00c4596d@collins.com
>
> Changes in v2:
> - Fix help text to say XSA is created by Vivado [Neal]
> - Link to v1: https://lore.kernel.org/r/20240625-versal-xsa-support-prebuilt-v1-1-f64a7a396a34@collins.com
> ---
> boot/xilinx-prebuilt/Config.in | 24 ++++++++++++++++++++++++
> boot/xilinx-prebuilt/xilinx-prebuilt.mk | 27 ++++++++++++++++++++++++---
> 2 files changed, 48 insertions(+), 3 deletions(-)
>
> diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
> index d3df1c06e7..94ef3dd111 100644
> --- a/boot/xilinx-prebuilt/Config.in
> +++ b/boot/xilinx-prebuilt/Config.in
> @@ -31,6 +31,30 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
>
> endchoice
>
> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> + bool "download a prebuilt Versal XSA"
> + depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
> + help
> + The Xilinx Support Archive (XSA) provides custom Xilinx
> + firmware files generated by the AMD Vivado Design Suite.
> +
> + https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
> +
> +if BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> +
> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
> + string "URL of custom XSA"
> + help
> + This option allows to specify a URL pointing to an XSA source
> + 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.
> +
> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> +
> config BR2_TARGET_XILINX_PREBUILT_FAMILY
> string
> default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
> diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> index d09f4b13e2..c3000b7e45 100644
> --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> @@ -5,9 +5,20 @@
> ################################################################################
>
> XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
> +
> +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))
> +define XILINX_PREBUILT_EXTRACT_CMDS
> + $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
> +endef
> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
> XILINX_PREBUILT_LICENSE = MIT
> XILINX_PREBUILT_LICENSE_FILES = LICENSE
> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> +
> XILINX_PREBUILT_INSTALL_TARGET = NO
> XILINX_PREBUILT_INSTALL_IMAGES = YES
>
> @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
> # 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.
> +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
> +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
> +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
for Xilinx dev boards?
> +XILINX_PREBUILT_PDI = $(@D)/*.pdi
> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> +XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
> +XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
^^^^^^^^^
Best regards,
Romain
> +XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> +
> define XILINX_PREBUILT_INSTALL
> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \
> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
> $(BINARIES_DIR)/plm.elf
> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \
> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
> $(BINARIES_DIR)/psmfw.elf
> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \
> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
> $(BINARIES_DIR)/vpl_gen_fixed.pdi
> endef
> else # BR2_TARGET_XILINX_PREBUILT_VERSAL
>
> ---
> base-commit: 55c8c2328e73725e9ab41c8dc566b09f49f2aad5
> change-id: 20240621-versal-xsa-support-prebuilt-9c5aed5be687
>
> Best regards,
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-13 16:08 ` Romain Naour via buildroot
@ 2024-07-13 16:21 ` Brandon Maier via buildroot
2024-07-13 16:46 ` Romain Naour via buildroot
0 siblings, 1 reply; 8+ messages in thread
From: Brandon Maier via buildroot @ 2024-07-13 16:21 UTC (permalink / raw)
To: Romain Naour, buildroot; +Cc: Yann E. MORIN, Neal Frager
On Sat Jul 13, 2024 at 4:08 PM UTC, Romain Naour via buildroot wrote:
> Hello Brandon, All,
>
> Le 01/07/2024 à 18:48, Brandon Maier via buildroot a écrit :
> > The xilinx-prebuilt package only supports development boards that Xilinx
> > has published firmware for. Custom designs based on the Xilinx platform
> > must generate their own firmware using the AMD Vivado Design Suite.
> >
> > Vivado produces an XSA file, which is a Zip file containing all the
> > firmware needed by xilinx-prebuilt. We extend xilinx-prebuilt to
> > download custom XSA files and extract their contents.
> >
> > Reviewed-by: Neal Frager <neal.frager@amd.com>
> > Signed-off-by: Brandon Maier <brandon.maier@collins.com>
> > ---
> > Changes in v3:
> > - Rebase on upstream changes to boot/xilinx-prebuilt
> > - Link to v2: https://lore.kernel.org/r/20240626-versal-xsa-support-prebuilt-v2-1-724b00c4596d@collins.com
> >
> > Changes in v2:
> > - Fix help text to say XSA is created by Vivado [Neal]
> > - Link to v1: https://lore.kernel.org/r/20240625-versal-xsa-support-prebuilt-v1-1-f64a7a396a34@collins.com
> > ---
> > boot/xilinx-prebuilt/Config.in | 24 ++++++++++++++++++++++++
> > boot/xilinx-prebuilt/xilinx-prebuilt.mk | 27 ++++++++++++++++++++++++---
> > 2 files changed, 48 insertions(+), 3 deletions(-)
> >
> > diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
> > index d3df1c06e7..94ef3dd111 100644
> > --- a/boot/xilinx-prebuilt/Config.in
> > +++ b/boot/xilinx-prebuilt/Config.in
> > @@ -31,6 +31,30 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
> >
> > endchoice
> >
> > +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > + bool "download a prebuilt Versal XSA"
> > + depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
> > + help
> > + The Xilinx Support Archive (XSA) provides custom Xilinx
> > + firmware files generated by the AMD Vivado Design Suite.
> > +
> > + https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
> > +
> > +if BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > +
> > +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
> > + string "URL of custom XSA"
> > + help
> > + This option allows to specify a URL pointing to an XSA source
> > + 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.
> > +
> > +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > +
> > config BR2_TARGET_XILINX_PREBUILT_FAMILY
> > string
> > default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
> > diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> > index d09f4b13e2..c3000b7e45 100644
> > --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> > +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> > @@ -5,9 +5,20 @@
> > ################################################################################
> >
> > XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
> > +
> > +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))
> > +define XILINX_PREBUILT_EXTRACT_CMDS
> > + $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
> > +endef
> > +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
> > XILINX_PREBUILT_LICENSE = MIT
> > XILINX_PREBUILT_LICENSE_FILES = LICENSE
> > +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > +
> > XILINX_PREBUILT_INSTALL_TARGET = NO
> > XILINX_PREBUILT_INSTALL_IMAGES = YES
> >
> > @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
> > # 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.
> > +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
> > +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
> > +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
>
> is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
> for Xilinx dev boards?
I had not noticed that. I double-checked and the file does have '_'
inside the XSA, but does not in the Xilinx prebuilt repo. It is strange,
but this does work as intended.
Thanks for spotting that,
Brandon
>
> > +XILINX_PREBUILT_PDI = $(@D)/*.pdi
> > +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > +XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
> > +XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
> ^^^^^^^^^
>
> Best regards,
> Romain
>
>
> > +XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
> > +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> > +
> > define XILINX_PREBUILT_INSTALL
> > - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \
> > + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
> > $(BINARIES_DIR)/plm.elf
> > - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \
> > + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
> > $(BINARIES_DIR)/psmfw.elf
> > - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \
> > + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
> > $(BINARIES_DIR)/vpl_gen_fixed.pdi
> > endef
> > else # BR2_TARGET_XILINX_PREBUILT_VERSAL
> >
> > ---
> > base-commit: 55c8c2328e73725e9ab41c8dc566b09f49f2aad5
> > change-id: 20240621-versal-xsa-support-prebuilt-9c5aed5be687
> >
> > Best regards,
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-13 16:21 ` Brandon Maier via buildroot
@ 2024-07-13 16:46 ` Romain Naour via buildroot
2024-07-13 19:52 ` Romain Naour via buildroot
2024-07-13 19:56 ` Brandon Maier via buildroot
0 siblings, 2 replies; 8+ messages in thread
From: Romain Naour via buildroot @ 2024-07-13 16:46 UTC (permalink / raw)
To: Brandon Maier, buildroot; +Cc: Yann E. MORIN, Neal Frager
Hello Brandon,
Le 13/07/2024 à 18:21, Brandon Maier a écrit :
> On Sat Jul 13, 2024 at 4:08 PM UTC, Romain Naour via buildroot wrote:
>> Hello Brandon, All,
>>
>> Le 01/07/2024 à 18:48, Brandon Maier via buildroot a écrit :
>>> The xilinx-prebuilt package only supports development boards that Xilinx
>>> has published firmware for. Custom designs based on the Xilinx platform
>>> must generate their own firmware using the AMD Vivado Design Suite.
>>>
>>> Vivado produces an XSA file, which is a Zip file containing all the
>>> firmware needed by xilinx-prebuilt. We extend xilinx-prebuilt to
>>> download custom XSA files and extract their contents.
>>>
>>> Reviewed-by: Neal Frager <neal.frager@amd.com>
>>> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
>>> ---
>>> Changes in v3:
>>> - Rebase on upstream changes to boot/xilinx-prebuilt
>>> - Link to v2: https://lore.kernel.org/r/20240626-versal-xsa-support-prebuilt-v2-1-724b00c4596d@collins.com
>>>
>>> Changes in v2:
>>> - Fix help text to say XSA is created by Vivado [Neal]
>>> - Link to v1: https://lore.kernel.org/r/20240625-versal-xsa-support-prebuilt-v1-1-f64a7a396a34@collins.com
>>> ---
>>> boot/xilinx-prebuilt/Config.in | 24 ++++++++++++++++++++++++
>>> boot/xilinx-prebuilt/xilinx-prebuilt.mk | 27 ++++++++++++++++++++++++---
>>> 2 files changed, 48 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
>>> index d3df1c06e7..94ef3dd111 100644
>>> --- a/boot/xilinx-prebuilt/Config.in
>>> +++ b/boot/xilinx-prebuilt/Config.in
>>> @@ -31,6 +31,30 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
>>>
>>> endchoice
>>>
>>> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> + bool "download a prebuilt Versal XSA"
>>> + depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
>>> + help
>>> + The Xilinx Support Archive (XSA) provides custom Xilinx
>>> + firmware files generated by the AMD Vivado Design Suite.
>>> +
>>> + https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
>>> +
>>> +if BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> +
>>> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
>>> + string "URL of custom XSA"
>>> + help
>>> + This option allows to specify a URL pointing to an XSA source
>>> + 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.
>>> +
>>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> +
>>> config BR2_TARGET_XILINX_PREBUILT_FAMILY
>>> string
>>> default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
>>> diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
>>> index d09f4b13e2..c3000b7e45 100644
>>> --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk
>>> +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
>>> @@ -5,9 +5,20 @@
>>> ################################################################################
>>>
>>> XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
>>> +
>>> +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))
>>> +define XILINX_PREBUILT_EXTRACT_CMDS
>>> + $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
>>> +endef
>>> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
>>> XILINX_PREBUILT_LICENSE = MIT
>>> XILINX_PREBUILT_LICENSE_FILES = LICENSE
>>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> +
>>> XILINX_PREBUILT_INSTALL_TARGET = NO
>>> XILINX_PREBUILT_INSTALL_IMAGES = YES
>>>
>>> @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
>>> # 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.
>>> +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
>>> +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
>>> +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
>>
>> is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
>> for Xilinx dev boards?
>
> I had not noticed that. I double-checked and the file does have '_'
> inside the XSA, but does not in the Xilinx prebuilt repo. It is strange,
> but this does work as intended.
Ok, that is strange indeed.
Maybe a comment about that in the .mk would be useful?
Best regards,
Romain
>
> Thanks for spotting that,
> Brandon
>
>>
>>> +XILINX_PREBUILT_PDI = $(@D)/*.pdi
>>> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> +XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
>>> +XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
>> ^^^^^^^^^
>>
>> Best regards,
>> Romain
>>
>>
>>> +XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
>>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>> +
>>> define XILINX_PREBUILT_INSTALL
>>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \
>>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
>>> $(BINARIES_DIR)/plm.elf
>>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \
>>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
>>> $(BINARIES_DIR)/psmfw.elf
>>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \
>>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
>>> $(BINARIES_DIR)/vpl_gen_fixed.pdi
>>> endef
>>> else # BR2_TARGET_XILINX_PREBUILT_VERSAL
>>>
>>> ---
>>> base-commit: 55c8c2328e73725e9ab41c8dc566b09f49f2aad5
>>> change-id: 20240621-versal-xsa-support-prebuilt-9c5aed5be687
>>>
>>> Best regards,
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-13 16:46 ` Romain Naour via buildroot
@ 2024-07-13 19:52 ` Romain Naour via buildroot
2024-07-13 19:56 ` Brandon Maier via buildroot
1 sibling, 0 replies; 8+ messages in thread
From: Romain Naour via buildroot @ 2024-07-13 19:52 UTC (permalink / raw)
To: Brandon Maier, buildroot; +Cc: Yann E. MORIN, Neal Frager
Hello Brandon,
Le 13/07/2024 à 18:46, Romain Naour a écrit :
> Hello Brandon,
>
> Le 13/07/2024 à 18:21, Brandon Maier a écrit :
>> On Sat Jul 13, 2024 at 4:08 PM UTC, Romain Naour via buildroot wrote:
>>> Hello Brandon, All,
>>>
>>> Le 01/07/2024 à 18:48, Brandon Maier via buildroot a écrit :
>>>> The xilinx-prebuilt package only supports development boards that Xilinx
>>>> has published firmware for. Custom designs based on the Xilinx platform
>>>> must generate their own firmware using the AMD Vivado Design Suite.
>>>>
>>>> Vivado produces an XSA file, which is a Zip file containing all the
>>>> firmware needed by xilinx-prebuilt. We extend xilinx-prebuilt to
>>>> download custom XSA files and extract their contents.
>>>>
>>>> Reviewed-by: Neal Frager <neal.frager@amd.com>
>>>> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
>>>> ---
>>>> Changes in v3:
>>>> - Rebase on upstream changes to boot/xilinx-prebuilt
>>>> - Link to v2: https://lore.kernel.org/r/20240626-versal-xsa-support-prebuilt-v2-1-724b00c4596d@collins.com
>>>>
>>>> Changes in v2:
>>>> - Fix help text to say XSA is created by Vivado [Neal]
>>>> - Link to v1: https://lore.kernel.org/r/20240625-versal-xsa-support-prebuilt-v1-1-f64a7a396a34@collins.com
>>>> ---
>>>> boot/xilinx-prebuilt/Config.in | 24 ++++++++++++++++++++++++
>>>> boot/xilinx-prebuilt/xilinx-prebuilt.mk | 27 ++++++++++++++++++++++++---
>>>> 2 files changed, 48 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
>>>> index d3df1c06e7..94ef3dd111 100644
>>>> --- a/boot/xilinx-prebuilt/Config.in
>>>> +++ b/boot/xilinx-prebuilt/Config.in
>>>> @@ -31,6 +31,30 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
>>>>
>>>> endchoice
>>>>
>>>> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> + bool "download a prebuilt Versal XSA"
>>>> + depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
>>>> + help
>>>> + The Xilinx Support Archive (XSA) provides custom Xilinx
>>>> + firmware files generated by the AMD Vivado Design Suite.
>>>> +
>>>> + https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
>>>> +
>>>> +if BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> +
>>>> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
>>>> + string "URL of custom XSA"
>>>> + help
>>>> + This option allows to specify a URL pointing to an XSA source
>>>> + 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.
>>>> +
>>>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> +
>>>> config BR2_TARGET_XILINX_PREBUILT_FAMILY
>>>> string
>>>> default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
>>>> diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
>>>> index d09f4b13e2..c3000b7e45 100644
>>>> --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk
>>>> +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
>>>> @@ -5,9 +5,20 @@
>>>> ################################################################################
>>>>
>>>> XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
>>>> +
>>>> +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))
>>>> +define XILINX_PREBUILT_EXTRACT_CMDS
>>>> + $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
>>>> +endef
>>>> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
>>>> XILINX_PREBUILT_LICENSE = MIT
>>>> XILINX_PREBUILT_LICENSE_FILES = LICENSE
>>>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> +
>>>> XILINX_PREBUILT_INSTALL_TARGET = NO
>>>> XILINX_PREBUILT_INSTALL_IMAGES = YES
>>>>
>>>> @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
>>>> # 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.
>>>> +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
>>>> +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
>>>> +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
>>>
>>> is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
>>> for Xilinx dev boards?
>>
>> I had not noticed that. I double-checked and the file does have '_'
>> inside the XSA, but does not in the Xilinx prebuilt repo. It is strange,
>> but this does work as intended.
>
> Ok, that is strange indeed.
>
> Maybe a comment about that in the .mk would be useful?
I added this comment, and applied to master, thanks.
Best regards,
Romain
>
> Best regards,
> Romain
>
>>
>> Thanks for spotting that,
>> Brandon
>>
>>>
>>>> +XILINX_PREBUILT_PDI = $(@D)/*.pdi
>>>> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> +XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
>>>> +XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
>>> ^^^^^^^^^
>>>
>>> Best regards,
>>> Romain
>>>
>>>
>>>> +XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
>>>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
>>>> +
>>>> define XILINX_PREBUILT_INSTALL
>>>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \
>>>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
>>>> $(BINARIES_DIR)/plm.elf
>>>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \
>>>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
>>>> $(BINARIES_DIR)/psmfw.elf
>>>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \
>>>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
>>>> $(BINARIES_DIR)/vpl_gen_fixed.pdi
>>>> endef
>>>> else # BR2_TARGET_XILINX_PREBUILT_VERSAL
>>>>
>>>> ---
>>>> base-commit: 55c8c2328e73725e9ab41c8dc566b09f49f2aad5
>>>> change-id: 20240621-versal-xsa-support-prebuilt-9c5aed5be687
>>>>
>>>> Best regards,
>>>
>>> _______________________________________________
>>> buildroot mailing list
>>> buildroot@buildroot.org
>>> https://lists.buildroot.org/mailman/listinfo/buildroot
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-13 16:46 ` Romain Naour via buildroot
2024-07-13 19:52 ` Romain Naour via buildroot
@ 2024-07-13 19:56 ` Brandon Maier via buildroot
2024-07-13 20:09 ` Romain Naour via buildroot
1 sibling, 1 reply; 8+ messages in thread
From: Brandon Maier via buildroot @ 2024-07-13 19:56 UTC (permalink / raw)
To: Romain Naour, buildroot; +Cc: Yann E. MORIN, Neal Frager
On Sat Jul 13, 2024 at 4:46 PM UTC, Romain Naour via buildroot wrote:
> Hello Brandon,
>
> Le 13/07/2024 à 18:21, Brandon Maier a écrit :
> > On Sat Jul 13, 2024 at 4:08 PM UTC, Romain Naour via buildroot wrote:
> >> Hello Brandon, All,
> >>
> >> Le 01/07/2024 à 18:48, Brandon Maier via buildroot a écrit :
> >>> The xilinx-prebuilt package only supports development boards that Xilinx
> >>> has published firmware for. Custom designs based on the Xilinx platform
> >>> must generate their own firmware using the AMD Vivado Design Suite.
> >>>
> >>> Vivado produces an XSA file, which is a Zip file containing all the
> >>> firmware needed by xilinx-prebuilt. We extend xilinx-prebuilt to
> >>> download custom XSA files and extract their contents.
> >>>
> >>> Reviewed-by: Neal Frager <neal.frager@amd.com>
> >>> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
> >>> ---
> >>> Changes in v3:
> >>> - Rebase on upstream changes to boot/xilinx-prebuilt
> >>> - Link to v2: https://lore.kernel.org/r/20240626-versal-xsa-support-prebuilt-v2-1-724b00c4596d@collins.com
> >>>
> >>> Changes in v2:
> >>> - Fix help text to say XSA is created by Vivado [Neal]
> >>> - Link to v1: https://lore.kernel.org/r/20240625-versal-xsa-support-prebuilt-v1-1-f64a7a396a34@collins.com
> >>> ---
> >>> boot/xilinx-prebuilt/Config.in | 24 ++++++++++++++++++++++++
> >>> boot/xilinx-prebuilt/xilinx-prebuilt.mk | 27 ++++++++++++++++++++++++---
> >>> 2 files changed, 48 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
> >>> index d3df1c06e7..94ef3dd111 100644
> >>> --- a/boot/xilinx-prebuilt/Config.in
> >>> +++ b/boot/xilinx-prebuilt/Config.in
> >>> @@ -31,6 +31,30 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
> >>>
> >>> endchoice
> >>>
> >>> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> + bool "download a prebuilt Versal XSA"
> >>> + depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
> >>> + help
> >>> + The Xilinx Support Archive (XSA) provides custom Xilinx
> >>> + firmware files generated by the AMD Vivado Design Suite.
> >>> +
> >>> + https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
> >>> +
> >>> +if BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> +
> >>> +config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
> >>> + string "URL of custom XSA"
> >>> + help
> >>> + This option allows to specify a URL pointing to an XSA source
> >>> + 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.
> >>> +
> >>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> +
> >>> config BR2_TARGET_XILINX_PREBUILT_FAMILY
> >>> string
> >>> default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
> >>> diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> >>> index d09f4b13e2..c3000b7e45 100644
> >>> --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> >>> +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk
> >>> @@ -5,9 +5,20 @@
> >>> ################################################################################
> >>>
> >>> XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
> >>> +
> >>> +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))
> >>> +define XILINX_PREBUILT_EXTRACT_CMDS
> >>> + $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
> >>> +endef
> >>> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
> >>> XILINX_PREBUILT_LICENSE = MIT
> >>> XILINX_PREBUILT_LICENSE_FILES = LICENSE
> >>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> +
> >>> XILINX_PREBUILT_INSTALL_TARGET = NO
> >>> XILINX_PREBUILT_INSTALL_IMAGES = YES
> >>>
> >>> @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
> >>> # 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.
> >>> +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
> >>> +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
> >>> +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
> >>
> >> is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
> >> for Xilinx dev boards?
> >
> > I had not noticed that. I double-checked and the file does have '_'
> > inside the XSA, but does not in the Xilinx prebuilt repo. It is strange,
> > but this does work as intended.
>
> Ok, that is strange indeed.
>
> Maybe a comment about that in the .mk would be useful?
No problem, I sent a v4 to reword the comment block above to call out
the psm_fw.elf
Thanks,
Brandon
>
> Best regards,
> Romain
>
> >
> > Thanks for spotting that,
> > Brandon
> >
> >>
> >>> +XILINX_PREBUILT_PDI = $(@D)/*.pdi
> >>> +else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> +XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
> >>> +XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
> >> ^^^^^^^^^
> >>
> >> Best regards,
> >> Romain
> >>
> >>
> >>> +XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
> >>> +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
> >>> +
> >>> define XILINX_PREBUILT_INSTALL
> >>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/plm.elf \
> >>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
> >>> $(BINARIES_DIR)/plm.elf
> >>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf \
> >>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
> >>> $(BINARIES_DIR)/psmfw.elf
> >>> - $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \
> >>> + $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
> >>> $(BINARIES_DIR)/vpl_gen_fixed.pdi
> >>> endef
> >>> else # BR2_TARGET_XILINX_PREBUILT_VERSAL
> >>>
> >>> ---
> >>> base-commit: 55c8c2328e73725e9ab41c8dc566b09f49f2aad5
> >>> change-id: 20240621-versal-xsa-support-prebuilt-9c5aed5be687
> >>>
> >>> Best regards,
> >>
> >> _______________________________________________
> >> buildroot mailing list
> >> buildroot@buildroot.org
> >> https://lists.buildroot.org/mailman/listinfo/buildroot
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-13 19:56 ` Brandon Maier via buildroot
@ 2024-07-13 20:09 ` Romain Naour via buildroot
2024-07-13 23:58 ` Frager, Neal via buildroot
0 siblings, 1 reply; 8+ messages in thread
From: Romain Naour via buildroot @ 2024-07-13 20:09 UTC (permalink / raw)
To: Brandon Maier, buildroot; +Cc: Yann E. MORIN, Neal Frager
Hello,
Le 13/07/2024 à 21:56, Brandon Maier a écrit :
> On Sat Jul 13, 2024 at 4:46 PM UTC, Romain Naour via buildroot wrote:
>> Hello Brandon,
>>
>> Le 13/07/2024 à 18:21, Brandon Maier a écrit :
>>> On Sat Jul 13, 2024 at 4:08 PM UTC, Romain Naour via buildroot wrote:
>>>> Hello Brandon, All,
[...]
>>>>> @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
>>>>> # 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.
>>>>> +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
>>>>> +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
>>>>> +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
>>>>
>>>> is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
>>>> for Xilinx dev boards?
>>>
>>> I had not noticed that. I double-checked and the file does have '_'
>>> inside the XSA, but does not in the Xilinx prebuilt repo. It is strange,
>>> but this does work as intended.
>>
>> Ok, that is strange indeed.
>>
>> Maybe a comment about that in the .mk would be useful?
>
> No problem, I sent a v4 to reword the comment block above to call out
> the psm_fw.elf
Thanks, I finally added a comment before merging the V3.
https://gitlab.com/buildroot.org/buildroot/-/commit/1dcb311afe1043bf369099eec8b6fa6a06adc0fb
Best regards,
Romain
>
> Thanks,
> Brandon
>
>>
>> Best regards,
>> Romain
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA
2024-07-13 20:09 ` Romain Naour via buildroot
@ 2024-07-13 23:58 ` Frager, Neal via buildroot
0 siblings, 0 replies; 8+ messages in thread
From: Frager, Neal via buildroot @ 2024-07-13 23:58 UTC (permalink / raw)
To: Romain Naour, Brandon Maier, buildroot@buildroot.org; +Cc: Yann E. MORIN
[-- Attachment #1.1: Type: text/plain, Size: 2122 bytes --]
Hello Romain, Brandon,
>> Hello Brandon,
>>
>> Le 13/07/2024 à 18:21, Brandon Maier a écrit :
>>> On Sat Jul 13, 2024 at 4:08 PM UTC, Romain Naour via buildroot wrote:
>>>> Hello Brandon, All,
[...]
>>>>> @@ -20,12 +31,22 @@ ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
>>>>> # 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.
>>>>> +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
>>>>> +XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
>>>>> +XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm_fw.elf
>>>>
>>>> is '_' character intended in "psm_fw.elf" file name instead of "psmfw.elf" as
>>>> for Xilinx dev boards?
>>>
>>> I had not noticed that. I double-checked and the file does have '_'
>>> inside the XSA, but does not in the Xilinx prebuilt repo. It is strange,
>>> but this does work as intended.
>>
>> Ok, that is strange indeed.
>>
>> Maybe a comment about that in the .mk would be useful?
>
> No problem, I sent a v4 to reword the comment block above to call out
> the psm_fw.elf
>Thanks, I finally added a comment before merging the V3.
> https://gitlab.com/buildroot.org/buildroot/-/commit/1dcb311afe1043bf369099eec8b6fa6a06adc0fb
> Best regards,
> Romain
I have been following your discussion.
I agree that it is not clean that our Vivado
team is adding an '_' in the psmfw.elf file
name. This is strange because there is
no '_' in the name when building with our
embeddedsw github or with Vitis.
For this reason, I am going to issue an
internal change request to get rid of this
'_' character in future Vivado releases.
That said, could we change this patch to
use a '*' instead of the '_'? This way it
will work with current versions of Vivado that
add the '_' character to the file name and
future versions that will remove this character.
Could one of you create a patch for this?
>
> Thanks,
> Brandon
>
>>
>> Best regards,
>> Romain
Best regards,
Neal Frager
AMD
[-- Attachment #1.2: Type: text/html, Size: 4018 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-07-13 23:58 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-01 16:48 [Buildroot] [PATCH v3] boot/xilinx-prebuilt: support custom boards using XSA Brandon Maier via buildroot
2024-07-13 16:08 ` Romain Naour via buildroot
2024-07-13 16:21 ` Brandon Maier via buildroot
2024-07-13 16:46 ` Romain Naour via buildroot
2024-07-13 19:52 ` Romain Naour via buildroot
2024-07-13 19:56 ` Brandon Maier via buildroot
2024-07-13 20:09 ` Romain Naour via buildroot
2024-07-13 23:58 ` Frager, Neal via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.