[lkml]   [2011]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 2/2] FRV: Remove the note when producing the loadable image
    Remove the note when producing the loadable image as this is
    marked Allocatable in the ELF section table and is marked as being loaded at
    address 0 if the linker is recent enough to generate it:

    [ 1] NOTE 00000000 004000 000024 00 A 0 0 4

    This is a problem for objcopying the vmlinux file to the loadable image file as
    the objcopy -O binary starts writing the file from the base address of the
    lowest entry in the ELF program headers table:

    LOAD 0x004000 0x00000000 0x00000000 0x00024 0x00024 R 0x4000
    LOAD 0x008000 0xc0000000 0xc0000000 0x2a6138 0x2c9e8c RWE 0x4000
    NOTE 0x004000 0x00000000 0x00000000 0x00024 0x00024 R 0x4

    The kernel actually resides at 0xc0000000 and so objcopy pads the output file
    between the note (at 0) and the kernel, resulting in a 3.3GB file - which
    confuses things like TFTP and RedBoot (when loading raw binary data).

    The old linker - which doesn't produce this note - shows this:

    LOAD 0x001000 0xc0000000 0xc0000000 0x2aa260 0x2aaa54 RWE 0x1000
    LOAD 0x2ab000 0xc02ac000 0xc02ac000 0x00000 0x21d8c RW 0x1000

    Signed-off-by: David Howells <>

    arch/frv/boot/Makefile | 10 ++++++----
    1 files changed, 6 insertions(+), 4 deletions(-)

    diff --git a/arch/frv/boot/Makefile b/arch/frv/boot/Makefile
    index 6ae3254..6359c49 100644
    --- a/arch/frv/boot/Makefile
    +++ b/arch/frv/boot/Makefile
    @@ -31,19 +31,21 @@ Image: $(obj)/Image

    targets: $(obj)/Image

    +REMOVE_SECTIONS := -R .note -R .comment -R
    $(obj)/Image: vmlinux FORCE
    - $(OBJCOPY) -O binary -R .note -R .comment -S vmlinux $@
    + $(OBJCOPY) -O binary $(REMOVE_SECTIONS) -S vmlinux $@

    #$(obj)/Image: $(CONFIGURE) $(SYSTEM)
    -# $(OBJCOPY) -O binary -R .note -R .comment -g -S $(SYSTEM) $@
    +# $(OBJCOPY) -O binary $(REMOVE_SECTIONS) -g -S $(SYSTEM) $@

    bzImage: zImage

    zImage: $(CONFIGURE) compressed/$(LINUX)
    - $(OBJCOPY) -O binary -R .note -R .comment -S compressed/$(LINUX) $@
    + $(OBJCOPY) -O binary $(REMOVE_SECTIONS) -S compressed/$(LINUX) $@

    bootpImage: bootp/bootp
    - $(OBJCOPY) -O binary -R .note -R .comment -S bootp/bootp $@
    + $(OBJCOPY) -O binary $(REMOVE_SECTIONS) -S bootp/bootp $@

    compressed/$(LINUX): $(LINUX) dep
    @$(MAKE) -C compressed $(LINUX)

     \ /
      Last update: 2011-12-15 12:15    [W:0.023 / U:0.148 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site