[U-Boot] =?us-ascii?Q?Re=3A=20=5BU=2DBoot=5D=20MAKEALL=20ml507=5Fflash=20return=20=22Not=20enough=20room=20for

Michal Simek monstr at seznam.cz
Wed Nov 5 19:13:19 CET 2008


Hi Benny and Ricardo,

How are you Benny?

I am not xilinx ppc expert but it seems to me that your problem is in Flash
baseaddr. I haven't worked with ppc440 but I worked with ppc405.
The point is that ppc starts on specific address. I think from end of memory
space (address like 0xFFFFFFFC or any similar). Look at u-boot-rom.lds in xilinx
folder. Then is jump in one page and there is relocation to ram. It is not hard
to understand that - everything is in U-BOOT code.
And in your case where the flash has lower address your compilation seems to me
failed on linking because your target file is huge. You should move flash memory
 to the end of memory space.

PPC is a little bit different than Microblaze which you know. But you can of
course add there bram memory and do any wrapper there.

Cheers,
Michal



> 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 at gmail.com]
> Sent: Tue 04/11/2008 19:13
> To: Benny Chen
> Cc: u-boot at 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 at 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 at gmail.com]
>> Sent: Monday, 3 November 2008 6:26 PM
>> To: Benny Chen
>> Cc: u-boot at 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 at 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 at 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 at lists.denx.de
>>> http://lists.denx.de/mailman/listinfo/u-boot
>>>
>>>
>>
>>
>> --
>> Ricardo Ribalda
>> http://www.eps.uam.es/~rribalda/
>>
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list