[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