All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 00/13] ppc: Fix relocation
@ 2009-09-21 16:20 Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 01/13] ppc: Enable full relocation to RAM Peter Tyser
                   ` (15 more replies)
  0 siblings, 16 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

This series attempts to fix relocation to RAM for ppc boards.

I split the patches up pretty liberally, let me know if you'd like
them organized differently.

I tried to be thorough during the changes (especially #1), let me
know if I missed anything, there's lots of linker scripts for ppc
boards:)

Peter Tyser (13):
  ppc: Enable full relocation to RAM
  ppc: Check for compilers that don't support relocation
  ppc: Remove board.c relocation fixups
  ppc: Remove pci config table pointer relocation fixups
  ppc: Remove extable relocation fixups
  ppc: Remove board-specific command table relocation fixups
  tsec: Remove PHY command relocation fixups
  fpga: Remove relocation fixups
  mpl: Remove memory test relocation fixups
  lwmon, lwmon5: Remove sysmon POST relocation fixups
  p3mx: Remove serial relocation fixups
  Conditionally perform common relocation fixups
  ppc: Remove reloc_off field from global_data structure

 board/LEOX/elpt860/u-boot.lds              |    1 -
 board/LEOX/elpt860/u-boot.lds.debug        |    1 -
 board/MAI/AmigaOneG3SE/u-boot.lds          |    1 -
 board/Marvell/db64360/u-boot.lds           |    1 -
 board/Marvell/db64460/u-boot.lds           |    1 -
 board/RPXClassic/u-boot.lds                |    1 -
 board/RPXClassic/u-boot.lds.debug          |    1 -
 board/RPXlite/u-boot.lds                   |    1 -
 board/RPXlite/u-boot.lds.debug             |    1 -
 board/RPXlite_dw/u-boot.lds                |    1 -
 board/RPXlite_dw/u-boot.lds.debug          |    1 -
 board/RRvision/u-boot.lds                  |    1 -
 board/adder/u-boot.lds                     |    1 -
 board/amcc/acadia/u-boot-nand.lds          |    1 -
 board/amcc/acadia/u-boot.lds               |    1 -
 board/amcc/bamboo/u-boot-nand.lds          |    1 -
 board/amcc/bamboo/u-boot.lds               |    1 -
 board/amcc/bubinga/u-boot.lds              |    1 -
 board/amcc/canyonlands/u-boot-nand.lds     |    1 -
 board/amcc/canyonlands/u-boot.lds          |    1 -
 board/amcc/ebony/u-boot.lds                |    1 -
 board/amcc/katmai/u-boot.lds               |    1 -
 board/amcc/kilauea/u-boot-nand.lds         |    1 -
 board/amcc/kilauea/u-boot.lds              |    1 -
 board/amcc/luan/u-boot.lds                 |    1 -
 board/amcc/makalu/u-boot.lds               |    1 -
 board/amcc/ocotea/u-boot.lds               |    1 -
 board/amcc/redwood/u-boot.lds              |    1 -
 board/amcc/sequoia/u-boot-nand.lds         |    1 -
 board/amcc/sequoia/u-boot-ram.lds          |    1 -
 board/amcc/sequoia/u-boot.lds              |    1 -
 board/amcc/taihu/u-boot.lds                |    1 -
 board/amcc/taishan/u-boot.lds              |    1 -
 board/amcc/walnut/u-boot.lds               |    1 -
 board/amcc/yosemite/u-boot.lds             |    1 -
 board/amcc/yucca/u-boot.lds                |    1 -
 board/amirix/ap1000/u-boot.lds             |    1 -
 board/c2mon/u-boot.lds                     |    1 -
 board/c2mon/u-boot.lds.debug               |    1 -
 board/cm5200/u-boot.lds                    |    1 -
 board/cogent/u-boot.lds                    |    1 -
 board/cogent/u-boot.lds.debug              |    1 -
 board/cray/L1/u-boot.lds                   |    1 -
 board/cray/L1/u-boot.lds.debug             |    1 -
 board/csb272/u-boot.lds                    |    1 -
 board/csb472/u-boot.lds                    |    1 -
 board/dave/PPChameleonEVB/u-boot.lds       |    1 -
 board/digsy_mtc/cmd_mtc.c                  |   30 -----
 board/digsy_mtc/digsy_mtc.c                |    2 -
 board/eltec/bab7xx/u-boot.lds              |    1 -
 board/eltec/elppc/u-boot.lds               |    1 -
 board/eltec/mhpc/u-boot.lds                |    1 -
 board/eltec/mhpc/u-boot.lds.debug          |    1 -
 board/emk/top860/u-boot.lds                |    1 -
 board/emk/top860/u-boot.lds.debug          |    1 -
 board/ep88x/u-boot.lds                     |    1 -
 board/eric/u-boot.lds                      |    1 -
 board/esd/adciop/u-boot.lds                |    1 -
 board/esd/apc405/u-boot.lds                |    1 -
 board/esd/ar405/u-boot.lds                 |    1 -
 board/esd/ash405/u-boot.lds                |    1 -
 board/esd/canbt/u-boot.lds                 |    1 -
 board/esd/cms700/u-boot.lds                |    1 -
 board/esd/cpci2dp/u-boot.lds               |    1 -
 board/esd/cpci405/u-boot.lds               |    1 -
 board/esd/cpci750/u-boot.lds               |    1 -
 board/esd/cpciiser4/u-boot.lds             |    1 -
 board/esd/dasa_sim/u-boot.lds              |    1 -
 board/esd/dp405/u-boot.lds                 |    1 -
 board/esd/du405/u-boot.lds                 |    1 -
 board/esd/du440/u-boot.lds                 |    1 -
 board/esd/hh405/u-boot.lds                 |    1 -
 board/esd/hub405/u-boot.lds                |    1 -
 board/esd/ocrtc/u-boot.lds                 |    1 -
 board/esd/pci405/u-boot.lds                |    1 -
 board/esd/plu405/u-boot.lds                |    1 -
 board/esd/pmc405/u-boot.lds                |    1 -
 board/esd/pmc405de/u-boot.lds              |    1 -
 board/esd/pmc440/fpga.c                    |    6 +-
 board/esd/pmc440/u-boot-nand.lds           |    1 -
 board/esd/pmc440/u-boot.lds                |    1 -
 board/esd/voh405/u-boot.lds                |    1 -
 board/esd/vom405/u-boot.lds                |    1 -
 board/esd/wuh405/u-boot.lds                |    1 -
 board/esteem192e/u-boot.lds                |    1 -
 board/etx094/u-boot.lds                    |    1 -
 board/etx094/u-boot.lds.debug              |    1 -
 board/evb64260/u-boot.lds                  |    1 -
 board/exbitgen/u-boot.lds                  |    1 -
 board/fads/u-boot.lds                      |    1 -
 board/fads/u-boot.lds.debug                |    1 -
 board/flagadm/u-boot.lds                   |    1 -
 board/flagadm/u-boot.lds.debug             |    1 -
 board/freescale/mpc7448hpc2/u-boot.lds     |    1 -
 board/freescale/mpc8548cds/mpc8548cds.c    |    7 -
 board/freescale/mpc8610hpcd/u-boot.lds     |    1 -
 board/freescale/mpc8641hpcn/u-boot.lds     |    1 -
 board/g2000/u-boot.lds                     |    1 -
 board/gdsys/dlvision/u-boot.lds            |    1 -
 board/gdsys/gdppc440etx/u-boot.lds         |    1 -
 board/gdsys/intip/u-boot.lds               |    1 -
 board/gdsys/neo/u-boot.lds                 |    1 -
 board/gen860t/fpga.c                       |    5 +-
 board/gen860t/u-boot-flashenv.lds          |    1 -
 board/gen860t/u-boot.lds                   |    1 -
 board/genietv/u-boot.lds                   |    1 -
 board/genietv/u-boot.lds.debug             |    1 -
 board/gth/u-boot.lds                       |    1 -
 board/hermes/u-boot.lds                    |    1 -
 board/hermes/u-boot.lds.debug              |    1 -
 board/hymod/u-boot.lds                     |    1 -
 board/hymod/u-boot.lds.debug               |    1 -
 board/icu862/u-boot.lds                    |    1 -
 board/icu862/u-boot.lds.debug              |    1 -
 board/inka4x0/inka4x0.c                    |   10 --
 board/inka4x0/inkadiag.c                   |   28 ----
 board/ip860/u-boot.lds                     |    1 -
 board/ip860/u-boot.lds.debug               |    1 -
 board/ivm/u-boot.lds                       |    1 -
 board/ivm/u-boot.lds.debug                 |    1 -
 board/jse/u-boot.lds                       |    1 -
 board/keymile/km8xx/u-boot.lds             |    1 -
 board/korat/u-boot-F7FC.lds                |    1 -
 board/korat/u-boot.lds                     |    1 -
 board/kup/kup4k/u-boot.lds                 |    1 -
 board/kup/kup4k/u-boot.lds.debug           |    1 -
 board/kup/kup4x/u-boot.lds                 |    1 -
 board/kup/kup4x/u-boot.lds.debug           |    1 -
 board/lantec/u-boot.lds                    |    1 -
 board/lantec/u-boot.lds.debug              |    1 -
 board/lwmon/u-boot.lds                     |    1 -
 board/lwmon/u-boot.lds.debug               |    1 -
 board/lwmon5/u-boot.lds                    |    1 -
 board/matrix_vision/mvbc_p/fpga.c          |    7 +-
 board/matrix_vision/mvblm7/fpga.c          |    6 +-
 board/mbx8xx/u-boot.lds                    |    1 -
 board/mbx8xx/u-boot.lds.debug              |    1 -
 board/ml2/u-boot.lds                       |    1 -
 board/ml2/u-boot.lds.debug                 |    1 -
 board/mousse/u-boot.lds                    |    1 -
 board/mousse/u-boot.lds.rom                |    1 -
 board/mpl/common/memtst.c                  |   26 ----
 board/mpl/common/pci.c                     |   18 ---
 board/mpl/mip405/mip405.c                  |    3 +-
 board/mpl/mip405/u-boot.lds                |    1 -
 board/mpl/pati/pati.c                      |    2 -
 board/mpl/pip405/u-boot.lds                |    1 -
 board/mpl/pip405/u-boot.lds.debug          |    1 -
 board/mpl/vcma9/vcma9.c                    |    3 -
 board/munices/u-boot.lds                   |    1 -
 board/nc650/u-boot.lds                     |    1 -
 board/nc650/u-boot.lds.debug               |    1 -
 board/netphone/u-boot.lds                  |    1 -
 board/netphone/u-boot.lds.debug            |    1 -
 board/netstal/hcu4/u-boot.lds              |    1 -
 board/netstal/hcu5/u-boot.lds              |    1 -
 board/netstal/mcu25/u-boot.lds             |    1 -
 board/netta/u-boot.lds                     |    1 -
 board/netta/u-boot.lds.debug               |    1 -
 board/netta2/u-boot.lds                    |    1 -
 board/netta2/u-boot.lds.debug              |    1 -
 board/netvia/u-boot.lds                    |    1 -
 board/netvia/u-boot.lds.debug              |    1 -
 board/nx823/u-boot.lds                     |    1 -
 board/nx823/u-boot.lds.debug               |    1 -
 board/pcippc2/u-boot.lds                   |    1 -
 board/pcs440ep/u-boot.lds                  |    1 -
 board/ppmc7xx/u-boot.lds                   |    1 -
 board/prodrive/alpr/fpga.c                 |    4 +-
 board/prodrive/alpr/u-boot.lds             |    1 -
 board/prodrive/p3mx/p3mx.c                 |   10 --
 board/prodrive/p3mx/u-boot.lds             |    1 -
 board/prodrive/p3p440/u-boot.lds           |    1 -
 board/quad100hd/u-boot.lds                 |    1 -
 board/quantum/u-boot.lds                   |    1 -
 board/quantum/u-boot.lds.debug             |    1 -
 board/r360mpi/u-boot.lds                   |    1 -
 board/rbc823/u-boot.lds                    |    1 -
 board/rmu/u-boot.lds                       |    1 -
 board/rmu/u-boot.lds.debug                 |    1 -
 board/rsdproto/u-boot.lds                  |    1 -
 board/sandburst/karef/u-boot.lds           |    1 -
 board/sandburst/karef/u-boot.lds.debug     |    1 -
 board/sandburst/metrobox/u-boot.lds        |    1 -
 board/sandburst/metrobox/u-boot.lds.debug  |    1 -
 board/sbc405/u-boot.lds                    |    1 -
 board/sbc8548/sbc8548.c                    |    6 -
 board/sbc8641d/u-boot.lds                  |    1 -
 board/sc3/u-boot.lds                       |    1 -
 board/siemens/CCM/u-boot.lds               |    1 -
 board/siemens/CCM/u-boot.lds.debug         |    1 -
 board/siemens/IAD210/u-boot.lds            |    1 -
 board/siemens/pcu_e/u-boot.lds             |    1 -
 board/siemens/pcu_e/u-boot.lds.debug       |    1 -
 board/sixnet/u-boot.lds                    |    1 -
 board/snmc/qs850/u-boot.lds                |    1 -
 board/snmc/qs860t/u-boot.lds               |    1 -
 board/spc1920/u-boot.lds                   |    1 -
 board/spd8xx/u-boot.lds                    |    1 -
 board/spd8xx/u-boot.lds.debug              |    1 -
 board/stx/stxxtc/u-boot.lds                |    1 -
 board/stx/stxxtc/u-boot.lds.debug          |    1 -
 board/svm_sc8xx/u-boot.lds                 |    1 -
 board/svm_sc8xx/u-boot.lds.debug           |    1 -
 board/tqc/tqm8xx/u-boot.lds                |    1 -
 board/tqc/tqm8xx/u-boot.lds.debug          |    1 -
 board/uc100/u-boot.lds                     |    1 -
 board/uc100/u-boot.lds.debug               |    1 -
 board/v37/u-boot.lds                       |    1 -
 board/w7o/u-boot.lds                       |    1 -
 board/w7o/u-boot.lds.debug                 |    1 -
 board/westel/amx860/u-boot.lds             |    1 -
 board/westel/amx860/u-boot.lds.debug       |    1 -
 board/xes/xpedite1000/u-boot.lds           |    1 -
 board/xes/xpedite1000/u-boot.lds.debug     |    1 -
 board/xes/xpedite5170/config.mk            |    2 -
 board/xes/xpedite5200/config.mk            |    2 -
 board/xes/xpedite5370/config.mk            |    2 -
 board/xilinx/ml300/u-boot.lds              |    1 -
 board/xilinx/ml300/u-boot.lds.debug        |    1 -
 board/xilinx/ppc405-generic/u-boot-ram.lds |    1 -
 board/xilinx/ppc405-generic/u-boot-rom.lds |    1 -
 board/xilinx/ppc440-generic/u-boot-ram.lds |    1 -
 board/xilinx/ppc440-generic/u-boot-rom.lds |    1 -
 board/zeus/u-boot.lds                      |    1 -
 common/cmd_bootm.c                         |    4 +-
 common/cmd_date.c                          |    4 +
 common/dlmalloc.c                          |    2 +
 common/env_common.c                        |    4 +
 common/hush.c                              |    4 +
 common/image.c                             |    6 +-
 common/serial.c                            |    2 +
 common/stdio.c                             |    5 +-
 cpu/mpc512x/u-boot.lds                     |    1 -
 cpu/mpc5xx/u-boot.lds                      |    1 -
 cpu/mpc5xxx/u-boot-customlayout.lds        |    1 -
 cpu/mpc5xxx/u-boot.lds                     |    1 -
 cpu/mpc8220/u-boot.lds                     |    1 -
 cpu/mpc824x/u-boot.lds                     |    1 -
 cpu/mpc8260/u-boot.lds                     |    1 -
 cpu/mpc83xx/u-boot.lds                     |    1 -
 cpu/mpc85xx/u-boot.lds                     |    1 -
 disk/part.c                                |    5 +-
 drivers/fpga/ACEX1K.c                      |   96 --------------
 drivers/fpga/altera.c                      |   39 ------
 drivers/fpga/cyclon2.c                     |   91 --------------
 drivers/fpga/fpga.c                        |   53 +-------
 drivers/fpga/spartan2.c                    |  187 ----------------------------
 drivers/fpga/spartan3.c                    |  185 ---------------------------
 drivers/fpga/stratixII.c                   |   24 ----
 drivers/fpga/virtex2.c                     |  118 -----------------
 drivers/fpga/xilinx.c                      |   42 ------
 drivers/mtd/nand/nand.c                    |    2 +
 drivers/net/tsec.c                         |   49 -------
 fs/ubifs/ubifs.c                           |    4 +
 include/ACEX1K.h                           |    4 -
 include/altera.h                           |    1 -
 include/asm-ppc/config.h                   |    3 +
 include/asm-ppc/global_data.h              |    2 +-
 include/configs/XPEDITE5170.h              |    1 -
 include/configs/XPEDITE5200.h              |    1 -
 include/configs/XPEDITE5370.h              |    1 -
 include/configs/inka4x0.h                  |    1 -
 include/configs/p3mx.h                     |    1 -
 include/fpga.h                             |    2 +-
 include/post.h                             |    2 +
 include/spartan2.h                         |    3 -
 include/spartan3.h                         |    3 -
 include/stratixII.h                        |    1 -
 include/virtex2.h                          |    3 -
 include/xilinx.h                           |    1 -
 lib_ppc/Makefile                           |    6 +
 lib_ppc/board.c                            |   50 --------
 lib_ppc/config.mk                          |    1 +
 lib_ppc/extable.c                          |   26 +---
 post/board/lwmon/sysmon.c                  |   17 +---
 post/board/lwmon5/sysmon.c                 |   17 +---
 post/post.c                                |    2 +
 278 files changed, 79 insertions(+), 1389 deletions(-)

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 01/13] ppc: Enable full relocation to RAM
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 02/13] ppc: Check for compilers that don't support relocation Peter Tyser
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

The following changes allow U-Boot to fully relocate from flash to
RAM:
 - Remove linker scripts' .fixup sections from the .text section
 - Add -mrelocatable to PLATFORM_RELFLAGS for all boards
 - Define CONFIG_RELOC_FIXUP_WORKS for all boards

Previously, U-Boot would partially relocate, but statically initialized
pointers needed to be manually relocated.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 board/LEOX/elpt860/u-boot.lds              |    1 -
 board/LEOX/elpt860/u-boot.lds.debug        |    1 -
 board/MAI/AmigaOneG3SE/u-boot.lds          |    1 -
 board/Marvell/db64360/u-boot.lds           |    1 -
 board/Marvell/db64460/u-boot.lds           |    1 -
 board/RPXClassic/u-boot.lds                |    1 -
 board/RPXClassic/u-boot.lds.debug          |    1 -
 board/RPXlite/u-boot.lds                   |    1 -
 board/RPXlite/u-boot.lds.debug             |    1 -
 board/RPXlite_dw/u-boot.lds                |    1 -
 board/RPXlite_dw/u-boot.lds.debug          |    1 -
 board/RRvision/u-boot.lds                  |    1 -
 board/adder/u-boot.lds                     |    1 -
 board/amcc/acadia/u-boot-nand.lds          |    1 -
 board/amcc/acadia/u-boot.lds               |    1 -
 board/amcc/bamboo/u-boot-nand.lds          |    1 -
 board/amcc/bamboo/u-boot.lds               |    1 -
 board/amcc/bubinga/u-boot.lds              |    1 -
 board/amcc/canyonlands/u-boot-nand.lds     |    1 -
 board/amcc/canyonlands/u-boot.lds          |    1 -
 board/amcc/ebony/u-boot.lds                |    1 -
 board/amcc/katmai/u-boot.lds               |    1 -
 board/amcc/kilauea/u-boot-nand.lds         |    1 -
 board/amcc/kilauea/u-boot.lds              |    1 -
 board/amcc/luan/u-boot.lds                 |    1 -
 board/amcc/makalu/u-boot.lds               |    1 -
 board/amcc/ocotea/u-boot.lds               |    1 -
 board/amcc/redwood/u-boot.lds              |    1 -
 board/amcc/sequoia/u-boot-nand.lds         |    1 -
 board/amcc/sequoia/u-boot-ram.lds          |    1 -
 board/amcc/sequoia/u-boot.lds              |    1 -
 board/amcc/taihu/u-boot.lds                |    1 -
 board/amcc/taishan/u-boot.lds              |    1 -
 board/amcc/walnut/u-boot.lds               |    1 -
 board/amcc/yosemite/u-boot.lds             |    1 -
 board/amcc/yucca/u-boot.lds                |    1 -
 board/amirix/ap1000/u-boot.lds             |    1 -
 board/c2mon/u-boot.lds                     |    1 -
 board/c2mon/u-boot.lds.debug               |    1 -
 board/cm5200/u-boot.lds                    |    1 -
 board/cogent/u-boot.lds                    |    1 -
 board/cogent/u-boot.lds.debug              |    1 -
 board/cray/L1/u-boot.lds                   |    1 -
 board/cray/L1/u-boot.lds.debug             |    1 -
 board/csb272/u-boot.lds                    |    1 -
 board/csb472/u-boot.lds                    |    1 -
 board/dave/PPChameleonEVB/u-boot.lds       |    1 -
 board/eltec/bab7xx/u-boot.lds              |    1 -
 board/eltec/elppc/u-boot.lds               |    1 -
 board/eltec/mhpc/u-boot.lds                |    1 -
 board/eltec/mhpc/u-boot.lds.debug          |    1 -
 board/emk/top860/u-boot.lds                |    1 -
 board/emk/top860/u-boot.lds.debug          |    1 -
 board/ep88x/u-boot.lds                     |    1 -
 board/eric/u-boot.lds                      |    1 -
 board/esd/adciop/u-boot.lds                |    1 -
 board/esd/apc405/u-boot.lds                |    1 -
 board/esd/ar405/u-boot.lds                 |    1 -
 board/esd/ash405/u-boot.lds                |    1 -
 board/esd/canbt/u-boot.lds                 |    1 -
 board/esd/cms700/u-boot.lds                |    1 -
 board/esd/cpci2dp/u-boot.lds               |    1 -
 board/esd/cpci405/u-boot.lds               |    1 -
 board/esd/cpci750/u-boot.lds               |    1 -
 board/esd/cpciiser4/u-boot.lds             |    1 -
 board/esd/dasa_sim/u-boot.lds              |    1 -
 board/esd/dp405/u-boot.lds                 |    1 -
 board/esd/du405/u-boot.lds                 |    1 -
 board/esd/du440/u-boot.lds                 |    1 -
 board/esd/hh405/u-boot.lds                 |    1 -
 board/esd/hub405/u-boot.lds                |    1 -
 board/esd/ocrtc/u-boot.lds                 |    1 -
 board/esd/pci405/u-boot.lds                |    1 -
 board/esd/plu405/u-boot.lds                |    1 -
 board/esd/pmc405/u-boot.lds                |    1 -
 board/esd/pmc405de/u-boot.lds              |    1 -
 board/esd/pmc440/u-boot-nand.lds           |    1 -
 board/esd/pmc440/u-boot.lds                |    1 -
 board/esd/voh405/u-boot.lds                |    1 -
 board/esd/vom405/u-boot.lds                |    1 -
 board/esd/wuh405/u-boot.lds                |    1 -
 board/esteem192e/u-boot.lds                |    1 -
 board/etx094/u-boot.lds                    |    1 -
 board/etx094/u-boot.lds.debug              |    1 -
 board/evb64260/u-boot.lds                  |    1 -
 board/exbitgen/u-boot.lds                  |    1 -
 board/fads/u-boot.lds                      |    1 -
 board/fads/u-boot.lds.debug                |    1 -
 board/flagadm/u-boot.lds                   |    1 -
 board/flagadm/u-boot.lds.debug             |    1 -
 board/freescale/mpc7448hpc2/u-boot.lds     |    1 -
 board/freescale/mpc8610hpcd/u-boot.lds     |    1 -
 board/freescale/mpc8641hpcn/u-boot.lds     |    1 -
 board/g2000/u-boot.lds                     |    1 -
 board/gdsys/dlvision/u-boot.lds            |    1 -
 board/gdsys/gdppc440etx/u-boot.lds         |    1 -
 board/gdsys/intip/u-boot.lds               |    1 -
 board/gdsys/neo/u-boot.lds                 |    1 -
 board/gen860t/u-boot-flashenv.lds          |    1 -
 board/gen860t/u-boot.lds                   |    1 -
 board/genietv/u-boot.lds                   |    1 -
 board/genietv/u-boot.lds.debug             |    1 -
 board/gth/u-boot.lds                       |    1 -
 board/hermes/u-boot.lds                    |    1 -
 board/hermes/u-boot.lds.debug              |    1 -
 board/hymod/u-boot.lds                     |    1 -
 board/hymod/u-boot.lds.debug               |    1 -
 board/icu862/u-boot.lds                    |    1 -
 board/icu862/u-boot.lds.debug              |    1 -
 board/ip860/u-boot.lds                     |    1 -
 board/ip860/u-boot.lds.debug               |    1 -
 board/ivm/u-boot.lds                       |    1 -
 board/ivm/u-boot.lds.debug                 |    1 -
 board/jse/u-boot.lds                       |    1 -
 board/keymile/km8xx/u-boot.lds             |    1 -
 board/korat/u-boot-F7FC.lds                |    1 -
 board/korat/u-boot.lds                     |    1 -
 board/kup/kup4k/u-boot.lds                 |    1 -
 board/kup/kup4k/u-boot.lds.debug           |    1 -
 board/kup/kup4x/u-boot.lds                 |    1 -
 board/kup/kup4x/u-boot.lds.debug           |    1 -
 board/lantec/u-boot.lds                    |    1 -
 board/lantec/u-boot.lds.debug              |    1 -
 board/lwmon/u-boot.lds                     |    1 -
 board/lwmon/u-boot.lds.debug               |    1 -
 board/lwmon5/u-boot.lds                    |    1 -
 board/mbx8xx/u-boot.lds                    |    1 -
 board/mbx8xx/u-boot.lds.debug              |    1 -
 board/ml2/u-boot.lds                       |    1 -
 board/ml2/u-boot.lds.debug                 |    1 -
 board/mousse/u-boot.lds                    |    1 -
 board/mousse/u-boot.lds.rom                |    1 -
 board/mpl/mip405/u-boot.lds                |    1 -
 board/mpl/pip405/u-boot.lds                |    1 -
 board/mpl/pip405/u-boot.lds.debug          |    1 -
 board/munices/u-boot.lds                   |    1 -
 board/nc650/u-boot.lds                     |    1 -
 board/nc650/u-boot.lds.debug               |    1 -
 board/netphone/u-boot.lds                  |    1 -
 board/netphone/u-boot.lds.debug            |    1 -
 board/netstal/hcu4/u-boot.lds              |    1 -
 board/netstal/hcu5/u-boot.lds              |    1 -
 board/netstal/mcu25/u-boot.lds             |    1 -
 board/netta/u-boot.lds                     |    1 -
 board/netta/u-boot.lds.debug               |    1 -
 board/netta2/u-boot.lds                    |    1 -
 board/netta2/u-boot.lds.debug              |    1 -
 board/netvia/u-boot.lds                    |    1 -
 board/netvia/u-boot.lds.debug              |    1 -
 board/nx823/u-boot.lds                     |    1 -
 board/nx823/u-boot.lds.debug               |    1 -
 board/pcippc2/u-boot.lds                   |    1 -
 board/pcs440ep/u-boot.lds                  |    1 -
 board/ppmc7xx/u-boot.lds                   |    1 -
 board/prodrive/alpr/u-boot.lds             |    1 -
 board/prodrive/p3mx/u-boot.lds             |    1 -
 board/prodrive/p3p440/u-boot.lds           |    1 -
 board/quad100hd/u-boot.lds                 |    1 -
 board/quantum/u-boot.lds                   |    1 -
 board/quantum/u-boot.lds.debug             |    1 -
 board/r360mpi/u-boot.lds                   |    1 -
 board/rbc823/u-boot.lds                    |    1 -
 board/rmu/u-boot.lds                       |    1 -
 board/rmu/u-boot.lds.debug                 |    1 -
 board/rsdproto/u-boot.lds                  |    1 -
 board/sandburst/karef/u-boot.lds           |    1 -
 board/sandburst/karef/u-boot.lds.debug     |    1 -
 board/sandburst/metrobox/u-boot.lds        |    1 -
 board/sandburst/metrobox/u-boot.lds.debug  |    1 -
 board/sbc405/u-boot.lds                    |    1 -
 board/sbc8641d/u-boot.lds                  |    1 -
 board/sc3/u-boot.lds                       |    1 -
 board/siemens/CCM/u-boot.lds               |    1 -
 board/siemens/CCM/u-boot.lds.debug         |    1 -
 board/siemens/IAD210/u-boot.lds            |    1 -
 board/siemens/pcu_e/u-boot.lds             |    1 -
 board/siemens/pcu_e/u-boot.lds.debug       |    1 -
 board/sixnet/u-boot.lds                    |    1 -
 board/snmc/qs850/u-boot.lds                |    1 -
 board/snmc/qs860t/u-boot.lds               |    1 -
 board/spc1920/u-boot.lds                   |    1 -
 board/spd8xx/u-boot.lds                    |    1 -
 board/spd8xx/u-boot.lds.debug              |    1 -
 board/stx/stxxtc/u-boot.lds                |    1 -
 board/stx/stxxtc/u-boot.lds.debug          |    1 -
 board/svm_sc8xx/u-boot.lds                 |    1 -
 board/svm_sc8xx/u-boot.lds.debug           |    1 -
 board/tqc/tqm8xx/u-boot.lds                |    1 -
 board/tqc/tqm8xx/u-boot.lds.debug          |    1 -
 board/uc100/u-boot.lds                     |    1 -
 board/uc100/u-boot.lds.debug               |    1 -
 board/v37/u-boot.lds                       |    1 -
 board/w7o/u-boot.lds                       |    1 -
 board/w7o/u-boot.lds.debug                 |    1 -
 board/westel/amx860/u-boot.lds             |    1 -
 board/westel/amx860/u-boot.lds.debug       |    1 -
 board/xes/xpedite1000/u-boot.lds           |    1 -
 board/xes/xpedite1000/u-boot.lds.debug     |    1 -
 board/xes/xpedite5170/config.mk            |    2 --
 board/xes/xpedite5200/config.mk            |    2 --
 board/xes/xpedite5370/config.mk            |    2 --
 board/xilinx/ml300/u-boot.lds              |    1 -
 board/xilinx/ml300/u-boot.lds.debug        |    1 -
 board/xilinx/ppc405-generic/u-boot-ram.lds |    1 -
 board/xilinx/ppc405-generic/u-boot-rom.lds |    1 -
 board/xilinx/ppc440-generic/u-boot-ram.lds |    1 -
 board/xilinx/ppc440-generic/u-boot-rom.lds |    1 -
 board/zeus/u-boot.lds                      |    1 -
 cpu/mpc512x/u-boot.lds                     |    1 -
 cpu/mpc5xx/u-boot.lds                      |    1 -
 cpu/mpc5xxx/u-boot-customlayout.lds        |    1 -
 cpu/mpc5xxx/u-boot.lds                     |    1 -
 cpu/mpc8220/u-boot.lds                     |    1 -
 cpu/mpc824x/u-boot.lds                     |    1 -
 cpu/mpc8260/u-boot.lds                     |    1 -
 cpu/mpc83xx/u-boot.lds                     |    1 -
 cpu/mpc85xx/u-boot.lds                     |    1 -
 include/asm-ppc/config.h                   |    3 +++
 include/configs/XPEDITE5170.h              |    1 -
 include/configs/XPEDITE5200.h              |    1 -
 include/configs/XPEDITE5370.h              |    1 -
 lib_ppc/config.mk                          |    1 +
 222 files changed, 4 insertions(+), 223 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/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/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/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/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/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 c175f91..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/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/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/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/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/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/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/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/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/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/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/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/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/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/u-boot.lds b/cpu/mpc85xx/u-boot.lds
index ec47871..a347cd1 100644
--- a/cpu/mpc85xx/u-boot.lds
+++ b/cpu/mpc85xx/u-boot.lds
@@ -62,7 +62,6 @@ SECTIONS
   .text      :
   {
     *(.text)
-    *(.fixup)
     *(.got1)
    } :text
     _etext = .;
diff --git a/include/asm-ppc/config.h b/include/asm-ppc/config.h
index 5670d06..c0e69f2 100644
--- a/include/asm-ppc/config.h
+++ b/include/asm-ppc/config.h
@@ -45,4 +45,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/configs/XPEDITE5170.h b/include/configs/XPEDITE5170.h
index 242466a..47fd223 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 deda208..c775612 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 3c58ebe..134169d 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/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
 
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 02/13] ppc: Check for compilers that don't support relocation
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 01/13] ppc: Enable full relocation to RAM Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 03/13] ppc: Remove board.c relocation fixups Peter Tyser
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Certain ppc compilers are known not to generate the .fixup section
properly.  The .fixup section is necessary to create a relocatable
U-Boot image.  A basic check for the existence of the .fixup section
should hopefully catch the majority of broken compilers which don't
support relocation.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 lib_ppc/Makefile |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

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)
 
 #########################################################################
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 03/13] ppc: Remove board.c relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 01/13] ppc: Enable full relocation to RAM Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 02/13] ppc: Check for compilers that don't support relocation Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer " Peter Tyser
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 lib_ppc/board.c |   50 --------------------------------------------------
 1 files changed, 0 insertions(+), 50 deletions(-)

diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index e8509ee..4123e73 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: ");
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (2 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 03/13] ppc: Remove board.c relocation fixups Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:49   ` Paul Gortmaker
  2009-09-21 16:20 ` [U-Boot] [PATCH 05/13] ppc: Remove extable " Peter Tyser
                   ` (11 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 board/freescale/mpc8548cds/mpc8548cds.c |    7 -------
 board/mpl/common/pci.c                  |   18 ------------------
 board/sbc8548/sbc8548.c                 |    6 ------
 3 files changed, 0 insertions(+), 31 deletions(-)

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/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/sbc8548/sbc8548.c b/board/sbc8548/sbc8548.c
index e5b21b5..5cdfef4 100644
--- a/board/sbc8548/sbc8548.c
+++ b/board/sbc8548/sbc8548.c
@@ -392,12 +392,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);
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 05/13] ppc: Remove extable relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (3 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 06/13] ppc: Remove board-specific command table " Peter Tyser
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 lib_ppc/extable.c |   26 ++++++--------------------
 1 files changed, 6 insertions(+), 20 deletions(-)

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;
 }
 
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 06/13] ppc: Remove board-specific command table relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (4 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 05/13] ppc: Remove extable " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 07/13] tsec: Remove PHY command " Peter Tyser
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 board/digsy_mtc/cmd_mtc.c   |   30 ------------------------------
 board/digsy_mtc/digsy_mtc.c |    2 --
 board/inka4x0/inka4x0.c     |   10 ----------
 board/inka4x0/inkadiag.c    |   28 ----------------------------
 include/configs/inka4x0.h   |    1 -
 5 files changed, 0 insertions(+), 71 deletions(-)

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/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/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			*/
 
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 07/13] tsec: Remove PHY command relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (5 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 06/13] ppc: Remove board-specific command table " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 08/13] fpga: Remove " Peter Tyser
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 drivers/net/tsec.c |   49 -------------------------------------------------
 1 files changed, 0 insertions(+), 49 deletions(-)

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)
 
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 08/13] fpga: Remove relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (6 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 07/13] tsec: Remove PHY command " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 09/13] mpl: Remove memory test " Peter Tyser
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

