diff mbox series

[v2,1/1] package/bootgen: add bootgen host package

Message ID 20221022112243.31889-1-neal.frager@amd.com
State Accepted
Headers show
Series [v2,1/1] package/bootgen: add bootgen host package | expand

Commit Message

Neal Frager Oct. 22, 2022, 11:22 a.m. UTC
This patch adds Xilinx bootgen as a host package to buildroot.
bootgen is a required utility for generating a boot.bin for
Xilinx versal products.

In addition, for developers who wish to use secure boot with
Xilinx SoC products such as zynq and zynqmp, bootgen has a
more complete offering in secure boot features than the u-boot
mkimage utility.

https://github.com/Xilinx/bootgen

Signed-off-by: Neal Frager <neal.frager@amd.com>
---
V1->V2:
  - improved build statement to support older hosts
  - added bootgen.hash
---
 DEVELOPERS                     |  1 +
 package/Config.in.host         |  1 +
 package/bootgen/Config.in.host | 10 ++++++++++
 package/bootgen/bootgen.hash   |  3 +++
 package/bootgen/bootgen.mk     | 25 +++++++++++++++++++++++++
 5 files changed, 40 insertions(+)
 create mode 100644 package/bootgen/Config.in.host
 create mode 100644 package/bootgen/bootgen.hash
 create mode 100644 package/bootgen/bootgen.mk

Comments

Peter Korsgaard Oct. 23, 2022, 5:23 p.m. UTC | #1
>>>>> "Neal" == Neal Frager <neal.frager@amd.com> writes:

 > This patch adds Xilinx bootgen as a host package to buildroot.
 > bootgen is a required utility for generating a boot.bin for
 > Xilinx versal products.

 > In addition, for developers who wish to use secure boot with
 > Xilinx SoC products such as zynq and zynqmp, bootgen has a
 > more complete offering in secure boot features than the u-boot
 > mkimage utility.

 > https://github.com/Xilinx/bootgen

 > Signed-off-by: Neal Frager <neal.frager@amd.com>
 > ---
 > V1-> V2:
 >   - improved build statement to support older hosts
 >   - added bootgen.hash

Committed, thanks.
Peter Korsgaard Oct. 25, 2022, 9:38 a.m. UTC | #2
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

>>>>> "Neal" == Neal Frager <neal.frager@amd.com> writes:
 >> This patch adds Xilinx bootgen as a host package to buildroot.
 >> bootgen is a required utility for generating a boot.bin for
 >> Xilinx versal products.

 >> In addition, for developers who wish to use secure boot with
 >> Xilinx SoC products such as zynq and zynqmp, bootgen has a
 >> more complete offering in secure boot features than the u-boot
 >> mkimage utility.

 >> https://github.com/Xilinx/bootgen

 >> Signed-off-by: Neal Frager <neal.frager@amd.com>
 >> ---
 V1-> V2:
 >> - improved build statement to support older hosts
 >> - added bootgen.hash

 > Committed, thanks.

As expected, this fails to build on setups with modern flex / configs
where host-flex is built, so I've sent a patch with the fix from the PR:

https://github.com/Xilinx/bootgen/pull/20
yegorslists--- via buildroot Oct. 25, 2022, 9:51 a.m. UTC | #3
Hi Peter,

>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

>>>>> "Neal" == Neal Frager <neal.frager@amd.com> writes:
 >> This patch adds Xilinx bootgen as a host package to buildroot.
 >> bootgen is a required utility for generating a boot.bin for  >> Xilinx versal products.

 >> In addition, for developers who wish to use secure boot with  >> Xilinx SoC products such as zynq and zynqmp, bootgen has a  >> more complete offering in secure boot features than the u-boot  >> mkimage utility.

 >> https://github.com/Xilinx/bootgen

 >> Signed-off-by: Neal Frager <neal.frager@amd.com>  >> ---  V1-> V2:
 >> - improved build statement to support older hosts  >> - added bootgen.hash

 > Committed, thanks.

> As expected, this fails to build on setups with modern flex / configs where host-flex is built, so I've sent a patch with the fix from the PR:

