> +#if !defined(CONFIG_RELOC_FIXUP_WORKS)
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +void fixup_cmdtable(cmd_tbl_t *cmdtp, int size)
> +{
> +     int     i;
> +
> +     if (gd->reloc_off == 0)
> +             return;
> +
> +     for (i = 0; i < size; i++) {
> +             ulong addr;
> +
> +             addr = (ulong) (cmdtp->cmd) + gd->reloc_off;
> +             cmdtp->cmd =
> +                     (int (*)(struct cmd_tbl_s *, int, int, char * const 
> []))addr;
> +             addr = (ulong)(cmdtp->name) + gd->reloc_off;
> +             cmdtp->name = (char *)addr;
> +             if (cmdtp->usage) {
> +                     addr = (ulong)(cmdtp->usage) + gd->reloc_off;
> +                     cmdtp->usage = (char *)addr;
> +             }
> +#ifdef       CONFIG_SYS_LONGHELP
> +             if (cmdtp->help) {
> +                     addr = (ulong)(cmdtp->help) + gd->reloc_off;
> +                     cmdtp->help = (char *)addr;
> +             }
> +#endif
> +             cmdtp++;
> +     }
> +}

A number of other arches have this same logic in arch-specific code, eg
arch/mips/lib/board.c.  Could you also convert them to use the new
fixup_cmdtable() in this patch?

Best,
Peter

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to