PPC boards are the only users of the current FPGA code which is littered
with manual relocation fixups.  Now that proper relocation is supported
for PPC boards, remove FPGA manual relocation.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 board/esd/pmc440/fpga.c           |    6 +-
 board/gen860t/fpga.c              |    5 +-
 board/matrix_vision/mvbc_p/fpga.c |    7 +-
 board/matrix_vision/mvblm7/fpga.c |    6 +-
 board/prodrive/alpr/fpga.c        |    4 +-
 drivers/fpga/ACEX1K.c             |   96 -------------------
 drivers/fpga/altera.c             |   39 --------
 drivers/fpga/cyclon2.c            |   91 ------------------
 drivers/fpga/fpga.c               |   53 +----------
 drivers/fpga/spartan2.c           |  187 -------------------------------------
 drivers/fpga/spartan3.c           |  185 ------------------------------------
 drivers/fpga/stratixII.c          |   24 -----
 drivers/fpga/virtex2.c            |  118 -----------------------
 drivers/fpga/xilinx.c             |   42 --------
 include/ACEX1K.h                  |    4 -
 include/altera.h                  |    1 -
 include/fpga.h                    |    2 +-
 include/spartan2.h                |    3 -
 include/spartan3.h                |    3 -
 include/stratixII.h               |    1 -
 include/virtex2.h                 |    3 -
 include/xilinx.h                  |    1 -
 22 files changed, 18 insertions(+), 863 deletions(-)

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/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/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/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/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/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/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/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
  *********************************************************************/
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 09/13] mpl: Remove memory test relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (7 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 08/13] fpga: Remove " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 10/13] lwmon, lwmon5: Remove sysmon POST " Peter Tyser
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 board/mpl/common/memtst.c |   26 --------------------------
 board/mpl/mip405/mip405.c |    3 +--
 board/mpl/pati/pati.c     |    2 --
 board/mpl/vcma9/vcma9.c   |    3 ---
 4 files changed, 1 insertions(+), 33 deletions(-)

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/mip405/mip405.c b/board/mpl/mip405/mip405.c
index d8279e8..fdfa897 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/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/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();
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 10/13] lwmon, lwmon5: Remove sysmon POST relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (8 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 09/13] mpl: Remove memory test " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 11/13] p3mx: Remove serial " Peter Tyser
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 post/board/lwmon/sysmon.c  |   17 +----------------
 post/board/lwmon5/sysmon.c |   17 +----------------
 2 files changed, 2 insertions(+), 32 deletions(-)

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)
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 11/13] p3mx: Remove serial relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (9 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 10/13] lwmon, lwmon5: Remove sysmon POST " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 12/13] Conditionally perform common " Peter Tyser
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 board/prodrive/p3mx/p3mx.c |   10 ----------
 include/configs/p3mx.h     |    1 -
 2 files changed, 0 insertions(+), 11 deletions(-)

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/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()		*/
 
 /*-----------------------------------------------------------------------
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 12/13] Conditionally perform common relocation fixups
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (10 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 11/13] p3mx: Remove serial " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-21 16:20 ` [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure Peter Tyser
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Add #ifdefs where necessary to not perform relocation fixups.  This
allows boards/architectures which support relocation to trim a decent
chunk of code.

Note that this patch doesn't add #ifdefs to architecture-specific code
which does not support relocation.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 common/cmd_bootm.c      |    4 +++-
 common/cmd_date.c       |    4 ++++
 common/dlmalloc.c       |    2 ++
 common/env_common.c     |    4 ++++
 common/hush.c           |    4 ++++
 common/image.c          |    6 +++++-
 common/serial.c         |    2 ++
 common/stdio.c          |    5 +++--
 disk/part.c             |    5 ++++-
 drivers/mtd/nand/nand.c |    2 ++
 fs/ubifs/ubifs.c        |    4 ++++
 include/post.h          |    2 ++
 post/post.c             |    2 ++
 13 files changed, 41 insertions(+), 5 deletions(-)

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..5e58dbe 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_ARM) && !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 /* !ARM && !CONFIG_RELOC_FIXUP_WORKS */
 
 	/* Initialize the list */
 	INIT_LIST_HEAD(&(devs.list));
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/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/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c
index 8ede188..5b7abad 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/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/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
 
 
 /*
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (11 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 12/13] Conditionally perform common " Peter Tyser
@ 2009-09-21 16:20 ` Peter Tyser
  2009-09-23 22:29   ` Wolfgang Denk
  2009-09-22  5:15 ` [U-Boot] [PATCH 00/13] ppc: Fix relocation Stefan Roese
                   ` (2 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:20 UTC (permalink / raw)
  To: u-boot

Now that proper relocation is supported, the reloc_off field is no longer
necessary.

Note that the location of the standalone application jump table pointer
in the global data structure is affected by this change, breaking
execution of standalone applications compiled for previous versions of
U-Boot.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
Would others prefer an empty ulong take reloc_off's place so old
standalone apps don't break?  Or perhaps we should move the jump
table pointer to the first item in global_data to prevent breakage
every time global_data is modified in the future?

 include/asm-ppc/global_data.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

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;
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer relocation fixups
  2009-09-21 16:20 ` [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer " Peter Tyser
@ 2009-09-21 16:49   ` Paul Gortmaker
  2009-09-21 16:59     ` Peter Tyser
  0 siblings, 1 reply; 35+ messages in thread
From: Paul Gortmaker @ 2009-09-21 16:49 UTC (permalink / raw)
  To: u-boot

On Mon, Sep 21, 2009 at 12:20 PM, Peter Tyser <ptyser@xes-inc.com> wrote:
> Signed-off-by: Peter Tyser <ptyser@xes-inc.com>

It looks like something happened during the send of your patches;
it seems the long log of what you are trying to fix and how the patch
fixes it is missing here and from several of the other patches
as well.

> ---
> ?board/freescale/mpc8548cds/mpc8548cds.c | ? ?7 -------
> ?board/mpl/common/pci.c ? ? ? ? ? ? ? ? ?| ? 18 ------------------
> ?board/sbc8548/sbc8548.c ? ? ? ? ? ? ? ? | ? ?6 ------
> ?3 files changed, 0 insertions(+), 31 deletions(-)
>
> 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;

For the mpc8548cds, if this removal was somehow the right thing to do,
it would still be incomplete;  I am sure that there is a dummy function
related to a PCI bridge quirk associated with the above change that
would now be orphaned in the code.

> -
> ? ? ? ? ? ? ? ?hose->first_busno=first_free_busno;
>
> ? ? ? ? ? ? ? ?fsl_pci_init(hose, (u32)&pci->cfg_addr, (u32)&pci->cfg_data);

[...]

> diff --git a/board/sbc8548/sbc8548.c b/board/sbc8548/sbc8548.c
> index e5b21b5..5cdfef4 100644
> --- a/board/sbc8548/sbc8548.c
> +++ b/board/sbc8548/sbc8548.c
> @@ -392,12 +392,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;

This code is already gone from the sbc8548 in the 85xx branch;
the sbc8548 didn't need the bridge quirk fixup.

Paul.

> -
> ? ? ? ? ? ? ? ?hose->first_busno=first_free_busno;
>
> ? ? ? ? ? ? ? ?fsl_pci_init(hose, (u32)&pci->cfg_addr, (u32)&pci->cfg_data);
> --
> 1.6.2.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer relocation fixups
  2009-09-21 16:49   ` Paul Gortmaker
@ 2009-09-21 16:59     ` Peter Tyser
  2009-09-21 17:20       ` Paul Gortmaker
  0 siblings, 1 reply; 35+ messages in thread
From: Peter Tyser @ 2009-09-21 16:59 UTC (permalink / raw)
  To: u-boot

On Mon, 2009-09-21 at 12:49 -0400, Paul Gortmaker wrote:
> On Mon, Sep 21, 2009 at 12:20 PM, Peter Tyser <ptyser@xes-inc.com> wrote:
> > Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
> 
> It looks like something happened during the send of your patches;
> it seems the long log of what you are trying to fix and how the patch
> fixes it is missing here and from several of the other patches
> as well.

I didn't put long log messages in patches which I thought would be clear
what was changing.  All the "Remove XYZ relocation fixups" are intended
to only remove no longer needed fixups.  They shouldn't (hopefully) have
any functional change.  I can add log messages, but they will all be the
same "don't fixup xyz as relocation now works".

> > ---
> >  board/freescale/mpc8548cds/mpc8548cds.c |    7 -------
> >  board/mpl/common/pci.c                  |   18 ------------------
> >  board/sbc8548/sbc8548.c                 |    6 ------
> >  3 files changed, 0 insertions(+), 31 deletions(-)
> >
> > 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;
> 
> For the mpc8548cds, if this removal was somehow the right thing to do,
> it would still be incomplete;  I am sure that there is a dummy function
> related to a PCI bridge quirk associated with the above change that
> would now be orphaned in the code.

I didn't intend to make any functional change as I know nothing about
this board:)  I only intended to remove the references to gd->reloc_off.
I looked over this code quickly and came to the conclusion I wasn't
changing any functionality, let me know if I'm missing something.

> > -
> >                hose->first_busno=first_free_busno;
> >
> >                fsl_pci_init(hose, (u32)&pci->cfg_addr, (u32)&pci->cfg_data);
> 
> [...]
> 
> > diff --git a/board/sbc8548/sbc8548.c b/board/sbc8548/sbc8548.c
> > index e5b21b5..5cdfef4 100644
> > --- a/board/sbc8548/sbc8548.c
> > +++ b/board/sbc8548/sbc8548.c
> > @@ -392,12 +392,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;
> 
> This code is already gone from the sbc8548 in the 85xx branch;
> the sbc8548 didn't need the bridge quirk fixup.

Thanks for the heads up.  Maybe git will gracefully handle this change?
If not, I'd prefer to wait till Wolfgang attempts to merge this patch as
other things may be merged between now and then and I'd rather just send
1 cleanup patch series.

Best,
Peter

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer relocation fixups
  2009-09-21 16:59     ` Peter Tyser
@ 2009-09-21 17:20       ` Paul Gortmaker
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Gortmaker @ 2009-09-21 17:20 UTC (permalink / raw)
  To: u-boot

Peter Tyser wrote:
> On Mon, 2009-09-21 at 12:49 -0400, Paul Gortmaker wrote:
>> On Mon, Sep 21, 2009 at 12:20 PM, Peter Tyser <ptyser@xes-inc.com> wrote:
>>> Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
>> It looks like something happened during the send of your patches;
>> it seems the long log of what you are trying to fix and how the patch
>> fixes it is missing here and from several of the other patches
>> as well.
> 
> I didn't put long log messages in patches which I thought would be clear
> what was changing.  All the "Remove XYZ relocation fixups" are intended
> to only remove no longer needed fixups.  They shouldn't (hopefully) have
> any functional change.  I can add log messages, but they will all be the
> same "don't fixup xyz as relocation now works".

I guess even something as basic as that would be better than
nothing in my opinion.  Folks rummaging through history won't
have the benefit of your [0/13] description when they are
looking through the change history with git.

> 
>>> ---
>>>  board/freescale/mpc8548cds/mpc8548cds.c |    7 -------
>>>  board/mpl/common/pci.c                  |   18 ------------------
>>>  board/sbc8548/sbc8548.c                 |    6 ------
>>>  3 files changed, 0 insertions(+), 31 deletions(-)
>>>
>>> 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;
>> For the mpc8548cds, if this removal was somehow the right thing to do,
>> it would still be incomplete;  I am sure that there is a dummy function
>> related to a PCI bridge quirk associated with the above change that
>> would now be orphaned in the code.
> 
> I didn't intend to make any functional change as I know nothing about
> this board:)  I only intended to remove the references to gd->reloc_off.
> I looked over this code quickly and came to the conclusion I wasn't
> changing any functionality, let me know if I'm missing something.

OK, I just went and looked, and I think that you are correct.
The config_table with the dummy function is still hooked in via
the static pci1_hose initialization; sorry for the noise.

> 
>>> -
>>>                hose->first_busno=first_free_busno;
>>>
>>>                fsl_pci_init(hose, (u32)&pci->cfg_addr, (u32)&pci->cfg_data);
>> [...]
>>
>>> diff --git a/board/sbc8548/sbc8548.c b/board/sbc8548/sbc8548.c
>>> index e5b21b5..5cdfef4 100644
>>> --- a/board/sbc8548/sbc8548.c
>>> +++ b/board/sbc8548/sbc8548.c
>>> @@ -392,12 +392,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;
>> This code is already gone from the sbc8548 in the 85xx branch;
>> the sbc8548 didn't need the bridge quirk fixup.
> 
> Thanks for the heads up.  Maybe git will gracefully handle this change?

Depends on your definition of "gracefully", I guess.  :-)

> If not, I'd prefer to wait till Wolfgang attempts to merge this patch as
> other things may be merged between now and then and I'd rather just send
> 1 cleanup patch series.

Makes sense.
Paul.

> 
> Best,
> Peter
> 

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (12 preceding siblings ...)
  2009-09-21 16:20 ` [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure Peter Tyser
@ 2009-09-22  5:15 ` Stefan Roese
  2009-09-22  6:18 ` Joakim Tjernlund
  2009-09-23 22:31 ` Wolfgang Denk
  15 siblings, 0 replies; 35+ messages in thread
From: Stefan Roese @ 2009-09-22  5:15 UTC (permalink / raw)
  To: u-boot

Hi Peter,

On Monday 21 September 2009 18:20:24 Peter Tyser wrote:
> This series attempts to fix relocation to RAM for ppc boards.
> 
> I split the patches up pretty liberally, let me know if you'd like
> them organized differently.
> 
> I tried to be thorough during the changes (especially #1), let me
> know if I missed anything, there's lots of linker scripts for ppc
> boards:)
> 
> Peter Tyser (13):
>   ppc: Enable full relocation to RAM
>   ppc: Check for compilers that don't support relocation
>   ppc: Remove board.c relocation fixups
>   ppc: Remove pci config table pointer relocation fixups
>   ppc: Remove extable relocation fixups
>   ppc: Remove board-specific command table relocation fixups
>   tsec: Remove PHY command relocation fixups
>   fpga: Remove relocation fixups
>   mpl: Remove memory test relocation fixups
>   lwmon, lwmon5: Remove sysmon POST relocation fixups
>   p3mx: Remove serial relocation fixups
>   Conditionally perform common relocation fixups
>   ppc: Remove reloc_off field from global_data structure

Thanks. I think it would be a good idea to push all your relocation patches 
into a special git branch for testing. 

Wolfgang, what do you think? Could you pull those patches into such a branch 
for general testing/updates etc?

Thanks.
 
Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (13 preceding siblings ...)
  2009-09-22  5:15 ` [U-Boot] [PATCH 00/13] ppc: Fix relocation Stefan Roese
@ 2009-09-22  6:18 ` Joakim Tjernlund
  2009-09-22  9:38   ` Detlev Zundel
  2009-09-23 22:31 ` Wolfgang Denk
  15 siblings, 1 reply; 35+ messages in thread
From: Joakim Tjernlund @ 2009-09-22  6:18 UTC (permalink / raw)
  To: u-boot

>
> This series attempts to fix relocation to RAM for ppc boards.
>
> I split the patches up pretty liberally, let me know if you'd like
> them organized differently.
>
> I tried to be thorough during the changes (especially #1), let me
> know if I missed anything, there's lots of linker scripts for ppc
> boards:)
>
> Peter Tyser (13):
>   ppc: Enable full relocation to RAM
>   ppc: Check for compilers that don't support relocation
>   ppc: Remove board.c relocation fixups
>   ppc: Remove pci config table pointer relocation fixups
>   ppc: Remove extable relocation fixups
>   ppc: Remove board-specific command table relocation fixups
>   tsec: Remove PHY command relocation fixups
>   fpga: Remove relocation fixups
>   mpl: Remove memory test relocation fixups
>   lwmon, lwmon5: Remove sysmon POST relocation fixups
>   p3mx: Remove serial relocation fixups
>   Conditionally perform common relocation fixups
>   ppc: Remove reloc_off field from global_data structure

Wow, this is really good work. Didn't think there would be so much code
that could be deleted due to working relocation :)
I hope WD will pull this in and potentially broken boards will have to
be fixed rather than backing stuff out.

 Jocke

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-22  6:18 ` Joakim Tjernlund
@ 2009-09-22  9:38   ` Detlev Zundel
  2009-09-22 14:25     ` Peter Tyser
  0 siblings, 1 reply; 35+ messages in thread
From: Detlev Zundel @ 2009-09-22  9:38 UTC (permalink / raw)
  To: u-boot

Hi,

>> This series attempts to fix relocation to RAM for ppc boards.
>>
>> I split the patches up pretty liberally, let me know if you'd like
>> them organized differently.
>>
>> I tried to be thorough during the changes (especially #1), let me
>> know if I missed anything, there's lots of linker scripts for ppc
>> boards:)
>>
>> Peter Tyser (13):
>>   ppc: Enable full relocation to RAM
>>   ppc: Check for compilers that don't support relocation
>>   ppc: Remove board.c relocation fixups
>>   ppc: Remove pci config table pointer relocation fixups
>>   ppc: Remove extable relocation fixups
>>   ppc: Remove board-specific command table relocation fixups
>>   tsec: Remove PHY command relocation fixups
>>   fpga: Remove relocation fixups
>>   mpl: Remove memory test relocation fixups
>>   lwmon, lwmon5: Remove sysmon POST relocation fixups
>>   p3mx: Remove serial relocation fixups
>>   Conditionally perform common relocation fixups
>>   ppc: Remove reloc_off field from global_data structure
>
> Wow, this is really good work. Didn't think there would be so much code
> that could be deleted due to working relocation :)
> I hope WD will pull this in and potentially broken boards will have to
> be fixed rather than backing stuff out.

Seconded.  That's what a merge window is for, isn't it? :)

One should do some further simple text searching to find more code that
can now be potentially be removed.  For example, from what I wrote
board/inka4x0/inkadiag.c also has such reloacted code inside.

Cheers
  Detlev

-- 
While  the list of  different methods is not  endless, it is certainly
pretty long, with new ones being dreamed up all the time. Fortunately,
space limitations prevent us from looking at all of them.
                                            -- Andrew S. Tanenbaum
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-22  9:38   ` Detlev Zundel
@ 2009-09-22 14:25     ` Peter Tyser
  0 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-22 14:25 UTC (permalink / raw)
  To: u-boot

Hi Detlev,

> >> This series attempts to fix relocation to RAM for ppc boards.
> >>
> >> I split the patches up pretty liberally, let me know if you'd like
> >> them organized differently.
> >>
> >> I tried to be thorough during the changes (especially #1), let me
> >> know if I missed anything, there's lots of linker scripts for ppc
> >> boards:)
> >>
> >> Peter Tyser (13):
> >>   ppc: Enable full relocation to RAM
> >>   ppc: Check for compilers that don't support relocation
> >>   ppc: Remove board.c relocation fixups
> >>   ppc: Remove pci config table pointer relocation fixups
> >>   ppc: Remove extable relocation fixups
> >>   ppc: Remove board-specific command table relocation fixups
> >>   tsec: Remove PHY command relocation fixups
> >>   fpga: Remove relocation fixups
> >>   mpl: Remove memory test relocation fixups
> >>   lwmon, lwmon5: Remove sysmon POST relocation fixups
> >>   p3mx: Remove serial relocation fixups
> >>   Conditionally perform common relocation fixups
> >>   ppc: Remove reloc_off field from global_data structure
> >
> > Wow, this is really good work. Didn't think there would be so much code
> > that could be deleted due to working relocation :)
> > I hope WD will pull this in and potentially broken boards will have to
> > be fixed rather than backing stuff out.
> 
> Seconded.  That's what a merge window is for, isn't it? :)

Thirded:)

> One should do some further simple text searching to find more code that
> can now be potentially be removed.  For example, from what I wrote
> board/inka4x0/inkadiag.c also has such reloacted code inside.

I didn't see any relocation fixups in inkadiag.c that could be removed
at a glance.  Am I missing something?  I attempted to clean up all
relocation fixups that affect ppc (and other arches that support
relocation), so let me know if I missed anything.

Best,
Peter

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure
  2009-09-21 16:20 ` [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure Peter Tyser
@ 2009-09-23 22:29   ` Wolfgang Denk
  2009-09-23 22:34     ` Peter Tyser
  0 siblings, 1 reply; 35+ messages in thread
From: Wolfgang Denk @ 2009-09-23 22:29 UTC (permalink / raw)
  To: u-boot

Dear Peter Tyser,

In message <1253550038-16734-14-git-send-email-ptyser@xes-inc.com> you wrote:
> Now that proper relocation is supported, the reloc_off field is no longer
> necessary.
> 
> Note that the location of the standalone application jump table pointer
> in the global data structure is affected by this change, breaking
> execution of standalone applications compiled for previous versions of
> U-Boot.

We must increment the XF_VERSION value, then. See
doc/README.standalone.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Research is what I'm doing when I don't know what I'm doing.
                                                 -- Wernher von Braun

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
                   ` (14 preceding siblings ...)
  2009-09-22  6:18 ` Joakim Tjernlund
@ 2009-09-23 22:31 ` Wolfgang Denk
  2009-09-23 22:41   ` Peter Tyser
                     ` (2 more replies)
  15 siblings, 3 replies; 35+ messages in thread
From: Wolfgang Denk @ 2009-09-23 22:31 UTC (permalink / raw)
  To: u-boot

Dear Peter Tyser,

In message <1253550038-16734-1-git-send-email-ptyser@xes-inc.com> you wrote:
> This series attempts to fix relocation to RAM for ppc boards.
> 
> I split the patches up pretty liberally, let me know if you'd like
> them organized differently.
> 
> I tried to be thorough during the changes (especially #1), let me
> know if I missed anything, there's lots of linker scripts for ppc
> boards:)
> 
> Peter Tyser (13):
>   ppc: Enable full relocation to RAM
>   ppc: Check for compilers that don't support relocation
>   ppc: Remove board.c relocation fixups
>   ppc: Remove pci config table pointer relocation fixups
>   ppc: Remove extable relocation fixups
>   ppc: Remove board-specific command table relocation fixups
>   tsec: Remove PHY command relocation fixups
>   fpga: Remove relocation fixups
>   mpl: Remove memory test relocation fixups
>   lwmon, lwmon5: Remove sysmon POST relocation fixups
>   p3mx: Remove serial relocation fixups
>   Conditionally perform common relocation fixups
>   ppc: Remove reloc_off field from global_data structure

All patches applied to "reloc" branch. Thanks for all this work.

So far the only issue I've seen (I didn't do any actual testing yet,
though) is the missing increment to the XF_VERSION value to indicate
incompatibility with older standalone applications. If you agree, I
woul like to squash this into the topmost commit on the "reloc"
branch?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
That's the thing about people who think  they  hate  computers.  What
they really hate is lousy programmers.
- Larry Niven and Jerry Pournelle in "Oath of Fealty"

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure
  2009-09-23 22:29   ` Wolfgang Denk
@ 2009-09-23 22:34     ` Peter Tyser
  0 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-23 22:34 UTC (permalink / raw)
  To: u-boot


> In message <1253550038-16734-14-git-send-email-ptyser@xes-inc.com> you wrote:
> > Now that proper relocation is supported, the reloc_off field is no longer
> > necessary.
> > 
> > Note that the location of the standalone application jump table pointer
> > in the global data structure is affected by this change, breaking
> > execution of standalone applications compiled for previous versions of
> > U-Boot.
> 
> We must increment the XF_VERSION value, then. See
> doc/README.standalone.

Ah, will do.

While we're at it, any interest in a follow-up patch which moves the
jump table pointer to the 2nd field of global_data, right after the bd
field?  This would hopefully reduce the breakage of the jt pointer as
the global_data structure inevitably changes down the road.

Best,
Peter

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-23 22:31 ` Wolfgang Denk
@ 2009-09-23 22:41   ` Peter Tyser
  2009-09-24 14:28   ` Peter Tyser
  2009-09-24 16:05   ` Swarthout Edward L-SWARTHOU
  2 siblings, 0 replies; 35+ messages in thread
From: Peter Tyser @ 2009-09-23 22:41 UTC (permalink / raw)
  To: u-boot

On Thu, 2009-09-24 at 00:31 +0200, Wolfgang Denk wrote:
> Dear Peter Tyser,
> 
> In message <1253550038-16734-1-git-send-email-ptyser@xes-inc.com> you wrote:
> > This series attempts to fix relocation to RAM for ppc boards.
> > 
> > I split the patches up pretty liberally, let me know if you'd like
> > them organized differently.
> > 
> > I tried to be thorough during the changes (especially #1), let me
> > know if I missed anything, there's lots of linker scripts for ppc
> > boards:)
> > 
> > Peter Tyser (13):
> >   ppc: Enable full relocation to RAM
> >   ppc: Check for compilers that don't support relocation
> >   ppc: Remove board.c relocation fixups
> >   ppc: Remove pci config table pointer relocation fixups
> >   ppc: Remove extable relocation fixups
> >   ppc: Remove board-specific command table relocation fixups
> >   tsec: Remove PHY command relocation fixups
> >   fpga: Remove relocation fixups
> >   mpl: Remove memory test relocation fixups
> >   lwmon, lwmon5: Remove sysmon POST relocation fixups
> >   p3mx: Remove serial relocation fixups
> >   Conditionally perform common relocation fixups
> >   ppc: Remove reloc_off field from global_data structure
> 
> All patches applied to "reloc" branch. Thanks for all this work.
> 
> So far the only issue I've seen (I didn't do any actual testing yet,
> though) is the missing increment to the XF_VERSION value to indicate
> incompatibility with older standalone applications. If you agree, I
> woul like to squash this into the topmost commit on the "reloc"
> branch?

That sounds good to me.  2 additional comments:
1. Might be nice to move the jumptable to the beginning of the
global_data struct when we increment XF_VERSION.

2. Depending on when you merge the reloc branch, it would be nice for
people to give the patch in "[PATCH/RFC] arm/microblaze/nios/nios2/sh:
Remove relocation fixups" a try.  It should reduce the bloat on some
other arches and will put pressure on other, non-relocatable arches to
fix relocation:)

Best,
Peter

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-23 22:31 ` Wolfgang Denk
  2009-09-23 22:41   ` Peter Tyser
@ 2009-09-24 14:28   ` Peter Tyser
  2009-09-24 14:42     ` Stefan Roese
  2009-09-24 16:05   ` Swarthout Edward L-SWARTHOU
  2 siblings, 1 reply; 35+ messages in thread
From: Peter Tyser @ 2009-09-24 14:28 UTC (permalink / raw)
  To: u-boot

On Thu, 2009-09-24 at 00:31 +0200, Wolfgang Denk wrote:
> Dear Peter Tyser,
> 
> In message <1253550038-16734-1-git-send-email-ptyser@xes-inc.com> you wrote:
> > This series attempts to fix relocation to RAM for ppc boards.
> > 
> > I split the patches up pretty liberally, let me know if you'd like
> > them organized differently.
> > 
> > I tried to be thorough during the changes (especially #1), let me
> > know if I missed anything, there's lots of linker scripts for ppc
> > boards:)
> > 
> > Peter Tyser (13):
> >   ppc: Enable full relocation to RAM
> >   ppc: Check for compilers that don't support relocation
> >   ppc: Remove board.c relocation fixups
> >   ppc: Remove pci config table pointer relocation fixups
> >   ppc: Remove extable relocation fixups
> >   ppc: Remove board-specific command table relocation fixups
> >   tsec: Remove PHY command relocation fixups
> >   fpga: Remove relocation fixups
> >   mpl: Remove memory test relocation fixups
> >   lwmon, lwmon5: Remove sysmon POST relocation fixups
> >   p3mx: Remove serial relocation fixups
> >   Conditionally perform common relocation fixups
> >   ppc: Remove reloc_off field from global_data structure
> 
> All patches applied to "reloc" branch. Thanks for all this work.
> 
> So far the only issue I've seen (I didn't do any actual testing yet,
> though) is the missing increment to the XF_VERSION value to indicate
> incompatibility with older standalone applications. If you agree, I
> woul like to squash this into the topmost commit on the "reloc"
> branch?

Hi Wolfgang,
Is the plan to apply these patches for the upcoming release, or the
release after that one?  I ask because some of X-ES's boards broke when
the 85xx linker script was consolidated.  These patches fix the
breakage, but if these patches won't be included in the upcoming release
I'll send a small fixup just for X-ES's boards.

Thanks,
Peter

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-24 14:28   ` Peter Tyser
@ 2009-09-24 14:42     ` Stefan Roese
  2009-09-24 22:10       ` Joakim Tjernlund
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Roese @ 2009-09-24 14:42 UTC (permalink / raw)
  To: u-boot

On Thursday 24 September 2009 16:28:39 Peter Tyser wrote:
> > All patches applied to "reloc" branch. Thanks for all this work.
> >
> > So far the only issue I've seen (I didn't do any actual testing yet,
> > though) is the missing increment to the XF_VERSION value to indicate
> > incompatibility with older standalone applications. If you agree, I
> > woul like to squash this into the topmost commit on the "reloc"
> > branch?
> 
> Hi Wolfgang,
> Is the plan to apply these patches for the upcoming release, or the
> release after that one?  I ask because some of X-ES's boards broke when
> the 85xx linker script was consolidated.  These patches fix the
> breakage, but if these patches won't be included in the upcoming release
> I'll send a small fixup just for X-ES's boards.

I'm voting for getting this relocation fixes mainlined in this upcoming 
release. We're still in the merge-window and should (hopefully) have enough 
time to solve all remaining problems.

Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-23 22:31 ` Wolfgang Denk
  2009-09-23 22:41   ` Peter Tyser
  2009-09-24 14:28   ` Peter Tyser
@ 2009-09-24 16:05   ` Swarthout Edward L-SWARTHOU
  2009-10-12 18:30     ` Swarthout Edward L-SWARTHOU
  2 siblings, 1 reply; 35+ messages in thread
From: Swarthout Edward L-SWARTHOU @ 2009-09-24 16:05 UTC (permalink / raw)
  To: u-boot

From: Wolfgang Denk
> 
> All patches applied to "reloc" branch. Thanks for all this work.

With -m relocatable, x86emu crashes because the op codes tables are
forced to GOT2 section:

Video: ATI Radeon video card (1002, 5b60) found @(6:0:0)
videoboot: Booting PCI video card bus 6, function 0, device 0
NIP: 8FFA8120 LR: 3FFB40F8 REGS: 3fe6dbd0 TRAP: 0700 DAR: 00000000
MSR: 00021200 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 8FFA8120 3FE6DCC0 3FE6DF68 0000009A 00000003 00000000
GPR08: 00004000 3FE75800 3F000000 3FE6DCC0 84000024 81C5D766
GPR16: 3FFF92E8 3FFCB384 3FE6DDA8 00000000 00000000 00000000
GPR24: 3FFDA09C 3FFE0544 3FFF9A6C 3FFF9A6C 3FE6DD24 3FFF9A6C
** Illegal Instruction **

This patch fixes it:

http://article.gmane.org/gmane.comp.boot-loaders.u-boot/48103

-Ed

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-24 14:42     ` Stefan Roese
@ 2009-09-24 22:10       ` Joakim Tjernlund
  2009-09-24 23:46         ` Wolfgang Denk
  0 siblings, 1 reply; 35+ messages in thread
From: Joakim Tjernlund @ 2009-09-24 22:10 UTC (permalink / raw)
  To: u-boot

>
> On Thursday 24 September 2009 16:28:39 Peter Tyser wrote:
> > > All patches applied to "reloc" branch. Thanks for all this work.
> > >
> > > So far the only issue I've seen (I didn't do any actual testing yet,
> > > though) is the missing increment to the XF_VERSION value to indicate
> > > incompatibility with older standalone applications. If you agree, I
> > > woul like to squash this into the topmost commit on the "reloc"
> > > branch?
> >
> > Hi Wolfgang,
> > Is the plan to apply these patches for the upcoming release, or the
> > release after that one?  I ask because some of X-ES's boards broke when
> > the 85xx linker script was consolidated.  These patches fix the
> > breakage, but if these patches won't be included in the upcoming release
> > I'll send a small fixup just for X-ES's boards.
>
> I'm voting for getting this relocation fixes mainlined in this upcoming
> release. We're still in the merge-window and should (hopefully) have enough
> time to solve all remaining problems.

Yes please, I have not seen any objections so far only a few
in favour.

 Jocke

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-24 22:10       ` Joakim Tjernlund
@ 2009-09-24 23:46         ` Wolfgang Denk
  2009-09-25  3:48           ` Stefan Roese
  0 siblings, 1 reply; 35+ messages in thread
From: Wolfgang Denk @ 2009-09-24 23:46 UTC (permalink / raw)
  To: u-boot

Dear Joakim Tjernlund,

In message <OFB7458D83.28073D19-ONC125763B.0079A19D-C125763B.0079CD5C@transmode.se> you wrote:
>
> > > Is the plan to apply these patches for the upcoming release, or the
> > > release after that one?  I ask because some of X-ES's boards broke when
> > > the 85xx linker script was consolidated.  These patches fix the
> > > breakage, but if these patches won't be included in the upcoming release
> > > I'll send a small fixup just for X-ES's boards.
> >
> > I'm voting for getting this relocation fixes mainlined in this upcoming
> > release. We're still in the merge-window and should (hopefully) have enough
> > time to solve all remaining problems.
> 
> Yes please, I have not seen any objections so far only a few
> in favour.

I'm just waiting for a few (positive) test reports. Yes, this is stuff
for this release.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"May the forces of evil become confused on the way to your house."
- George Carlin

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-24 23:46         ` Wolfgang Denk
@ 2009-09-25  3:48           ` Stefan Roese
  0 siblings, 0 replies; 35+ messages in thread
From: Stefan Roese @ 2009-09-25  3:48 UTC (permalink / raw)
  To: u-boot

On Friday 25 September 2009 01:46:10 Wolfgang Denk wrote:
> > Yes please, I have not seen any objections so far only a few
> > in favour.
> 
> I'm just waiting for a few (positive) test reports. Yes, this is stuff
> for this release.

OK, here some (positive) test reports:

Tested sucessfully on a few AMCC PPC4xx eval boards:
- Kilauea, OK
- Canyonlands, OK
- Sequoia, OK

So you can add my:

Tested-by: Stefan Roese <sr@denx.de>

to the patch series. Thanks.

Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-09-24 16:05   ` Swarthout Edward L-SWARTHOU
@ 2009-10-12 18:30     ` Swarthout Edward L-SWARTHOU
  2009-10-12 18:54       ` Peter Tyser
  0 siblings, 1 reply; 35+ messages in thread
From: Swarthout Edward L-SWARTHOU @ 2009-10-12 18:30 UTC (permalink / raw)
  To: u-boot

From: Edward
> Sent: Thursday, September 24, 2009 11:05 AM
> To: Wolfgang Denk; Peter Tyser
> 
> With -m relocatable, x86emu crashes because the op codes 
> tables are forced to GOT2 section:
> 
> Video: ATI Radeon video card (1002, 5b60) found @(6:0:0)
> videoboot: Booting PCI video card bus 6, function 0, dev 0
> NIP: 8FFA8120 LR: 3FFB40F8 REGS: 3fe6dbd0 TRAP: 0700 DAR: 0
> MSR: 00021200 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00
> 
> GPR00: 8FFA8120 3FE6DCC0 3FE6DF68 0000009A 00000003 00000000
> GPR08: 00004000 3FE75800 3F000000 3FE6DCC0 84000024 81C5D766
> GPR16: 3FFF92E8 3FFCB384 3FE6DDA8 00000000 00000000 00000000
> GPR24: 3FFDA09C 3FFE0544 3FFF9A6C 3FFF9A6C 3FE6DD24 3FFF9A6C
> ** Illegal Instruction **
> 
> This patch fixes it:
> 
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/48103
>  

I still get this crash with latest head 
(u-boot 2009.08-00338-gcd77dd1).

-EdS

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-10-12 18:30     ` Swarthout Edward L-SWARTHOU
@ 2009-10-12 18:54       ` Peter Tyser
  2009-10-12 19:06         ` Swarthout Edward L-SWARTHOU
  0 siblings, 1 reply; 35+ messages in thread
From: Peter Tyser @ 2009-10-12 18:54 UTC (permalink / raw)
  To: u-boot

On Mon, 2009-10-12 at 11:30 -0700, Swarthout Edward L-SWARTHOU wrote:
> From: Edward
> > Sent: Thursday, September 24, 2009 11:05 AM
> > To: Wolfgang Denk; Peter Tyser
> > 
> > With -m relocatable, x86emu crashes because the op codes 
> > tables are forced to GOT2 section:
> > 
> > Video: ATI Radeon video card (1002, 5b60) found @(6:0:0)
> > videoboot: Booting PCI video card bus 6, function 0, dev 0
> > NIP: 8FFA8120 LR: 3FFB40F8 REGS: 3fe6dbd0 TRAP: 0700 DAR: 0
> > MSR: 00021200 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00
> > 
> > GPR00: 8FFA8120 3FE6DCC0 3FE6DF68 0000009A 00000003 00000000
> > GPR08: 00004000 3FE75800 3F000000 3FE6DCC0 84000024 81C5D766
> > GPR16: 3FFF92E8 3FFCB384 3FE6DDA8 00000000 00000000 00000000
> > GPR24: 3FFDA09C 3FFE0544 3FFF9A6C 3FFF9A6C 3FE6DD24 3FFF9A6C
> > ** Illegal Instruction **
> > 
> > This patch fixes it:
> > 
> > http://article.gmane.org/gmane.comp.boot-loaders.u-boot/48103
> >  
> 
> I still get this crash with latest head 
> (u-boot 2009.08-00338-gcd77dd1).

Thanks Ed,
To clarify, you're saying that the patch linked above just needs to be
applied, right?  Was there a reason the patch wasn't applied back in
2008?

The change looks good to me for what its worth.  Wolfgang or Kumar,
could one of you pick it up?

Best,
Peter

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-10-12 18:54       ` Peter Tyser
@ 2009-10-12 19:06         ` Swarthout Edward L-SWARTHOU
  2009-10-12 21:35           ` Wolfgang Denk
  0 siblings, 1 reply; 35+ messages in thread
From: Swarthout Edward L-SWARTHOU @ 2009-10-12 19:06 UTC (permalink / raw)
  To: u-boot

From: Peter Tyser 
> 
>> From: Edward
>> 
>> This patch fixes it:
>> 
>> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/48103
>>  
>> I still get this crash with latest head (u-boot 
>> 2009.08-00338-gcd77dd1).
> 
> Thanks Ed,
> To clarify, you're saying that the patch linked above 
> just needs to be applied, right?

Yes, I applied it asis.
I tested it on mpc8572ds with ATI Radeon video card.

> Was there a reason the patch wasn't applied back in 2008?

Yes, it breaks CONFIG_BIOSEMU without -mrelocatable.

> The change looks good to me for what its worth.  
> Wolfgang or Kumar, could one of you pick it up?

-EdS

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [U-Boot] [PATCH 00/13] ppc: Fix relocation
  2009-10-12 19:06         ` Swarthout Edward L-SWARTHOU
@ 2009-10-12 21:35           ` Wolfgang Denk
  0 siblings, 0 replies; 35+ messages in thread
From: Wolfgang Denk @ 2009-10-12 21:35 UTC (permalink / raw)
  To: u-boot

Dear "Swarthout Edward L-SWARTHOU",

In message <B52955765C54604CB1A62A9967F22C730499F58D@az33exm20.fsl.freescale.net> you wrote:
>
> > To clarify, you're saying that the patch linked above 
> > just needs to be applied, right?
> 
> Yes, I applied it asis.
> I tested it on mpc8572ds with ATI Radeon video card.
> 
> > Was there a reason the patch wasn't applied back in 2008?
> 
> Yes, it breaks CONFIG_BIOSEMU without -mrelocatable.

OK - AFAICT we have CONFIG_BIOSEMU only used in combination with
PowerPC boards, and we do use -mrelocatable here. Correct?

> > The change looks good to me for what its worth.  
> > Wolfgang or Kumar, could one of you pick it up?

Applied.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It is a good thing for an uneducated man to read books of quotations.
                        - Sir Winston Churchill _My Early Life_ ch. 9

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2009-10-12 21:35 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-21 16:20 [U-Boot] [PATCH 00/13] ppc: Fix relocation Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 01/13] ppc: Enable full relocation to RAM Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 02/13] ppc: Check for compilers that don't support relocation Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 03/13] ppc: Remove board.c relocation fixups Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 04/13] ppc: Remove pci config table pointer " Peter Tyser
2009-09-21 16:49   ` Paul Gortmaker
2009-09-21 16:59     ` Peter Tyser
2009-09-21 17:20       ` Paul Gortmaker
2009-09-21 16:20 ` [U-Boot] [PATCH 05/13] ppc: Remove extable " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 06/13] ppc: Remove board-specific command table " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 07/13] tsec: Remove PHY command " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 08/13] fpga: Remove " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 09/13] mpl: Remove memory test " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 10/13] lwmon, lwmon5: Remove sysmon POST " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 11/13] p3mx: Remove serial " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 12/13] Conditionally perform common " Peter Tyser
2009-09-21 16:20 ` [U-Boot] [PATCH 13/13] ppc: Remove reloc_off field from global_data structure Peter Tyser
2009-09-23 22:29   ` Wolfgang Denk
2009-09-23 22:34     ` Peter Tyser
2009-09-22  5:15 ` [U-Boot] [PATCH 00/13] ppc: Fix relocation Stefan Roese
2009-09-22  6:18 ` Joakim Tjernlund
2009-09-22  9:38   ` Detlev Zundel
2009-09-22 14:25     ` Peter Tyser
2009-09-23 22:31 ` Wolfgang Denk
2009-09-23 22:41   ` Peter Tyser
2009-09-24 14:28   ` Peter Tyser
2009-09-24 14:42     ` Stefan Roese
2009-09-24 22:10       ` Joakim Tjernlund
2009-09-24 23:46         ` Wolfgang Denk
2009-09-25  3:48           ` Stefan Roese
2009-09-24 16:05   ` Swarthout Edward L-SWARTHOU
2009-10-12 18:30     ` Swarthout Edward L-SWARTHOU
2009-10-12 18:54       ` Peter Tyser
2009-10-12 19:06         ` Swarthout Edward L-SWARTHOU
2009-10-12 21:35           ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.