> https://github.com/Xilinx/bootgen/pull/20

> --
> Bye, Peter Korsgaard

Thank you Peter.  I will confirm once this is committed in the bootgen master branch.

Best regards,
Neal Frager
AMD
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index c0e6f8bbef..c8183b2290 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2175,6 +2175,7 @@  F:	configs/zynq_zc706_defconfig
 F:	configs/zynqmp_zcu102_defconfig
 F:	configs/zynqmp_zcu106_defconfig
 F:	configs/zynqmp_kria_kv260_defconfig
+F:	package/bootgen
 
 N:	Nicola Di Lieto <nicola.dilieto@gmail.com>
 F:	package/uacme/
diff --git a/package/Config.in.host b/package/Config.in.host
index d6b9ee0e2d..8ccbf40a84 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -7,6 +7,7 @@  menu "Host utilities"
 	source "package/asn1c/Config.in.host"
 	source "package/babeltrace2/Config.in.host"
 	source "package/bmap-tools/Config.in.host"
+	source "package/bootgen/Config.in.host"
 	source "package/btrfs-progs/Config.in.host"
 	source "package/cbootimage/Config.in.host"
 	source "package/checkpolicy/Config.in.host"
diff --git a/package/bootgen/Config.in.host b/package/bootgen/Config.in.host
new file mode 100644
index 0000000000..0acb58dee0
--- /dev/null
+++ b/package/bootgen/Config.in.host
@@ -0,0 +1,10 @@ 
+config BR2_PACKAGE_HOST_BOOTGEN
+	bool "host bootgen"
+	help
+	  bootgen is a tool to generate a boot.bin firmware
+	  for Xilinx versal, zynqmp and zynq product families.
+
+	  Additional secure boot features are supported beyond
+	  what is included with u-boot mkimage.
+
+	  https://github.com/Xilinx/bootgen
diff --git a/package/bootgen/bootgen.hash b/package/bootgen/bootgen.hash
new file mode 100644
index 0000000000..5d77c164f3
--- /dev/null
+++ b/package/bootgen/bootgen.hash
@@ -0,0 +1,3 @@ 
+# Locally calculated
+sha256  7e07c75aa3e3965c8e33faefde037877f78130451cebc2056b096db9c66acbb3  bootgen-xilinx_v2022.2.tar.gz
+sha256  4da5f5eff0592e5d275f1871faf9e9a4fc0f6346027bfb777fa59d0aa6a59aa3  LICENSE
diff --git a/package/bootgen/bootgen.mk b/package/bootgen/bootgen.mk
new file mode 100644
index 0000000000..4589bf019f
--- /dev/null
+++ b/package/bootgen/bootgen.mk
@@ -0,0 +1,25 @@ 
+################################################################################
+#
+# bootgen
+#
+################################################################################
+
+BOOTGEN_VERSION = xilinx_v2022.2
+BOOTGEN_SITE = $(call github,Xilinx,bootgen,$(BOOTGEN_VERSION))
+HOST_BOOTGEN_DEPENDENCIES = host-openssl host-pkgconf
+BOOTGEN_LICENSE = Apache-2.0
+BOOTGEN_LICENSE_FILES = LICENSE
+
+define HOST_BOOTGEN_BUILD_CMDS
+	$(MAKE) $(HOST_CONFIGURE_OPTS) \
+		LIBS="`$(HOST_MAKE_ENV) $(PKG_CONFIG_HOST_BINARY) --libs libssl libcrypto`" \
+		INCLUDE_USER="`$(HOST_MAKE_ENV) $(PKG_CONFIG_HOST_BINARY) --cflags libssl libcrypto`" \
+		CXXFLAGS="$(HOST_CXXFLAGS) -std=c++0x" \
+		-C $(@D)
+endef
+
+define HOST_BOOTGEN_INSTALL_CMDS
+	$(INSTALL) -m 0755 -D $(@D)/bootgen $(HOST_DIR)/bin/bootgen
+endef
+
+$(eval $(host-generic-package))