Skip to contentSkip to conversation

Standalone application issue.

U-Boot mazen.e 4 participants 16 messages May 23, 2014 – May 28, 2014

lore
Share & tools
lore

mazen.e

author
#0 lore raw

Hi,

I am trying to load and execute the hello world standalone app on the arndale exynos 5250. I created an image using the mkimage tool and then used the bootm to load and execute the image. However, the applications does not print anything on the terminal and all what I can see is the following:

Image Type: ARM U-Boot Standalone Program (uncompressed)
Data Size: 594 Bytes = 594 Bytes
Load Address: 70200000
Entry Point: 70200000
Verifying Checksum ... OK
XIP Standalone Program ... OK
XIP Standalone Program ... OK
OK
ARNDALE5250 #

Could you please help me with that issue.

Mnay thanks.

--
View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515.html
Sent from the U-Boot mailing list archive at Nabble.com.

#1 lore raw

Dear "mazen.e",

Quoted 11 lines · In message <[email protected]> you wrote:

I am trying to load and execute the hello world standalone app on the arndale exynos 5250. I created an image using the mkimage tool and then used the bootm to load and execute the image. However, the applications does not print anything on the terminal and all what I can see is the following:

Image Type: ARM U-Boot Standalone Program (uncompressed)
Data Size: 594 Bytes = 594 Bytes
Load Address: 70200000
Entry Point: 70200000

Where are these load and entry point addresses coming from?

As far as I can see, the linker command for the hello_world progrtam looks like this:

	arm-linux-gnueabi-ld.bfd   -g -Ttext 0xc100000 -o
	examples/standalone/hello_world -e hello_world ...

And I also see

	-> nm hello_world | grep hello_world
	0c100000 T hello_world

So I would expect to see 0xC100000 instead of 0x70200000 ??

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Der Irrtum wiederholt sich immerfort in der Tat.  Deshalb mu? man das
Wahre unerm?dlich in Worten wiederholen.                     - Goethe
author
#2 lore raw

Dear Wolfgang,

Thank you very much for pointing out the issue of address conflict.

I tried loading the standalone app considering your remarks, however, the app hangs at the following after a bootm command :
-------------------------------------------------------------------------------------------------------------
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: c1000000
Entry Point: 0c100000
Verifying Checksum ... OK
Loading Standalone Program ... OK
OK
---------------------------------------------------------------------------------------------

imi command returns the following:

Checking Image at 43e00000 ...
Legacy image found

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: c1000000
Entry Point: 0c100000
Verifying Checksum ... OK
--------------------------------------------------------------------------------

md 43e00000 command returns:

