[U-Boot] FPGA relocation/C environment

Wolfgang Wegner wolfgang at leila.ping.de
Thu Oct 29 13:04:52 CET 2009


Dear Wolfgang Denk,

On Thu, Oct 29, 2009 at 12:00:00PM +0100, Wolfgang Denk wrote:
> Dear Wolfgang Wegner,
> 
> In message <20091029082113.GE3216 at leila.ping.de> you wrote:
> > 
> > Now I recognized that commit 6385b28116f775da4771b768ba9bf93c3aaaf26e
> > removed FPGA relocation, which of course breaks FPGA code for my
> > Coldfire board.
> 
> This is an out-of-tree port, right? If your code had been in mainline,
> this would not have happened.

I know, as I mentioned in the first place, I am right now updating to
get it integrated. (see below for the footnote)

> > What is the "proper relocation for PPC boards" that is mentioned
> > by Peter in his commit log? I found this test patch by him:
> ...
> > - I do not understand how the compiler could know about the
> >   relocation for the FPGA (and possibly other) functions when the
> >   actual relocation is done during U-Boot run time?
> 
> The compiler / linker  create  a  Global  Offset  Table  (GOT)  which
> basicly  is  a  list of offsets to the image, where address constants
> need to be updated to relocate the image to a new  address.  This  is
> what the U-Boot relocation code does: add a (fixed) relocation offset
> (target  address - source address) to all the locations listed in the
> GOT. The problem was, that certain  types  of  addresses  (statically
> initialized function pointers) did not get listed in the GOT. This is
> now fixed.

Thank you for the clarification! I will see if I can find out in which
state gcc and U-Boot for coldfire are in this respect.

Best regards,
Wolfgang

[At the time of the original port, MCF532x/7x was not present in U-Boot;
my own port had quite many conflicts (probably because of me being still
very unfamiliar with U-Boot and its concepts) with the upcoming official
port, which in turn had some severe problems at least with my setup. This
and the fact that I needed some time to get at least a bit familiar with
git led to me sticking with my old out-of-tree port. Now as the official
MCF537x port is settled I am in the process of doing my homework...]



More information about the U-Boot mailing list