* [Buildroot] [PATCH v1 1/2] package/fpgautil: new package
@ 2025-04-08 11:48 Neal Frager via buildroot
2025-04-08 11:48 ` [Buildroot] [PATCH v1 2/2] configs/xilinx: add fpgautil to xilinx defconfigs Neal Frager via buildroot
2025-04-22 20:36 ` [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Thomas Petazzoni via buildroot
0 siblings, 2 replies; 6+ messages in thread
From: Neal Frager via buildroot @ 2025-04-08 11:48 UTC (permalink / raw)
To: buildroot
Cc: ibai.erkiaga-elorza, luca.ceresoli, brandon.maier, ju.o,
thomas.petazzoni, Neal Frager, fabio.caccamo, romain.naour,
michal.simek, arnout
Add a new package to Buildroot called fpgautil which builds the Xilinx
fpgautil script which can be used for loading FPGA bitstreams on zynq, zynqmp
and versal products at run-time. This is a handy application for loading
FPGA bitstreams and their corresponding device tree overlays.
An explanation of how this script can be used for each type of product can be
found on the wiki pages below.
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841847/Solution+ZynqMP+PL+Programming
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1188397412/Solution+Versal+PL+Programming
In addition, the source code for fpgautil can be found here:
https://github.com/Xilinx/meta-xilinx/blob/master/meta-xilinx-core/recipes-bsp/fpga-manager-script/files/fpgautil.c
The fpgautil script can be used hand in hand with the Versal Segmented
Configuration with the following example command for programming the pld.pdi
file to the Versal FPGA:
fpgautil -b /lib/firmware/<design-name>_pld.pdi -o /lib/firmware/<dtbo-name>.dtbo
Signed-off-by: Neal Frager <neal.frager@amd.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/fpgautil/Config.in | 8 ++++++++
package/fpgautil/fpgautil.hash | 3 +++
package/fpgautil/fpgautil.mk | 22 ++++++++++++++++++++++
5 files changed, 35 insertions(+)
create mode 100644 package/fpgautil/Config.in
create mode 100644 package/fpgautil/fpgautil.hash
create mode 100644 package/fpgautil/fpgautil.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 1c84f95943..fe5cf29ccf 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2484,6 +2484,7 @@ F: configs/zynqmp_zcu104_defconfig
F: configs/zynqmp_zcu106_defconfig
F: package/binutils-bare-metal/
F: package/bootgen/
+F: package/fpgautil/
F: package/gcc-bare-metal/
F: package/newlib-bare-metal/
F: toolchain/toolchain-bare-metal-buildroot/
diff --git a/package/Config.in b/package/Config.in
index 291e784f26..494cae887f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -443,6 +443,7 @@ menu "Firmware"
source "package/armbian-firmware/Config.in"
source "package/b43-firmware/Config.in"
source "package/brcmfmac_sdio-firmware-rpi/Config.in"
+ source "package/fpgautil/Config.in"
source "package/linux-firmware/Config.in"
source "package/murata-cyw-fw/Config.in"
source "package/nxp-bt-wifi-firmware/Config.in"
diff --git a/package/fpgautil/Config.in b/package/fpgautil/Config.in
new file mode 100644
index 0000000000..8a1f557f7e
--- /dev/null
+++ b/package/fpgautil/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_FPGAUTIL
+ bool "fpgautil script"
+ depends on BR2_arm || BR2_aarch64
+ help
+ Xilinx FPGA Manager Utility for zynq, zynqmp
+ and versal products.
+
+ https://github.com/Xilinx/meta-xilinx/blob/master/meta-xilinx-core/recipes-bsp/fpga-manager-script/files/fpgautil.c
diff --git a/package/fpgautil/fpgautil.hash b/package/fpgautil/fpgautil.hash
new file mode 100644
index 0000000000..2723323a21
--- /dev/null
+++ b/package/fpgautil/fpgautil.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 439a3681d8efa9641ab39c7645836b9ac78b2fdb36242f9bc94c1f3dfb2d9c4e fpgautil-xlnx-rel-v2024.2_update3.tar.gz
+sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e COPYING.MIT
diff --git a/package/fpgautil/fpgautil.mk b/package/fpgautil/fpgautil.mk
new file mode 100644
index 0000000000..3f75412e7e
--- /dev/null
+++ b/package/fpgautil/fpgautil.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# fpgautil
+#
+################################################################################
+
+FPGAUTIL_VERSION = xlnx-rel-v2024.2_update3
+FPGAUTIL_SITE = $(call github,Xilinx,meta-xilinx,$(FPGAUTIL_VERSION))
+FPGAUTIL_LICENSE = MIT
+FPGAUTIL_LICENSE_FILES = COPYING.MIT
+
+define FPGAUTIL_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_LDFLAGS) \
+ $(@D)/meta-xilinx-core/recipes-bsp/fpga-manager-script/files/fpgautil.c \
+ -o $(@D)/fpgautil
+endef
+
+define FPGAUTIL_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 0755 -D $(@D)/fpgautil $(TARGET_DIR)/bin/fpgautil
+endef
+
+$(eval $(generic-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v1 2/2] configs/xilinx: add fpgautil to xilinx defconfigs
2025-04-08 11:48 [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Neal Frager via buildroot
@ 2025-04-08 11:48 ` Neal Frager via buildroot
2025-04-22 20:36 ` [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Thomas Petazzoni via buildroot
1 sibling, 0 replies; 6+ messages in thread
From: Neal Frager via buildroot @ 2025-04-08 11:48 UTC (permalink / raw)
To: buildroot
Cc: ibai.erkiaga-elorza, luca.ceresoli, brandon.maier, ju.o,
thomas.petazzoni, Neal Frager, fabio.caccamo, romain.naour,
michal.simek, arnout
This adds the fpgautil application to all Xilinx zynq, zynqmp and versal
defconfigs.
Signed-off-by: Neal Frager <neal.frager@amd.com>
---
configs/versal_vck190_defconfig | 1 +
configs/versal_vek280_defconfig | 1 +
configs/versal_vpk180_defconfig | 1 +
configs/zynq_microzed_defconfig | 1 +
configs/zynq_zc702_defconfig | 1 +
configs/zynq_zc706_defconfig | 1 +
configs/zynq_zed_defconfig | 1 +
configs/zynqmp_kria_kd240_defconfig | 1 +
configs/zynqmp_kria_kr260_defconfig | 1 +
configs/zynqmp_kria_kv260_defconfig | 1 +
configs/zynqmp_zcu102_defconfig | 1 +
configs/zynqmp_zcu104_defconfig | 1 +
configs/zynqmp_zcu106_defconfig | 1 +
13 files changed, 13 insertions(+)
diff --git a/configs/versal_vck190_defconfig b/configs/versal_vck190_defconfig
index 2f40c210a8..dfc2651f49 100644
--- a/configs/versal_vck190_defconfig
+++ b/configs/versal_vck190_defconfig
@@ -15,6 +15,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/versal-vck190-rev1.1"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/versal_vek280_defconfig b/configs/versal_vek280_defconfig
index af8bed884f..c444b04e97 100644
--- a/configs/versal_vek280_defconfig
+++ b/configs/versal_vek280_defconfig
@@ -15,6 +15,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/versal-vek280-revB"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/versal_vpk180_defconfig b/configs/versal_vpk180_defconfig
index afa606ec8c..7f8ed0421c 100644
--- a/configs/versal_vpk180_defconfig
+++ b/configs/versal_vpk180_defconfig
@@ -15,6 +15,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/versal-vpk180-revA"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig
index b9b2da3849..864e9cafd3 100644
--- a/configs/zynq_microzed_defconfig
+++ b/configs/zynq_microzed_defconfig
@@ -16,6 +16,7 @@ BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynq-microzed"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
diff --git a/configs/zynq_zc702_defconfig b/configs/zynq_zc702_defconfig
index ab42abe655..8108bbc7e7 100644
--- a/configs/zynq_zc702_defconfig
+++ b/configs/zynq_zc702_defconfig
@@ -16,6 +16,7 @@ BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynq-zc702"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
diff --git a/configs/zynq_zc706_defconfig b/configs/zynq_zc706_defconfig
index d7ce9cf11a..eaa0b8daea 100644
--- a/configs/zynq_zc706_defconfig
+++ b/configs/zynq_zc706_defconfig
@@ -16,6 +16,7 @@ BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynq-zc706"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig
index c9e8e7ea2c..d0c9820273 100644
--- a/configs/zynq_zed_defconfig
+++ b/configs/zynq_zed_defconfig
@@ -16,6 +16,7 @@ BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynq-zed"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
diff --git a/configs/zynqmp_kria_kd240_defconfig b/configs/zynqmp_kria_kd240_defconfig
index 261b73d6cf..9cb7c1d5fe 100644
--- a/configs/zynqmp_kria_kd240_defconfig
+++ b/configs/zynqmp_kria_kd240_defconfig
@@ -14,6 +14,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-smk-k24-revA-sck-kd-g-revA"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/zynqmp_kria_kr260_defconfig b/configs/zynqmp_kria_kr260_defconfig
index 2cf2b98aa5..ae873a455d 100644
--- a/configs/zynqmp_kria_kr260_defconfig
+++ b/configs/zynqmp_kria_kr260_defconfig
@@ -14,6 +14,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-smk-k26-revA-sck-kr-g-revB"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/zynqmp_kria_kv260_defconfig b/configs/zynqmp_kria_kv260_defconfig
index ef6a23f2a2..aec4f9359c 100644
--- a/configs/zynqmp_kria_kv260_defconfig
+++ b/configs/zynqmp_kria_kv260_defconfig
@@ -14,6 +14,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-smk-k26-revA-sck-kv-g-revB"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/zynqmp_zcu102_defconfig b/configs/zynqmp_zcu102_defconfig
index 762a54d968..b2acea63bb 100644
--- a/configs/zynqmp_zcu102_defconfig
+++ b/configs/zynqmp_zcu102_defconfig
@@ -14,6 +14,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-zcu102-rev1.0"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/zynqmp_zcu104_defconfig b/configs/zynqmp_zcu104_defconfig
index 92e0d41736..4dd6e50d72 100644
--- a/configs/zynqmp_zcu104_defconfig
+++ b/configs/zynqmp_zcu104_defconfig
@@ -14,6 +14,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-zcu104-revC"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/zynqmp_zcu106_defconfig b/configs/zynqmp_zcu106_defconfig
index 51287fdffb..840bbf68f2 100644
--- a/configs/zynqmp_zcu106_defconfig
+++ b/configs/zynqmp_zcu106_defconfig
@@ -14,6 +14,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="xilinx"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-zcu106-revA"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FPGAUTIL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
# BR2_TARGET_ROOTFS_TAR is not set
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v1 1/2] package/fpgautil: new package
2025-04-08 11:48 [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Neal Frager via buildroot
2025-04-08 11:48 ` [Buildroot] [PATCH v1 2/2] configs/xilinx: add fpgautil to xilinx defconfigs Neal Frager via buildroot
@ 2025-04-22 20:36 ` Thomas Petazzoni via buildroot
2025-04-24 5:31 ` Frager, Neal via buildroot
1 sibling, 1 reply; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-22 20:36 UTC (permalink / raw)
To: Neal Frager via buildroot
Cc: Neal Frager, ibai.erkiaga-elorza, luca.ceresoli, brandon.maier,
ju.o, fabio.caccamo, romain.naour, michal.simek, arnout
Hello Neal,
On Tue, 8 Apr 2025 12:48:33 +0100
Neal Frager via buildroot <buildroot@buildroot.org> wrote:
> Add a new package to Buildroot called fpgautil which builds the Xilinx
> fpgautil script which can be used for loading FPGA bitstreams on zynq, zynqmp
> and versal products at run-time. This is a handy application for loading
> FPGA bitstreams and their corresponding device tree overlays.
>
> An explanation of how this script can be used for each type of product can be
> found on the wiki pages below.
>
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841847/Solution+ZynqMP+PL+Programming
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1188397412/Solution+Versal+PL+Programming
>
> In addition, the source code for fpgautil can be found here:
> https://github.com/Xilinx/meta-xilinx/blob/master/meta-xilinx-core/recipes-bsp/fpga-manager-script/files/fpgautil.c
>
> The fpgautil script can be used hand in hand with the Versal Segmented
> Configuration with the following example command for programming the pld.pdi
> file to the Versal FPGA:
>
> fpgautil -b /lib/firmware/<design-name>_pld.pdi -o /lib/firmware/<dtbo-name>.dtbo
>
> Signed-off-by: Neal Frager <neal.frager@amd.com>
Thanks for this new package.
I think we should probably name this xilinx-fpgautil, because it's
really very specific to Xilinx platforms if I understand correctly.
> diff --git a/package/fpgautil/Config.in b/package/fpgautil/Config.in
> new file mode 100644
> index 0000000000..8a1f557f7e
> --- /dev/null
> +++ b/package/fpgautil/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_FPGAUTIL
> + bool "fpgautil script"
This should only contain the package name, i.e "fpgautil", or if we
rename it "xilinx-fpgautil".
> +FPGAUTIL_VERSION = xlnx-rel-v2024.2_update3
> +FPGAUTIL_SITE = $(call github,Xilinx,meta-xilinx,$(FPGAUTIL_VERSION))
I was going to suggest that we download only the source file, but that
doesn't work because it doesn't contain the version in its file name.
So we have to download the whole Yocto layer just to grab one source
file. Sigh.
What about using the vendor-agnostic OpenFPGALoader instead, packaged
as package/openfpgaloader/ ?
Best regards,
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v1 1/2] package/fpgautil: new package
2025-04-22 20:36 ` [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Thomas Petazzoni via buildroot
@ 2025-04-24 5:31 ` Frager, Neal via buildroot
2025-04-24 19:39 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 6+ messages in thread
From: Frager, Neal via buildroot @ 2025-04-24 5:31 UTC (permalink / raw)
To: Thomas Petazzoni, Neal Frager via buildroot
Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
brandon.maier@collins.com, ju.o@free.fr, Caccamo, Fabio,
romain.naour@smile.fr, Simek, Michal, arnout@mind.be
[AMD Official Use Only - AMD Internal Distribution Only]
Hello Thomas,
> Add a new package to Buildroot called fpgautil which builds the Xilinx
> fpgautil script which can be used for loading FPGA bitstreams on zynq, zynqmp
> and versal products at run-time. This is a handy application for loading
> FPGA bitstreams and their corresponding device tree overlays.
>
> An explanation of how this script can be used for each type of product can be
> found on the wiki pages below.
>
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841847/Solution+ZynqMP+PL+Programming
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1188397412/Solution+Versal+PL+Programming
>
> In addition, the source code for fpgautil can be found here:
> https://github.com/Xilinx/meta-xilinx/blob/master/meta-xilinx-core/recipes-bsp/fpga-manager-script/files/fpgautil.c
>
> The fpgautil script can be used hand in hand with the Versal Segmented
> Configuration with the following example command for programming the pld.pdi
> file to the Versal FPGA:
>
> fpgautil -b /lib/firmware/<design-name>_pld.pdi -o /lib/firmware/<dtbo-name>.dtbo
>
> Signed-off-by: Neal Frager <neal.frager@amd.com>
> Thanks for this new package.
Thank you for reviewing it!
> I think we should probably name this xilinx-fpgautil, because it's
> really very specific to Xilinx platforms if I understand correctly.
Yes sure, no problem.
> diff --git a/package/fpgautil/Config.in b/package/fpgautil/Config.in
> new file mode 100644
> index 0000000000..8a1f557f7e
> --- /dev/null
> +++ b/package/fpgautil/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_FPGAUTIL
> + bool "fpgautil script"
> This should only contain the package name, i.e "fpgautil", or if we
> rename it "xilinx-fpgautil".
Ok, I will change this.
> +FPGAUTIL_VERSION = xlnx-rel-v2024.2_update3
> +FPGAUTIL_SITE = $(call github,Xilinx,meta-xilinx,$(FPGAUTIL_VERSION))
> I was going to suggest that we download only the source file, but that
> doesn't work because it doesn't contain the version in its file name.
> So we have to download the whole Yocto layer just to grab one source
> file. Sigh.
I had the exact same thought, but could not come up with a better solution.
At least the meta-xilinx repo is still <1MB in size, so the download and
extraction time is still in the noise for the overall build process.
> What about using the vendor-agnostic OpenFPGALoader instead, packaged
> as package/openfpgaloader/ ?
I was not aware of this package. Do you know how well it is maintained?
At the moment, I have two reasons for wanting to still support the
xilinx-fpgautil package.
1) The OpenFPGALoader does not seem to support Versal PDI files yet, so it
would be incomplete for our needs.
2) All the Xilinx documentation talks about the fpgautil program. And on top
of this, I had a discussion with one of my customers regarding the use of
Buildroot vs Yocto, and their primary reason for why they felt they "had" to
use Yocto is because it included this fpgautil program. This is what
triggered me to want to add it to Buildroot. Especially since adding it is
quite simple to do.
Perhaps we could create both packages, xilinx-fpgautil and the OpenFPGALoader?
In the meantime, I will submit a v2 of the xilinx-fpgautil package.
Best regards,
Neal Frager
AMD
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v1 1/2] package/fpgautil: new package
2025-04-24 5:31 ` Frager, Neal via buildroot
@ 2025-04-24 19:39 ` Thomas Petazzoni via buildroot
2025-04-24 20:14 ` Frager, Neal via buildroot
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-24 19:39 UTC (permalink / raw)
To: Frager, Neal
Cc: Neal Frager via buildroot, Erkiaga Elorza, Ibai,
luca.ceresoli@bootlin.com, brandon.maier@collins.com,
ju.o@free.fr, Caccamo, Fabio, romain.naour@smile.fr,
Simek, Michal, arnout@mind.be
Hello Neal,
On Thu, 24 Apr 2025 05:31:57 +0000
"Frager, Neal" <neal.frager@amd.com> wrote:
> > This should only contain the package name, i.e "fpgautil", or if we
> > rename it "xilinx-fpgautil".
>
> Ok, I will change this.
Thanks, I've seen your v2. Much appreciated.
> > +FPGAUTIL_VERSION = xlnx-rel-v2024.2_update3
> > +FPGAUTIL_SITE = $(call github,Xilinx,meta-xilinx,$(FPGAUTIL_VERSION))
>
> > I was going to suggest that we download only the source file, but that
> > doesn't work because it doesn't contain the version in its file name.
> > So we have to download the whole Yocto layer just to grab one source
> > file. Sigh.
>
> I had the exact same thought, but could not come up with a better solution.
> At least the meta-xilinx repo is still <1MB in size, so the download and
> extraction time is still in the noise for the overall build process.
Ah, it's only 1 MB, then fair enough.
> > What about using the vendor-agnostic OpenFPGALoader instead, packaged
> > as package/openfpgaloader/ ?
>
> I was not aware of this package. Do you know how well it is maintained?
The Buildroot package I don't know, but the upstream OpenFPGALoader
package is very active, and well maintained. It is becoming the
de-facto open-source standard for FPGA programming.
> At the moment, I have two reasons for wanting to still support the
> xilinx-fpgautil package.
>
> 1) The OpenFPGALoader does not seem to support Versal PDI files yet, so it
> would be incomplete for our needs.
Correct. My point was not to claim that it was right now a drop-in
replacement, but that it was another area where Xilinx could try to
leverage existing vendor-neutral projects rather than inventing
yet-another-vendor-specific-non-standard tool like vendors like to
usually do :-)
> 2) All the Xilinx documentation talks about the fpgautil program. And on top
> of this, I had a discussion with one of my customers regarding the use of
> Buildroot vs Yocto, and their primary reason for why they felt they "had" to
> use Yocto is because it included this fpgautil program. This is what
> triggered me to want to add it to Buildroot. Especially since adding it is
> quite simple to do.
Understood.
> Perhaps we could create both packages, xilinx-fpgautil and the OpenFPGALoader?
OpenFPGALoader is already packaged in Buildroot. But yes, there's no
problem with having packages for both.
Best regards,
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v1 1/2] package/fpgautil: new package
2025-04-24 19:39 ` Thomas Petazzoni via buildroot
@ 2025-04-24 20:14 ` Frager, Neal via buildroot
0 siblings, 0 replies; 6+ messages in thread
From: Frager, Neal via buildroot @ 2025-04-24 20:14 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: Neal Frager via buildroot, Erkiaga Elorza, Ibai,
luca.ceresoli@bootlin.com, brandon.maier@collins.com,
ju.o@free.fr, Caccamo, Fabio, romain.naour@smile.fr,
Simek, Michal, arnout@mind.be
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Thomas,
> > This should only contain the package name, i.e "fpgautil", or if we
> > rename it "xilinx-fpgautil".
>
> Ok, I will change this.
> Thanks, I've seen your v2. Much appreciated.
> > +FPGAUTIL_VERSION = xlnx-rel-v2024.2_update3
> > +FPGAUTIL_SITE = $(call github,Xilinx,meta-xilinx,$(FPGAUTIL_VERSION))
>
> > I was going to suggest that we download only the source file, but that
> > doesn't work because it doesn't contain the version in its file name.
> > So we have to download the whole Yocto layer just to grab one source
> > file. Sigh.
>
> I had the exact same thought, but could not come up with a better solution.
> At least the meta-xilinx repo is still <1MB in size, so the download and
> extraction time is still in the noise for the overall build process.
> Ah, it's only 1 MB, then fair enough.
> > What about using the vendor-agnostic OpenFPGALoader instead, packaged
> > as package/openfpgaloader/ ?
>
> I was not aware of this package. Do you know how well it is maintained?
> The Buildroot package I don't know, but the upstream OpenFPGALoader
> package is very active, and well maintained. It is becoming the
> de-facto open-source standard for FPGA programming.
Yes, it is good that OpenFPGALoader already has a Buildroot package.
> At the moment, I have two reasons for wanting to still support the
> xilinx-fpgautil package.
>
> 1) The OpenFPGALoader does not seem to support Versal PDI files yet, so it
> would be incomplete for our needs.
> Correct. My point was not to claim that it was right now a drop-in
> replacement, but that it was another area where Xilinx could try to
> leverage existing vendor-neutral projects rather than inventing
> yet-another-vendor-specific-non-standard tool like vendors like to
> usually do :-)
Yes, adding Versal PDI file support to OpenFPGALoader has just become part of
my to do list.
You are absolutely right about vendors creating their own tools all the time,
and AMD / Xilinx is certainly no exception. I think it is a combination of
wanting to have control, but also not realizing what is already available in
the open-source community. I would expect that very few people at Xilinx are
even aware that OpenFPGALoader exists.
You may be surprised how few people at AMD / Xilinx even know about
Buildroot...
> 2) All the Xilinx documentation talks about the fpgautil program. And on top
> of this, I had a discussion with one of my customers regarding the use of
> Buildroot vs Yocto, and their primary reason for why they felt they "had" to
> use Yocto is because it included this fpgautil program. This is what
> triggered me to want to add it to Buildroot. Especially since adding it is
> quite simple to do.
> Understood.
> Perhaps we could create both packages, xilinx-fpgautil and the OpenFPGALoader?
> OpenFPGALoader is already packaged in Buildroot. But yes, there's no
> problem with having packages for both.
Yes, I see the Buildroot OpenFPGALoader package now. I wrote my last email
before checking.
Thanks again for reviewing the xilinx-fpgautil package!
Best regards,
Neal Frager
AMD
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-04-24 20:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-08 11:48 [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Neal Frager via buildroot
2025-04-08 11:48 ` [Buildroot] [PATCH v1 2/2] configs/xilinx: add fpgautil to xilinx defconfigs Neal Frager via buildroot
2025-04-22 20:36 ` [Buildroot] [PATCH v1 1/2] package/fpgautil: new package Thomas Petazzoni via buildroot
2025-04-24 5:31 ` Frager, Neal via buildroot
2025-04-24 19:39 ` Thomas Petazzoni via buildroot
2025-04-24 20:14 ` Frager, Neal via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox