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,
Quoted 4 lines
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 forhello_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:
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
Quoted 14 lines · Peter Tyser
Hi David,
Quoted 4 lines
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 forhello_world.For PowerPC the entry point used to be non-deterministic, but was generally
0x40004which is where the wiki value came from. The following 2 patches made the entry point consistently0x40000:
Quoted 8 lines
I updated the wiki to match the newer
0x40000address, which is valid for PowerPC boards with a comment to check outCONFIG_STANDALONE_LOAD_ADDRfor 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