[U-Boot-Users] [PATCH] Fix relocation problem with "new" get_dev() function

Stefan Roese sr at denx.de
Wed Feb 21 21:07:59 CET 2007


On Wednesday 21 February 2007 18:01, Grant Likely wrote:
> On 2/20/07, Stefan Roese <sr at denx.de> wrote:
> > This patch enables the "new" get_dev() function for block devices
> > introduced by Grant Likely to be used on systems that still suffer
> > from the relocation problems (manual relocation neede because of
> > problems with linker script).
> >
> > Hopefully we can resolve this relocation issue soon for all platform
> > so we don't need this additional code anymore.
> >
> > Signed-off-by: Stefan Roese <sr at denx.de>
> >
> > ---
> > +#ifndef CFG_FIXUP_RELOCATION
> > +               block_dev_desc_t* (*reloc_get_dev)(int dev);
> > +
> > +               reloc_get_dev = drvr->get_dev + gd->reloc_off;
> > +               if (strncmp(ifname, drvr->name, strlen(drvr->name)) == 0)
> > +                       return reloc_get_dev(dev);
> > +#else
> >                 if (strncmp(ifname, drvr->name, strlen(drvr->name)) == 0)
> >                         return drvr->get_dev(dev);
> > +#endif
>
> The changes look good, but I would drop the CFG_FIXUP_RELOCATION
> macros for now.  Just fix it up unconditionally and let the patch that
> actually fixes relocation add them back in.

Yes, that does make more sense for now. I'll update my version.

> I know it doesn't hurt anything to have them in now; but I think the
> current relocation patch takes the wrong approach.  That patch assumes
> that relocation is busted unless the board config says it isn't.
> Since this is something that we want to fix correctly; I think it is
> better to add a '#define CONFIG_RELOCATION_BROKEN' to all board
> configs files now; and steadly remove them as different ports are
> fixed.
>
> At first glance this looks like a bad idea because it means every
> board config file must be touched; but every config file needs to be
> touched regardless.  Either:
> a) touch every config file now (by adding the "IT'S BROKEN" define; or
> b) touch every config file later (by removing the "IT'S FIXED" define
> when all board ports are working and the hooks are no longer needed).
>
> Thoughts?

I like this approach, since it seems to be the "right way" to fix this 
problem. Any other ideas on this? Please speak up, since it's quite a big 
change.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================




More information about the U-Boot mailing list