43e00000: 56190527 92e3281e e3fe8053 52020000    '..V.(..S......R
43e00010: 000000c1 0000100c ef3a4c3c 00010211    ........<L:.....
43e00020: 6c6c6548 6f57206f 00646c72 00000000    Hello World.....
43e00030: 00000000 00000000 00000000 00000000    ................
43e00040: e92d40f8 e1a05000 e1a00001 e1a06001    . at -..P.......`..
43e00050: eb000062 e3a01006 e59f007c e3a04000    b.......|.... at ..
43e00060: eb00002f e59f7074 eb000023 e1a01000    /...tp..#.......
43e00070: e59f006c eb00002a e59f0068 eb000028    l...*...h...(...
43e00080: e59f0064 e1a01005 eb000025 ea000006    d.......%.......
43e00090: e7962104 e1a01004 e59f0050 e2844001    .!......P.... at ..
43e000a0: e3520000 01a02007 eb00001d e1540005    ..R.. ........T.
43e000b0: dafffff6 e59f0038 eb000019 eb000012    ....8...........
43e000c0: e3500000 0afffffc eb00000d e59f0024    ..P.........$...
43e000d0: eb000013 e3a00000 e8bd80f8 0c1001cf    ................
43e000e0: 0c1001c8 0c1001ef 0c10020d 0c10021a    ................
43e000f0: 0c100225 0c100236 0c10024f e598c054    %...6...O...T..

Please be advised that i used loadb command and kermit console (send
command) to download the image serially into the target.

Thank you very much for your time.

--
View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515p180612.html
Sent from the U-Boot mailing list [email protected].

#3 lore raw

Dear "mazen.e",

Quoted 9 lines · In message <[email protected]> you wrote:

I tried loading the standalone app considering your remarks, however, the app hangs at the following after a bootm command :
-------------------------------------------------------------------------------------------------------------
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: c1000000

-------------------^^^^^^^^

Quoted 1 line
   Entry Point:  0c100000

-------------------^^^^^^^^

Quoted 2 lines

Verifying Checksum ... OK
Loading Standalone Program ... OK

0xc1000000 != 0x0c100000

1) Please re-check load address and entry point address - I feel they should be identical, but they are not. Actually your entry point address seems bogus (missing one 0).

2) Did you verify (using the "nm" command or by checking the link map) that c1000000 is indeed the entry point address?

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The use of COBOL cripples the mind; its teaching  should,  therefore,
be regarded as a criminal offence.
          -- Edsger W. Dijkstra, SIGPLAN Notices, Volume 17, Number 5
author
#4 lore raw

Dear Wolfang,

Dear Wolfang,

Thank you very much for the time your are investing replying to my messages.

Here is the command I am using to make the image :

mkimage -A arm -O u-boot -T standalone -C none -a c1000000 -e 0c100000 -n "Hello World" -d hello_world.bin HelloWorld.img

Please note that I checked using nm command that the entry point is actually 0c100000.

Please be advised that in order to transfer the image to the arndale 5250 board, I am launching loadb command (at the default load address 0x43e0000) and then returning to the kermit window (ctrl \ + c) and finally I am using the kermit send command for the actual file transfer. Launching the command md shows that the file has actually been transferred. To load and execute the image I am using the command bootm.

Please note that I am using the arndale 5250 KVM uboot version which shall loads the kernel in hyp mode, with the same configuration

Many thanks and best regards.

--
View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515p180660.html
Sent from the U-Boot mailing list archive at Nabble.com.

#5 lore raw

Dear "mazen.e",

Quoted 9 lines · In message <[email protected]> you wrote:

Here is the command I am using to make the image :

mkimage -A arm -O u-boot -T standalone -C none -a c1000000 -e 0c100000 -n "Hello World" -d hello_world.bin HelloWorld.img

Please note that I checked using nm command that the entry point is actually 0c100000.

You did not really read my message...

I wrote:

|>    Load Address: c1000000
|-------------------^^^^^^^^
|>    Entry Point:  0c100000
|-------------------^^^^^^^^
|>    Verifying Checksum ... OK
|>    Loading Standalone Program ... OK
|
|0xc1000000 != 0x0c100000
|
|1) Please re-check load address and entry point address - I feel they
|   should be identical, but they are not.  Actually your entry point
|   address seems bogus (missing one 0).

Checkl your command again, you are passing two DIFFERENT addresses. The address for "-a" has 6 zeros (correct), while the address for "-e" has only 5 (wrong).

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"The number  of  Unix  installations  has  grown  to  10,  with  more
expected."    - The Unix Programmer's Manual, 2nd Edition, June, 1972
author
#6 lore raw

Dear wolfagang,

Again thank you very much.

Please note :

I used the following command :

mkimage -A arm -O u-boot -T standalone -C none -a c1000000 -e c1000000 -n "Hello World" -d hello_world.bin Hello.img

I transfred the image file to (using loadb 0x43e00000), the md command shows the following:

43e00000: 56190527 7b49d5f0 62568253 52020000    '..V..I{S.Vb...R
43e00010: 000000c1 000000c1 ef3a4c3c 00010211    ........<L:.....
43e00020: 6c6c6548 6f57206f 00646c72 00000000    Hello World.....
43e00030: 00000000 00000000 00000000 00000000    ................
43e00040: e92d40f8 e1a05000 e1a00001 e1a06001    . at -..P.......`..
43e00050: eb000062 e3a01006 e59f007c e3a04000    b.......|.... at ..
43e00060: eb00002f e59f7074 eb000023 e1a01000    /...tp..#.......
43e00070: e59f006c eb00002a e59f0068 eb000028    l...*...h...(...
43e00080: e59f0064 e1a01005 eb000025 ea000006    d.......%.......
43e00090: e7962104 e1a01004 e59f0050 e2844001    .!......P.... at ..
43e000a0: e3520000 01a02007 eb00001d e1540005    ..R.. ........T.
43e000b0: dafffff6 e59f0038 eb000019 eb000012    ....8...........
43e000c0: e3500000 0afffffc eb00000d e59f0024    ..P.........$...
43e000d0: eb000013 e3a00000 e8bd80f8 0c1001cf    ................
43e000e0: 0c1001c8 0c1001ef 0c10020d 0c10021a    ................
43e000f0: 0c100225 0c100236 0c10024f e598c054    %...6...O...T.

Bootm 0x43e00000 raises an undefined instruction exception.

Booting kernel from Legacy Image@43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: c1000000
Entry Point: c1000000
Verifying Checksum ... OK
Loading Standalone Program ... OK
OK
undefined instruction

pc : [&lt;0000025e>]	   lr : [<bff7b45c>]

sp : bfe6fdd8 ip : 00000000 fp : bffae680
r10: bffae104 r9 : 00000000 r8 : bfe6ff30
r7 : 00000000 r6 : 00000002 r5 : 00000001 r4 : 00000000
r3 : 00000100 r2 : 00000000 r1 : 00000001 r0 : 00000001
Flags: nzcv IRQs off FIQs off Mode SVC_32
Resetting CPU ...

----------------------------------------------------------------------------------------------------------------------------------------------------------------

On the other hand, the command arm-linux-gnueabi-nm hello_world | grep hello_world

0c100000 T hello_world

so, the entry point of the image 0c100000

Hence, I also used the command:

mkimage -A arm -O u-boot -T standalone -C none -a c1000000 -e 0c100000 -n "Hello World" -d hello_world.bin Hello.img

the command bootm 0x43e00000 returns the following :

AUB ARNDALE 5250 # bootm 0x43E00000
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: c1000000
Entry Point: 0c100000
Verifying Checksum ... OK
Loading Standalone Program ... OK
OK

and the program hangs on at this stage giving no sign of life.

Please help what I am missing.

Many thanks and best regards,

--
View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515p180667.html
Sent from the U-Boot mailing list archive at Nabble.com.

#7 lore raw

Dear "mazen.e",

Quoted 7 lines · In message <[email protected]> you wrote:

On the other hand, the command arm-linux-gnueabi-nm hello_world | grep hello_world

0c100000 T hello_world

so, the entry point of the image 0c100000

OK, so it's at 0c10.0000

Quoted 1 line

mkimage -A arm -O u-boot -T standalone -C none -a c1000000 -e 0c100000 -n

----------------------------------------------------^^^^^^^^

Quoted 11 lines

"Hello World" -d hello_world.bin Hello.img

the command bootm 0x43e00000 returns the following :

AUB ARNDALE 5250 # bootm 0x43E00000
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: c1000000

-------------------^^^^^^^^^

You fixed the entry point address, but you still use the incorrect load address. The program cannot run if you load it into some unrelated memory region and then jump to some totally different address. You must use the SAME address (0c10.0000) for both the -a and -e options.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Command, n.:
            Statement presented by a human and accepted by a computer
in such a manner as to make the human feel as if he is in control.
author
#8 lore raw

Dear Wolfgang,

Thank you very much.

As per your request,

I executed the following mkimage command:

mkimage -A arm -O u-boot -T standalone -C none -a 0x0c100000 -e 0x0c100000 -n "Hello World" -d hello_world.bin Hello.img

Than, I transferred to the board using uboot loadb (followed by the kermit send command) and then launched the bootm

ARNDALE5250 # bootm 0x43E00000
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: 0c100000
Entry Point: 0c100000
Verifying Checksum ... OK
Loading Standalone Program ... OK
OK

Still, the program hangs at the above giving no sign of life.

Please note I am using the arndale 5250 board, am I missing something?

Can I try to write the hello world standalone into the microSD? what are dd parameters shall I use (e.g. seek)?

Many thanks and best regards.

--
View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515p180701.html
Sent from the U-Boot mailing list archive at Nabble.com.

#9 lore raw

Dear "mazen.e",

Quoted 3 lines · In message <[email protected]> you wrote:

mkimage -A arm -O u-boot -T standalone -C none -a 0x0c100000 -e 0x0c100000 -n "Hello World" -d hello_world.bin Hello.img

...

Quoted 10 lines

ARNDALE5250 # bootm 0x43E00000
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: 0c100000
Entry Point: 0c100000
Verifying Checksum ... OK
Loading Standalone Program ... OK
OK

This looks OK to me.

Quoted 1 line

Still, the program hangs at the above giving no sign of life.

Well, then I guess you should attach a JTAG debugger and have a closer look where it is hanging, and why.

Quoted 2 lines

Can I try to write the hello world standalone into the microSD? what are dd parameters shall I use (e.g. seek)?

That would not change anything, I think.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"A complex system that works is invariably found to have evolved from
a simple system that worked."             - John Gall, _Systemantics_
#11 lore raw

Dear Mazen

Quoted 6 lines · mazen.e <mazen.ezzeddine <at> gmail.com> writes:

Thanks Wolfgang,

I will do and post the result.

Many thanks.

I've never got "bootm" to run any of the standalone applications in the example directory but through trial and error (maybe luck) "bootelf" works for me. I've tested that this works with old 2010.XX and latest 2014.XX releases. Note I use PowerPC, but worth I try in your case I guess.

This is how I build the hello_world binary:

tools/mkimage -A powerpc -T standalone -C none -a 0x200000 -e 0x200000 -n hello_world -d examples/standalone/hello_world hello_world.img

And these are these serries of commands that loads and executes the binary:

usb start
fatload usb 0 80000 hello_world.img
bootelf 80040

-----
test # usb start
(Re)start USB...
USB: Register 1111 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
scanning bus for storage devices... 1 Storage Device(s) found
test # fatload usb 0 80000 hello_world.img
reading hello_world.img

69441 bytes read
test # bootelf 80040
## Starting application at 0x00040000 ...
Example expects ABI version 6
Actual U-Boot ABI version 6
Hello World
argc = 1
argv[0] = "80040"
argv[1] = "<NULL>"
Hit any key to exit ...

## Application terminated, rc = 0x0
test #
-----

Good luck!

All the best,
Rommel

#12 lore raw

Dear Rommel,

Quoted 2 lines · In message <[email protected]> you wrote:

I've never got "bootm" to run any of the standalone applications in the

Actually "go" is the native command that is supposed tobe used to start SA apps.

Quoted 7 lines

example directory but through trial and error (maybe luck) "bootelf" works for me. I've tested that this works with old 2010.XX and latest 2014.XX releases. Note I use PowerPC, but worth I try in your case I guess.

This is how I build the hello_world binary:

Quoted 8 lines

tools/mkimage -A powerpc -T standalone -C none -a 0x200000 -e 0x200000 -n hello_world -d examples/standalone/hello_world hello_world.img

And these are these serries of commands that loads and executes the binary:

usb start
fatload usb 0 80000 hello_world.img
bootelf 80040

Frankly, this is crap. You don;t make use of the image header here, so you could as well save all the efforts. Just store "hello_world" (the ELF file) in your file system, then load that dierectly, and start it. There is no sense in using mkimage as done above.

Quoted 9 lines

test # bootelf 80040
## Starting application at 0x00040000 ...
Example expects ABI version 6
Actual U-Boot ABI version 6
Hello World
argc = 1
argv[0] = "80040"
argv[1] = "<NULL>"
Hit any key to exit ...

And how would you pass additional arguments to the SA app?

Use "go", this was made for the purpose at hand!

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Everybody is talking about the  weather  but  nobody  does  anything
about it."                                               - Mark Twain
#13 lore raw

Dear Wolfgang,

Quoted 5 lines · Wolfgang Denk <wd <at> denx.de> writes:

Dear Rommel,

Quoted 1 line · In message <loom.20140528T012622-10 <at> post.gmane.org> you wrote:

<snipped>

Quoted 2 lines

Use "go", this was made for the purpose at hand!

Thanks for the comments! I will give it a "go" next time :-)

Quoted 5 lines

Best regards,

Wolfgang Denk

All the best,
Rommel

#14 lore raw
In reply to mazen.e

Hello,

Quoted 12 lines · mazen.e

ARNDALE5250 # bootm 0x43E00000
## Booting kernel from Legacy Image at 43e00000 ...

   Image Name:   Hello World
   Image Type:   ARM U-Boot Standalone Program (uncompressed)
   Data Size:    594 Bytes = 594 Bytes

Load Address: 0c100000
Entry Point: 0c100000
Verifying Checksum ... OK
Loading Standalone Program ... OK
OK

which version of u-boot are you using and where did you compile the hello_world example from?

Regards,
Jeroen