[U-Boot] Standalone API examples on the P4080DS

Hi all,
I have compiled the hello_world standalone API example documented at http://www.denx.de/wiki/view/DULG/UBootStandalone for the Freescale P4080DS development board.
For the standalone api example hello_world, the tutorial (linked above) states that the entry point of the application *is offset 4 bytes from the start of the file* (I.E. address 0x40004).
With all build settings at default, my standalone base address is 0x40000 (defined in arch/powerpc/config.mk). This produces the following object code:
00040000 <hello_world>: 40000: 94 21 ff e0 stwu r1,-32(r1) 40004: 7c 08 02 a6 mflr r0 40008: bf 61 00 0c stmw r27,12(r1) 4000c: 7c 7e 1b 78 mr r30,r3 40010: 7c 83 23 78 mr r3,r4 40014: 90 01 00 24 stw r0,36(r1)
It looks like the entry point is 0x40000. Why does the tutorial state that the example needs to be run from a 4 byte offset? In this case this will result in a failure to create a stack frame for hello_world.
Thanks!
Dave George
Stay informed by joining the Rapita Systems mailing list http://www.rapitasystems.com/contact/mailing_list
For real-time verifications issues and discussion, follow the Rapita Systems blog http://www.rapitasystems.com/blog

Hi David,
It looks like the entry point is 0x40000. Why does the tutorial state that the example needs to be run from a 4 byte offset? In this case this will result in a failure to create a stack frame for hello_world.
For PowerPC the entry point used to be non-deterministic, but was generally 0x40004 which is where the wiki value came from. The following 2 patches made the entry point consistently 0x40000:
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=620bbba524fbaa...
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=c91d456c055237...
I updated the wiki to match the newer 0x40000 address, which is valid for PowerPC boards with a comment to check out CONFIG_STANDALONE_LOAD_ADDR for other architectures.
Peter

Thank you very much for this Peter, it's much appreciated, and should hopefully stop anyone else falling into the same trap!
Thanks!
Dave George
On 16/01/2015 17:08, Peter Tyser wrote:
Hi David,
It looks like the entry point is 0x40000. Why does the tutorial state that the example needs to be run from a 4 byte offset? In this case this will result in a failure to create a stack frame for hello_world.
For PowerPC the entry point used to be non-deterministic, but was generally 0x40004 which is where the wiki value came from. The following 2 patches made the entry point consistently 0x40000:
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=620bbba524fbaa...
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=c91d456c055237...
I updated the wiki to match the newer 0x40000 address, which is valid for PowerPC boards with a comment to check out CONFIG_STANDALONE_LOAD_ADDR for other architectures.
Peter
Stay informed by joining the Rapita Systems mailing list http://www.rapitasystems.com/contact/mailing_list
For real-time verifications issues and discussion, follow the Rapita Systems blog http://www.rapitasystems.com/blog
participants (2)
-
David George
-
Peter Tyser