
Hi Ricardo,
Thanks for helping with this issue. My real option is to do a long jump to the _start code. However, I am not familiar with the PPC assembler hence, I am not able to get the longcall working.
_start is written in assembler in cpu/ppc_4xx/start.S therefore, I need to do a longcall from assembler which I am not sure how to do. Could you please help advise on how I can do a longcall in assembler?
Further, investigation I found that the other option is to do a function pointer call to _start. When written in C this should force the use of the CTR register which is 32-bit to hold the _start address. But I don't know how to do this in assembler. If you have any idea on this it would be much appreciated.
Thanks once again mate.
Regards, Benny
-----Original Message----- From: Ricardo [mailto:ricardo.ribalda@gmail.com] Sent: Tue 04/11/2008 19:13 To: Benny Chen Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] MAKEALL ml507_flash return "Not enough room for programheaders" error
Hello Benny
Maybe if you move your _start to the booptg section you will solve your problem.... or you can also modify the jump to be a long jump.
Best regards
On Tue, Nov 4, 2008 at 06:11, Benny Chen benny.chen@groundprobe.com wrote:
Hi Ricardo, Changing my tool chain to the ELDK 4.2 ppc-linux-x86 does build the default ml507_flash project. However, because my hardware design does not map the FLASH chip to 0xFE000000 but to 0x86000000 the build failed with the following error.
/******************************/ cpu/ppc4xx/start.o: In function `rsttlb':
/usr/local/groundprobe/src/Bootloader/u-boot/cpu/ppc4xx/start.S:493: relocation truncated to fit: R_PPC_REL24 against symbol `_start' defined in .text section in cpu/ppc4xx/start.o /*****************************/
I think this issue maybe to do with the 24bit branch address limit with the PPC440x5 core. Here the _start_440 function calls a "b _start" and in this case the _start is mapped to flash in address 0x8600xxxx. Meaning we now need to branch from 0xFFFFFxxx to 0x8600xxxx. I think this is why the linker failed at the last stage.
Does anyone have any idea with this issue?
Regards, Benny
-----Original Message----- From: Ricardo [mailto:ricardo.ribalda@gmail.com] Sent: Monday, 3 November 2008 6:26 PM To: Benny Chen Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] MAKEALL ml507_flash return "Not enough room for programheaders" error
Hello Benny
I have just checkout the build of the ml507_flash and works ok for me
ricardo@aragorn:~/curro/qtec/u-boot$ ./MAKEALL ml507_flash Configuring for ml507 board... text data bss dec hex filename 202132 10476 30032 242640 3b3d0 ./u-boot
I remember that when I was using another toolchain the final link failed (but showing different error). Try with another toochain, I am using one produced by OpenEmbedded, but you will get the same results with the ELDK
Best regards
On Mon, Nov 3, 2008 at 07:59, Benny Chen benny.chen@groundprobe.com wrote:
Hi there,
I am trying to build a U-Boot image for the ML507 board running from FLASH and got the "Not enough room for program headers" error.
The main difference for my setup is the toolchain. I am using the powerpc-eabi-ld linker from Xilinx's EDK tool chain to build the ml507_flash design for U-Boot.
I have seen a patch on the linker script for the mpc8555cds board and tried adding the patch to the Xilinx/ppc440-generic/u-boot-rom.lds but got the "relocation truncated to fit R_PPC_REL24" error.
Before going further with debugging this problem, I would like to
check
if this problem is due to the powerpc-eabi tool chain from Xilinx?
Thanks for your help.
Regards,
Benny
$ ./MAKEALL ml507_flash
Configuring for ml507 board...
powerpc-eabi-ld: u-boot: Not enough room for program headers
(allocated
2, need 5)
powerpc-eabi-ld: final link failed: Bad value
make: *** [u-boot] Error 1
size: './u-boot': No such file
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
-- Ricardo Ribalda http://www.eps.uam.es/~rribalda/