
Hi all,
I recently have been attempting to get u-boot working on my MPC8641HPCN evaulation board (AKA the Argo Navis platform). I faced a problem compiling the latest git source with the ELDK 4.0 and getting it to work on the board. The processor would run off into the weeds when doing the command table relocation step in lib_ppc/board.c:633. After debugging with a BDI, some head scratching, and a few google searches, it came down to an issue with the linker, which seems to have been a common problem in the past for this mail list. Please see the thread at: http://sourceware.org/ml/binutils/2005-08/msg00412.html.
The information from that link is what I used to compose the patch below.
(Synopsis of the above web link - the newer linker needs to be told more specifically where to put the __u_boot_cmd_start symbol, otherwise it decides to put other misc symbols between __u_boot_cmd_start and __u_boot_cmd_end, causing all sorts of funk when iterating through the command array.)
After I apply this patch the u-boot is hunky-dory and happy.
Happy holidays! :) Chris Fester
CHANGELOG
* Fix to linker script for mpc8641hpcn platform to enable a correct symbol table with ELDK 4.0 linker.
diff --git a/board/mpc8641hpcn/u-boot.lds b/board/mpc8641hpcn/u-boot.lds index b34de8e..c2f6727 100644 --- a/board/mpc8641hpcn/u-boot.lds +++ b/board/mpc8641hpcn/u-boot.lds @@ -120,7 +120,7 @@ SECTIONS _edata = .; PROVIDE (edata = .);
- __u_boot_cmd_start = .; + __u_boot_cmd_start = ADDR(.u_boot_cmd); .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .;