[PATCH v2] arch: Add explicit linker script for u-boot-elf
Tom Rini
trini at konsulko.com
Mon Apr 6 01:04:48 CEST 2020
On Mon, Mar 30, 2020 at 01:58:59PM +0200, Michal Simek wrote:
> Commit f4dc714aaa2d ("arm64: Turn u-boot.bin back into an ELF file after
> relocate-rela")
> introduce REMAKE_ELF option to recreate u-boot.elf from u-boot ->
> u-boot.bin + DT -> u-boot.elf.
>
> The best is to ilustrate it from make V=1 output
> cat u-boot-nodtb.bin dts/dt.dtb > u-boot-dtb.bin
> cp u-boot-dtb.bin u-boot.bin
> aarch64-linux-gnu-objcopy -I binary -B aarch64 -O elf64-littleaarch64 u-boot.bin u-boot-elf.o
> aarch64-linux-gnu-ld.bfd u-boot-elf.o -o u-boot.elf --defsym="_start"=0x8000000 -Ttext=0x8000000
>
> Last command has no explicit linker script passed that's why toolchain
> internal linker script is used.
> In Binutils 2.32 case it contains SIZEOF_HEADERS symbol which has changed
> behavior by commit
> https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=64029e93683a266c38d19789e780f3748bd6a188
> which result in situation that program headers has changed from
> (xilinx_zynqmp_mini_defconfig)
>
> Program Headers:
> Type Offset VirtAddr PhysAddr
> FileSiz MemSiz Flags Align
> LOAD 0x0000000000010000 0x00000000fffc0000 0x00000000fffc0000
> 0x0000000000018918 0x0000000000018918 RW 0x10000
>
> to
>
> Program Headers:
> Type Offset VirtAddr PhysAddr
> FileSiz MemSiz Flags Align
> LOAD 0x0000000000000000 0x00000000fffb0000 0x00000000fffb0000
> 0x0000000000028918 0x0000000000028918 RW 0x10000
>
> Xilinx tools like XSDB or Bootgen are using program headers for loading ELF
> to the right location and by above binutils change ELF is loaded to
> incorrect location.
>
> The patch is explicitly use u-boot-elf.lds (just cat now) for u-boot.elf
> recreation which is called when REMAKE_ELF is setup.
> By purpose u-boot-elf.lds doesn't contain OUTPUT_FORMAT/OUTPUT_ARCH to be
> able to use by all archs.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> Reviewed-by: Tom Rini <trini at konsulko.com>
> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
> Tested-By: Álvaro Fernández Rojas <noltari at gmail.com>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200405/61c83e8f/attachment.sig>
More information about the U-Boot
mailing list