diff mbox series

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

Message ID 20221022082824.35440-1-neal.frager@amd.com
State Superseded, archived
Headers show
Series [v1,1/1] package/bootgen: add bootgen host package | expand

Commit Message

Neal Frager Oct. 22, 2022, 8:28 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>
---
 DEVELOPERS                     |  1 +
 package/Config.in.host         |  1 +
 package/bootgen/Config.in.host | 10 ++++++++++
 package/bootgen/bootgen.mk     | 24 ++++++++++++++++++++++++
 4 files changed, 36 insertions(+)
 create mode 100644 package/bootgen/Config.in.host
 create mode 100644 package/bootgen/bootgen.mk

Comments

Peter Korsgaard Oct. 22, 2022, 9:09 a.m. UTC | #1
>>>>> "Neal" == Neal Frager <neal.frager@amd.com> writes:

Hi,

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

 > +################################################################################
 > +#
 > +# bootgen
 > +#
 > +################################################################################
 > +
 > +BOOTGEN_VERSION = xilinx_v2022.2
 > +BOOTGEN_SITE = $(call github,Xilinx,bootgen,$(BOOTGEN_VERSION))
 > +HOST_BOOTGEN_DEPENDENCIES = host-openssl
 > +BOOTGEN_LICENSE = Apache-2.0
 > +BOOTGEN_LICENSE_FILES = LICENSE
 > +
 > +BOOTGEN_EXTRA_CFLAGS = "LIBS=$(HOST_DIR)/lib/libssl.a $(HOST_DIR)/lib/libcrypto.a -ldl -lpthread"
 > +BOOTGEN_EXTRA_CFLAGS += "INCLUDE_USER=-I$(HOST_DIR)/include/openssl"

I have a package for bootgen as well at $WORK, where I instead use
host-pkgcon which is a bit nicer than these hard coded values, E.G.:

HOST_BOOTGEN_DEPENDENCIES = host-openssl host-pkgconf

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`" \
                -C $(@D)
endef

Bootgen also use modern C++ features, so we need to pass -std=c++0x to
fix building on older host machines, E.G.:

CXXFLAGS="$(HOST_CXXFLAGS) -std=c++0x"

I also had issues with linking with the embedded copy of flex if the
build host has the flex development package installed unless I
add the following patch, which unfortunately is still not merged:

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

Please also add a bootgen.hash file with the hash of the tarball and
LICENSE file.
yegorslists--- via buildroot Oct. 22, 2022, 9:22 a.m. UTC | #2
Hi Peter,

Thank you for the quick feedback.

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

 > +################################################################################
 > +#
 > +# bootgen
 > +#
 > +################################################################################
 > +
 > +BOOTGEN_VERSION = xilinx_v2022.2
 > +BOOTGEN_SITE = $(call github,Xilinx,bootgen,$(BOOTGEN_VERSION))
 > +HOST_BOOTGEN_DEPENDENCIES = host-openssl  > +BOOTGEN_LICENSE = Apache-2.0  > +BOOTGEN_LICENSE_FILES = LICENSE  > +  > +BOOTGEN_EXTRA_CFLAGS = "LIBS=$(HOST_DIR)/lib/libssl.a $(HOST_DIR)/lib/libcrypto.a -ldl -lpthread"
 > +BOOTGEN_EXTRA_CFLAGS += "INCLUDE_USER=-I$(HOST_DIR)/include/openssl"

> I have a package for bootgen as well at $WORK, where I instead use host-pkgcon which is a bit nicer than these hard coded values, E.G.:

What do you mean by $WORK?

> HOST_BOOTGEN_DEPENDENCIES = host-openssl host-pkgconf

> 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`" \
>                -C $(@D)
> endef

Ok.  I will update this for v2.

> Bootgen also use modern C++ features, so we need to pass -std=c++0x to fix building on older host machines, E.G.:

> CXXFLAGS="$(HOST_CXXFLAGS) -std=c++0x"

Ok.  I will update this for v2.

> I also had issues with linking with the embedded copy of flex if the build host has the flex development package installed unless I add the following patch, which unfortunately is still not merged:

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

Thank you for sharing.  I will push this internally to see if we can get this prioritized.

> Please also add a bootgen.hash file with the hash of the tarball and LICENSE file.

Would you mind giving me instructions for generating the bootgen.hash, so I do not need to search for it?

Thank you for your help!

Best regards,
Neal Frager
AMD
Peter Korsgaard Oct. 22, 2022, 9:52 a.m. UTC | #3
>>>>> "Frager," == Frager, Neal <neal.frager@amd.com> writes:

