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

Benny Chen benny.chen at groundprobe.com
Thu Nov 6 07:27:51 CET 2008


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.

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