Message ID | 20221123143126.17843-1-neal.frager@amd.com |
---|---|
State | Accepted |
Headers | show |
Series | [v4,1/1] boot/uboot/uboot.mk: add binary u-boot.elf support | expand |
Hello Neal, On Wed, 23 Nov 2022 07:31:26 -0700 Neal Frager via buildroot <buildroot@buildroot.org> wrote: > If a user requests a u-boot binary in elf format, > they may actually want the stripped u-boot.elf version. > This patch provides the stripped u-boot.elf binary. > > Signed-off-by: Neal Frager <neal.frager@amd.com> I've applied to next, after doing some further fixes. > config BR2_TARGET_UBOOT_FORMAT_ELF > + bool "u-boot" > + help > + Configures the u-boot ELF file with debug symbols. This option does not "configure", it "installs". Also, I'm not sure having debugging symbols in u-boot is guaranteed, I suppose it depends on whether debugging is enabled or not. So I changed this to: + Install the u-boot image, which is directly the ELF binary + for the main U-Boot, potentially with debugging symbols. > +config BR2_TARGET_UBOOT_FORMAT_BIN_ELF > bool "u-boot.elf" > + help > + Configures the u-boot.elf binary version of ELF file. > + Debug symbols are not included in this ELF file. So I researched a bit more, and this u-boot.elf is produced when CONFIG_REMAKE_ELF=y in U-Boot. So I changed this to: +config BR2_TARGET_UBOOT_FORMAT_REMAKE_ELF bool "u-boot.elf" + help + Install the u-boot.elf image, which is produced when + CONFIG_REMAKE_ELF=y. It is an ELF image (u-boot.elf) + produced from the raw U-Boot binary (u-boot.bin), which may + already have been statically relocated and may already have + a device-tree appended to it. The description was taken from the CONFIG_REMAKE_ELF help text in U-Boot. Best regards, Thomas
Hi Thomas, > If a user requests a u-boot binary in elf format, they may actually > want the stripped u-boot.elf version. > This patch provides the stripped u-boot.elf binary. > > Signed-off-by: Neal Frager <neal.frager@amd.com> > I've applied to next, after doing some further fixes. Great, thanks! > config BR2_TARGET_UBOOT_FORMAT_ELF > + bool "u-boot" > + help > + Configures the u-boot ELF file with debug symbols. > This option does not "configure", it "installs". Also, I'm not sure having debugging symbols in u-boot is guaranteed, I suppose it depends on whether debugging is enabled or not. So I changed this to: > + Install the u-boot image, which is directly the ELF binary > + for the main U-Boot, potentially with debugging symbols. Good point. Thanks for correcting this. > +config BR2_TARGET_UBOOT_FORMAT_BIN_ELF > bool "u-boot.elf" > + help > + Configures the u-boot.elf binary version of ELF file. > + Debug symbols are not included in this ELF file. > So I researched a bit more, and this u-boot.elf is produced when CONFIG_REMAKE_ELF=y in U-Boot. So I changed this to: > +config BR2_TARGET_UBOOT_FORMAT_REMAKE_ELF > bool "u-boot.elf" > + help > + Install the u-boot.elf image, which is produced when > + CONFIG_REMAKE_ELF=y. It is an ELF image (u-boot.elf) > + produced from the raw U-Boot binary (u-boot.bin), which may > + already have been statically relocated and may already have > + a device-tree appended to it. > The description was taken from the CONFIG_REMAKE_ELF help text in U-Boot. I agree that using a name that matches the u-boot config option is the right thing to do. Thanks for verifying this! Best regards, Neal Frager AMD
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in index 557472b58b..b7591d4542 100644 --- a/boot/uboot/Config.in +++ b/boot/uboot/Config.in @@ -277,7 +277,15 @@ config BR2_TARGET_UBOOT_FORMAT_NAND_BIN bool "u-boot-nand.bin" config BR2_TARGET_UBOOT_FORMAT_ELF + bool "u-boot" + help + Configures the u-boot ELF file with debug symbols. + +config BR2_TARGET_UBOOT_FORMAT_BIN_ELF bool "u-boot.elf" + help + Configures the u-boot.elf binary version of ELF file. + Debug symbols are not included in this ELF file. config BR2_TARGET_UBOOT_FORMAT_IMG bool "u-boot.img" diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 9e073daa38..55ed6b1ba2 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -60,6 +60,10 @@ UBOOT_MAKE_TARGET += mdbtrick endif endif +ifeq ($(BR2_TARGET_UBOOT_FORMAT_BIN_ELF),y) +UBOOT_BINS += u-boot.elf +endif + # Call 'make all' unconditionally UBOOT_MAKE_TARGET += all
If a user requests a u-boot binary in elf format, they may actually want the stripped u-boot.elf version. This patch provides the stripped u-boot.elf binary. Signed-off-by: Neal Frager <neal.frager@amd.com> --- V1->V2: - reduced scope to only 64-bit ARM arch platforms - non-ARM platforms may not have a u-boot.elf by default V2->V3: - test and verify u-boot.elf exists before copying V3->V4: - added a new BR2_TARGET_UBOOT_FORMAT_BIN_ELF config --- boot/uboot/Config.in | 8 ++++++++ boot/uboot/uboot.mk | 4 ++++ 2 files changed, 12 insertions(+)