Hi,

 >> I have a package for bootgen as well at $WORK, where I instead use
 >> host-pkgcon which is a bit nicer than these hard coded values, E.G.:

 > What do you mean by $WORK?

Simply that I have done it for an internal Buildroot external tree that
I use at work.


 >> I also had issues with linking with the embedded copy of flex if the
 >> build host has the flex development package installed unless I add
 >> the following patch, which unfortunately is still not merged:

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

 > Thank you for sharing.  I will push this internally to see if we can get this prioritized.

Thanks!


 >> Please also add a bootgen.hash file with the hash of the tarball and LICENSE file.

 > Would you mind giving me instructions for generating the bootgen.hash, so I do not need to search for it?

It is simply a question of running sha256sum on the tarball and LICENSE
files. See
https://buildroot.org/downloads/manual/manual.html#adding-packages-hash
for details.
yegorslists--- via buildroot Nov. 3, 2022, 10:52 a.m. UTC | #4
Hi Peter,

>> I also had issues with linking with the embedded copy of flex if the  >> build host has the flex development package installed unless I add  >> the following patch, which unfortunately is still not merged:

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

 > Thank you for sharing.  I will push this internally to see if we can get this prioritized.

https://github.com/Xilinx/bootgen/commit/af4f7083ea92931a07e47995eb2bc2a348c577ed

Committed, thanks.

Best regards,
Neal Frager
AMD
Peter Korsgaard Nov. 3, 2022, 11:02 a.m. UTC | #5
>>>>> "Frager," == Frager, Neal <neal.frager@amd.com> writes:

 > Hi Peter,
 >>> I also had issues with linking with the embedded copy of flex if
 > the >> build host has the flex development package installed unless I
 > add >> the following patch, which unfortunately is still not merged:

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

 >> Thank you for sharing.  I will push this internally to see if we can get this prioritized.

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

 > Committed, thanks.

Thanks! Is there any specific reason why the PR was not merged / my
authorship was dropped?
yegorslists--- via buildroot Nov. 3, 2022, 11:03 a.m. UTC | #6
Hi Peter,

>>> I also had issues with linking with the embedded copy of flex if  > the >> build host has the flex development package installed unless I  > add >> the following patch, which unfortunately is still not merged:

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

 >> Thank you for sharing.  I will push this internally to see if we can get this prioritized.

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

 > Committed, thanks.

> Thanks! Is there any specific reason why the PR was not merged / my authorship was dropped?

I don't know.  I will ask and get back to you.

Best regards,
Neal Frager
AMD
Peter Korsgaard Nov. 3, 2022, 11:24 a.m. UTC | #7
>>>>> "Frager," == Frager, Neal <neal.frager@amd.com> writes:

 > Hi Peter,
 >>>> I also had issues with linking with the embedded copy of flex if >
 >> the >> build host has the flex development package installed unless
 >> I > add >> the following patch, which unfortunately is still not
 >> merged:

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

 >>> Thank you for sharing.  I will push this internally to see if we can get this prioritized.

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

 >> Committed, thanks.

 >> Thanks! Is there any specific reason why the PR was not merged / my authorship was dropped?

 > I don't know.  I will ask and get back to you.

It is no big deal, but I found my commit message clearer than what was
finally committed.
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.mk b/package/bootgen/bootgen.mk
new file mode 100644
index 0000000000..8ba91918f7
--- /dev/null
+++ b/package/bootgen/bootgen.mk
@@ -0,0 +1,24 @@ 
+################################################################################
+#
+# bootgen
+#
+################################################################################
+
+BOOTGEN_VERSION = xilinx_v2022.2
+BOOTGEN_SITE = $(call github,Xilinx,bootgen,$(BOOTGEN_VERSION))
+HOST_BOOTGEN_DEPENDENCIES = host-openssl
+BOOTGEN_LICENSE = Apache-2.0
+BOOTGEN_LICENSE_FILES = LICENSE
+
+BOOTGEN_EXTRA_CFLAGS = "LIBS=$(HOST_DIR)/lib/libssl.a $(HOST_DIR)/lib/libcrypto.a -ldl -lpthread"
+BOOTGEN_EXTRA_CFLAGS += "INCLUDE_USER=-I$(HOST_DIR)/include/openssl"
+
+define HOST_BOOTGEN_BUILD_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) $(BOOTGEN_EXTRA_CFLAGS) -C $(@D)
+endef
+
+define HOST_BOOTGEN_INSTALL_CMDS
+	$(INSTALL) -m 0755 -D $(@D)/bootgen $(HOST_DIR)/bin/bootgen
+endef
+
+$(eval $(host-generic-package))