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

Michal Simek monstr at seznam.cz
Thu Nov 6 07:47:53 CET 2008


Hi Benny,

> Hi Michal,
> 
> Good to hear from you.
> 
> You are exactly right about the issue with my FLASH not being mapped to
> the end of the memory mapped space.  Hence, the initial boot code could
> not jump far enough to it.
> 
> I need a 64k BRAM block sitting on the end of memory address so I can't
> back my FLASH mapping right up to FFFFFFFF.  However, I am trying to get
> it close enough so that the branch code can reach.

:-)

> I am not sure if this is what you meant by "my target file is huge".
> But hey let me know if I am wrong.

That was only my suggestion. Microblaze is still my mainstream. I haven't built
ppc440 code.

Cheers,
Michal

> 
> Cheers,
> B.
> 
> -----Original Message-----
> From: Michal Simek [mailto:monstr at seznam.cz] 
> Sent: Thursday, 6 November 2008 4:13 AM
> To: Benny Chen
> Cc: Ricardo; u-boot at lists.denx.de
> Subject: Re:
> =?us-ascii?Q?Re=3A=20=5BU=2DBoot=5D=20MAKEALL=20ml507=5Fflash=20return=2
> 0=22Not=20enough=20room=20for
> 
> 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