[U-Boot] Standalone application issue.

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.

Dear "mazen.e",
In message 1400831110428-180515.post@n7.nabble.com 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

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 .@-..P.......`.. 43e00050: eb000062 e3a01006 e59f007c e3a04000 b.......|....@.. 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....@.. 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-tp180515p1806... Sent from the U-Boot mailing list archive at Nabble.com.

Dear "mazen.e",
In message 1400920322709-180612.post@n7.nabble.com 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
-------------------^^^^^^^^
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).
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

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-tp180515p1806... Sent from the U-Boot mailing list archive at Nabble.com.

Dear "mazen.e",
In message 1401002648328-180660.post@n7.nabble.com 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

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 .@-..P.......`.. 43e00050: eb000062 e3a01006 e59f007c e3a04000 b.......|....@.. 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....@.. 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 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: c1000000 Verifying Checksum ... OK Loading Standalone Program ... OK OK undefined instruction pc : [<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-tp180515p1806... Sent from the U-Boot mailing list archive at Nabble.com.

Dear "mazen.e",
In message 1401009344794-180667.post@n7.nabble.com 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
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
-------------------^^^^^^^^^
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

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-tp180515p1807... Sent from the U-Boot mailing list archive at Nabble.com.

Dear "mazen.e",
In message 1401086047300-180701.post@n7.nabble.com 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
...
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.
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.
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

Thanks Wolfgang,
I will do and post the result.
Many thanks.
-- View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515p1807... Sent from the U-Boot mailing list archive at Nabble.com.

Dear Mazen
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

Dear Rommel,
In message loom.20140528T012622-10@post.gmane.org 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.
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
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.
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

Dear Wolfgang,
Wolfgang Denk <wd <at> denx.de> writes:
Dear Rommel,
In message <loom.20140528T012622-10 <at> post.gmane.org> you wrote:
<snipped>
Use "go", this was made for the purpose at hand!
Thanks for the comments! I will give it a "go" next time :-)
Best regards,
Wolfgang Denk
All the best, Rommel

Hello,
On zo, 2014-05-25 at 23:34 -0700, mazen.e wrote:
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

Hi,
I am using the u-boot-arndale from https://github.com/virtualopensystems/u-boot-arndale and I am using the arm-linux-gnueabi- Linaro toolchain for compilation? I also tried u-boot-linaro-2013.03.01 but the issue persist? any suggestion please?
Many thanks.
-- View this message in context: http://u-boot.10912.n7.nabble.com/Standalone-application-issue-tp180515p1807... Sent from the U-Boot mailing list archive at Nabble.com.
participants (4)
-
Jeroen Hofstee
-
mazen.e
-
Rommel G Custodio
-
Wolfgang Denk