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 |
>>>>> "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.
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
>>>>> "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.
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
>>>>> "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?
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
>>>>> "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 --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))
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