diff options
300 files changed, 154 insertions, 1413 deletions
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds index c6b1f94..3c44b3e 100644 --- a/board/LEOX/elpt860/u-boot.lds +++ b/board/LEOX/elpt860/u-boot.lds @@ -80,7 +80,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/LEOX/elpt860/u-boot.lds.debug b/board/LEOX/elpt860/u-boot.lds.debug index 434c9b7..5126083 100644 --- a/board/LEOX/elpt860/u-boot.lds.debug +++ b/board/LEOX/elpt860/u-boot.lds.debug @@ -73,7 +73,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/MAI/AmigaOneG3SE/u-boot.lds b/board/MAI/AmigaOneG3SE/u-boot.lds index 66440da..18510a8 100644 --- a/board/MAI/AmigaOneG3SE/u-boot.lds +++ b/board/MAI/AmigaOneG3SE/u-boot.lds @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/Marvell/db64360/u-boot.lds b/board/Marvell/db64360/u-boot.lds index 632921a..d021331 100644 --- a/board/Marvell/db64360/u-boot.lds +++ b/board/Marvell/db64360/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/Marvell/db64460/u-boot.lds b/board/Marvell/db64460/u-boot.lds index 632921a..d021331 100644 --- a/board/Marvell/db64460/u-boot.lds +++ b/board/Marvell/db64460/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds index faa1c6c..47247ec 100644 --- a/board/RPXClassic/u-boot.lds +++ b/board/RPXClassic/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug index ea85389..a2d940f 100644 --- a/board/RPXClassic/u-boot.lds.debug +++ b/board/RPXClassic/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds index faa1c6c..47247ec 100644 --- a/board/RPXlite/u-boot.lds +++ b/board/RPXlite/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug index ea85389..a2d940f 100644 --- a/board/RPXlite/u-boot.lds.debug +++ b/board/RPXlite/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds index 7b7b83b..7ae7be0 100644 --- a/board/RPXlite_dw/u-boot.lds +++ b/board/RPXlite_dw/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug index 0f6ae69..83fdc15 100644 --- a/board/RPXlite_dw/u-boot.lds.debug +++ b/board/RPXlite_dw/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds index 17e6fa0..f22b25f 100644 --- a/board/RRvision/u-boot.lds +++ b/board/RRvision/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds index 186dfe6..397ee2f 100644 --- a/board/adder/u-boot.lds +++ b/board/adder/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds index b769e94..738caa0 100644 --- a/board/amcc/acadia/u-boot-nand.lds +++ b/board/amcc/acadia/u-boot-nand.lds @@ -62,7 +62,6 @@ SECTIONS . = ALIGN(0x10000); *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/acadia/u-boot.lds b/board/amcc/acadia/u-boot.lds index b7aa160..d37200d 100644 --- a/board/amcc/acadia/u-boot.lds +++ b/board/amcc/acadia/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds index b769e94..738caa0 100644 --- a/board/amcc/bamboo/u-boot-nand.lds +++ b/board/amcc/bamboo/u-boot-nand.lds @@ -62,7 +62,6 @@ SECTIONS . = ALIGN(0x10000); *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/bamboo/u-boot.lds b/board/amcc/bamboo/u-boot.lds index 997d844..bcde534 100644 --- a/board/amcc/bamboo/u-boot.lds +++ b/board/amcc/bamboo/u-boot.lds @@ -70,7 +70,6 @@ SECTIONS board/amcc/bamboo/bamboo.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/bubinga/u-boot.lds b/board/amcc/bubinga/u-boot.lds index b7aa160..d37200d 100644 --- a/board/amcc/bubinga/u-boot.lds +++ b/board/amcc/bubinga/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds index d18c536..47c6bd9 100644 --- a/board/amcc/canyonlands/u-boot-nand.lds +++ b/board/amcc/canyonlands/u-boot-nand.lds @@ -62,7 +62,6 @@ SECTIONS . = ALIGN(0x80000); *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/canyonlands/u-boot.lds b/board/amcc/canyonlands/u-boot.lds index b768532..22fb8b8 100644 --- a/board/amcc/canyonlands/u-boot.lds +++ b/board/amcc/canyonlands/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/canyonlands/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/ebony/u-boot.lds b/board/amcc/ebony/u-boot.lds index d569a14..4cb2e6c 100644 --- a/board/amcc/ebony/u-boot.lds +++ b/board/amcc/ebony/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/ebony/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/katmai/u-boot.lds b/board/amcc/katmai/u-boot.lds index 71a8b69..f2231c2 100644 --- a/board/amcc/katmai/u-boot.lds +++ b/board/amcc/katmai/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS board/amcc/katmai/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds index b769e94..738caa0 100644 --- a/board/amcc/kilauea/u-boot-nand.lds +++ b/board/amcc/kilauea/u-boot-nand.lds @@ -62,7 +62,6 @@ SECTIONS . = ALIGN(0x10000); *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/kilauea/u-boot.lds b/board/amcc/kilauea/u-boot.lds index a44613d..bebb2b2 100644 --- a/board/amcc/kilauea/u-boot.lds +++ b/board/amcc/kilauea/u-boot.lds @@ -64,7 +64,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/luan/u-boot.lds b/board/amcc/luan/u-boot.lds index 7c1bc82..12c5b60 100644 --- a/board/amcc/luan/u-boot.lds +++ b/board/amcc/luan/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/luan/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/makalu/u-boot.lds b/board/amcc/makalu/u-boot.lds index a44613d..bebb2b2 100644 --- a/board/amcc/makalu/u-boot.lds +++ b/board/amcc/makalu/u-boot.lds @@ -64,7 +64,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/ocotea/u-boot.lds b/board/amcc/ocotea/u-boot.lds index 95cac85..b0b4c00 100644 --- a/board/amcc/ocotea/u-boot.lds +++ b/board/amcc/ocotea/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/ocotea/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/redwood/u-boot.lds b/board/amcc/redwood/u-boot.lds index 32eff52..7bda06e 100644 --- a/board/amcc/redwood/u-boot.lds +++ b/board/amcc/redwood/u-boot.lds @@ -73,7 +73,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds index b580e0b..fb629e0 100644 --- a/board/amcc/sequoia/u-boot-nand.lds +++ b/board/amcc/sequoia/u-boot-nand.lds @@ -62,7 +62,6 @@ SECTIONS . = ALIGN(0x10000); *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds index 9393b65..e22dbec 100644 --- a/board/amcc/sequoia/u-boot-ram.lds +++ b/board/amcc/sequoia/u-boot-ram.lds @@ -53,7 +53,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/sequoia/u-boot.lds b/board/amcc/sequoia/u-boot.lds index 7798722..b9ec56b 100644 --- a/board/amcc/sequoia/u-boot.lds +++ b/board/amcc/sequoia/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/taihu/u-boot.lds b/board/amcc/taihu/u-boot.lds index b7aa160..d37200d 100644 --- a/board/amcc/taihu/u-boot.lds +++ b/board/amcc/taihu/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/taishan/u-boot.lds b/board/amcc/taishan/u-boot.lds index 75b7fc9..c043f69 100644 --- a/board/amcc/taishan/u-boot.lds +++ b/board/amcc/taishan/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/taishan/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/walnut/u-boot.lds b/board/amcc/walnut/u-boot.lds index f6cbe13..d7a7857 100644 --- a/board/amcc/walnut/u-boot.lds +++ b/board/amcc/walnut/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/yosemite/u-boot.lds b/board/amcc/yosemite/u-boot.lds index e31f071..b8646d5 100644 --- a/board/amcc/yosemite/u-boot.lds +++ b/board/amcc/yosemite/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/yosemite/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amcc/yucca/u-boot.lds b/board/amcc/yucca/u-boot.lds index 60135b9..2d44c64 100644 --- a/board/amcc/yucca/u-boot.lds +++ b/board/amcc/yucca/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/amcc/yucca/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/amirix/ap1000/u-boot.lds b/board/amirix/ap1000/u-boot.lds index a4c48d6..707203d 100644 --- a/board/amirix/ap1000/u-boot.lds +++ b/board/amirix/ap1000/u-boot.lds @@ -72,7 +72,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds index 61650a8..2d0efb3 100644 --- a/board/c2mon/u-boot.lds +++ b/board/c2mon/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug index dbec986..ad36953 100644 --- a/board/c2mon/u-boot.lds.debug +++ b/board/c2mon/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/cm5200/u-boot.lds b/board/cm5200/u-boot.lds index 3a72bd3..5887f77 100644 --- a/board/cm5200/u-boot.lds +++ b/board/cm5200/u-boot.lds @@ -52,7 +52,6 @@ SECTIONS { cpu/mpc5xxx/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds index 3ea6f1c..2fecb0f 100644 --- a/board/cogent/u-boot.lds +++ b/board/cogent/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { *(.text) common/env_embedded.o(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug index ea85389..a2d940f 100644 --- a/board/cogent/u-boot.lds.debug +++ b/board/cogent/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/cray/L1/u-boot.lds b/board/cray/L1/u-boot.lds index 86c8ecb..bd80df6 100644 --- a/board/cray/L1/u-boot.lds +++ b/board/cray/L1/u-boot.lds @@ -78,7 +78,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug index 338392a..970628d 100644 --- a/board/cray/L1/u-boot.lds.debug +++ b/board/cray/L1/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/csb272/u-boot.lds b/board/csb272/u-boot.lds index 0aa6f8f..b58ccc5 100644 --- a/board/csb272/u-boot.lds +++ b/board/csb272/u-boot.lds @@ -79,7 +79,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/csb472/u-boot.lds b/board/csb472/u-boot.lds index 565e021..ba37c1b 100644 --- a/board/csb472/u-boot.lds +++ b/board/csb472/u-boot.lds @@ -79,7 +79,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds index b36827d..ee7f59e 100644 --- a/board/dave/PPChameleonEVB/u-boot.lds +++ b/board/dave/PPChameleonEVB/u-boot.lds @@ -73,7 +73,6 @@ SECTIONS lib_generic/zlib.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/digsy_mtc/cmd_mtc.c b/board/digsy_mtc/cmd_mtc.c index aa39611..ecea5b3 100644 --- a/board/digsy_mtc/cmd_mtc.c +++ b/board/digsy_mtc/cmd_mtc.c @@ -320,36 +320,6 @@ static int do_mtc_help(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) ARRAY_SIZE(cmd_mtc_sub), cmdtp, flag, argc, argv); } -/* Relocate the command table function pointers when running in RAM */ -int mtc_cmd_init_r(void) -{ - cmd_tbl_t *cmdtp; - - for (cmdtp = &cmd_mtc_sub[0]; cmdtp != - &cmd_mtc_sub[ARRAY_SIZE(cmd_mtc_sub)]; cmdtp++) { - ulong addr; - - addr = (ulong)(cmdtp->cmd) + gd->reloc_off; - cmdtp->cmd = - (int (*)(struct cmd_tbl_s *, int, int, char *[]))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 - } - return 0; -} - int cmd_mtc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { cmd_tbl_t *c; diff --git a/board/digsy_mtc/digsy_mtc.c b/board/digsy_mtc/digsy_mtc.c index 9d77e54..cc6087b 100644 --- a/board/digsy_mtc/digsy_mtc.c +++ b/board/digsy_mtc/digsy_mtc.c @@ -240,7 +240,6 @@ void board_get_enetaddr (uchar * enet) int misc_init_r(void) { - extern int mtc_cmd_init_r (void); uchar enetaddr[6]; if (!eth_getenv_enetaddr("ethaddr", enetaddr)) { @@ -248,7 +247,6 @@ int misc_init_r(void) eth_setenv_enetaddr("ethaddr", enetaddr); } - mtc_cmd_init_r(); return 0; } diff --git a/board/eltec/bab7xx/u-boot.lds b/board/eltec/bab7xx/u-boot.lds index 632921a..d021331 100644 --- a/board/eltec/bab7xx/u-boot.lds +++ b/board/eltec/bab7xx/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/eltec/elppc/u-boot.lds b/board/eltec/elppc/u-boot.lds index 632921a..d021331 100644 --- a/board/eltec/elppc/u-boot.lds +++ b/board/eltec/elppc/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds index ee74eb9..5c847fb 100644 --- a/board/eltec/mhpc/u-boot.lds +++ b/board/eltec/mhpc/u-boot.lds @@ -56,7 +56,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug index dbec986..ad36953 100644 --- a/board/eltec/mhpc/u-boot.lds.debug +++ b/board/eltec/mhpc/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds index b4e093c..46dca96 100644 --- a/board/emk/top860/u-boot.lds +++ b/board/emk/top860/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/emk/top860/u-boot.lds.debug b/board/emk/top860/u-boot.lds.debug index 82e8dce..bfe8513 100644 --- a/board/emk/top860/u-boot.lds.debug +++ b/board/emk/top860/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds index b3849de..70b84e4 100644 --- a/board/ep88x/u-boot.lds +++ b/board/ep88x/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) diff --git a/board/eric/u-boot.lds b/board/eric/u-boot.lds index e62896f..261ccfb 100644 --- a/board/eric/u-boot.lds +++ b/board/eric/u-boot.lds @@ -78,7 +78,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/adciop/u-boot.lds b/board/esd/adciop/u-boot.lds index 2645e84..9207fe0 100644 --- a/board/esd/adciop/u-boot.lds +++ b/board/esd/adciop/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/apc405/u-boot.lds b/board/esd/apc405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/apc405/u-boot.lds +++ b/board/esd/apc405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/ar405/u-boot.lds b/board/esd/ar405/u-boot.lds index 0221e30..2247109 100644 --- a/board/esd/ar405/u-boot.lds +++ b/board/esd/ar405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/ash405/u-boot.lds b/board/esd/ash405/u-boot.lds index 005957e..285c901 100644 --- a/board/esd/ash405/u-boot.lds +++ b/board/esd/ash405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/canbt/u-boot.lds b/board/esd/canbt/u-boot.lds index 0221e30..2247109 100644 --- a/board/esd/canbt/u-boot.lds +++ b/board/esd/canbt/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/cms700/u-boot.lds b/board/esd/cms700/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/cms700/u-boot.lds +++ b/board/esd/cms700/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/cpci2dp/u-boot.lds b/board/esd/cpci2dp/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/cpci2dp/u-boot.lds +++ b/board/esd/cpci2dp/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/cpci405/u-boot.lds b/board/esd/cpci405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/cpci405/u-boot.lds +++ b/board/esd/cpci405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/cpci750/u-boot.lds b/board/esd/cpci750/u-boot.lds index 632921a..d021331 100644 --- a/board/esd/cpci750/u-boot.lds +++ b/board/esd/cpci750/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/cpciiser4/u-boot.lds b/board/esd/cpciiser4/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/cpciiser4/u-boot.lds +++ b/board/esd/cpciiser4/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds index 77674b5..b044649 100644 --- a/board/esd/dasa_sim/u-boot.lds +++ b/board/esd/dasa_sim/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/dp405/u-boot.lds b/board/esd/dp405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/dp405/u-boot.lds +++ b/board/esd/dp405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/du405/u-boot.lds b/board/esd/du405/u-boot.lds index 166d0d1..65ad2f2 100644 --- a/board/esd/du405/u-boot.lds +++ b/board/esd/du405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/du440/u-boot.lds b/board/esd/du440/u-boot.lds index 7360349..3b6c096 100644 --- a/board/esd/du440/u-boot.lds +++ b/board/esd/du440/u-boot.lds @@ -65,7 +65,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/hh405/u-boot.lds b/board/esd/hh405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/hh405/u-boot.lds +++ b/board/esd/hh405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/hub405/u-boot.lds b/board/esd/hub405/u-boot.lds index 005957e..285c901 100644 --- a/board/esd/hub405/u-boot.lds +++ b/board/esd/hub405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/ocrtc/u-boot.lds b/board/esd/ocrtc/u-boot.lds index 1b50b6d..34884b6 100644 --- a/board/esd/ocrtc/u-boot.lds +++ b/board/esd/ocrtc/u-boot.lds @@ -75,7 +75,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/pci405/u-boot.lds b/board/esd/pci405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/pci405/u-boot.lds +++ b/board/esd/pci405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/plu405/u-boot.lds b/board/esd/plu405/u-boot.lds index 005957e..285c901 100644 --- a/board/esd/plu405/u-boot.lds +++ b/board/esd/plu405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/pmc405/u-boot.lds b/board/esd/pmc405/u-boot.lds index 74f1d87..178a755 100644 --- a/board/esd/pmc405/u-boot.lds +++ b/board/esd/pmc405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/pmc405de/u-boot.lds b/board/esd/pmc405de/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/pmc405de/u-boot.lds +++ b/board/esd/pmc405de/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/pmc440/fpga.c b/board/esd/pmc440/fpga.c index a2eda32..f92bbff 100644 --- a/board/esd/pmc440/fpga.c +++ b/board/esd/pmc440/fpga.c @@ -442,9 +442,9 @@ int pmc440_init_fpga(void) { char *s; - debug("%s:%d: Initialize FPGA interface (relocation offset = 0x%.8lx)\n", - __FUNCTION__, __LINE__, gd->reloc_off); - fpga_init(gd->reloc_off); + debug("%s:%d: Initialize FPGA interface\n", + __FUNCTION__, __LINE__); + fpga_init(); fpga_serialslave_init (); debug("%s:%d: Adding fpga 0\n", __FUNCTION__, __LINE__); diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds index b580e0b..fb629e0 100644 --- a/board/esd/pmc440/u-boot-nand.lds +++ b/board/esd/pmc440/u-boot-nand.lds @@ -62,7 +62,6 @@ SECTIONS . = ALIGN(0x10000); *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/pmc440/u-boot.lds b/board/esd/pmc440/u-boot.lds index 7360349..3b6c096 100644 --- a/board/esd/pmc440/u-boot.lds +++ b/board/esd/pmc440/u-boot.lds @@ -65,7 +65,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/voh405/u-boot.lds b/board/esd/voh405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/voh405/u-boot.lds +++ b/board/esd/voh405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/vom405/u-boot.lds b/board/esd/vom405/u-boot.lds index 8c01016..0799275 100644 --- a/board/esd/vom405/u-boot.lds +++ b/board/esd/vom405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esd/wuh405/u-boot.lds b/board/esd/wuh405/u-boot.lds index 005957e..285c901 100644 --- a/board/esd/wuh405/u-boot.lds +++ b/board/esd/wuh405/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds index 57aabed..3e4490e 100644 --- a/board/esteem192e/u-boot.lds +++ b/board/esteem192e/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds index eb3d487..1d34e68 100644 --- a/board/etx094/u-boot.lds +++ b/board/etx094/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS . = env_offset; common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/etx094/u-boot.lds.debug b/board/etx094/u-boot.lds.debug index 28f8804..1af61fb 100644 --- a/board/etx094/u-boot.lds.debug +++ b/board/etx094/u-boot.lds.debug @@ -71,7 +71,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds index 632921a..d021331 100644 --- a/board/evb64260/u-boot.lds +++ b/board/evb64260/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/exbitgen/u-boot.lds b/board/exbitgen/u-boot.lds index 2798dc8..d2b28e1 100644 --- a/board/exbitgen/u-boot.lds +++ b/board/exbitgen/u-boot.lds @@ -77,7 +77,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds index b39ef14..ce3e32e 100644 --- a/board/fads/u-boot.lds +++ b/board/fads/u-boot.lds @@ -56,7 +56,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/fads/u-boot.lds.debug b/board/fads/u-boot.lds.debug index 67d37ae..0a3b958 100644 --- a/board/fads/u-boot.lds.debug +++ b/board/fads/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds index 1c8180a..877e82c 100644 --- a/board/flagadm/u-boot.lds +++ b/board/flagadm/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug index dbec986..ad36953 100644 --- a/board/flagadm/u-boot.lds.debug +++ b/board/flagadm/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/freescale/mpc7448hpc2/u-boot.lds b/board/freescale/mpc7448hpc2/u-boot.lds index cd11f39..247779f 100644 --- a/board/freescale/mpc7448hpc2/u-boot.lds +++ b/board/freescale/mpc7448hpc2/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/freescale/mpc8548cds/mpc8548cds.c b/board/freescale/mpc8548cds/mpc8548cds.c index 80de6f8..73e7c21 100644 --- a/board/freescale/mpc8548cds/mpc8548cds.c +++ b/board/freescale/mpc8548cds/mpc8548cds.c @@ -276,7 +276,6 @@ pci_init_board(void) { volatile ccsr_fsl_pci_t *pci = (ccsr_fsl_pci_t *) CONFIG_SYS_PCI1_ADDR; struct pci_controller *hose = &pci1_hose; - struct pci_config_table *table; struct pci_region *r = hose->regions; uint pci_32 = gur->pordevsr & MPC85xx_PORDEVSR_PCI1_PCI32; /* PORDEVSR[15] */ @@ -312,12 +311,6 @@ pci_init_board(void) PCI_REGION_IO); hose->region_count = r - hose->regions; - /* relocate config table pointers */ - hose->config_table = \ - (struct pci_config_table *)((uint)hose->config_table + gd->reloc_off); - for (table = hose->config_table; table && table->vendor; table++) - table->config_device += gd->reloc_off; - hose->first_busno=first_free_busno; fsl_pci_init(hose, (u32)&pci->cfg_addr, (u32)&pci->cfg_data); diff --git a/board/freescale/mpc8610hpcd/u-boot.lds b/board/freescale/mpc8610hpcd/u-boot.lds index 5cc88ae..b573807 100644 --- a/board/freescale/mpc8610hpcd/u-boot.lds +++ b/board/freescale/mpc8610hpcd/u-boot.lds @@ -61,7 +61,6 @@ SECTIONS lib_ppc/extable.o (.text) lib_generic/zlib.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/freescale/mpc8641hpcn/u-boot.lds b/board/freescale/mpc8641hpcn/u-boot.lds index e188722..2b98b5a 100644 --- a/board/freescale/mpc8641hpcn/u-boot.lds +++ b/board/freescale/mpc8641hpcn/u-boot.lds @@ -62,7 +62,6 @@ SECTIONS lib_generic/zlib.o (.text) drivers/bios_emulator/atibios.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/g2000/u-boot.lds b/board/g2000/u-boot.lds index 8c01016..0799275 100644 --- a/board/g2000/u-boot.lds +++ b/board/g2000/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gdsys/dlvision/u-boot.lds b/board/gdsys/dlvision/u-boot.lds index d803625..689c808 100644 --- a/board/gdsys/dlvision/u-boot.lds +++ b/board/gdsys/dlvision/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gdsys/gdppc440etx/u-boot.lds b/board/gdsys/gdppc440etx/u-boot.lds index 77f0aae..6ab36ee 100644 --- a/board/gdsys/gdppc440etx/u-boot.lds +++ b/board/gdsys/gdppc440etx/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/gdsys/gdppc440etx/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gdsys/intip/u-boot.lds b/board/gdsys/intip/u-boot.lds index c1cbd1c..624c4c1 100644 --- a/board/gdsys/intip/u-boot.lds +++ b/board/gdsys/intip/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/gdsys/intip/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gdsys/neo/u-boot.lds b/board/gdsys/neo/u-boot.lds index b95eb5c..75202ca 100644 --- a/board/gdsys/neo/u-boot.lds +++ b/board/gdsys/neo/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gen860t/fpga.c b/board/gen860t/fpga.c index 29cad2e..d42c500 100644 --- a/board/gen860t/fpga.c +++ b/board/gen860t/fpga.c @@ -193,8 +193,9 @@ int gen860t_init_fpga (void) { int i; - PRINTF ("%s:%d: Initialize FPGA interface (relocation offset = 0x%.8lx)\n", __FUNCTION__, __LINE__, gd->reloc_off); - fpga_init (gd->reloc_off); + PRINTF ("%s:%d: Initialize FPGA interface\n", + __FUNCTION__, __LINE__); + fpga_init (); fpga_selectmap_init (); for (i = 0; i < CONFIG_FPGA_COUNT; i++) { diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds index 9785639..7b83b25 100644 --- a/board/gen860t/u-boot-flashenv.lds +++ b/board/gen860t/u-boot-flashenv.lds @@ -57,7 +57,6 @@ SECTIONS { cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds index fbe3c70..8f40b30 100644 --- a/board/gen860t/u-boot.lds +++ b/board/gen860t/u-boot.lds @@ -56,7 +56,6 @@ SECTIONS { cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds index ee0b719..716efcd 100644 --- a/board/genietv/u-boot.lds +++ b/board/genietv/u-boot.lds @@ -65,7 +65,6 @@ SECTIONS . = env_offset; common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug index 61fdfe5..3568e6d 100644 --- a/board/genietv/u-boot.lds.debug +++ b/board/genietv/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS . = env_offset; common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/gth/u-boot.lds b/board/gth/u-boot.lds index 8826550..f6175d9 100644 --- a/board/gth/u-boot.lds +++ b/board/gth/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o(.text) *(.text) common/env_embedded.o(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds index 02216fb..7b74cb7 100644 --- a/board/hermes/u-boot.lds +++ b/board/hermes/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug index 78456e6..3801206 100644 --- a/board/hermes/u-boot.lds.debug +++ b/board/hermes/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds index 03fefec..52d66a2 100644 --- a/board/hymod/u-boot.lds +++ b/board/hymod/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug index ea85389..a2d940f 100644 --- a/board/hymod/u-boot.lds.debug +++ b/board/hymod/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds index 9a28cfd..b43be81 100644 --- a/board/icu862/u-boot.lds +++ b/board/icu862/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug index dbd1f9d..653e0be 100644 --- a/board/icu862/u-boot.lds.debug +++ b/board/icu862/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/inka4x0/inka4x0.c b/board/inka4x0/inka4x0.c index c645b05..27b79ec 100644 --- a/board/inka4x0/inka4x0.c +++ b/board/inka4x0/inka4x0.c @@ -177,16 +177,6 @@ void flash_preinit(void) clrbits_be32(&lpb->cs0_cfg, 0x1); /* clear RO */ } -int misc_init_r (void) { - extern int inkadiag_init_r (void); - - /* - * The command table used for the subcommands of inkadiag - * needs to be relocated manually. - */ - return inkadiag_init_r(); -} - int misc_init_f (void) { volatile struct mpc5xxx_gpio *gpio = diff --git a/board/inka4x0/inkadiag.c b/board/inka4x0/inkadiag.c index 3761ef6..0a75abd 100644 --- a/board/inka4x0/inkadiag.c +++ b/board/inka4x0/inkadiag.c @@ -484,31 +484,3 @@ U_BOOT_CMD(inkadiag, 6, 1, do_inkadiag, "[inkadiag what ...]\n" " - perform a diagnosis on inka hardware\n" "'inkadiag' performs hardware tests."); - -/* Relocate the command table function pointers when running in RAM */ -int inkadiag_init_r (void) { - cmd_tbl_t *cmdtp; - - for (cmdtp = &cmd_inkadiag_sub[0]; cmdtp != - &cmd_inkadiag_sub[ARRAY_SIZE(cmd_inkadiag_sub)]; cmdtp++) { - ulong addr; - - addr = (ulong) (cmdtp->cmd) + gd->reloc_off; - cmdtp->cmd = (int (*)(struct cmd_tbl_s *, int, int, char *[]))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 - } - return 0; -} diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds index b47ae8e..a786bf2 100644 --- a/board/ip860/u-boot.lds +++ b/board/ip860/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) **/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug index e8a47f7..dc2f6e1 100644 --- a/board/ip860/u-boot.lds.debug +++ b/board/ip860/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) **/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds index ab51bd8..8d7ff70 100644 --- a/board/ivm/u-boot.lds +++ b/board/ivm/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug index 4d49f1b..b5206c5 100644 --- a/board/ivm/u-boot.lds.debug +++ b/board/ivm/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/jse/u-boot.lds b/board/jse/u-boot.lds index 12d3938..6d0a21c 100644 --- a/board/jse/u-boot.lds +++ b/board/jse/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/keymile/km8xx/u-boot.lds b/board/keymile/km8xx/u-boot.lds index 5af36c9..a8057f2 100644 --- a/board/keymile/km8xx/u-boot.lds +++ b/board/keymile/km8xx/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds index c175f91f..cbad866 100644 --- a/board/korat/u-boot-F7FC.lds +++ b/board/korat/u-boot-F7FC.lds @@ -68,7 +68,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/korat/u-boot.lds b/board/korat/u-boot.lds index 7798722..b9ec56b 100644 --- a/board/korat/u-boot.lds +++ b/board/korat/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds index f2b6650..79b886a 100644 --- a/board/kup/kup4k/u-boot.lds +++ b/board/kup/kup4k/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug index 0f6ae69..83fdc15 100644 --- a/board/kup/kup4k/u-boot.lds.debug +++ b/board/kup/kup4k/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds index f2b6650..79b886a 100644 --- a/board/kup/kup4x/u-boot.lds +++ b/board/kup/kup4x/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug index 0f6ae69..83fdc15 100644 --- a/board/kup/kup4x/u-boot.lds.debug +++ b/board/kup/kup4x/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds index b9fa2d6..854ed68 100644 --- a/board/lantec/u-boot.lds +++ b/board/lantec/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug index d5e2c1d..3b4799e 100644 --- a/board/lantec/u-boot.lds.debug +++ b/board/lantec/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds index 9e46f9d..cc8ad7d 100644 --- a/board/lwmon/u-boot.lds +++ b/board/lwmon/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug index bd9d76c..987c4dd 100644 --- a/board/lwmon/u-boot.lds.debug +++ b/board/lwmon/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/lwmon5/u-boot.lds b/board/lwmon5/u-boot.lds index 7798722..b9ec56b 100644 --- a/board/lwmon5/u-boot.lds +++ b/board/lwmon5/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/matrix_vision/mvbc_p/fpga.c b/board/matrix_vision/mvbc_p/fpga.c index 356af1a..3ed46fe 100644 --- a/board/matrix_vision/mvbc_p/fpga.c +++ b/board/matrix_vision/mvbc_p/fpga.c @@ -46,7 +46,6 @@ Altera_CYC2_Passive_Serial_fns altera_fns = { fpga_wr_fn, fpga_null_fn, fpga_null_fn, - 0 }; Altera_desc cyclone2 = { @@ -55,16 +54,14 @@ Altera_desc cyclone2 = { Altera_EP2C8_SIZE, (void *) &altera_fns, NULL, - 0 }; DECLARE_GLOBAL_DATA_PTR; int mvbc_p_init_fpga(void) { - fpga_debug("Initialize FPGA interface (reloc 0x%.8lx)\n", - gd->reloc_off); - fpga_init(gd->reloc_off); + fpga_debug("Initialize FPGA interface\n"); + fpga_init(); fpga_add(fpga_altera, &cyclone2); fpga_config_fn(0, 1, 0); udelay(60); diff --git a/board/matrix_vision/mvblm7/fpga.c b/board/matrix_vision/mvblm7/fpga.c index 7527d16..7b03d6f 100644 --- a/board/matrix_vision/mvblm7/fpga.c +++ b/board/matrix_vision/mvblm7/fpga.c @@ -46,7 +46,6 @@ Altera_CYC2_Passive_Serial_fns altera_fns = { fpga_wr_fn, fpga_null_fn, fpga_null_fn, - 0 }; Altera_desc cyclone2 = { @@ -62,9 +61,8 @@ DECLARE_GLOBAL_DATA_PTR; int mvblm7_init_fpga(void) { - fpga_debug("Initialize FPGA interface (reloc 0x%.8lx)\n", - gd->reloc_off); - fpga_init(gd->reloc_off); + fpga_debug("Initialize FPGA interface\n"); + fpga_init(); fpga_add(fpga_altera, &cyclone2); fpga_config_fn(0, 1, 0); udelay(60); diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds index ca35e88..dc3e580 100644 --- a/board/mbx8xx/u-boot.lds +++ b/board/mbx8xx/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug index 67d37ae..0a3b958 100644 --- a/board/mbx8xx/u-boot.lds.debug +++ b/board/mbx8xx/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ml2/u-boot.lds b/board/ml2/u-boot.lds index a6b6748..8fea3be 100644 --- a/board/ml2/u-boot.lds +++ b/board/ml2/u-boot.lds @@ -72,7 +72,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ml2/u-boot.lds.debug b/board/ml2/u-boot.lds.debug index 338392a..970628d 100644 --- a/board/ml2/u-boot.lds.debug +++ b/board/ml2/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds index 44144e2..5100542 100644 --- a/board/mousse/u-boot.lds +++ b/board/mousse/u-boot.lds @@ -59,7 +59,6 @@ SECTIONS lib_generic/crc32.o (.text) lib_generic/zlib.o (.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom index 27d10b6..f79c39f 100644 --- a/board/mousse/u-boot.lds.rom +++ b/board/mousse/u-boot.lds.rom @@ -64,7 +64,6 @@ SECTIONS *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.rodata) diff --git a/board/mpl/common/memtst.c b/board/mpl/common/memtst.c index 1393ea1..92c33ba 100644 --- a/board/mpl/common/memtst.c +++ b/board/mpl/common/memtst.c @@ -468,32 +468,6 @@ static RAM_MEMTEST_FUNC test_stage[TEST_STAGES] = { RAM_MemTest_CheckRandomPattern, NULL} }; -void mem_test_reloc(void) -{ - unsigned long addr; - int i; - for (i=0; i< TEST_STAGES; i++) { - addr = (ulong) (test_stage[i].test_write) + gd->reloc_off; - test_stage[i].test_write= - (void (*) (unsigned long startaddr, unsigned long size, - unsigned long *pat))addr; - addr = (ulong) (test_stage[i].test_write_desc) + gd->reloc_off; - test_stage[i].test_write_desc=(char *)addr; - if(test_stage[i].test_check1) { - addr = (ulong) (test_stage[i].test_check1) + gd->reloc_off; - test_stage[i].test_check1= - (void *(*) (int mode, unsigned long startaddr, - unsigned long size, unsigned long *pat))addr; - } - if(test_stage[i].test_check2) { - addr = (ulong) (test_stage[i].test_check2) + gd->reloc_off; - test_stage[i].test_check2= - (void *(*) (int mode, unsigned long startaddr, - unsigned long size, unsigned long *pat))addr; - } - } -} - int mem_test (unsigned long start, unsigned long ramsize, int quiet) { diff --git a/board/mpl/common/pci.c b/board/mpl/common/pci.c index e0ba620..f9bb6ab 100644 --- a/board/mpl/common/pci.c +++ b/board/mpl/common/pci.c @@ -94,29 +94,11 @@ static struct pci_controller hose = { }; -static void reloc_pci_cfg_table(struct pci_config_table *table) -{ - unsigned long addr; - - for (; table && table->vendor; table++) { - addr = (ulong) (table->config_device) + gd->reloc_off; -#ifdef DEBUG - printf ("device \"%d\": 0x%08lx => 0x%08lx\n", - table->device, (ulong) (table->config_device), addr); -#endif - table->config_device = - (void (*)(struct pci_controller* hose, pci_dev_t dev, - struct pci_config_table *))addr; - table->priv[0]+=gd->reloc_off; - } -} - void pci_init_board(void) { /*we want the ptrs to RAM not flash (ie don't use init list)*/ hose.fixup_irq = pci_pip405_fixup_irq; hose.config_table = pci_pip405_config_table; - reloc_pci_cfg_table(hose.config_table); #ifdef DEBUG printf("Init PCI: fixup_irq=%p config_table=%p hose=%p\n",pci_pip405_fixup_irq,pci_pip405_config_table,hose); #endif diff --git a/board/mpl/mip405/mip405.c b/board/mpl/mip405/mip405.c index ae8eade..495e9bd 100644 --- a/board/mpl/mip405/mip405.c +++ b/board/mpl/mip405/mip405.c @@ -717,7 +717,6 @@ int post_hotkeys_pressed(void) } #endif -extern void mem_test_reloc(void); extern int mk_date (char *, struct rtc_time *); int last_stage_init (void) @@ -725,7 +724,7 @@ int last_stage_init (void) unsigned long stop; struct rtc_time newtm; char *s; - mem_test_reloc(); + /* write correct LED configuration */ if (miiphy_write("ppc_4xx_eth0", 0x1, 0x14, 0x2402) != 0) { printf ("Error writing to the PHY\n"); diff --git a/board/mpl/mip405/u-boot.lds b/board/mpl/mip405/u-boot.lds index d71a299..cc8bed0 100644 --- a/board/mpl/mip405/u-boot.lds +++ b/board/mpl/mip405/u-boot.lds @@ -82,7 +82,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/mpl/pati/pati.c b/board/mpl/pati/pati.c index 1b3b698..e12bc42 100644 --- a/board/mpl/pati/pati.c +++ b/board/mpl/pati/pati.c @@ -144,7 +144,6 @@ const sdram_t sdram_table[] = { extern int mem_test (unsigned long start, unsigned long ramsize, int quiet); -extern void mem_test_reloc(void); /* * Get RAM size. @@ -334,7 +333,6 @@ void user_led1(int led_on) ****************************************************************/ int last_stage_init (void) { - mem_test_reloc(); init_ios(); return 0; } diff --git a/board/mpl/pip405/u-boot.lds b/board/mpl/pip405/u-boot.lds index f6f88a7..92290d8 100644 --- a/board/mpl/pip405/u-boot.lds +++ b/board/mpl/pip405/u-boot.lds @@ -77,7 +77,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug index 338392a..970628d 100644 --- a/board/mpl/pip405/u-boot.lds.debug +++ b/board/mpl/pip405/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/mpl/vcma9/vcma9.c b/board/mpl/vcma9/vcma9.c index 3216d63..2b64f44 100644 --- a/board/mpl/vcma9/vcma9.c +++ b/board/mpl/vcma9/vcma9.c @@ -312,11 +312,8 @@ int checkboard(void) } -extern void mem_test_reloc(void); - int last_stage_init(void) { - mem_test_reloc(); checkboard(); stdio_print_current_devices(); check_env(); diff --git a/board/munices/u-boot.lds b/board/munices/u-boot.lds index 5fe8707..8db7f26 100644 --- a/board/munices/u-boot.lds +++ b/board/munices/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc5xxx/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) diff --git a/board/nc650/u-boot.lds b/board/nc650/u-boot.lds index dd040f0..21fed62 100644 --- a/board/nc650/u-boot.lds +++ b/board/nc650/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/nc650/u-boot.lds.debug b/board/nc650/u-boot.lds.debug index 079a55a..5f8dc9d 100644 --- a/board/nc650/u-boot.lds.debug +++ b/board/nc650/u-boot.lds.debug @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds index 68fe165..d64274b 100644 --- a/board/netphone/u-boot.lds +++ b/board/netphone/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug index d47c408..4ef16f1 100644 --- a/board/netphone/u-boot.lds.debug +++ b/board/netphone/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netstal/hcu4/u-boot.lds b/board/netstal/hcu4/u-boot.lds index 0c38ea2..f748ec3 100644 --- a/board/netstal/hcu4/u-boot.lds +++ b/board/netstal/hcu4/u-boot.lds @@ -65,7 +65,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netstal/hcu5/u-boot.lds b/board/netstal/hcu5/u-boot.lds index 21a2be2..bdc6e70 100644 --- a/board/netstal/hcu5/u-boot.lds +++ b/board/netstal/hcu5/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netstal/mcu25/u-boot.lds b/board/netstal/mcu25/u-boot.lds index b589956..2cf3361 100644 --- a/board/netstal/mcu25/u-boot.lds +++ b/board/netstal/mcu25/u-boot.lds @@ -65,7 +65,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds index 14201ac..860c887 100644 --- a/board/netta/u-boot.lds +++ b/board/netta/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug index d47c408..4ef16f1 100644 --- a/board/netta/u-boot.lds.debug +++ b/board/netta/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds index 14201ac..860c887 100644 --- a/board/netta2/u-boot.lds +++ b/board/netta2/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug index d47c408..4ef16f1 100644 --- a/board/netta2/u-boot.lds.debug +++ b/board/netta2/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds index 8c48f1f..a7d290a 100644 --- a/board/netvia/u-boot.lds +++ b/board/netvia/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug index 9210c43..c3c99b3 100644 --- a/board/netvia/u-boot.lds.debug +++ b/board/netvia/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds index ee74eb9..5c847fb 100644 --- a/board/nx823/u-boot.lds +++ b/board/nx823/u-boot.lds @@ -56,7 +56,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug index dbec986..ad36953 100644 --- a/board/nx823/u-boot.lds.debug +++ b/board/nx823/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/pcippc2/u-boot.lds b/board/pcippc2/u-boot.lds index 4bb582d..d11bb05 100644 --- a/board/pcippc2/u-boot.lds +++ b/board/pcippc2/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/pcs440ep/u-boot.lds b/board/pcs440ep/u-boot.lds index a4c537e..2f61091 100644 --- a/board/pcs440ep/u-boot.lds +++ b/board/pcs440ep/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS lib_generic/sha1.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/ppmc7xx/u-boot.lds b/board/ppmc7xx/u-boot.lds index b0da216..30e8972 100644 --- a/board/ppmc7xx/u-boot.lds +++ b/board/ppmc7xx/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/prodrive/alpr/fpga.c b/board/prodrive/alpr/fpga.c index 0ecebc9..7571cd9 100644 --- a/board/prodrive/alpr/fpga.c +++ b/board/prodrive/alpr/fpga.c @@ -244,8 +244,8 @@ int alpr_fpga_init (void) { int i; - PRINTF ("%s:%d: Initialize FPGA interface (relocation offset = 0x%.8lx)\n", __FUNCTION__, __LINE__, gd->reloc_off); - fpga_init (gd->reloc_off); + PRINTF ("%s:%d: Initialize FPGA interface\n", __FUNCTION__, __LINE__); + fpga_init (); for (i = 0; i < CONFIG_FPGA_COUNT; i++) { PRINTF ("%s:%d: Adding fpga %d\n", __FUNCTION__, __LINE__, i); diff --git a/board/prodrive/alpr/u-boot.lds b/board/prodrive/alpr/u-boot.lds index e7c5fe6..6633f91 100644 --- a/board/prodrive/alpr/u-boot.lds +++ b/board/prodrive/alpr/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/prodrive/alpr/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/prodrive/p3mx/p3mx.c b/board/prodrive/p3mx/p3mx.c index 0247bb8..05eca52 100644 --- a/board/prodrive/p3mx/p3mx.c +++ b/board/prodrive/p3mx/p3mx.c @@ -316,16 +316,6 @@ int misc_init_r () return 0; } -int board_early_init_r(void) -{ - /* now relocate the debug serial driver */ - mpsc_putchar += gd->reloc_off; - mpsc_getchar += gd->reloc_off; - mpsc_test_char += gd->reloc_off; - - return 0; -} - void after_reloc (ulong dest_addr, gd_t * gd) { memoryMapDeviceSpace (BOOT_DEVICE, CONFIG_SYS_BOOT_SPACE, CONFIG_SYS_BOOT_SIZE); diff --git a/board/prodrive/p3mx/u-boot.lds b/board/prodrive/p3mx/u-boot.lds index 632921a..d021331 100644 --- a/board/prodrive/p3mx/u-boot.lds +++ b/board/prodrive/p3mx/u-boot.lds @@ -63,7 +63,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/prodrive/p3p440/u-boot.lds b/board/prodrive/p3p440/u-boot.lds index 9327970..b1c2dff 100644 --- a/board/prodrive/p3p440/u-boot.lds +++ b/board/prodrive/p3p440/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS board/prodrive/p3p440/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/quad100hd/u-boot.lds b/board/quad100hd/u-boot.lds index 24d31a1..4f359b7 100644 --- a/board/quad100hd/u-boot.lds +++ b/board/quad100hd/u-boot.lds @@ -61,7 +61,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds index faa1c6c..47247ec 100644 --- a/board/quantum/u-boot.lds +++ b/board/quantum/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/quantum/u-boot.lds.debug b/board/quantum/u-boot.lds.debug index 016048d..ec01fe2 100644 --- a/board/quantum/u-boot.lds.debug +++ b/board/quantum/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds index 61d4b11..9089f7d 100644 --- a/board/r360mpi/u-boot.lds +++ b/board/r360mpi/u-boot.lds @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o (.text) ***/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds index 552f15d..e0ea600 100644 --- a/board/rbc823/u-boot.lds +++ b/board/rbc823/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/rmu/u-boot.lds b/board/rmu/u-boot.lds index faa1c6c..47247ec 100644 --- a/board/rmu/u-boot.lds +++ b/board/rmu/u-boot.lds @@ -67,7 +67,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/rmu/u-boot.lds.debug b/board/rmu/u-boot.lds.debug index 016048d..ec01fe2 100644 --- a/board/rmu/u-boot.lds.debug +++ b/board/rmu/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds index 771f7de..0d4a9ef 100644 --- a/board/rsdproto/u-boot.lds +++ b/board/rsdproto/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8260/start.o (.text) *(.text) - *(.fixup) *(.got1) /*. = env_offset; */ } diff --git a/board/sandburst/karef/u-boot.lds b/board/sandburst/karef/u-boot.lds index f509100..f22ece2 100644 --- a/board/sandburst/karef/u-boot.lds +++ b/board/sandburst/karef/u-boot.lds @@ -84,7 +84,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug index d00e252..48fd579 100644 --- a/board/sandburst/karef/u-boot.lds.debug +++ b/board/sandburst/karef/u-boot.lds.debug @@ -73,7 +73,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sandburst/metrobox/u-boot.lds b/board/sandburst/metrobox/u-boot.lds index f1bc4a0..c5851f2 100644 --- a/board/sandburst/metrobox/u-boot.lds +++ b/board/sandburst/metrobox/u-boot.lds @@ -84,7 +84,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug index a3350f2..4bc5cea 100644 --- a/board/sandburst/metrobox/u-boot.lds.debug +++ b/board/sandburst/metrobox/u-boot.lds.debug @@ -73,7 +73,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sbc405/u-boot.lds b/board/sbc405/u-boot.lds index d9410fa..89edd67 100644 --- a/board/sbc405/u-boot.lds +++ b/board/sbc405/u-boot.lds @@ -76,7 +76,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sbc8641d/u-boot.lds b/board/sbc8641d/u-boot.lds index f156d4f..b71a7d6 100644 --- a/board/sbc8641d/u-boot.lds +++ b/board/sbc8641d/u-boot.lds @@ -61,7 +61,6 @@ SECTIONS lib_ppc/extable.o (.text) lib_generic/zlib.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sc3/u-boot.lds b/board/sc3/u-boot.lds index 75174e1..16dc384 100644 --- a/board/sc3/u-boot.lds +++ b/board/sc3/u-boot.lds @@ -77,7 +77,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/siemens/CCM/u-boot.lds b/board/siemens/CCM/u-boot.lds index 61650a8..2d0efb3 100644 --- a/board/siemens/CCM/u-boot.lds +++ b/board/siemens/CCM/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/siemens/CCM/u-boot.lds.debug b/board/siemens/CCM/u-boot.lds.debug index 88dbd38..29657e9 100644 --- a/board/siemens/CCM/u-boot.lds.debug +++ b/board/siemens/CCM/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds index 12a53ba..104b44c 100644 --- a/board/siemens/IAD210/u-boot.lds +++ b/board/siemens/IAD210/u-boot.lds @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/siemens/pcu_e/u-boot.lds b/board/siemens/pcu_e/u-boot.lds index 9e46f9d..cc8ad7d 100644 --- a/board/siemens/pcu_e/u-boot.lds +++ b/board/siemens/pcu_e/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/siemens/pcu_e/u-boot.lds.debug b/board/siemens/pcu_e/u-boot.lds.debug index bd9d76c..987c4dd 100644 --- a/board/siemens/pcu_e/u-boot.lds.debug +++ b/board/siemens/pcu_e/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds index bde981b..dd632a4 100644 --- a/board/sixnet/u-boot.lds +++ b/board/sixnet/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds index 7de0de8..9ef2c20 100644 --- a/board/snmc/qs850/u-boot.lds +++ b/board/snmc/qs850/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds index 7de0de8..9ef2c20 100644 --- a/board/snmc/qs860t/u-boot.lds +++ b/board/snmc/qs860t/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds index 4e221bc..d6711b5 100644 --- a/board/spc1920/u-boot.lds +++ b/board/spc1920/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds index a06d8c6..7b9455b 100644 --- a/board/spd8xx/u-boot.lds +++ b/board/spd8xx/u-boot.lds @@ -55,7 +55,6 @@ SECTIONS cpu/mpc8xx/start.o (.text) common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug index 67d37ae..0a3b958 100644 --- a/board/spd8xx/u-boot.lds.debug +++ b/board/spd8xx/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds index 14201ac..860c887 100644 --- a/board/stx/stxxtc/u-boot.lds +++ b/board/stx/stxxtc/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug index d47c408..4ef16f1 100644 --- a/board/stx/stxxtc/u-boot.lds.debug +++ b/board/stx/stxxtc/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds index 11a819a..02aa9dd 100644 --- a/board/svm_sc8xx/u-boot.lds +++ b/board/svm_sc8xx/u-boot.lds @@ -69,7 +69,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/svm_sc8xx/u-boot.lds.debug b/board/svm_sc8xx/u-boot.lds.debug index 016048d..ec01fe2 100644 --- a/board/svm_sc8xx/u-boot.lds.debug +++ b/board/svm_sc8xx/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds index 19c1541..2df8d84 100644 --- a/board/tqc/tqm8xx/u-boot.lds +++ b/board/tqc/tqm8xx/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/tqc/tqm8xx/u-boot.lds.debug b/board/tqc/tqm8xx/u-boot.lds.debug index ea85389..a2d940f 100644 --- a/board/tqc/tqm8xx/u-boot.lds.debug +++ b/board/tqc/tqm8xx/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/uc100/u-boot.lds b/board/uc100/u-boot.lds index 1450d37..e3ea52a 100644 --- a/board/uc100/u-boot.lds +++ b/board/uc100/u-boot.lds @@ -68,7 +68,6 @@ SECTIONS common/env_embedded.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/uc100/u-boot.lds.debug b/board/uc100/u-boot.lds.debug index 5750657..edaa402 100644 --- a/board/uc100/u-boot.lds.debug +++ b/board/uc100/u-boot.lds.debug @@ -63,7 +63,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds index d24289c..6f2ea9a 100644 --- a/board/v37/u-boot.lds +++ b/board/v37/u-boot.lds @@ -71,7 +71,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/w7o/u-boot.lds b/board/w7o/u-boot.lds index 191a179..d953fd4 100644 --- a/board/w7o/u-boot.lds +++ b/board/w7o/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) board/w7o/init.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug index d2089de..8bb4929 100644 --- a/board/w7o/u-boot.lds.debug +++ b/board/w7o/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds index 61650a8..2d0efb3 100644 --- a/board/westel/amx860/u-boot.lds +++ b/board/westel/amx860/u-boot.lds @@ -66,7 +66,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug index dbd1f9d..653e0be 100644 --- a/board/westel/amx860/u-boot.lds.debug +++ b/board/westel/amx860/u-boot.lds.debug @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xes/xpedite1000/u-boot.lds b/board/xes/xpedite1000/u-boot.lds index 46b52fc..73f65d6 100644 --- a/board/xes/xpedite1000/u-boot.lds +++ b/board/xes/xpedite1000/u-boot.lds @@ -79,7 +79,6 @@ SECTIONS lib_generic/zlib.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug index 68cd72d..d00834e 100644 --- a/board/xes/xpedite1000/u-boot.lds.debug +++ b/board/xes/xpedite1000/u-boot.lds.debug @@ -71,7 +71,6 @@ SECTIONS /* common/env_embedded.o(.text) */ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xes/xpedite5170/config.mk b/board/xes/xpedite5170/config.mk index 77c5785..1abae97 100644 --- a/board/xes/xpedite5170/config.mk +++ b/board/xes/xpedite5170/config.mk @@ -25,5 +25,3 @@ # XPedite5170 # TEXT_BASE = 0xfff00000 - -PLATFORM_RELFLAGS += -mrelocatable diff --git a/board/xes/xpedite5200/config.mk b/board/xes/xpedite5200/config.mk index fbfbc2b..0761579 100644 --- a/board/xes/xpedite5200/config.mk +++ b/board/xes/xpedite5200/config.mk @@ -27,5 +27,3 @@ ifndef TEXT_BASE TEXT_BASE = 0xfff80000 endif - -PLATFORM_CPPFLAGS += -mrelocatable diff --git a/board/xes/xpedite5370/config.mk b/board/xes/xpedite5370/config.mk index 7b8d06b..995def8 100644 --- a/board/xes/xpedite5370/config.mk +++ b/board/xes/xpedite5370/config.mk @@ -27,5 +27,3 @@ ifndef TEXT_BASE TEXT_BASE = 0xfff80000 endif - -PLATFORM_RELFLAGS += -mrelocatable diff --git a/board/xilinx/ml300/u-boot.lds b/board/xilinx/ml300/u-boot.lds index fa60e6b..b989940 100644 --- a/board/xilinx/ml300/u-boot.lds +++ b/board/xilinx/ml300/u-boot.lds @@ -74,7 +74,6 @@ SECTIONS /* common/env_embedded.o(.text)*/ *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xilinx/ml300/u-boot.lds.debug b/board/xilinx/ml300/u-boot.lds.debug index 338392a..970628d 100644 --- a/board/xilinx/ml300/u-boot.lds.debug +++ b/board/xilinx/ml300/u-boot.lds.debug @@ -64,7 +64,6 @@ SECTIONS common/env_embedded.o(.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xilinx/ppc405-generic/u-boot-ram.lds b/board/xilinx/ppc405-generic/u-boot-ram.lds index 908d84b..2543c9b 100644 --- a/board/xilinx/ppc405-generic/u-boot-ram.lds +++ b/board/xilinx/ppc405-generic/u-boot-ram.lds @@ -57,7 +57,6 @@ SECTIONS *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xilinx/ppc405-generic/u-boot-rom.lds b/board/xilinx/ppc405-generic/u-boot-rom.lds index 592976a..02044e4 100644 --- a/board/xilinx/ppc405-generic/u-boot-rom.lds +++ b/board/xilinx/ppc405-generic/u-boot-rom.lds @@ -67,7 +67,6 @@ SECTIONS *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xilinx/ppc440-generic/u-boot-ram.lds b/board/xilinx/ppc440-generic/u-boot-ram.lds index 3ab9a31..94f6faf 100644 --- a/board/xilinx/ppc440-generic/u-boot-ram.lds +++ b/board/xilinx/ppc440-generic/u-boot-ram.lds @@ -57,7 +57,6 @@ SECTIONS *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/xilinx/ppc440-generic/u-boot-rom.lds b/board/xilinx/ppc440-generic/u-boot-rom.lds index 7420280..57c809e 100644 --- a/board/xilinx/ppc440-generic/u-boot-rom.lds +++ b/board/xilinx/ppc440-generic/u-boot-rom.lds @@ -67,7 +67,6 @@ SECTIONS *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/board/zeus/u-boot.lds b/board/zeus/u-boot.lds index f86570d..f3ccd33 100644 --- a/board/zeus/u-boot.lds +++ b/board/zeus/u-boot.lds @@ -60,7 +60,6 @@ SECTIONS cpu/ppc4xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 365ceeb..8f83598 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -561,7 +561,6 @@ int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) /*******************************************************************/ /* bootm - boot application image from image in memory */ /*******************************************************************/ -static int relocated = 0; int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { @@ -569,6 +568,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) ulong load_end = 0; int ret; boot_os_fn *boot_fn; +#ifndef CONFIG_RELOC_FIXUP_WORKS + static int relocated = 0; /* relocate boot function table */ if (!relocated) { @@ -578,6 +579,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) boot_os[i] += gd->reloc_off; relocated = 1; } +#endif /* determine if we have a sub command */ if (argc > 1) { diff --git a/common/cmd_date.c b/common/cmd_date.c index b69e935..9f50f89 100644 --- a/common/cmd_date.c +++ b/common/cmd_date.c @@ -35,7 +35,11 @@ const char *weekdays[] = { "Sun", "Mon", "Tues", "Wednes", "Thurs", "Fri", "Satur", }; +#ifdef CONFIG_RELOC_FIXUP_WORKS +#define RELOC(a) a +#else #define RELOC(a) ((typeof(a))((unsigned long)(a) + gd->reloc_off)) +#endif int mk_date (char *, struct rtc_time *); diff --git a/common/dlmalloc.c b/common/dlmalloc.c index 241db8c..ca088a1 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -1494,6 +1494,7 @@ static mbinptr av_[NAV * 2 + 2] = { IAV(120), IAV(121), IAV(122), IAV(123), IAV(124), IAV(125), IAV(126), IAV(127) }; +#ifndef CONFIG_RELOC_FIXUP_WORKS void malloc_bin_reloc (void) { unsigned long *p = (unsigned long *)(&av_[2]); @@ -1502,6 +1503,7 @@ void malloc_bin_reloc (void) *p++ += gd->reloc_off; } } +#endif ulong mem_malloc_start = 0; ulong mem_malloc_end = 0; diff --git a/common/env_common.c b/common/env_common.c index be64d13..439a4a9 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -224,8 +224,10 @@ void set_default_env(void) void env_relocate (void) { +#ifndef CONFIG_RELOC_FIXUP_WORKS DEBUGF ("%s[%d] offset = 0x%lx\n", __FUNCTION__,__LINE__, gd->reloc_off); +#endif #ifdef CONFIG_AMIGAONEG3SE enable_nvram(); @@ -236,7 +238,9 @@ void env_relocate (void) * The environment buffer is embedded with the text segment, * just relocate the environment pointer */ +#ifndef CONFIG_RELOC_FIXUP_WORKS env_ptr = (env_t *)((ulong)env_ptr + gd->reloc_off); +#endif DEBUGF ("%s[%d] embedded ENV at %p\n", __FUNCTION__,__LINE__,env_ptr); #else /* diff --git a/common/hush.c b/common/hush.c index 528dd25..06c5ff8 100644 --- a/common/hush.c +++ b/common/hush.c @@ -3270,6 +3270,7 @@ int parse_file_outer(void) } #ifdef __U_BOOT__ +#ifndef CONFIG_RELOC_FIXUP_WORKS static void u_boot_hush_reloc(void) { unsigned long addr; @@ -3280,6 +3281,7 @@ static void u_boot_hush_reloc(void) r->literal = (char *)addr; } } +#endif int u_boot_hush_start(void) { @@ -3290,7 +3292,9 @@ int u_boot_hush_start(void) top_vars->next = 0; top_vars->flg_export = 0; top_vars->flg_read_only = 1; +#ifndef CONFIG_RELOC_FIXUP_WORKS u_boot_hush_reloc(); +#endif } return 0; } diff --git a/common/image.c b/common/image.c index d0f169d..6eaf41e 100644 --- a/common/image.c +++ b/common/image.c @@ -513,7 +513,7 @@ char *get_table_entry_name (table_entry_t *table, char *msg, int id) { for (; table->id >= 0; ++table) { if (table->id == id) -#ifdef USE_HOSTCC +#if defined(USE_HOSTCC) || defined(CONFIG_RELOC_FIXUP_WORKS) return table->lname; #else return table->lname + gd->reloc_off; @@ -578,7 +578,11 @@ int get_table_entry_id (table_entry_t *table, fprintf (stderr, "\n"); #else for (t = table; t->id >= 0; ++t) { +#ifdef CONFIG_RELOC_FIXUP_WORKS + if (t->sname && strcmp(t->sname, name) == 0) +#else if (t->sname && strcmp(t->sname + gd->reloc_off, name) == 0) +#endif return (t->id); } debug ("Invalid %s Type: %s\n", table_name, name); diff --git a/common/serial.c b/common/serial.c index 41a24c2..b4db46b 100644 --- a/common/serial.c +++ b/common/serial.c @@ -81,12 +81,14 @@ struct serial_device *default_serial_console(void) __attribute__((weak, alias("_ int serial_register (struct serial_device *dev) { +#ifndef CONFIG_RELOC_FIXUP_WORKS dev->init += gd->reloc_off; dev->setbrg += gd->reloc_off; dev->getc += gd->reloc_off; dev->tstc += gd->reloc_off; dev->putc += gd->reloc_off; dev->puts += gd->reloc_off; +#endif dev->next = serial_devices; serial_devices = dev; diff --git a/common/stdio.c b/common/stdio.c index 697df5a..870ddfd 100644 --- a/common/stdio.c +++ b/common/stdio.c @@ -201,7 +201,8 @@ int stdio_deregister(char *devname) int stdio_init (void) { -#ifndef CONFIG_ARM /* already relocated for current ARM implementation */ +#if !defined(CONFIG_RELOC_FIXUP_WORKS) + /* already relocated for current ARM implementation */ ulong relocation_offset = gd->reloc_off; int i; @@ -210,7 +211,7 @@ int stdio_init (void) stdio_names[i] = (char *) (((ulong) stdio_names[i]) + relocation_offset); } -#endif +#endif /* !CONFIG_RELOC_FIXUP_WORKS */ /* Initialize the list */ INIT_LIST_HEAD(&(devs.list)); diff --git a/cpu/74xx_7xx/start.S b/cpu/74xx_7xx/start.S index 792cd30..23381a3 100644 --- a/cpu/74xx_7xx/start.S +++ b/cpu/74xx_7xx/start.S @@ -716,15 +716,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc512x/start.S b/cpu/mpc512x/start.S index 2e3f645..4edc8e9 100644 --- a/cpu/mpc512x/start.S +++ b/cpu/mpc512x/start.S @@ -611,15 +611,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc512x/u-boot.lds b/cpu/mpc512x/u-boot.lds index dae3269..2e260eb 100644 --- a/cpu/mpc512x/u-boot.lds +++ b/cpu/mpc512x/u-boot.lds @@ -51,7 +51,6 @@ SECTIONS { cpu/mpc512x/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc5xx/start.S b/cpu/mpc5xx/start.S index 106935c..85ea7a8 100644 --- a/cpu/mpc5xx/start.S +++ b/cpu/mpc5xx/start.S @@ -458,15 +458,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc5xx/u-boot.lds b/cpu/mpc5xx/u-boot.lds index cb17ca5..deeb06a 100644 --- a/cpu/mpc5xx/u-boot.lds +++ b/cpu/mpc5xx/u-boot.lds @@ -58,7 +58,6 @@ SECTIONS cpu/mpc5xx/start.o (.text) *(.text) - *(.fixup) *(.got1) } _etext = .; diff --git a/cpu/mpc5xxx/start.S b/cpu/mpc5xxx/start.S index 6b1162a..eb42939 100644 --- a/cpu/mpc5xxx/start.S +++ b/cpu/mpc5xxx/start.S @@ -684,15 +684,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc5xxx/u-boot-customlayout.lds b/cpu/mpc5xxx/u-boot-customlayout.lds index 9563690..c340086 100644 --- a/cpu/mpc5xxx/u-boot-customlayout.lds +++ b/cpu/mpc5xxx/u-boot-customlayout.lds @@ -65,7 +65,6 @@ SECTIONS common/env_embedded.o (.ppcenv) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc5xxx/u-boot.lds b/cpu/mpc5xxx/u-boot.lds index a6d4ff3..7fe1e95 100644 --- a/cpu/mpc5xxx/u-boot.lds +++ b/cpu/mpc5xxx/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc5xxx/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc8220/start.S b/cpu/mpc8220/start.S index 3abc619..af9472d 100644 --- a/cpu/mpc8220/start.S +++ b/cpu/mpc8220/start.S @@ -649,15 +649,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc8220/u-boot.lds b/cpu/mpc8220/u-boot.lds index 436423c..4400e60 100644 --- a/cpu/mpc8220/u-boot.lds +++ b/cpu/mpc8220/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8220/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc824x/start.S b/cpu/mpc824x/start.S index 39325cd..750457b 100644 --- a/cpu/mpc824x/start.S +++ b/cpu/mpc824x/start.S @@ -589,15 +589,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc824x/u-boot.lds b/cpu/mpc824x/u-boot.lds index 46f7087..0eac48f 100644 --- a/cpu/mpc824x/u-boot.lds +++ b/cpu/mpc824x/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc824x/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc8260/start.S b/cpu/mpc8260/start.S index 379f2fb..edb95e6 100644 --- a/cpu/mpc8260/start.S +++ b/cpu/mpc8260/start.S @@ -909,15 +909,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc8260/u-boot.lds b/cpu/mpc8260/u-boot.lds index b3a103d..c777cf9 100644 --- a/cpu/mpc8260/u-boot.lds +++ b/cpu/mpc8260/u-boot.lds @@ -54,7 +54,6 @@ SECTIONS { cpu/mpc8260/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc83xx/start.S b/cpu/mpc83xx/start.S index 26e3106..ee4b862 100644 --- a/cpu/mpc83xx/start.S +++ b/cpu/mpc83xx/start.S @@ -957,16 +957,18 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b #ifndef CONFIG_NAND_SPL /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc83xx/u-boot.lds b/cpu/mpc83xx/u-boot.lds index 7d57ee4..c84d4b0 100644 --- a/cpu/mpc83xx/u-boot.lds +++ b/cpu/mpc83xx/u-boot.lds @@ -52,7 +52,6 @@ SECTIONS { cpu/mpc83xx/start.o (.text) *(.text) - *(.fixup) *(.got1) . = ALIGN(16); *(.eh_frame) diff --git a/cpu/mpc85xx/start.S b/cpu/mpc85xx/start.S index c9e91a9..6a86528 100644 --- a/cpu/mpc85xx/start.S +++ b/cpu/mpc85xx/start.S @@ -977,15 +977,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc85xx/u-boot.lds b/cpu/mpc85xx/u-boot.lds index ec47871..183dce9 100644 --- a/cpu/mpc85xx/u-boot.lds +++ b/cpu/mpc85xx/u-boot.lds @@ -62,7 +62,6 @@ SECTIONS .text : { *(.text) - *(.fixup) *(.got1) } :text _etext = .; @@ -132,6 +131,17 @@ SECTIONS . = RESET_VECTOR_ADDRESS + 0x4; + /* + * Make sure that the bss segment isn't linked at 0x0, otherwise its + * address won't be updated during relocation fixups. Note that + * this is a temporary fix. Code to dynamically the fixup the bss + * location will be added in the future. When the bss relocation + * fixup code is present this workaround should be removed. + */ +#if (RESET_VECTOR_ADDRESS == 0xfffffffc) + . |= 0x10; +#endif + __bss_start = .; .bss (NOLOAD) : { diff --git a/cpu/mpc86xx/start.S b/cpu/mpc86xx/start.S index 63cc8db..e65f1c0 100644 --- a/cpu/mpc86xx/start.S +++ b/cpu/mpc86xx/start.S @@ -733,15 +733,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/mpc8xx/start.S b/cpu/mpc8xx/start.S index 8864c37..e84326e 100644 --- a/cpu/mpc8xx/start.S +++ b/cpu/mpc8xx/start.S @@ -589,15 +589,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/cpu/ppc4xx/start.S b/cpu/ppc4xx/start.S index 287a912..46f65aa 100644 --- a/cpu/ppc4xx/start.S +++ b/cpu/ppc4xx/start.S @@ -1596,15 +1596,17 @@ in_ram: sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) + cmpwi r0,0 + beq- 2f add r0,r0,r11 stw r0,0(r3) - bdnz 1b +2: bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ -2: li r0,__fixup_entries@sectoff@l + li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 diff --git a/disk/part.c b/disk/part.c index b92fb45..9ced452 100644 --- a/disk/part.c +++ b/disk/part.c @@ -80,7 +80,10 @@ block_dev_desc_t *get_dev(char* ifname, int dev) block_dev_desc_t* (*reloc_get_dev)(int dev); while (drvr->name) { - reloc_get_dev = drvr->get_dev + gd->reloc_off; + reloc_get_dev = drvr->get_dev; +#ifndef CONFIG_RELOC_FIXUP_WORKS + reloc_get_dev += gd->reloc_off; +#endif if (strncmp(ifname, drvr->name, strlen(drvr->name)) == 0) return reloc_get_dev(dev); drvr++; diff --git a/drivers/fpga/ACEX1K.c b/drivers/fpga/ACEX1K.c index 3f79677..06b4247 100644 --- a/drivers/fpga/ACEX1K.c +++ b/drivers/fpga/ACEX1K.c @@ -51,7 +51,6 @@ static int ACEX1K_ps_load( Altera_desc *desc, void *buf, size_t bsize ); static int ACEX1K_ps_dump( Altera_desc *desc, void *buf, size_t bsize ); /* static int ACEX1K_ps_info( Altera_desc *desc ); */ -static int ACEX1K_ps_reloc( Altera_desc *desc, ulong reloc_offset ); /* ------------------------------------------------------------------------- */ /* ACEX1K Generic Implementation */ @@ -101,31 +100,6 @@ int ACEX1K_info( Altera_desc *desc ) } -int ACEX1K_reloc (Altera_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume a failure */ - - if (desc->family != Altera_ACEX1K) { - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - return FPGA_FAIL; - } else - switch (desc->iface) { - case passive_serial: - ret_val = ACEX1K_ps_reloc (desc, reloc_offset); - break; - - /* Add new interface types here */ - - default: - printf ("%s: Unsupported interface type, %d\n", - __FUNCTION__, desc->iface); - } - - return ret_val; -} - - /* ------------------------------------------------------------------------- */ /* ACEX1K Passive Serial Generic Implementation */ @@ -290,73 +264,3 @@ static int ACEX1K_ps_dump (Altera_desc * desc, void *buf, size_t bsize) __FUNCTION__); return FPGA_FAIL; } - -static int ACEX1K_ps_reloc (Altera_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume the worst */ - Altera_ACEX1K_Passive_Serial_fns *fn_r, *fn = - (Altera_ACEX1K_Passive_Serial_fns *) (desc->iface_fns); - - if (fn) { - ulong addr; - - /* Get the relocated table address */ - addr = (ulong) fn + reloc_offset; - fn_r = (Altera_ACEX1K_Passive_Serial_fns *) addr; - - if (!fn_r->relocated) { - - if (memcmp (fn_r, fn, - sizeof (Altera_ACEX1K_Passive_Serial_fns)) - == 0) { - /* good copy of the table, fix the descriptor pointer */ - desc->iface_fns = fn_r; - } else { - PRINTF ("%s: Invalid function table at 0x%p\n", - __FUNCTION__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__, - desc); - - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Altera_pre_fn) addr; - - addr = (ulong) (fn->config) + reloc_offset; - fn_r->config = (Altera_config_fn) addr; - - addr = (ulong) (fn->status) + reloc_offset; - fn_r->status = (Altera_status_fn) addr; - - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Altera_done_fn) addr; - - addr = (ulong) (fn->clk) + reloc_offset; - fn_r->clk = (Altera_clk_fn) addr; - - addr = (ulong) (fn->data) + reloc_offset; - fn_r->data = (Altera_data_fn) addr; - - addr = (ulong) (fn->abort) + reloc_offset; - fn_r->abort = (Altera_abort_fn) addr; - - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Altera_post_fn) addr; - - fn_r->relocated = TRUE; - - } else { - /* this table has already been moved */ - /* XXX - should check to see if the descriptor is correct */ - desc->iface_fns = fn_r; - } - - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - - return ret_val; - -} diff --git a/drivers/fpga/altera.c b/drivers/fpga/altera.c index 09dc0b2..650f2ec 100644 --- a/drivers/fpga/altera.c +++ b/drivers/fpga/altera.c @@ -211,45 +211,6 @@ int altera_info( Altera_desc *desc ) return ret_val; } -int altera_reloc( Altera_desc *desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume a failure */ - - if (!altera_validate (desc, (char *)__FUNCTION__)) { - printf ("%s: Invalid device descriptor\n", __FUNCTION__); - } else { - switch (desc->family) { - case Altera_ACEX1K: -#if defined(CONFIG_FPGA_ACEX1K) - ret_val = ACEX1K_reloc (desc, reloc_offset); -#else - printf ("%s: No support for ACEX devices.\n", - __FUNCTION__); -#endif - break; -#if defined(CONFIG_FPGA_STRATIX_II) - case Altera_StratixII: - ret_val = StratixII_reloc (desc, reloc_offset); - break; -#endif - case Altera_CYC2: -#if defined(CONFIG_FPGA_CYCLON2) - ret_val = CYC2_reloc (desc, reloc_offset); -#else - printf ("%s: No support for CYCLON II devices.\n", - __FUNCTION__); -#endif - break; - /* Add new family types here */ - default: - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - } - } - - return ret_val; -} - /* ------------------------------------------------------------------------- */ static int altera_validate (Altera_desc * desc, const char *fn) diff --git a/drivers/fpga/cyclon2.c b/drivers/fpga/cyclon2.c index 3ed64b2..4622b4e 100644 --- a/drivers/fpga/cyclon2.c +++ b/drivers/fpga/cyclon2.c @@ -50,7 +50,6 @@ static int CYC2_ps_load( Altera_desc *desc, void *buf, size_t bsize ); static int CYC2_ps_dump( Altera_desc *desc, void *buf, size_t bsize ); /* static int CYC2_ps_info( Altera_desc *desc ); */ -static int CYC2_ps_reloc( Altera_desc *desc, ulong reloc_offset ); /* ------------------------------------------------------------------------- */ /* CYCLON2 Generic Implementation */ @@ -99,30 +98,6 @@ int CYC2_info( Altera_desc *desc ) return FPGA_SUCCESS; } -int CYC2_reloc (Altera_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume a failure */ - - if (desc->family != Altera_CYC2) { - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - return FPGA_FAIL; - } else - switch (desc->iface) { - case passive_serial: - ret_val = CYC2_ps_reloc (desc, reloc_offset); - break; - - /* Add new interface types here */ - - default: - printf ("%s: Unsupported interface type, %d\n", - __FUNCTION__, desc->iface); - } - - return ret_val; -} - /* ------------------------------------------------------------------------- */ /* CYCLON2 Passive Serial Generic Implementation */ static int CYC2_ps_load (Altera_desc * desc, void *buf, size_t bsize) @@ -233,69 +208,3 @@ static int CYC2_ps_dump (Altera_desc * desc, void *buf, size_t bsize) __FUNCTION__); return FPGA_FAIL; } - -static int CYC2_ps_reloc (Altera_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume the worst */ - Altera_CYC2_Passive_Serial_fns *fn_r, *fn = - (Altera_CYC2_Passive_Serial_fns *) (desc->iface_fns); - - if (fn) { - ulong addr; - - /* Get the relocated table address */ - addr = (ulong) fn + reloc_offset; - fn_r = (Altera_CYC2_Passive_Serial_fns *) addr; - - if (!fn_r->relocated) { - - if (memcmp (fn_r, fn, - sizeof (Altera_CYC2_Passive_Serial_fns)) - == 0) { - /* good copy of the table, fix the descriptor pointer */ - desc->iface_fns = fn_r; - } else { - PRINTF ("%s: Invalid function table at 0x%p\n", - __FUNCTION__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__, - desc); - - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Altera_pre_fn) addr; - - addr = (ulong) (fn->config) + reloc_offset; - fn_r->config = (Altera_config_fn) addr; - - addr = (ulong) (fn->status) + reloc_offset; - fn_r->status = (Altera_status_fn) addr; - - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Altera_done_fn) addr; - - addr = (ulong) (fn->write) + reloc_offset; - fn_r->write = (Altera_write_fn) addr; - - addr = (ulong) (fn->abort) + reloc_offset; - fn_r->abort = (Altera_abort_fn) addr; - - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Altera_post_fn) addr; - - fn_r->relocated = TRUE; - - } else { - /* this table has already been moved */ - /* XXX - should check to see if the descriptor is correct */ - desc->iface_fns = fn_r; - } - - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - - return ret_val; -} diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c index 67a6c30..5659517 100644 --- a/drivers/fpga/fpga.c +++ b/drivers/fpga/fpga.c @@ -46,7 +46,6 @@ #endif /* Local static data */ -static ulong relocation_offset = 0; static int next_desc = FPGA_INVALID_DEVICE; static fpga_desc desc_table[CONFIG_MAX_FPGA_DEVICES]; @@ -153,46 +152,12 @@ static int fpga_dev_info( int devnum ) } -/* fpga_reloc - * generic multiplexing code - */ -int fpga_reloc( fpga_type devtype, void *desc, ulong reloc_off ) -{ - int ret_val = FPGA_FAIL; - - PRINTF( "%s: Relocating Device of type %d @ 0x%p with offset %lx\n", - __FUNCTION__, devtype, desc, reloc_off ); - - switch ( devtype ) { - case fpga_xilinx: -#if defined(CONFIG_FPGA_XILINX) - ret_val = xilinx_reloc( desc, reloc_off ); -#else - fpga_no_sup( (char *)__FUNCTION__, "Xilinx devices" ); -#endif - break; - case fpga_altera: -#if defined(CONFIG_FPGA_ALTERA) - ret_val = altera_reloc( desc, reloc_off ); -#else - fpga_no_sup( (char *)__FUNCTION__, "Altera devices" ); -#endif - break; - default: - printf( "%s: Invalid or unsupported device type %d\n", - __FUNCTION__, devtype ); - } - - return ret_val; -} - /* ------------------------------------------------------------------------- */ /* fgpa_init is usually called from misc_init_r() and MUST be called * before any of the other fpga functions are used. */ -void fpga_init( ulong reloc_off ) +void fpga_init(void) { - relocation_offset = reloc_off; next_desc = 0; memset( desc_table, 0, sizeof(desc_table)); @@ -208,9 +173,7 @@ int fpga_count( void ) } /* fpga_add - * Attempts to relocate the device/board specific interface code - * to the proper RAM locations and adds the device descriptor to - * the device table. + * Add the device descriptor to the device table. */ int fpga_add( fpga_type devtype, void *desc ) { @@ -221,15 +184,9 @@ int fpga_add( fpga_type devtype, void *desc ) } else if (( devtype > fpga_min_type ) && ( devtype < fpga_undefined )) { if ( desc ) { if ( next_desc < CONFIG_MAX_FPGA_DEVICES ) { - if ( fpga_reloc( devtype, desc, relocation_offset ) - == FPGA_SUCCESS ) { - devnum = next_desc; - desc_table[next_desc].devtype = devtype; - desc_table[next_desc++].devdesc = desc; - } else { - printf( "%s: Unable to relocate device interface table!\n", - __FUNCTION__ ); - } + devnum = next_desc; + desc_table[next_desc].devtype = devtype; + desc_table[next_desc++].devdesc = desc; } else { printf( "%s: Exceeded Max FPGA device count\n", __FUNCTION__ ); } diff --git a/drivers/fpga/spartan2.c b/drivers/fpga/spartan2.c index d745334..cd16a9c 100644 --- a/drivers/fpga/spartan2.c +++ b/drivers/fpga/spartan2.c @@ -51,12 +51,10 @@ static int Spartan2_sp_load( Xilinx_desc *desc, void *buf, size_t bsize ); static int Spartan2_sp_dump( Xilinx_desc *desc, void *buf, size_t bsize ); /* static int Spartan2_sp_info( Xilinx_desc *desc ); */ -static int Spartan2_sp_reloc( Xilinx_desc *desc, ulong reloc_offset ); static int Spartan2_ss_load( Xilinx_desc *desc, void *buf, size_t bsize ); static int Spartan2_ss_dump( Xilinx_desc *desc, void *buf, size_t bsize ); /* static int Spartan2_ss_info( Xilinx_desc *desc ); */ -static int Spartan2_ss_reloc( Xilinx_desc *desc, ulong reloc_offset ); /* ------------------------------------------------------------------------- */ /* Spartan-II Generic Implementation */ @@ -112,33 +110,6 @@ int Spartan2_info( Xilinx_desc *desc ) } -int Spartan2_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume a failure */ - - if (desc->family != Xilinx_Spartan2) { - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - return FPGA_FAIL; - } else - switch (desc->iface) { - case slave_serial: - ret_val = Spartan2_ss_reloc (desc, reloc_offset); - break; - - case slave_parallel: - ret_val = Spartan2_sp_reloc (desc, reloc_offset); - break; - - default: - printf ("%s: Unsupported interface type, %d\n", - __FUNCTION__, desc->iface); - } - - return ret_val; -} - - /* ------------------------------------------------------------------------- */ /* Spartan-II Slave Parallel Generic Implementation */ @@ -340,93 +311,6 @@ static int Spartan2_sp_dump (Xilinx_desc * desc, void *buf, size_t bsize) } -static int Spartan2_sp_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume the worst */ - Xilinx_Spartan2_Slave_Parallel_fns *fn_r, *fn = - (Xilinx_Spartan2_Slave_Parallel_fns *) (desc->iface_fns); - - if (fn) { - ulong addr; - - /* Get the relocated table address */ - addr = (ulong) fn + reloc_offset; - fn_r = (Xilinx_Spartan2_Slave_Parallel_fns *) addr; - - if (!fn_r->relocated) { - - if (memcmp (fn_r, fn, - sizeof (Xilinx_Spartan2_Slave_Parallel_fns)) - == 0) { - /* good copy of the table, fix the descriptor pointer */ - desc->iface_fns = fn_r; - } else { - PRINTF ("%s: Invalid function table at 0x%p\n", - __FUNCTION__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__, - desc); - - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Xilinx_pre_fn) addr; - - addr = (ulong) (fn->pgm) + reloc_offset; - fn_r->pgm = (Xilinx_pgm_fn) addr; - - addr = (ulong) (fn->init) + reloc_offset; - fn_r->init = (Xilinx_init_fn) addr; - - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Xilinx_done_fn) addr; - - addr = (ulong) (fn->clk) + reloc_offset; - fn_r->clk = (Xilinx_clk_fn) addr; - - addr = (ulong) (fn->err) + reloc_offset; - fn_r->err = (Xilinx_err_fn) addr; - - addr = (ulong) (fn->cs) + reloc_offset; - fn_r->cs = (Xilinx_cs_fn) addr; - - addr = (ulong) (fn->wr) + reloc_offset; - fn_r->wr = (Xilinx_wr_fn) addr; - - addr = (ulong) (fn->rdata) + reloc_offset; - fn_r->rdata = (Xilinx_rdata_fn) addr; - - addr = (ulong) (fn->wdata) + reloc_offset; - fn_r->wdata = (Xilinx_wdata_fn) addr; - - addr = (ulong) (fn->busy) + reloc_offset; - fn_r->busy = (Xilinx_busy_fn) addr; - - addr = (ulong) (fn->abort) + reloc_offset; - fn_r->abort = (Xilinx_abort_fn) addr; - - if (fn->post) { - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Xilinx_post_fn) addr; - } - - fn_r->relocated = TRUE; - - } else { - /* this table has already been moved */ - /* XXX - should check to see if the descriptor is correct */ - desc->iface_fns = fn_r; - } - - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - - return ret_val; - -} - /* ------------------------------------------------------------------------- */ static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize) @@ -580,74 +464,3 @@ static int Spartan2_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize) __FUNCTION__); return FPGA_FAIL; } - -static int Spartan2_ss_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume the worst */ - Xilinx_Spartan2_Slave_Serial_fns *fn_r, *fn = - (Xilinx_Spartan2_Slave_Serial_fns *) (desc->iface_fns); - - if (fn) { - ulong addr; - - /* Get the relocated table address */ - addr = (ulong) fn + reloc_offset; - fn_r = (Xilinx_Spartan2_Slave_Serial_fns *) addr; - - if (!fn_r->relocated) { - - if (memcmp (fn_r, fn, - sizeof (Xilinx_Spartan2_Slave_Serial_fns)) - == 0) { - /* good copy of the table, fix the descriptor pointer */ - desc->iface_fns = fn_r; - } else { - PRINTF ("%s: Invalid function table at 0x%p\n", - __FUNCTION__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__, - desc); - - if (fn->pre) { - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Xilinx_pre_fn) addr; - } - - addr = (ulong) (fn->pgm) + reloc_offset; - fn_r->pgm = (Xilinx_pgm_fn) addr; - - addr = (ulong) (fn->init) + reloc_offset; - fn_r->init = (Xilinx_init_fn) addr; - - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Xilinx_done_fn) addr; - - addr = (ulong) (fn->clk) + reloc_offset; - fn_r->clk = (Xilinx_clk_fn) addr; - - addr = (ulong) (fn->wr) + reloc_offset; - fn_r->wr = (Xilinx_wr_fn) addr; - - if (fn->post) { - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Xilinx_post_fn) addr; - } - - fn_r->relocated = TRUE; - - } else { - /* this table has already been moved */ - /* XXX - should check to see if the descriptor is correct */ - desc->iface_fns = fn_r; - } - - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - - return ret_val; - -} diff --git a/drivers/fpga/spartan3.c b/drivers/fpga/spartan3.c index 8bb2449..0fe3041 100644 --- a/drivers/fpga/spartan3.c +++ b/drivers/fpga/spartan3.c @@ -56,12 +56,10 @@ static int Spartan3_sp_load( Xilinx_desc *desc, void *buf, size_t bsize ); static int Spartan3_sp_dump( Xilinx_desc *desc, void *buf, size_t bsize ); /* static int Spartan3_sp_info( Xilinx_desc *desc ); */ -static int Spartan3_sp_reloc( Xilinx_desc *desc, ulong reloc_offset ); static int Spartan3_ss_load( Xilinx_desc *desc, void *buf, size_t bsize ); static int Spartan3_ss_dump( Xilinx_desc *desc, void *buf, size_t bsize ); /* static int Spartan3_ss_info( Xilinx_desc *desc ); */ -static int Spartan3_ss_reloc( Xilinx_desc *desc, ulong reloc_offset ); /* ------------------------------------------------------------------------- */ /* Spartan-II Generic Implementation */ @@ -117,33 +115,6 @@ int Spartan3_info( Xilinx_desc *desc ) } -int Spartan3_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume a failure */ - - if (desc->family != Xilinx_Spartan3) { - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - return FPGA_FAIL; - } else - switch (desc->iface) { - case slave_serial: - ret_val = Spartan3_ss_reloc (desc, reloc_offset); - break; - - case slave_parallel: - ret_val = Spartan3_sp_reloc (desc, reloc_offset); - break; - - default: - printf ("%s: Unsupported interface type, %d\n", - __FUNCTION__, desc->iface); - } - - return ret_val; -} - - /* ------------------------------------------------------------------------- */ /* Spartan-II Slave Parallel Generic Implementation */ @@ -347,91 +318,6 @@ static int Spartan3_sp_dump (Xilinx_desc * desc, void *buf, size_t bsize) } -static int Spartan3_sp_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume the worst */ - Xilinx_Spartan3_Slave_Parallel_fns *fn_r, *fn = - (Xilinx_Spartan3_Slave_Parallel_fns *) (desc->iface_fns); - - if (fn) { - ulong addr; - - /* Get the relocated table address */ - addr = (ulong) fn + reloc_offset; - fn_r = (Xilinx_Spartan3_Slave_Parallel_fns *) addr; - - if (!fn_r->relocated) { - - if (memcmp (fn_r, fn, - sizeof (Xilinx_Spartan3_Slave_Parallel_fns)) - == 0) { - /* good copy of the table, fix the descriptor pointer */ - desc->iface_fns = fn_r; - } else { - PRINTF ("%s: Invalid function table at 0x%p\n", - __FUNCTION__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__, - desc); - - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Xilinx_pre_fn) addr; - - addr = (ulong) (fn->pgm) + reloc_offset; - fn_r->pgm = (Xilinx_pgm_fn) addr; - - addr = (ulong) (fn->init) + reloc_offset; - fn_r->init = (Xilinx_init_fn) addr; - - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Xilinx_done_fn) addr; - - addr = (ulong) (fn->clk) + reloc_offset; - fn_r->clk = (Xilinx_clk_fn) addr; - - addr = (ulong) (fn->err) + reloc_offset; - fn_r->err = (Xilinx_err_fn) addr; - - addr = (ulong) (fn->cs) + reloc_offset; - fn_r->cs = (Xilinx_cs_fn) addr; - - addr = (ulong) (fn->wr) + reloc_offset; - fn_r->wr = (Xilinx_wr_fn) addr; - - addr = (ulong) (fn->rdata) + reloc_offset; - fn_r->rdata = (Xilinx_rdata_fn) addr; - - addr = (ulong) (fn->wdata) + reloc_offset; - fn_r->wdata = (Xilinx_wdata_fn) addr; - - addr = (ulong) (fn->busy) + reloc_offset; - fn_r->busy = (Xilinx_busy_fn) addr; - - addr = (ulong) (fn->abort) + reloc_offset; - fn_r->abort = (Xilinx_abort_fn) addr; - - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Xilinx_post_fn) addr; - - fn_r->relocated = TRUE; - - } else { - /* this table has already been moved */ - /* XXX - should check to see if the descriptor is correct */ - desc->iface_fns = fn_r; - } - - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - - return ret_val; - -} - /* ------------------------------------------------------------------------- */ static int Spartan3_ss_load (Xilinx_desc * desc, void *buf, size_t bsize) @@ -587,74 +473,3 @@ static int Spartan3_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize) __FUNCTION__); return FPGA_FAIL; } - -static int Spartan3_ss_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume the worst */ - Xilinx_Spartan3_Slave_Serial_fns *fn_r, *fn = - (Xilinx_Spartan3_Slave_Serial_fns *) (desc->iface_fns); - - if (fn) { - ulong addr; - - /* Get the relocated table address */ - addr = (ulong) fn + reloc_offset; - fn_r = (Xilinx_Spartan3_Slave_Serial_fns *) addr; - - if (!fn_r->relocated) { - - if (memcmp (fn_r, fn, - sizeof (Xilinx_Spartan3_Slave_Serial_fns)) - == 0) { - /* good copy of the table, fix the descriptor pointer */ - desc->iface_fns = fn_r; - } else { - PRINTF ("%s: Invalid function table at 0x%p\n", - __FUNCTION__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__, - desc); - - if (fn->pre) { - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Xilinx_pre_fn) addr; - } - - addr = (ulong) (fn->pgm) + reloc_offset; - fn_r->pgm = (Xilinx_pgm_fn) addr; - - addr = (ulong) (fn->init) + reloc_offset; - fn_r->init = (Xilinx_init_fn) addr; - - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Xilinx_done_fn) addr; - - addr = (ulong) (fn->clk) + reloc_offset; - fn_r->clk = (Xilinx_clk_fn) addr; - - addr = (ulong) (fn->wr) + reloc_offset; - fn_r->wr = (Xilinx_wr_fn) addr; - - if (fn->post) { - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Xilinx_post_fn) addr; - } - - fn_r->relocated = TRUE; - - } else { - /* this table has already been moved */ - /* XXX - should check to see if the descriptor is correct */ - desc->iface_fns = fn_r; - } - - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - - return ret_val; - -} diff --git a/drivers/fpga/stratixII.c b/drivers/fpga/stratixII.c index 7556dbf..8a3a7d8 100644 --- a/drivers/fpga/stratixII.c +++ b/drivers/fpga/stratixII.c @@ -77,30 +77,6 @@ int StratixII_info (Altera_desc * desc) return FPGA_SUCCESS; } -int StratixII_reloc (Altera_desc * desc, ulong reloc_offset) -{ - int i; - uint32_t dest = (uint32_t) desc & 0xff000000; - - /* we assume a relocated code and non relocated code has different upper 8 bits */ - if (dest != ((uint32_t) desc->iface_fns & 0xff000000)) { - desc->iface_fns = - (void *)((uint32_t) (desc->iface_fns) + reloc_offset); - } - for (i = 0; i < sizeof (altera_board_specific_func) / sizeof (void *); - i++) { - if (dest != - ((uint32_t) (((void **)(desc->iface_fns))[i]) & 0xff000000)) - { - ((void **)(desc->iface_fns))[i] = - (void - *)(((uint32_t) (((void **)(desc->iface_fns))[i])) + - reloc_offset); - } - } - return FPGA_SUCCESS; -} - int StratixII_ps_fpp_dump (Altera_desc * desc, void *buf, size_t bsize) { printf ("Stratix II Fast Passive Parallel dump is not implemented\n"); diff --git a/drivers/fpga/virtex2.c b/drivers/fpga/virtex2.c index 50d0921..d1b4d15 100644 --- a/drivers/fpga/virtex2.c +++ b/drivers/fpga/virtex2.c @@ -103,11 +103,9 @@ static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize); static int Virtex2_ssm_dump (Xilinx_desc * desc, void *buf, size_t bsize); -static int Virtex2_ssm_reloc (Xilinx_desc * desc, ulong reloc_offset); static int Virtex2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize); static int Virtex2_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize); -static int Virtex2_ss_reloc (Xilinx_desc * desc, ulong reloc_offset); int Virtex2_load (Xilinx_desc * desc, void *buf, size_t bsize) { @@ -158,31 +156,6 @@ int Virtex2_info (Xilinx_desc * desc) return FPGA_SUCCESS; } -int Virtex2_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; - - if (desc->family != Xilinx_Virtex2) { - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - return FPGA_FAIL; - } else - switch (desc->iface) { - case slave_serial: - ret_val = Virtex2_ss_reloc (desc, reloc_offset); - break; - - case slave_selectmap: - ret_val = Virtex2_ssm_reloc (desc, reloc_offset); - break; - - default: - printf ("%s: Unsupported interface type, %d\n", - __FUNCTION__, desc->iface); - } - return ret_val; -} - /* * Virtex-II Slave SelectMap configuration loader. Configuration via * SelectMap is as follows: @@ -448,81 +421,6 @@ static int Virtex2_ssm_dump (Xilinx_desc * desc, void *buf, size_t bsize) return ret_val; } -/* - * Relocate the addresses in the function table from FLASH (or ROM, - * or whatever) to RAM. - */ -static int Virtex2_ssm_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - ulong addr; - int ret_val = FPGA_FAIL; - Xilinx_Virtex2_Slave_SelectMap_fns *fn_r, *fn = - (Xilinx_Virtex2_Slave_SelectMap_fns *) (desc->iface_fns); - - if (fn) { - /* - * Get the relocated table address - */ - addr = (ulong) fn + reloc_offset; - fn_r = (Xilinx_Virtex2_Slave_SelectMap_fns *) addr; - - /* - * Check to see if the table has already been relocated. If not, do - * a sanity check to make sure there is a faithful copy of the - * FLASH based function table in RAM, then adjust the table. - */ - if (!fn_r->relocated) { - if (memcmp - (fn_r, fn, sizeof (Xilinx_Virtex2_Slave_SelectMap_fns)) - == 0) { - desc->iface_fns = fn_r; - } else { - PRINTF ("%s:%d: Invalid function table at 0x%p\n", - __FUNCTION__, __LINE__, fn_r); - return FPGA_FAIL; - } - - PRINTF ("%s:%d: Relocating descriptor at 0x%p\n", - __FUNCTION__, __LINE__, desc); - - addr = (ulong) (fn->pre) + reloc_offset; - fn_r->pre = (Xilinx_pre_fn) addr; - addr = (ulong) (fn->pgm) + reloc_offset; - fn_r->pgm = (Xilinx_pgm_fn) addr; - addr = (ulong) (fn->init) + reloc_offset; - fn_r->init = (Xilinx_init_fn) addr; - addr = (ulong) (fn->done) + reloc_offset; - fn_r->done = (Xilinx_done_fn) addr; - addr = (ulong) (fn->err) + reloc_offset; - fn_r->err = (Xilinx_err_fn) addr; - addr = (ulong) (fn->clk) + reloc_offset; - fn_r->clk = (Xilinx_clk_fn) addr; - addr = (ulong) (fn->cs) + reloc_offset; - fn_r->cs = (Xilinx_cs_fn) addr; - addr = (ulong) (fn->wr) + reloc_offset; - fn_r->wr = (Xilinx_wr_fn) addr; - addr = (ulong) (fn->rdata) + reloc_offset; - fn_r->rdata = (Xilinx_rdata_fn) addr; - addr = (ulong) (fn->wdata) + reloc_offset; - fn_r->wdata = (Xilinx_wdata_fn) addr; - addr = (ulong) (fn->busy) + reloc_offset; - fn_r->busy = (Xilinx_busy_fn) addr; - addr = (ulong) (fn->abort) + reloc_offset; - fn_r->abort = (Xilinx_abort_fn) addr; - addr = (ulong) (fn->post) + reloc_offset; - fn_r->post = (Xilinx_post_fn) addr; - fn_r->relocated = TRUE; - } else { - printf ("%s:%d: Function table @0x%p has already been relocated\n", __FUNCTION__, __LINE__, fn_r); - desc->iface_fns = fn_r; - } - ret_val = FPGA_SUCCESS; - } else { - printf ("%s: NULL Interface function table!\n", __FUNCTION__); - } - return ret_val; -} - static int Virtex2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize) { printf ("%s: Slave Serial Loading is unsupported\n", __FUNCTION__); @@ -535,20 +433,4 @@ static int Virtex2_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize) return FPGA_FAIL; } -static int Virtex2_ss_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; - Xilinx_Virtex2_Slave_Serial_fns *fn = - (Xilinx_Virtex2_Slave_Serial_fns *) (desc->iface_fns); - - if (fn) { - printf ("%s:%d: Slave Serial Loading is unsupported\n", - __FUNCTION__, __LINE__); - } else { - printf ("%s:%d: NULL Interface function table!\n", - __FUNCTION__, __LINE__); - } - return ret_val; -} - /* vim: set ts=4 tw=78: */ diff --git a/drivers/fpga/xilinx.c b/drivers/fpga/xilinx.c index 7b5e8c5..08dfdec 100644 --- a/drivers/fpga/xilinx.c +++ b/drivers/fpga/xilinx.c @@ -238,48 +238,6 @@ int xilinx_info (Xilinx_desc * desc) return ret_val; } -int xilinx_reloc (Xilinx_desc * desc, ulong reloc_offset) -{ - int ret_val = FPGA_FAIL; /* assume a failure */ - - if (!xilinx_validate (desc, (char *)__FUNCTION__)) { - printf ("%s: Invalid device descriptor\n", __FUNCTION__); - } else - switch (desc->family) { - case Xilinx_Spartan2: -#if defined(CONFIG_FPGA_SPARTAN2) - ret_val = Spartan2_reloc (desc, reloc_offset); -#else - printf ("%s: No support for Spartan-II devices.\n", - __FUNCTION__); -#endif - break; - case Xilinx_Spartan3: -#if defined(CONFIG_FPGA_SPARTAN3) - ret_val = Spartan3_reloc (desc, reloc_offset); -#else - printf ("%s: No support for Spartan-III devices.\n", - __FUNCTION__); -#endif - break; - case Xilinx_Virtex2: -#if defined(CONFIG_FPGA_VIRTEX2) - ret_val = Virtex2_reloc (desc, reloc_offset); -#else - printf ("%s: No support for Virtex-II devices.\n", - __FUNCTION__); -#endif - break; - /* Add new family types here */ - default: - printf ("%s: Unsupported family type, %d\n", - __FUNCTION__, desc->family); - } - - return ret_val; -} - - /* ------------------------------------------------------------------------- */ static int xilinx_validate (Xilinx_desc * desc, char *fn) diff --git a/drivers/mtd/nand/nand.c b/drivers/mtd/nand/nand.c index 9065fa9..47d6872 100644 --- a/drivers/mtd/nand/nand.c +++ b/drivers/mtd/nand/nand.c @@ -54,8 +54,10 @@ static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand, if (nand_scan(mtd, maxchips) == 0) { if (!mtd->name) mtd->name = (char *)default_nand_name; +#ifndef CONFIG_RELOC_FIXUP_WORKS else mtd->name += gd->reloc_off; +#endif #ifdef CONFIG_MTD_DEVICE /* diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 5c3d261..3f74118 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -35,8 +35,6 @@ typedef volatile struct rtxbd { #define MAXCONTROLLERS (8) -static int relocated = 0; - static struct tsec_private *privlist[MAXCONTROLLERS]; static int num_tsecs = 0; @@ -59,7 +57,6 @@ uint read_phy_reg(struct tsec_private *priv, uint regnum); struct phy_info *get_phy_info(struct eth_device *dev); void phy_run_commands(struct tsec_private *priv, struct phy_cmd *cmd); static void adjust_link(struct eth_device *dev); -static void relocate_cmds(void); #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) \ && !defined(BITBANGMII) static int tsec_miiphy_write(char *devname, unsigned char addr, @@ -321,9 +318,6 @@ static int init_phy(struct eth_device *dev) asm("sync"); while (priv->phyregs->miimind & MIIMIND_BUSY) ; - if (0 == relocated) - relocate_cmds(); - /* Get the cmd structure corresponding to the attached * PHY */ curphy = get_phy_info(dev); @@ -1800,49 +1794,6 @@ void phy_run_commands(struct tsec_private *priv, struct phy_cmd *cmd) } } -/* Relocate the function pointers in the phy cmd lists */ -static void relocate_cmds(void) -{ - struct phy_cmd **cmdlistptr; - struct phy_cmd *cmd; - int i, j, k; - - for (i = 0; phy_info[i]; i++) { - /* First thing's first: relocate the pointers to the - * PHY command structures (the structs were done) */ - phy_info[i] = (struct phy_info *)((uint) phy_info[i] - + gd->reloc_off); - phy_info[i]->name += gd->reloc_off; - phy_info[i]->config = - (struct phy_cmd *)((uint) phy_info[i]->config - + gd->reloc_off); - phy_info[i]->startup = - (struct phy_cmd *)((uint) phy_info[i]->startup - + gd->reloc_off); - phy_info[i]->shutdown = - (struct phy_cmd *)((uint) phy_info[i]->shutdown - + gd->reloc_off); - - cmdlistptr = &phy_info[i]->config; - j = 0; - for (; cmdlistptr <= &phy_info[i]->shutdown; cmdlistptr++) { - k = 0; - for (cmd = *cmdlistptr; - cmd->mii_reg != miim_end; - cmd++) { - /* Only relocate non-NULL pointers */ - if (cmd->funct) - cmd->funct += gd->reloc_off; - - k++; - } - j++; - } - } - - relocated = 1; -} - #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) \ && !defined(BITBANGMII) diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 286739c..82f1c54 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -124,9 +124,13 @@ int ubifs_decompress(const void *in_buf, int in_len, void *out_buf, static int __init compr_init(struct ubifs_compressor *compr) { ubifs_compressors[compr->compr_type] = compr; + +#ifndef CONFIG_RELOC_FIXUP_WORKS ubifs_compressors[compr->compr_type]->name += gd->reloc_off; ubifs_compressors[compr->compr_type]->capi_name += gd->reloc_off; ubifs_compressors[compr->compr_type]->decompress += gd->reloc_off; +#endif + return 0; } diff --git a/include/ACEX1K.h b/include/ACEX1K.h index 354e0f0..ae20164 100644 --- a/include/ACEX1K.h +++ b/include/ACEX1K.h @@ -33,12 +33,10 @@ extern int ACEX1K_load( Altera_desc *desc, void *image, size_t size ); extern int ACEX1K_dump( Altera_desc *desc, void *buf, size_t bsize ); extern int ACEX1K_info( Altera_desc *desc ); -extern int ACEX1K_reloc( Altera_desc *desc, ulong reloc_off ); extern int CYC2_load( Altera_desc *desc, void *image, size_t size ); extern int CYC2_dump( Altera_desc *desc, void *buf, size_t bsize ); extern int CYC2_info( Altera_desc *desc ); -extern int CYC2_reloc( Altera_desc *desc, ulong reloc_off ); /* Slave Serial Implementation function table */ typedef struct { @@ -50,7 +48,6 @@ typedef struct { Altera_data_fn data; Altera_abort_fn abort; Altera_post_fn post; - int relocated; } Altera_ACEX1K_Passive_Serial_fns; /* Slave Serial Implementation function table */ @@ -62,7 +59,6 @@ typedef struct { Altera_write_fn write; Altera_abort_fn abort; Altera_post_fn post; - int relocated; } Altera_CYC2_Passive_Serial_fns; /* Device Image Sizes diff --git a/include/altera.h b/include/altera.h index 44a1ee5..bc21ddf 100644 --- a/include/altera.h +++ b/include/altera.h @@ -79,7 +79,6 @@ typedef struct { /* typedef Altera_desc */ extern int altera_load( Altera_desc *desc, void *image, size_t size ); extern int altera_dump( Altera_desc *desc, void *buf, size_t bsize ); extern int altera_info( Altera_desc *desc ); -extern int altera_reloc( Altera_desc *desc, ulong reloc_offset ); /* Board specific implementation specific function types *********************************************************************/ diff --git a/include/asm-arm/config.h b/include/asm-arm/config.h index 049c44e..b76fd8e 100644 --- a/include/asm-arm/config.h +++ b/include/asm-arm/config.h @@ -21,4 +21,7 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +/* Relocation to SDRAM works on all ARM boards */ +#define CONFIG_RELOC_FIXUP_WORKS + #endif diff --git a/include/asm-arm/global_data.h b/include/asm-arm/global_data.h index 5c56ce3..8115a24 100644 --- a/include/asm-arm/global_data.h +++ b/include/asm-arm/global_data.h @@ -38,7 +38,6 @@ typedef struct global_data { unsigned long flags; unsigned long baudrate; unsigned long have_console; /* serial_init() was called */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Checksum of Environment valid? */ unsigned long fb_base; /* base address of frame buffer */ diff --git a/include/asm-microblaze/config.h b/include/asm-microblaze/config.h index 049c44e..8a9064b 100644 --- a/include/asm-microblaze/config.h +++ b/include/asm-microblaze/config.h @@ -21,4 +21,7 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +/* Relocation to SDRAM works on all Microblaze boards */ +#define CONFIG_RELOC_FIXUP_WORKS + #endif diff --git a/include/asm-microblaze/global_data.h b/include/asm-microblaze/global_data.h index 3f49c34..ec7837f 100644 --- a/include/asm-microblaze/global_data.h +++ b/include/asm-microblaze/global_data.h @@ -39,7 +39,6 @@ typedef struct global_data { unsigned long flags; unsigned long baudrate; unsigned long have_console; /* serial_init() was called */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Checksum of Environment valid? */ unsigned long fb_base; /* base address of frame buffer */ diff --git a/include/asm-nios/config.h b/include/asm-nios/config.h index 049c44e..2efe898 100644 --- a/include/asm-nios/config.h +++ b/include/asm-nios/config.h @@ -21,4 +21,7 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +/* Relocation to SDRAM works on all NIOS boards */ +#define CONFIG_RELOC_FIXUP_WORKS + #endif diff --git a/include/asm-nios/global_data.h b/include/asm-nios/global_data.h index 4929a5b..fa54ee4 100644 --- a/include/asm-nios/global_data.h +++ b/include/asm-nios/global_data.h @@ -31,7 +31,6 @@ typedef struct global_data { unsigned long cpu_clk; /* CPU clock in Hz! */ unsigned long have_console; /* serial_init() was called */ phys_size_t ram_size; /* RAM size */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Checksum of Environment valid */ #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) diff --git a/include/asm-nios2/config.h b/include/asm-nios2/config.h index 049c44e..011d603 100644 --- a/include/asm-nios2/config.h +++ b/include/asm-nios2/config.h @@ -21,4 +21,7 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +/* Relocation to SDRAM works on all NIOS2 boards */ +#define CONFIG_RELOC_FIXUP_WORKS + #endif diff --git a/include/asm-nios2/global_data.h b/include/asm-nios2/global_data.h index db71324..34aa962 100644 --- a/include/asm-nios2/global_data.h +++ b/include/asm-nios2/global_data.h @@ -30,7 +30,6 @@ typedef struct global_data { unsigned long cpu_clk; /* CPU clock in Hz! */ unsigned long have_console; /* serial_init() was called */ phys_size_t ram_size; /* RAM size */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Checksum of Environment valid */ #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) diff --git a/include/asm-ppc/config.h b/include/asm-ppc/config.h index e35b0b7..eba7901 100644 --- a/include/asm-ppc/config.h +++ b/include/asm-ppc/config.h @@ -47,4 +47,7 @@ #define CONFIG_MAX_CPUS 1 #endif +/* Relocation to SDRAM works on all PPC boards */ +#define CONFIG_RELOC_FIXUP_WORKS + #endif /* _ASM_CONFIG_H_ */ diff --git a/include/asm-ppc/global_data.h b/include/asm-ppc/global_data.h index db4b1ea..55e7e20 100644 --- a/include/asm-ppc/global_data.h +++ b/include/asm-ppc/global_data.h @@ -24,6 +24,7 @@ #ifndef __ASM_GBL_DATA_H #define __ASM_GBL_DATA_H +#include "config.h" #include "asm/types.h" /* @@ -124,7 +125,6 @@ typedef struct global_data { unsigned long flb_clk; #endif phys_size_t ram_size; /* RAM size */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long reset_status; /* reset status register at boot */ #if defined(CONFIG_MPC83xx) unsigned long arbiter_event_attributes; diff --git a/include/asm-sh/config.h b/include/asm-sh/config.h index 049c44e..978cc92 100644 --- a/include/asm-sh/config.h +++ b/include/asm-sh/config.h @@ -21,4 +21,7 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +/* Relocation to SDRAM works on all sh boards */ +#define CONFIG_RELOC_FIXUP_WORKS + #endif diff --git a/include/asm-sh/global_data.h b/include/asm-sh/global_data.h index f8ade5c..c12b855 100644 --- a/include/asm-sh/global_data.h +++ b/include/asm-sh/global_data.h @@ -35,7 +35,6 @@ typedef struct global_data unsigned long cpu_clk; /* CPU clock in Hz! */ unsigned long have_console; /* serial_init() was called */ phys_size_t ram_size; /* RAM size */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Checksum of Environment valid */ void **jt; /* Standalone app jump table */ diff --git a/include/configs/XPEDITE5170.h b/include/configs/XPEDITE5170.h index 30642cd..1a810e4 100644 --- a/include/configs/XPEDITE5170.h +++ b/include/configs/XPEDITE5170.h @@ -36,7 +36,6 @@ #define CONFIG_SYS_BOARD_NAME "XPedite5170" #define CONFIG_LINUX_RESET_VEC 0x100 /* Reset vector used by Linux */ #define CONFIG_BOARD_EARLY_INIT_R /* Call board_pre_init */ -#define CONFIG_RELOC_FIXUP_WORKS /* Fully relocate to SDRAM */ #define CONFIG_HIGH_BATS 1 /* High BATs supported and enabled */ #define CONFIG_ALTIVEC 1 diff --git a/include/configs/XPEDITE5200.h b/include/configs/XPEDITE5200.h index d79231b..3f73780 100644 --- a/include/configs/XPEDITE5200.h +++ b/include/configs/XPEDITE5200.h @@ -37,7 +37,6 @@ #define CONFIG_XPEDITE5200 1 #define CONFIG_SYS_BOARD_NAME "XPedite5200" #define CONFIG_BOARD_EARLY_INIT_R /* Call board_pre_init */ -#define CONFIG_RELOC_FIXUP_WORKS /* Fully relocate to SDRAM */ #define CONFIG_PCI 1 /* Enable PCI/PCIE */ #define CONFIG_PCI_PNP 1 /* do pci plug-and-play */ diff --git a/include/configs/XPEDITE5370.h b/include/configs/XPEDITE5370.h index 65e1afd..26b798b 100644 --- a/include/configs/XPEDITE5370.h +++ b/include/configs/XPEDITE5370.h @@ -37,7 +37,6 @@ #define CONFIG_XPEDITE5370 1 #define CONFIG_SYS_BOARD_NAME "XPedite5370" #define CONFIG_BOARD_EARLY_INIT_R /* Call board_pre_init */ -#define CONFIG_RELOC_FIXUP_WORKS /* Fully relocate to SDRAM */ #define CONFIG_PCI 1 /* Enable PCI/PCIE */ #define CONFIG_PCI_PNP 1 /* do pci plug-and-play */ diff --git a/include/configs/inka4x0.h b/include/configs/inka4x0.h index 46606ca..14f7826 100644 --- a/include/configs/inka4x0.h +++ b/include/configs/inka4x0.h @@ -42,7 +42,6 @@ #define BOOTFLAG_WARM 0x02 /* Software reboot */ #define CONFIG_MISC_INIT_F 1 /* Use misc_init_f() */ -#define CONFIG_MISC_INIT_R 1 /* Use misc_init_r() */ #define CONFIG_HIGH_BATS 1 /* High BATs supported */ diff --git a/include/configs/p3mx.h b/include/configs/p3mx.h index 5e4d30b..0749037 100644 --- a/include/configs/p3mx.h +++ b/include/configs/p3mx.h @@ -59,7 +59,6 @@ /* which initialization functions to call for this board */ #define CONFIG_SYS_BOARD_ASM_INIT 1 #define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */ -#define CONFIG_BOARD_EARLY_INIT_R 1 /* Call board_early_init_f */ #define CONFIG_MISC_INIT_R 1 /* Call misc_init_r() */ /*----------------------------------------------------------------------- diff --git a/include/exports.h b/include/exports.h index 16ea03a..2e8fd8b 100644 --- a/include/exports.h +++ b/include/exports.h @@ -47,7 +47,7 @@ enum { XF_MAX }; -#define XF_VERSION 5 +#define XF_VERSION 6 #if defined(CONFIG_I386) extern gd_t *global_data; diff --git a/include/fpga.h b/include/fpga.h index a48b89b..84d7b9f 100644 --- a/include/fpga.h +++ b/include/fpga.h @@ -71,7 +71,7 @@ typedef struct { /* typedef fpga_desc */ /* root function definitions */ -extern void fpga_init( ulong reloc_off ); +extern void fpga_init( void ); extern int fpga_add( fpga_type devtype, void *desc ); extern int fpga_count( void ); extern int fpga_load( int devnum, void *buf, size_t bsize ); diff --git a/include/post.h b/include/post.h index fe96312..9fcd3ce 100644 --- a/include/post.h +++ b/include/post.h @@ -73,7 +73,9 @@ void post_output_backlog ( void ); int post_run (char *name, int flags); int post_info (char *name); int post_log (char *format, ...); +#ifndef CONFIG_RELOC_FIXUP_WORKS void post_reloc (void); +#endif unsigned long post_time_ms (unsigned long base); extern struct post_test post_list[]; diff --git a/include/spartan2.h b/include/spartan2.h index 7327857..8959f90 100644 --- a/include/spartan2.h +++ b/include/spartan2.h @@ -30,7 +30,6 @@ extern int Spartan2_load( Xilinx_desc *desc, void *image, size_t size ); extern int Spartan2_dump( Xilinx_desc *desc, void *buf, size_t bsize ); extern int Spartan2_info( Xilinx_desc *desc ); -extern int Spartan2_reloc( Xilinx_desc *desc, ulong reloc_off ); /* Slave Parallel Implementation function table */ typedef struct { @@ -47,7 +46,6 @@ typedef struct { Xilinx_busy_fn busy; Xilinx_abort_fn abort; Xilinx_post_fn post; - int relocated; } Xilinx_Spartan2_Slave_Parallel_fns; /* Slave Serial Implementation function table */ @@ -59,7 +57,6 @@ typedef struct { Xilinx_done_fn done; Xilinx_wr_fn wr; Xilinx_post_fn post; - int relocated; } Xilinx_Spartan2_Slave_Serial_fns; /* Device Image Sizes diff --git a/include/spartan3.h b/include/spartan3.h index b0fa1cd..30b1c2d 100644 --- a/include/spartan3.h +++ b/include/spartan3.h @@ -30,7 +30,6 @@ extern int Spartan3_load( Xilinx_desc *desc, void *image, size_t size ); extern int Spartan3_dump( Xilinx_desc *desc, void *buf, size_t bsize ); extern int Spartan3_info( Xilinx_desc *desc ); -extern int Spartan3_reloc( Xilinx_desc *desc, ulong reloc_off ); /* Slave Parallel Implementation function table */ typedef struct { @@ -47,7 +46,6 @@ typedef struct { Xilinx_busy_fn busy; Xilinx_abort_fn abort; Xilinx_post_fn post; - int relocated; } Xilinx_Spartan3_Slave_Parallel_fns; /* Slave Serial Implementation function table */ @@ -59,7 +57,6 @@ typedef struct { Xilinx_done_fn done; Xilinx_wr_fn wr; Xilinx_post_fn post; - int relocated; } Xilinx_Spartan3_Slave_Serial_fns; /* Device Image Sizes diff --git a/include/stratixII.h b/include/stratixII.h index 37abd9f..b8e8457 100644 --- a/include/stratixII.h +++ b/include/stratixII.h @@ -27,6 +27,5 @@ extern int StratixII_load (Altera_desc * desc, void *image, size_t size); extern int StratixII_dump (Altera_desc * desc, void *buf, size_t bsize); extern int StratixII_info (Altera_desc * desc); -extern int StratixII_reloc (Altera_desc * desc, ulong reloc_off); #endif /* _STRATIXII_H_ */ diff --git a/include/virtex2.h b/include/virtex2.h index d116647..89d7d76 100644 --- a/include/virtex2.h +++ b/include/virtex2.h @@ -31,7 +31,6 @@ extern int Virtex2_load( Xilinx_desc *desc, void *image, size_t size ); extern int Virtex2_dump( Xilinx_desc *desc, void *buf, size_t bsize ); extern int Virtex2_info( Xilinx_desc *desc ); -extern int Virtex2_reloc( Xilinx_desc *desc, ulong reloc_off ); /* * Slave SelectMap Implementation function table. @@ -50,7 +49,6 @@ typedef struct { Xilinx_busy_fn busy; Xilinx_abort_fn abort; Xilinx_post_fn post; - int relocated; } Xilinx_Virtex2_Slave_SelectMap_fns; /* Slave Serial Implementation function table */ @@ -59,7 +57,6 @@ typedef struct { Xilinx_clk_fn clk; Xilinx_rdata_fn rdata; Xilinx_wdata_fn wdata; - int relocated; } Xilinx_Virtex2_Slave_Serial_fns; /* Device Image Sizes (in bytes) diff --git a/include/xilinx.h b/include/xilinx.h index fdc3587..d0799bc 100644 --- a/include/xilinx.h +++ b/include/xilinx.h @@ -84,7 +84,6 @@ typedef struct { /* typedef Xilinx_desc */ extern int xilinx_load( Xilinx_desc *desc, void *image, size_t size ); extern int xilinx_dump( Xilinx_desc *desc, void *buf, size_t bsize ); extern int xilinx_info( Xilinx_desc *desc ); -extern int xilinx_reloc( Xilinx_desc *desc, ulong reloc_offset ); /* Board specific implementation specific function types *********************************************************************/ diff --git a/lib_ppc/Makefile b/lib_ppc/Makefile index 60ea0c9..399b41e 100644 --- a/lib_ppc/Makefile +++ b/lib_ppc/Makefile @@ -42,6 +42,12 @@ SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y)) $(LIB): $(obj).depend $(OBJS) + @if ! $(CROSS_COMPILE)readelf -S $(OBJS) | grep -q '\.fixup.*PROGBITS';\ + then \ + echo "ERROR: Your compiler doesn't generate .fixup sections!";\ + echo " Upgrade to a recent toolchain."; \ + exit 1; \ + fi; $(AR) $(ARFLAGS) $@ $(OBJS) ######################################################################### diff --git a/lib_ppc/board.c b/lib_ppc/board.c index f9dbdb9..8b8ddb5 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -627,13 +627,8 @@ void board_init_f (ulong bootflag) */ void board_init_r (gd_t *id, ulong dest_addr) { - cmd_tbl_t *cmdtp; char *s; bd_t *bd; - extern void malloc_bin_reloc (void); -#ifndef CONFIG_ENV_IS_NOWHERE - extern char * env_name_spec; -#endif ulong malloc_start; #ifndef CONFIG_SYS_NO_FLASH @@ -646,18 +641,7 @@ void board_init_r (gd_t *id, ulong dest_addr) gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */ /* The Malloc area is immediately below the monitor copy in DRAM */ -#if defined(CONFIG_RELOC_FIXUP_WORKS) - gd->reloc_off = 0; malloc_start = dest_addr - TOTAL_MALLOC_LEN; -#else - gd->reloc_off = dest_addr - CONFIG_SYS_MONITOR_BASE; - malloc_start = CONFIG_SYS_MONITOR_BASE + gd->reloc_off - - TOTAL_MALLOC_LEN; -#endif - -#if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx) - gd->cpu += gd->reloc_off; -#endif #ifdef CONFIG_SERIAL_MULTI serial_initialize(); @@ -682,38 +666,6 @@ void board_init_r (gd_t *id, ulong dest_addr) monitor_flash_len = (ulong)&__init_end - dest_addr; - /* - * We have to relocate the command table manually - */ - for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) { - ulong addr; - addr = (ulong) (cmdtp->cmd) + gd->reloc_off; -#if 0 - printf ("Command \"%s\": 0x%08lx => 0x%08lx\n", - cmdtp->name, (ulong) (cmdtp->cmd), addr); -#endif - cmdtp->cmd = - (int (*)(struct cmd_tbl_s *, int, int, char *[]))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 - } - /* there are some other pointer constants we must deal with */ -#ifndef CONFIG_ENV_IS_NOWHERE - env_name_spec += gd->reloc_off; -#endif - WATCHDOG_RESET (); #ifdef CONFIG_LOGBUFFER @@ -721,7 +673,6 @@ void board_init_r (gd_t *id, ulong dest_addr) #endif #ifdef CONFIG_POST post_output_backlog (); - post_reloc (); #endif WATCHDOG_RESET(); @@ -752,7 +703,6 @@ void board_init_r (gd_t *id, ulong dest_addr) asm ("sync ; isync"); mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN); - malloc_bin_reloc (); #if !defined(CONFIG_SYS_NO_FLASH) puts ("FLASH: "); diff --git a/lib_ppc/config.mk b/lib_ppc/config.mk index 010d874..06a3b10 100644 --- a/lib_ppc/config.mk +++ b/lib_ppc/config.mk @@ -25,6 +25,7 @@ CROSS_COMPILE ?= ppc_8xx- STANDALONE_LOAD_ADDR = 0x40000 +PLATFORM_RELFLAGS += -mrelocatable PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__ PLATFORM_LDFLAGS += -n diff --git a/lib_ppc/extable.c b/lib_ppc/extable.c index 91e2b3d..7408d5c 100644 --- a/lib_ppc/extable.c +++ b/lib_ppc/extable.c @@ -53,27 +53,13 @@ search_one_table(const struct exception_table_entry *first, unsigned long value) { long diff; - if ((ulong) first > CONFIG_SYS_MONITOR_BASE) { - /* exception occurs in FLASH, before u-boot relocation. - * No relocation offset is needed. - */ - while (first <= last) { - diff = first->insn - value; - if (diff == 0) - return first->fixup; - first++; - } - } else { - /* exception occurs in RAM, after u-boot relocation. - * A relocation offset should be added. - */ - while (first <= last) { - diff = (first->insn + gd->reloc_off) - value; - if (diff == 0) - return (first->fixup + gd->reloc_off); - first++; - } + while (first <= last) { + diff = first->insn - value; + if (diff == 0) + return first->fixup; + first++; } + return 0; } diff --git a/post/board/lwmon/sysmon.c b/post/board/lwmon/sysmon.c index 79a5151..fc828b2 100644 --- a/post/board/lwmon/sysmon.c +++ b/post/board/lwmon/sysmon.c @@ -56,8 +56,6 @@ static int sysmon_temp_invalid = 0; /* #define DEBUG */ -#define RELOC(x) if (x != NULL) x = (void *) ((ulong) (x) + gd->reloc_off) - typedef struct sysmon_s sysmon_t; typedef struct sysmon_table_s sysmon_table_t; @@ -159,20 +157,7 @@ int sysmon_init_f (void) void sysmon_reloc (void) { - sysmon_t ** l; - sysmon_table_t * t; - - for (l = sysmon_list; *l; l++) { - RELOC(*l); - RELOC((*l)->init); - RELOC((*l)->read); - } - - for (t = sysmon_table; t < sysmon_table + sysmon_table_size; t ++) { - RELOC(t->exec_before); - RELOC(t->exec_after); - RELOC(t->sysmon); - } + /* Do nothing for now, sysmon_reloc() is required by the sysmon post */ } static char *sysmon_unit_value (sysmon_table_t *s, uint val) diff --git a/post/board/lwmon5/sysmon.c b/post/board/lwmon5/sysmon.c index aef5bd0..9c49d0e 100644 --- a/post/board/lwmon5/sysmon.c +++ b/post/board/lwmon5/sysmon.c @@ -58,8 +58,6 @@ DECLARE_GLOBAL_DATA_PTR; /* from dspic.c */ extern int dspic_read(ushort reg); -#define RELOC(x) if (x != NULL) x = (void *) ((ulong) (x) + gd->reloc_off) - #define REG_TEMPERATURE 0x12BC #define REG_VOLTAGE_5V 0x12CA #define REG_VOLTAGE_5V_STANDBY 0x12C6 @@ -160,20 +158,7 @@ int sysmon_init_f (void) void sysmon_reloc (void) { - sysmon_t ** l; - sysmon_table_t * t; - - for (l = sysmon_list; *l; l++) { - RELOC(*l); - RELOC((*l)->init); - RELOC((*l)->read); - } - - for (t = sysmon_table; t < sysmon_table + sysmon_table_size; t ++) { - RELOC(t->exec_before); - RELOC(t->exec_after); - RELOC(t->sysmon); - } + /* Do nothing for now, sysmon_reloc() is required by the sysmon post */ } static char *sysmon_unit_value (sysmon_table_t *s, uint val) diff --git a/post/post.c b/post/post.c index bc8114e..b74e762 100644 --- a/post/post.c +++ b/post/post.c @@ -393,6 +393,7 @@ int post_log (char *format, ...) return 0; } +#ifndef CONFIG_RELOC_FIXUP_WORKS void post_reloc (void) { unsigned int i; @@ -437,6 +438,7 @@ void post_reloc (void) } } } +#endif /* |