All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] bootelf and 64 bit elf application
@ 2018-08-02  4:06 Siddharth Tuli
  2018-08-02 16:10 ` George Robinson
  0 siblings, 1 reply; 3+ messages in thread
From: Siddharth Tuli @ 2018-08-02  4:06 UTC (permalink / raw)
  To: u-boot

Hi,

I am trying to use bootelf to load a 64-bit elf binary, but it appears to fail. I tried using the hello_world from U-Boot sources as well.  My U-Boot is based 2015.01 and I have patches applied for 64elf support, and compiled as a 64 bit U-Boot.  Any idea what is need to support bootelf for 64-bit?

<snip>
# file hello_world.bin
hello_world.bin: ELF 64-bit LSB executable, version 1 (SYSV), statically linked, not stripped

uboot#  tftp 0x80300000 tsiddharth/hello_world.bin
*****ethHw_checkPortSpeed setting speed: 5
Using bcmiproc_eth-0 device
TFTP from server 10.204.96.200; our IP address is 10.216.67.182; sending through gateway 10.216.79.254
Filename 'tsiddharth/hello_world.bin'.
Load address: 0x80300000
Loading: #####
         889.6 KiB/s
done
Bytes transferred = 68336 (10af0 hex)
uboot# bootelf -p 0x80300000 <=== I looked at cmd/elf.c and I see that bootelf calls load_elf64_img_phdr() only with “-p” option.
Loading phdr 0 to 0x000000000c100000 (794 bytes)
Loading phdr 1 to 0x0000000000000000 (0 bytes)
## Starting application@0x0c100000 ...
"Synchronous Abort" handler, esr 0x86000210
ELR:     c100000
LR:      fff4197c
x0 : 0000000000000002 x1 : 00000000feb3f058
x2 : 0000000000000020 x3 : 0000000000000001
x4 : 0000000000000020 x5 : 00000000015087ba
x6 : 00000000ffffffd0 x7 : 0000000000000004
x8 : 0000000000000063 x9 : 000000007af38000
x10: 00000000feaf7678 x11: 00000000fff8c000
x12: 000000000000000f x13: 00000000fffa18c1
x14: 00000000fff99186 x15: 00000000fff99180
x16: 00000000fffa18c1 x17: 00000000fff99175
x18: 00000000feaf7e30 x19: 000000000c100000
x20: 0000000000000000 x21: 00000000feb3f058
x22: 0000000000000002 x23: 0000000000000002
x24: 0000000000000000 x25: 00000000fff912f9
x26: 0000000000000000 x27: 0000000000000000
x28: 0000000000000000 x29: 00000000feaf7b00

Resetting CPU ...

resetting ...

</snip>

Patches applied -

author   Bin Meng <bmeng.cn at gmail.com<mailto:bmeng.cn@gmail.com>>
                Thu, 12 Apr 2018 10:32:14 +0530 (22:02 -0700)
commit  839c4e9c5bb09ac1ef2c129c7082a15b9cbd3a8a
elf: Add a very simple ELF64 loader
This adds a very simple ELF64 loader via program headers, similar
to load_elf_image_phdr() that we already have.

author   Bin Meng <bmeng.cn at gmail.com<mailto:bmeng.cn@gmail.com>>
                Thu, 12 Apr 2018 10:32:13 +0530 (22:02 -0700)
commit  2bce3f595d224fc620b07449d47fa2b08151a890
elf: Add ELF64 related structure defines
This adds ELF header, program header and section header structure
defines for the 64-bit ELF image.

Regards

Siddharth

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] bootelf and 64 bit elf application
  2018-08-02  4:06 [U-Boot] bootelf and 64 bit elf application Siddharth Tuli
@ 2018-08-02 16:10 ` George Robinson
  2018-08-03  5:19   ` Siddharth Tuli
  0 siblings, 1 reply; 3+ messages in thread
From: George Robinson @ 2018-08-02 16:10 UTC (permalink / raw)
  To: u-boot

I would like to know an answer to that problem, too.
Is the hello.world.bin an ELF file ?  What does objdump say ?

Also, the entry address is not the same as the load address, so maybe 
there is something to do with that...

George


On 2018-08-01 21:06, Siddharth Tuli wrote:
> Hi,
> 
> I am trying to use bootelf to load a 64-bit elf binary, but it appears
> to fail. I tried using the hello_world from U-Boot sources as well.
> My U-Boot is based 2015.01 and I have patches applied for 64elf
> support, and compiled as a 64 bit U-Boot.  Any idea what is need to
> support bootelf for 64-bit?
> 
> <snip>
> # file hello_world.bin
> hello_world.bin: ELF 64-bit LSB executable, version 1 (SYSV),
> statically linked, not stripped
> 
> uboot#  tftp 0x80300000 tsiddharth/hello_world.bin
> *****ethHw_checkPortSpeed setting speed: 5
> Using bcmiproc_eth-0 device
> TFTP from server 10.204.96.200; our IP address is 10.216.67.182;
> sending through gateway 10.216.79.254
> Filename 'tsiddharth/hello_world.bin'.
> Load address: 0x80300000
> Loading: #####
>          889.6 KiB/s
> done
> Bytes transferred = 68336 (10af0 hex)
> uboot# bootelf -p 0x80300000 <=== I looked@cmd/elf.c and I see that
> bootelf calls load_elf64_img_phdr() only with “-p” option.
> Loading phdr 0 to 0x000000000c100000 (794 bytes)
> Loading phdr 1 to 0x0000000000000000 (0 bytes)
> ## Starting application at 0x0c100000 ...
> "Synchronous Abort" handler, esr 0x86000210
> ELR:     c100000
> LR:      fff4197c
> x0 : 0000000000000002 x1 : 00000000feb3f058
> x2 : 0000000000000020 x3 : 0000000000000001
> x4 : 0000000000000020 x5 : 00000000015087ba
> x6 : 00000000ffffffd0 x7 : 0000000000000004
> x8 : 0000000000000063 x9 : 000000007af38000
> x10: 00000000feaf7678 x11: 00000000fff8c000
> x12: 000000000000000f x13: 00000000fffa18c1
> x14: 00000000fff99186 x15: 00000000fff99180
> x16: 00000000fffa18c1 x17: 00000000fff99175
> x18: 00000000feaf7e30 x19: 000000000c100000
> x20: 0000000000000000 x21: 00000000feb3f058
> x22: 0000000000000002 x23: 0000000000000002
> x24: 0000000000000000 x25: 00000000fff912f9
> x26: 0000000000000000 x27: 0000000000000000
> x28: 0000000000000000 x29: 00000000feaf7b00
> 
> Resetting CPU ...
> 
> resetting ...
> 
> </snip>
> 
> Patches applied -
> 
> author   Bin Meng <bmeng.cn at gmail.com<mailto:bmeng.cn@gmail.com>>
>                 Thu, 12 Apr 2018 10:32:14 +0530 (22:02 -0700)
> commit  839c4e9c5bb09ac1ef2c129c7082a15b9cbd3a8a
> elf: Add a very simple ELF64 loader
> This adds a very simple ELF64 loader via program headers, similar
> to load_elf_image_phdr() that we already have.
> 
> author   Bin Meng <bmeng.cn at gmail.com<mailto:bmeng.cn@gmail.com>>
>                 Thu, 12 Apr 2018 10:32:13 +0530 (22:02 -0700)
> commit  2bce3f595d224fc620b07449d47fa2b08151a890
> elf: Add ELF64 related structure defines
> This adds ELF header, program header and section header structure
> defines for the 64-bit ELF image.
> 
> Regards
> 
> Siddharth
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] bootelf and 64 bit elf application
  2018-08-02 16:10 ` George Robinson
