[U-Boot] [RFC][PATCH 02/19] relocation: fixup cmdtable
Heiko Schocher
hs at denx.de
Fri Jul 30 08:00:14 CEST 2010
Hello Peter,
Peter Tyser wrote:
>> +#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?
Ah, Ok, I can try it. This will then result, that this patch can go
direct to mainline, right?
As I see in the code, this should be possible for the following
architectures:
avr32
m68k
mips
I make a patch for this, but couldn;t test it ...
bye
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list