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

Grant Likely grant.likely at secretlab.ca
Wed Feb 21 18:01:16 CET 2007


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.

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?
g.

-- 
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195




More information about the U-Boot mailing list