@ 2018-08-03  5:19   ` Siddharth Tuli
  0 siblings, 0 replies; 3+ messages in thread
From: Siddharth Tuli @ 2018-08-03  5:19 UTC (permalink / raw)
  To: u-boot

Hi George,

Yes, it is an elf64 binary. o/p of objdump -x is,

hello_world:     file format elf64-littleaarch64
hello_world
architecture: aarch64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x000000000c100000

Program Header:
    LOAD off    0x0000000000010000 vaddr 0x000000000c100000 paddr
0x000000000c100000 align 2**16
         filesz 0x000000000000031a memsz 0x000000000000031a flags r-x
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**4
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
private flags = 0:

Sections:
Idx Name          Size      VMA               LMA               File off 
Algn
  0 .text         00000290  000000000c100000  000000000c100000  00010000 
2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       0000008a  000000000c100290  000000000c100290  00010290 
2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .comment      0000002b  0000000000000000  0000000000000000  0001031a 
2**0
                  CONTENTS, READONLY
  3 .debug_aranges 00000070  0000000000000000  0000000000000000  00010345 
2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   00001808  0000000000000000  0000000000000000  000103b5 
2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_abbrev 000003f0  0000000000000000  0000000000000000  00011bbd 
2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_line   00000301  0000000000000000  0000000000000000  00011fad 
2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_frame  00000090  0000000000000000  0000000000000000  000122b0 
2**3
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_str    00000a77  0000000000000000  0000000000000000  00012340 
2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_loc    00000178  0000000000000000  0000000000000000  00012db7 
2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_ranges 00000050  0000000000000000  0000000000000000  00012f2f 
2**0
                  CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
000000000c100000 l    d  .text  0000000000000000 .text
000000000c100290 l    d  .rodata        0000000000000000 .rodata
0000000000000000 l    d  .comment       0000000000000000 .comment
0000000000000000 l    d  .debug_aranges 0000000000000000 .debug_aranges
0000000000000000 l    d  .debug_info    0000000000000000 .debug_info
0000000000000000 l    d  .debug_abbrev  0000000000000000 .debug_abbrev
0000000000000000 l    d  .debug_line    0000000000000000 .debug_line
0000000000000000 l    d  .debug_frame   0000000000000000 .debug_frame
0000000000000000 l    d  .debug_str     0000000000000000 .debug_str
0000000000000000 l    d  .debug_loc     0000000000000000 .debug_loc
0000000000000000 l    d  .debug_ranges  0000000000000000 .debug_ranges
0000000000000000 l    df *ABS*  0000000000000000 hello_world.c
0000000000000000 l    df *ABS*  0000000000000000 stubs.c
000000000c100250 g       .text  0000000000000000 mdelay
000000000c100244 g       .text  0000000000000000 strcpy
000000000c100118 g       .text  0000000000000000 printf
000000000c100214 g       .text  0000000000000000 spi_release_bus
000000000c100220 g       .text  0000000000000000 spi_xfer
000000000c10022c g       .text  0000000000000000 ustrtoul
000000000c100238 g       .text  0000000000000000 ustrtoull
000000000c1001b4 g       .text  0000000000000000 simple_strtol
000000000c1001cc g       .text  0000000000000000 i2c_write
000000000c11031a g       .rodata        0000000000000000 _bss_end__
000000000c1000e8 g       .text  0000000000000000 getc
000000000c10010c g       .text  0000000000000000 puts
000000000c100130 g       .text  0000000000000000 free_hdlr
000000000c10013c g       .text  0000000000000000 malloc
000000000c1001e4 g       .text  0000000000000000 spi_init
000000000c11031a g       .rodata        0000000000000000 __bss_start__
000000000c100160 g       .text  0000000000000000 get_timer
000000000c100178 g       .text  0000000000000000 do_reset
000000000c1000f4 g       .text  0000000000000000 tstc
000000000c10016c g       .text  0000000000000000 vprintf
000000000c11031a g       .rodata        0000000000000000 __bss_end__
000000000c100184 g       .text  0000000000000000 env_get
000000000c100154 g       .text  0000000000000000 udelay
000000000c1001a8 g       .text  0000000000000000 strict_strtoul
000000000c100208 g       .text  0000000000000000 spi_claim_bus
000000000c11031a g       .rodata        0000000000000000 __bss_start
000000000c10025c g       .text  0000000000000000 memset
000000000c1001d8 g       .text  0000000000000000 i2c_read
000000000c110320 g       .rodata        0000000000000000 __end__
000000000c100100 g       .text  0000000000000000 putc
000000000c1001c0 g       .text  0000000000000000 strcmp
000000000c100000 g     F .text  00000000000000dc hello_world
000000000c100190 g       .text  0000000000000000 env_set
000000000c10026c g     F .text  0000000000000024 app_startup
000000000c1001f0 g       .text  0000000000000000 spi_setup_slave
000000000c100124 g       .text  0000000000000000 install_hdlr
000000000c1000dc g     F .text  0000000000000190 dummy
000000000c10019c g       .text  0000000000000000 simple_strtoul
000000000c11031a g       .rodata        0000000000000000 _edata
000000000c110320 g       .rodata        0000000000000000 _end
000000000c1000dc g       .text  0000000000000000 get_version
000000000c1001fc g       .text  0000000000000000 spi_free_slave
000000000c100148 g       .text  0000000000000000 free


Regards

Siddharth




--
Sent from: http://u-boot.10912.n7.nabble.com/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-08-03  5:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-02  4:06 [U-Boot] bootelf and 64 bit elf application Siddharth Tuli
2018-08-02 16:10 ` George Robinson
2018-08-03  5:19   ` Siddharth Tuli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.