]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-imx
authorWolfgang Denk <wd@denx.de>
Thu, 9 Dec 2010 19:52:44 +0000 (20:52 +0100)
committerWolfgang Denk <wd@denx.de>
Thu, 9 Dec 2010 19:52:44 +0000 (20:52 +0100)
985 files changed:
CREDITS
MAINTAINERS
MAKEALL
Makefile
README
api/Makefile
arch/arm/cpu/arm1136/Makefile
arch/arm/cpu/arm1136/mx31/Makefile
arch/arm/cpu/arm1136/omap24xx/Makefile
arch/arm/cpu/arm1136/start.S
arch/arm/cpu/arm1136/u-boot.lds
arch/arm/cpu/arm1176/Makefile
arch/arm/cpu/arm1176/s3c64xx/Makefile
arch/arm/cpu/arm1176/start.S
arch/arm/cpu/arm1176/tnetv107x/Makefile
arch/arm/cpu/arm1176/u-boot.lds
arch/arm/cpu/arm720t/Makefile
arch/arm/cpu/arm720t/lpc2292/Makefile
arch/arm/cpu/arm720t/s3c4510b/Makefile
arch/arm/cpu/arm720t/start.S
arch/arm/cpu/arm720t/u-boot.lds
arch/arm/cpu/arm920t/Makefile
arch/arm/cpu/arm920t/a320/Makefile
arch/arm/cpu/arm920t/at91/Makefile
arch/arm/cpu/arm920t/at91/reset.c
arch/arm/cpu/arm920t/at91/timer.c
arch/arm/cpu/arm920t/at91rm9200/Makefile
arch/arm/cpu/arm920t/ep93xx/Makefile
arch/arm/cpu/arm920t/imx/Makefile
arch/arm/cpu/arm920t/ks8695/Makefile
arch/arm/cpu/arm920t/s3c24x0/Makefile
arch/arm/cpu/arm920t/start.S
arch/arm/cpu/arm920t/u-boot.lds
arch/arm/cpu/arm925t/Makefile
arch/arm/cpu/arm925t/start.S
arch/arm/cpu/arm925t/u-boot.lds
arch/arm/cpu/arm926ejs/Makefile
arch/arm/cpu/arm926ejs/at91/Makefile
arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
arch/arm/cpu/arm926ejs/davinci/Makefile
arch/arm/cpu/arm926ejs/kirkwood/Makefile
arch/arm/cpu/arm926ejs/mb86r0x/Makefile
arch/arm/cpu/arm926ejs/mx25/Makefile
arch/arm/cpu/arm926ejs/mx27/Makefile
arch/arm/cpu/arm926ejs/nomadik/Makefile
arch/arm/cpu/arm926ejs/omap/Makefile
arch/arm/cpu/arm926ejs/orion5x/Makefile
arch/arm/cpu/arm926ejs/spear/Makefile
arch/arm/cpu/arm926ejs/start.S
arch/arm/cpu/arm926ejs/u-boot.lds
arch/arm/cpu/arm926ejs/versatile/Makefile
arch/arm/cpu/arm946es/Makefile
arch/arm/cpu/arm946es/start.S
arch/arm/cpu/arm946es/u-boot.lds
arch/arm/cpu/arm_intcm/Makefile
arch/arm/cpu/arm_intcm/start.S
arch/arm/cpu/arm_intcm/u-boot.lds
arch/arm/cpu/armv7/Makefile
arch/arm/cpu/armv7/mx5/Makefile
arch/arm/cpu/armv7/omap-common/Makefile
arch/arm/cpu/armv7/omap3/Makefile
arch/arm/cpu/armv7/omap3/emif4.c
arch/arm/cpu/armv7/omap3/sdrc.c
arch/arm/cpu/armv7/omap4/Makefile
arch/arm/cpu/armv7/omap4/board.c
arch/arm/cpu/armv7/s5p-common/Makefile
arch/arm/cpu/armv7/s5p-common/timer.c
arch/arm/cpu/armv7/s5pc1xx/Makefile
arch/arm/cpu/armv7/start.S
arch/arm/cpu/armv7/syslib.c
arch/arm/cpu/armv7/u-boot.lds
arch/arm/cpu/ixp/Makefile
arch/arm/cpu/ixp/npe/Makefile
arch/arm/cpu/ixp/start.S
arch/arm/cpu/ixp/u-boot.lds
arch/arm/cpu/lh7a40x/Makefile
arch/arm/cpu/lh7a40x/start.S
arch/arm/cpu/lh7a40x/u-boot.lds
arch/arm/cpu/pxa/Makefile
arch/arm/cpu/pxa/start.S
arch/arm/cpu/pxa/u-boot.lds
arch/arm/cpu/s3c44b0/Makefile
arch/arm/cpu/s3c44b0/start.S
arch/arm/cpu/s3c44b0/u-boot.lds
arch/arm/cpu/sa1100/Makefile
arch/arm/cpu/sa1100/start.S
arch/arm/cpu/sa1100/u-boot.lds
arch/arm/include/asm/arch-at91/at91_shdwn.h [new file with mode: 0644]
arch/arm/include/asm/arch-at91/at91sam9260.h
arch/arm/include/asm/arch-at91/hardware.h
arch/arm/include/asm/arch-at91/memory-map.h
arch/arm/include/asm/global_data.h
arch/arm/lib/Makefile
arch/arm/lib/board.c
arch/arm/lib/cache.c
arch/avr32/cpu/Makefile
arch/avr32/cpu/at32ap700x/Makefile
arch/avr32/lib/Makefile
arch/blackfin/cpu/Makefile
arch/blackfin/lib/Makefile
arch/blackfin/lib/ins.S
arch/blackfin/lib/outs.S
arch/blackfin/lib/u-boot.lds.S
arch/i386/cpu/Makefile
arch/i386/cpu/sc520/Makefile
arch/i386/lib/Makefile
arch/m68k/cpu/mcf5227x/Makefile
arch/m68k/cpu/mcf523x/Makefile
arch/m68k/cpu/mcf52x2/Makefile
arch/m68k/cpu/mcf532x/Makefile
arch/m68k/cpu/mcf5445x/Makefile
arch/m68k/cpu/mcf547x_8x/Makefile
arch/m68k/lib/Makefile
arch/microblaze/cpu/Makefile
arch/microblaze/lib/Makefile
arch/mips/cpu/Makefile
arch/mips/lib/Makefile
arch/nios2/cpu/Makefile
arch/nios2/lib/Makefile
arch/powerpc/config.mk
arch/powerpc/cpu/74xx_7xx/Makefile
arch/powerpc/cpu/74xx_7xx/u-boot.lds [moved from board/freescale/mpc7448hpc2/u-boot.lds with 53% similarity]
arch/powerpc/cpu/mpc512x/Makefile
arch/powerpc/cpu/mpc512x/config.mk
arch/powerpc/cpu/mpc512x/u-boot.lds
arch/powerpc/cpu/mpc5xx/Makefile
arch/powerpc/cpu/mpc5xx/config.mk
arch/powerpc/cpu/mpc5xx/u-boot.lds
arch/powerpc/cpu/mpc5xxx/Makefile
arch/powerpc/cpu/mpc5xxx/config.mk
arch/powerpc/cpu/mpc5xxx/i2c.c
arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
arch/powerpc/cpu/mpc5xxx/u-boot.lds
arch/powerpc/cpu/mpc8220/Makefile
arch/powerpc/cpu/mpc8220/config.mk
arch/powerpc/cpu/mpc8220/u-boot.lds
arch/powerpc/cpu/mpc824x/Makefile
arch/powerpc/cpu/mpc824x/config.mk
arch/powerpc/cpu/mpc824x/u-boot.lds
arch/powerpc/cpu/mpc8260/Makefile
arch/powerpc/cpu/mpc8260/config.mk
arch/powerpc/cpu/mpc8260/u-boot.lds
arch/powerpc/cpu/mpc83xx/Makefile
arch/powerpc/cpu/mpc83xx/config.mk
arch/powerpc/cpu/mpc83xx/start.S
arch/powerpc/cpu/mpc83xx/u-boot.lds
arch/powerpc/cpu/mpc85xx/Makefile
arch/powerpc/cpu/mpc85xx/config.mk
arch/powerpc/cpu/mpc85xx/cpu_init.c
arch/powerpc/cpu/mpc86xx/Makefile
arch/powerpc/cpu/mpc86xx/config.mk
arch/powerpc/cpu/mpc86xx/u-boot.lds
arch/powerpc/cpu/mpc8xx/Makefile
arch/powerpc/cpu/mpc8xx/config.mk
arch/powerpc/cpu/mpc8xxx/Makefile
arch/powerpc/cpu/mpc8xxx/ddr/Makefile
arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c
arch/powerpc/cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c
arch/powerpc/cpu/ppc4xx/Makefile
arch/powerpc/cpu/ppc4xx/cmd_ecctest.c
arch/powerpc/cpu/ppc4xx/config.mk
arch/powerpc/cpu/ppc4xx/start.S
arch/powerpc/cpu/ppc4xx/u-boot.lds
arch/powerpc/lib/Makefile
arch/powerpc/lib/board.c
arch/sh/cpu/sh2/Makefile
arch/sh/cpu/sh2/start.S
arch/sh/cpu/sh3/Makefile
arch/sh/cpu/sh3/start.S
arch/sh/cpu/sh4/Makefile
arch/sh/cpu/sh4/start.S
arch/sh/lib/Makefile
arch/sparc/cpu/leon2/Makefile
arch/sparc/cpu/leon3/Makefile
arch/sparc/lib/Makefile
board/BuS/EB+MCF-EV123/Makefile
board/BuS/eb_cpux9k2/Makefile
board/LEOX/elpt860/Makefile
board/LEOX/elpt860/u-boot.lds
board/LaCie/edminiv2/Makefile
board/Marvell/db64360/Makefile
board/Marvell/db64360/u-boot.lds [deleted file]
board/Marvell/db64460/Makefile
board/Marvell/guruplug/Makefile
board/Marvell/mv88f6281gtw_ge/Makefile
board/Marvell/openrd_base/Makefile
board/Marvell/rd6281a/Makefile
board/Marvell/sheevaplug/Makefile
board/RPXClassic/Makefile
board/RPXClassic/u-boot.lds
board/RPXlite/Makefile
board/RPXlite/u-boot.lds
board/RPXlite_dw/Makefile
board/RPXlite_dw/u-boot.lds
board/RRvision/Makefile
board/RRvision/u-boot.lds
board/Seagate/dockstar/Makefile [moved from board/barco/Makefile with 64% similarity]
board/Seagate/dockstar/dockstar.c [new file with mode: 0644]
board/Seagate/dockstar/dockstar.h [new file with mode: 0644]
board/Seagate/dockstar/kwbimage.cfg [new file with mode: 0644]
board/a3000/Makefile
board/a4m072/Makefile
board/actux1/Makefile
board/actux1/config.mk
board/actux2/Makefile
board/actux2/config.mk
board/actux3/Makefile
board/actux3/config.mk
board/actux4/Makefile
board/actux4/config.mk
board/adder/Makefile
board/adder/u-boot.lds
board/afeb9260/Makefile
board/alaska/Makefile
board/altera/nios2-generic/Makefile
board/amcc/acadia/Makefile
board/amcc/bamboo/Makefile
board/amcc/bamboo/u-boot-nand.lds
board/amcc/bluestone/Makefile
board/amcc/bubinga/Makefile
board/amcc/canyonlands/Makefile
board/amcc/canyonlands/canyonlands.c
board/amcc/canyonlands/u-boot-nand.lds
board/amcc/ebony/Makefile
board/amcc/katmai/Makefile
board/amcc/kilauea/Makefile
board/amcc/luan/Makefile
board/amcc/makalu/Makefile
board/amcc/ocotea/Makefile
board/amcc/redwood/Makefile
board/amcc/sequoia/Makefile
board/amcc/sequoia/u-boot-nand.lds
board/amcc/sequoia/u-boot-ram.lds
board/amcc/taihu/Makefile
board/amcc/taishan/Makefile
board/amcc/walnut/Makefile
board/amcc/yosemite/Makefile
board/amcc/yucca/Makefile
board/amirix/ap1000/Makefile
board/amirix/ap1000/u-boot.lds
board/apollon/Makefile
board/armadillo/Makefile
board/armltd/integrator/Makefile
board/armltd/versatile/Makefile
board/armltd/vexpress/Makefile
board/armltd/vexpress/ca9x4_ct_vxp.c
board/armltd/vexpress/config.mk
board/armltd/vexpress/u-boot.lds [deleted file]
board/assabet/Makefile
board/astro/mcf5373l/Makefile
board/atc/Makefile
board/atc/ti113x.c
board/atmel/at91cap9adk/Makefile
board/atmel/at91rm9200dk/Makefile
board/atmel/at91rm9200ek/Makefile
board/atmel/at91rm9200ek/config.mk [deleted file]
board/atmel/at91sam9260ek/Makefile
board/atmel/at91sam9261ek/Makefile
board/atmel/at91sam9263ek/Makefile
board/atmel/at91sam9m10g45ek/Makefile
board/atmel/at91sam9rlek/Makefile
board/atmel/atngw100/Makefile
board/atmel/atstk1000/Makefile
board/atum8548/Makefile
board/balloon3/Makefile
board/barco/README [deleted file]
board/barco/barco.c [deleted file]
board/barco/barco_svc.h [deleted file]
board/barco/early_init.S [deleted file]
board/barco/flash.c [deleted file]
board/barco/speed.h [deleted file]
board/bc3450/Makefile
board/bct-brettl2/Makefile
board/bf518f-ezbrd/Makefile
board/bf526-ezbrd/Makefile
board/bf527-ad7160-eval/Makefile
board/bf527-ezkit/Makefile
board/bf527-sdp/Makefile
board/bf533-ezkit/Makefile
board/bf533-stamp/Makefile
board/bf537-minotaur/Makefile
board/bf537-pnav/Makefile
board/bf537-srv1/Makefile
board/bf537-stamp/Makefile
board/bf538f-ezkit/Makefile
board/bf548-ezkit/Makefile
board/bf561-acvilon/Makefile
board/bf561-ezkit/Makefile
board/blackstamp/Makefile
board/blackvme/Makefile
board/bmw/Makefile
board/c2mon/Makefile
board/c2mon/u-boot.lds
board/calao/sbc35_a9g20/Makefile
board/calao/tny_a9260/Makefile
board/canmb/Makefile
board/cerf250/Makefile
board/cm-bf527/Makefile
board/cm-bf533/Makefile
board/cm-bf537e/Makefile
board/cm-bf537u/Makefile
board/cm-bf548/Makefile
board/cm-bf561/Makefile
board/cm4008/Makefile
board/cm41xx/Makefile
board/cm5200/Makefile
board/cmc_pu2/Makefile
board/cmi/Makefile
board/cobra5272/Makefile
board/cogent/Makefile
board/cogent/u-boot.lds
board/colibri_pxa270/Makefile
board/cpc45/Makefile
board/cpc45/pd67290.c
board/cpu86/Makefile
board/cpu87/Makefile
board/cradle/Makefile
board/cray/L1/L1.c
board/cray/L1/Makefile
board/csb226/Makefile
board/csb272/Makefile
board/csb472/Makefile
board/csb637/Makefile
board/cu824/Makefile
board/dave/B2/Makefile
board/dave/PPChameleonEVB/Makefile
board/dave/PPChameleonEVB/u-boot.lds [moved from board/Marvell/db64460/u-boot.lds with 50% similarity]
board/davedenx/aria/Makefile
board/davedenx/qong/Makefile
board/davinci/common/Makefile
board/davinci/da8xxevm/Makefile
board/davinci/da8xxevm/da850evm.c
board/davinci/dm355evm/Makefile
board/davinci/dm355leopard/Makefile
board/davinci/dm365evm/Makefile
board/davinci/dm6467evm/Makefile
board/davinci/dvevm/Makefile
board/davinci/schmoogie/Makefile
board/davinci/sffsdr/Makefile
board/davinci/sonata/Makefile
board/dbau1x00/Makefile
board/digsy_mtc/Makefile
board/dnp1110/Makefile
board/eNET/Makefile
board/eXalion/Makefile
board/earthlcd/favr-32-ezkit/Makefile
board/edb93xx/Makefile
board/eltec/bab7xx/Makefile
board/eltec/bab7xx/u-boot.lds [deleted file]
board/eltec/elppc/Makefile
board/eltec/elppc/u-boot.lds [deleted file]
board/eltec/mhpc/Makefile
board/eltec/mhpc/u-boot.lds
board/emk/top5200/Makefile
board/emk/top860/Makefile
board/emk/top860/u-boot.lds
board/emk/top9000/Makefile [moved from board/eric/Makefile with 77% similarity]
board/emk/top9000/spi.c [new file with mode: 0644]
board/emk/top9000/top9000.c [new file with mode: 0644]
board/ep7312/Makefile
board/ep8248/Makefile
board/ep8260/Makefile
board/ep82xxm/Makefile
board/ep88x/Makefile
board/ep88x/u-boot.lds
board/eric/eric.c [deleted file]
board/eric/eric.h [deleted file]
board/eric/flash.c [deleted file]
board/eric/init.S [deleted file]
board/esd/adciop/Makefile
board/esd/apc405/Makefile
board/esd/ar405/Makefile
board/esd/ash405/Makefile
board/esd/canbt/Makefile
board/esd/cms700/Makefile
board/esd/cpci2dp/Makefile
board/esd/cpci405/Makefile
board/esd/cpci5200/Makefile
board/esd/cpci750/Makefile
board/esd/cpci750/u-boot.lds [deleted file]
board/esd/cpciiser4/Makefile
board/esd/dasa_sim/Makefile
board/esd/dasa_sim/u-boot.lds
board/esd/dp405/Makefile
board/esd/du405/Makefile
board/esd/du440/Makefile
board/esd/hh405/Makefile
board/esd/hub405/Makefile
board/esd/mecp5123/Makefile
board/esd/mecp5200/Makefile
board/esd/meesc/Makefile
board/esd/ocrtc/Makefile
board/esd/otc570/Makefile
board/esd/pci405/Makefile
board/esd/pf5200/Makefile
board/esd/plu405/Makefile
board/esd/pmc405/Makefile
board/esd/pmc405de/Makefile
board/esd/pmc440/Makefile
board/esd/tasreg/Makefile
board/esd/vme8349/Makefile
board/esd/voh405/Makefile
board/esd/vom405/Makefile
board/esd/wuh405/Makefile
board/espt/Makefile
board/esteem192e/Makefile
board/esteem192e/u-boot.lds
board/etin/debris/Makefile
board/etin/kvme080/Makefile
board/etx094/Makefile
board/etx094/u-boot.lds
board/eukrea/cpu9260/Makefile
board/eukrea/cpuat91/Makefile
board/evb4510/Makefile
board/evb64260/Makefile
board/evb64260/u-boot.lds
board/fads/Makefile
board/fads/u-boot.lds
board/fads/u-boot.lds.debug [deleted file]
board/faraday/a320evb/Makefile
board/flagadm/Makefile
board/flagadm/u-boot.lds
board/freescale/common/Makefile
board/freescale/corenet_ds/Makefile
board/freescale/m5208evbe/Makefile
board/freescale/m5208evbe/u-boot.lds
board/freescale/m52277evb/Makefile
board/freescale/m52277evb/u-boot.spa
board/freescale/m5235evb/Makefile
board/freescale/m5235evb/u-boot.32
board/freescale/m5249evb/Makefile
board/freescale/m5253demo/Makefile
board/freescale/m5253evbe/Makefile
board/freescale/m5271evb/Makefile
board/freescale/m5271evb/u-boot.lds
board/freescale/m5272c3/Makefile
board/freescale/m5275evb/Makefile
board/freescale/m5282evb/Makefile
board/freescale/m53017evb/Makefile
board/freescale/m53017evb/u-boot.lds
board/freescale/m5329evb/Makefile
board/freescale/m5373evb/Makefile
board/freescale/m54451evb/Makefile
board/freescale/m54451evb/u-boot.spa
board/freescale/m54455evb/Makefile
board/freescale/m547xevb/Makefile
board/freescale/m548xevb/Makefile
board/freescale/mpc5121ads/Makefile
board/freescale/mpc7448hpc2/Makefile
board/freescale/mpc8260ads/Makefile
board/freescale/mpc8266ads/Makefile
board/freescale/mpc8308rdb/Makefile
board/freescale/mpc8313erdb/Makefile
board/freescale/mpc8315erdb/Makefile
board/freescale/mpc8323erdb/Makefile
board/freescale/mpc832xemds/Makefile
board/freescale/mpc8349emds/Makefile
board/freescale/mpc8349itx/Makefile
board/freescale/mpc8360emds/Makefile
board/freescale/mpc8360erdk/Makefile
board/freescale/mpc837xemds/Makefile
board/freescale/mpc837xerdb/Makefile
board/freescale/mpc8536ds/Makefile
board/freescale/mpc8540ads/Makefile
board/freescale/mpc8541cds/Makefile
board/freescale/mpc8544ds/Makefile
board/freescale/mpc8548cds/Makefile
board/freescale/mpc8555cds/Makefile
board/freescale/mpc8560ads/Makefile
board/freescale/mpc8568mds/Makefile
board/freescale/mpc8569mds/Makefile
board/freescale/mpc8572ds/Makefile
board/freescale/mpc8610hpcd/Makefile
board/freescale/mpc8641hpcn/Makefile
board/freescale/mpc8641hpcn/mpc8641hpcn.c
board/freescale/mx31ads/Makefile
board/freescale/mx31ads/u-boot.lds
board/freescale/mx31pdk/Makefile
board/freescale/mx51evk/Makefile
board/freescale/p1022ds/Makefile
board/freescale/p1_p2_rdb/Makefile
board/freescale/p2020ds/Makefile
board/freescale/p2020ds/p2020ds.c
board/funkwerk/vovpn-gw/Makefile
board/g2000/Makefile
board/gaisler/gr_cpci_ax2000/Makefile
board/gaisler/gr_ep2s60/Makefile
board/gaisler/gr_xc3s_1500/Makefile
board/gaisler/grsim/Makefile
board/gaisler/grsim_leon2/Makefile
board/galaxy5200/Makefile
board/gcplus/Makefile
board/gdsys/405ep/Makefile
board/gdsys/common/Makefile
board/gdsys/common/osd.c
board/gdsys/dlvision/Makefile
board/gdsys/gdppc440etx/Makefile
board/gdsys/intip/Makefile
board/gdsys/neo/Makefile
board/gen860t/Makefile
board/gen860t/u-boot-flashenv.lds
board/gen860t/u-boot.lds
board/genietv/Makefile
board/genietv/u-boot.lds
board/gth2/Makefile
board/gw8260/Makefile
board/hermes/Makefile
board/hermes/u-boot.lds
board/hidden_dragon/Makefile
board/hymod/Makefile
board/ibf-dsp561/Makefile
board/icecube/Makefile
board/icu862/Makefile
board/icu862/u-boot.lds
board/idmr/Makefile
board/idmr/u-boot.lds
board/ids8247/Makefile
board/ids8247/flash.c [deleted file]
board/impa7/Makefile
board/imx31_phycore/Makefile
board/incaip/Makefile
board/inka4x0/Makefile
board/innokom/Makefile
board/ip04/Makefile
board/ip860/Makefile
board/ip860/u-boot.lds
board/ipek01/Makefile
board/iphase4539/Makefile
board/isee/igep0020/Makefile
board/isee/igep0020/config.mk
board/isee/igep0020/igep0020.c
board/isee/igep0030/Makefile
board/isee/igep0030/config.mk
board/isee/igep0030/igep0030.c
board/ispan/Makefile
board/ivm/Makefile
board/ivm/u-boot.lds
board/ixdp425/Makefile
board/jornada/Makefile
board/jornada/setup.S
board/jse/Makefile
board/jupiter/Makefile
board/karo/tx25/Makefile
board/kb9202/Makefile
board/keymile/km8xx/Makefile
board/keymile/km8xx/u-boot.lds
board/keymile/km_arm/Makefile
board/keymile/kmeter1/Makefile
board/keymile/mgcoge/Makefile
board/korat/Makefile
board/kup/Makefile
board/kup/kup4k/Makefile
board/kup/kup4k/u-boot.lds
board/kup/kup4x/Makefile
board/kup/kup4x/u-boot.lds
board/lantec/Makefile
board/lantec/u-boot.lds
board/lart/Makefile
board/linkstation/Makefile
board/logicpd/am3517evm/Makefile
board/logicpd/am3517evm/config.mk
board/logicpd/imx27lite/Makefile
board/logicpd/imx31_litekit/Makefile
board/logicpd/zoom1/Makefile
board/logicpd/zoom1/config.mk
board/logicpd/zoom2/Makefile
board/logicpd/zoom2/config.mk
board/lpc2292sodimm/Makefile
board/lpd7a40x/Makefile
board/lubbock/Makefile
board/lwmon/Makefile
board/lwmon/u-boot.lds
board/lwmon5/Makefile
board/m501sk/Makefile
board/manroland/hmi1001/Makefile
board/manroland/hmi1001/config.mk [deleted file]
board/manroland/mucmc52/Makefile
board/manroland/uc100/Makefile
board/manroland/uc100/u-boot.lds
board/manroland/uc101/Makefile
board/matrix_vision/common/Makefile
board/matrix_vision/mvbc_p/Makefile
board/matrix_vision/mvblm7/Makefile
board/matrix_vision/mvsmr/Makefile
board/matrix_vision/mvsmr/u-boot.lds
board/mbx8xx/Makefile
board/mbx8xx/u-boot.lds
board/mcc200/Makefile
board/micronas/vct/Makefile
board/mimc/mimc200/Makefile
board/miromico/hammerhead/Makefile
board/ml2/Makefile
board/ml2/u-boot.lds
board/modnet50/Makefile
board/mosaixtech/icon/Makefile
board/motionpro/Makefile
board/mousse/Makefile
board/mousse/u-boot.lds
board/mp2usb/Makefile
board/mpc8308_p1m/Makefile
board/mpc8540eval/Makefile
board/mpl/mip405/Makefile
board/mpl/pati/Makefile
board/mpl/pip405/Makefile
board/mpl/vcma9/Makefile
board/mpr2/Makefile
board/ms7720se/Makefile
board/ms7722se/Makefile
board/ms7750se/Makefile
board/muas3001/Makefile
board/munices/Makefile
board/musenki/Makefile
board/mvblue/Makefile
board/mvblue/u-boot.lds [moved from board/pcippc2/u-boot.lds with 50% similarity]
board/mx1ads/Makefile
board/mx1fs2/Makefile
board/netphone/Makefile
board/netphone/u-boot.lds
board/netstal/hcu4/Makefile
board/netstal/hcu5/Makefile
board/netstal/mcu25/Makefile
board/netstar/Makefile
board/netta/Makefile
board/netta/u-boot.lds
board/netta2/Makefile
board/netta2/u-boot.lds
board/netvia/Makefile
board/netvia/u-boot.lds
board/ns9750dev/Makefile
board/nx823/Makefile
board/nx823/u-boot.lds
board/o2dnt/Makefile
board/overo/Makefile
board/overo/overo.c
board/overo/overo.h
board/oxc/Makefile
board/palmld/Makefile
board/palmtc/Makefile
board/pandora/Makefile
board/pandora/config.mk [deleted file]
board/pb1x00/Makefile
board/pcippc2/Makefile
board/pcs440ep/Makefile
board/pdm360ng/Makefile
board/phytec/pcm030/Makefile
board/pleb2/Makefile
board/pm520/Makefile
board/pm826/Makefile
board/pm828/Makefile
board/pm854/Makefile
board/pm856/Makefile
board/pn62/Makefile
board/ppmc7xx/Makefile
board/ppmc7xx/u-boot.lds [deleted file]
board/ppmc8260/Makefile
board/prodrive/alpr/Makefile
board/prodrive/p3mx/Makefile
board/prodrive/p3mx/u-boot.lds [deleted file]
board/prodrive/p3p440/Makefile
board/prodrive/pdnb3/Makefile
board/psyent/pci5441/Makefile
board/psyent/pk1c20/Makefile
board/purple/Makefile
board/pxa255_idp/Makefile
board/qemu-mips/Makefile
board/quad100hd/Makefile
board/quantum/Makefile
board/quantum/u-boot.lds
board/r360mpi/Makefile
board/r360mpi/u-boot.lds
board/rattler/Makefile
board/rbc823/Makefile
board/rbc823/u-boot.lds
board/renesas/MigoR/Makefile
board/renesas/ap325rxa/Makefile
board/renesas/r2dplus/Makefile
board/renesas/r7780mp/Makefile
board/renesas/rsk7203/Makefile
board/renesas/sh7763rdp/Makefile
board/renesas/sh7785lcr/Makefile
board/rmu/Makefile
board/rmu/u-boot.lds
board/ronetix/pm9261/Makefile
board/ronetix/pm9263/Makefile
board/ronetix/pm9g45/Makefile
board/rpxsuper/Makefile
board/rsdproto/Makefile
board/sacsng/Makefile
board/samsung/goni/Makefile
board/samsung/goni/goni.c
board/samsung/smdk2400/Makefile
board/samsung/smdk2410/Makefile
board/samsung/smdk6400/Makefile
board/samsung/smdkc100/Makefile
board/samsung/smdkc100/smdkc100.c
board/sandburst/karef/Makefile
board/sandburst/metrobox/Makefile
board/sandpoint/Makefile
board/sandpoint/u-boot.lds [moved from board/manroland/uc100/u-boot.lds.debug with 54% similarity]
board/sbc2410x/Makefile
board/sbc405/Makefile
board/sbc405/sbc405.c
board/sbc8240/Makefile
board/sbc8260/Makefile
board/sbc8349/Makefile
board/sbc8548/Makefile
board/sbc8560/Makefile
board/sbc8641d/Makefile
board/sc3/Makefile
board/scb9328/Makefile
board/shannon/Makefile
board/sheldon/simpc8313/Makefile
board/siemens/IAD210/Makefile
board/siemens/IAD210/u-boot.lds
board/siemens/SCM/Makefile
board/siemens/SMN42/Makefile
board/sixnet/Makefile
board/sixnet/u-boot.lds
board/snmc/qs850/Makefile
board/snmc/qs850/u-boot.lds
board/snmc/qs860t/Makefile
board/snmc/qs860t/u-boot.lds
board/socrates/Makefile
board/sorcery/Makefile
board/spc1920/Makefile
board/spc1920/u-boot.lds
board/spd8xx/Makefile
board/spd8xx/u-boot.lds
board/spear/common/Makefile
board/spear/spear300/Makefile
board/spear/spear310/Makefile
board/spear/spear320/Makefile
board/spear/spear600/Makefile
board/st/nhk8815/Makefile
board/stx/stxgp3/Makefile
board/stx/stxssa/Makefile
board/stx/stxxtc/Makefile
board/stx/stxxtc/u-boot.lds
board/svm_sc8xx/Makefile
board/svm_sc8xx/u-boot.lds
board/sx1/Makefile
board/syteco/jadecpu/Makefile
board/t3corp/Makefile
board/tb0229/Makefile
board/tcm-bf518/Makefile
board/tcm-bf537/Makefile
board/ti/beagle/Makefile
board/ti/beagle/beagle.c
board/ti/beagle/beagle.h
board/ti/evm/Makefile
board/ti/evm/config.mk
board/ti/evm/evm.c
board/ti/evm/evm.h
board/ti/omap1510inn/Makefile
board/ti/omap1610inn/Makefile
board/ti/omap2420h4/Makefile
board/ti/omap5912osk/Makefile
board/ti/omap730p2/Makefile
board/ti/panda/Makefile
board/ti/sdp3430/Makefile
board/ti/sdp3430/config.mk
board/ti/sdp4430/Makefile
board/ti/tnetv107xevm/Makefile
board/timll/devkit8000/Makefile
board/timll/devkit8000/config.mk [deleted file]
board/total5200/Makefile
board/tqc/tqm5200/Makefile
board/tqc/tqm5200/cam5200_flash.c
board/tqc/tqm8260/Makefile
board/tqc/tqm8272/Makefile
board/tqc/tqm834x/Makefile
board/tqc/tqm85xx/Makefile
board/tqc/tqm8xx/Makefile
board/tqc/tqm8xx/u-boot.lds
board/trab/Makefile
board/trizepsiv/Makefile
board/ttcontrol/vision2/Makefile
board/utx8245/Makefile
board/v37/Makefile
board/v37/u-boot.lds
board/v38b/Makefile
board/ve8313/Makefile
board/voiceblue/Makefile
board/vpac270/Makefile
board/w7o/Makefile
board/westel/amx860/Makefile
board/westel/amx860/u-boot.lds
board/xaeniax/Makefile
board/xes/common/Makefile
board/xes/xpedite1000/Makefile
board/xes/xpedite517x/Makefile
board/xes/xpedite520x/Makefile
board/xes/xpedite537x/Makefile
board/xes/xpedite550x/Makefile
board/xilinx/microblaze-generic/Makefile
board/xilinx/ppc405-generic/Makefile
board/xilinx/ppc440-generic/Makefile
board/xm250/Makefile
board/zeus/Makefile
board/zipitz2/Makefile
board/zpc1900/Makefile
board/zylonite/Makefile
boards.cfg
common/Makefile
common/cmd_nvedit.c
common/cmd_onenand.c
common/cmd_ubi.c
common/cmd_ubifs.c
common/command.c
common/dlmalloc.c
common/env_nand.c
common/fdt_support.c
common/hwconfig.c
config.mk
disk/Makefile
doc/README.davinci
doc/README.scrapyard
drivers/bios_emulator/Makefile
drivers/block/Makefile
drivers/dma/Makefile
drivers/fpga/Makefile
drivers/gpio/Makefile
drivers/hwmon/Makefile
drivers/i2c/Makefile
drivers/input/Makefile
drivers/misc/Makefile
drivers/mmc/Makefile
drivers/mmc/gen_atmel_mci.c
drivers/mmc/mmc.c
drivers/mmc/omap_hsmmc.c
drivers/mtd/Makefile
drivers/mtd/cfi_flash.c
drivers/mtd/nand/Makefile
drivers/mtd/nand/ndfc.c
drivers/mtd/nand/s3c2410_nand.c
drivers/mtd/onenand/Makefile
drivers/mtd/spi/Makefile
drivers/mtd/ubi/Makefile
drivers/net/Makefile
drivers/net/e1000.c
drivers/net/greth.c
drivers/net/phy/Makefile
drivers/pci/Makefile
drivers/pci/tsi108_pci.c
drivers/pcmcia/Makefile
drivers/power/Makefile
drivers/qe/Makefile
drivers/qe/fdt.c
drivers/rtc/Makefile
drivers/serial/Makefile
drivers/spi/Makefile
drivers/twserial/Makefile
drivers/usb/gadget/Makefile
drivers/usb/host/Makefile
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ehci-ppc4xx.c
drivers/usb/musb/Makefile
drivers/usb/phy/Makefile
drivers/video/Makefile
drivers/video/fsl_diu_fb.c [moved from board/freescale/common/fsl_diu_fb.c with 100% similarity]
drivers/watchdog/Makefile
examples/standalone/Makefile
fs/cramfs/Makefile
fs/ext2/Makefile
fs/fat/Makefile
fs/fdos/Makefile
fs/jffs2/Makefile
fs/reiserfs/Makefile
fs/ubifs/Makefile
fs/ubifs/super.c
fs/ubifs/ubifs.c
fs/yaffs2/Makefile
include/configs/AP1000.h
include/configs/CANBT.h
include/configs/CATcenter.h
include/configs/CPCI2DP.h
include/configs/DP405.h
include/configs/ERIC.h [deleted file]
include/configs/EVB64260.h
include/configs/HIDDEN_DRAGON.h
include/configs/ML2.h
include/configs/MPC8313ERDB.h
include/configs/MPC8315ERDB.h
include/configs/MPC8360EMDS.h
include/configs/MPC8536DS.h
include/configs/MPC8569MDS.h
include/configs/MPC8572DS.h
include/configs/MVBLUE.h
include/configs/NETPHONE.h
include/configs/NETTA.h
include/configs/NETVIA.h
include/configs/P1_P2_RDB.h
include/configs/PPChameleonEVB.h
include/configs/SIMPC8313.h
include/configs/Sandpoint8240.h
include/configs/Sandpoint8245.h
include/configs/TQM5200.h
include/configs/am3517_evm.h
include/configs/aria.h
include/configs/at91rm9200ek.h
include/configs/atngw100.h
include/configs/balloon3.h
include/configs/barco.h [deleted file]
include/configs/bct-brettl2.h
include/configs/bf533-stamp.h
include/configs/bf537-pnav.h
include/configs/bf537-stamp.h
include/configs/bf538f-ezkit.h
include/configs/bf561-ezkit.h
include/configs/cm-bf537e.h
include/configs/cm-bf537u.h
include/configs/cmi_mpc5xx.h
include/configs/cogent_mpc8260.h
include/configs/cogent_mpc8xx.h
include/configs/da830evm.h
include/configs/da850evm.h
include/configs/davinci_dm355evm.h
include/configs/davinci_dm355leopard.h
include/configs/davinci_dm365evm.h
include/configs/davinci_dvevm.h
include/configs/davinci_sonata.h
include/configs/devkit8000.h
include/configs/dockstar.h [new file with mode: 0644]
include/configs/ibf-dsp561.h
include/configs/igep0020.h
include/configs/igep0030.h
include/configs/keymile-common.h
include/configs/mcc200.h
include/configs/mimc200.h
include/configs/mv-common.h
include/configs/omap3_beagle.h
include/configs/omap3_evm.h
include/configs/omap3_overo.h
include/configs/omap3_pandora.h
include/configs/omap3_sdp3430.h
include/configs/omap3_zoom1.h
include/configs/omap3_zoom2.h
include/configs/omap4_panda.h
include/configs/omap4_sdp4430.h
include/configs/palmld.h
include/configs/palmtc.h
include/configs/pleb2.h
include/configs/quantum.h
include/configs/r7780mp.h
include/configs/s5p_goni.h
include/configs/sc3.h
include/configs/smdkc100.h
include/configs/tcm-bf537.h
include/configs/tnetv107x_evm.h
include/configs/top9000.h [new file with mode: 0644]
include/configs/zipitz2.h
include/linux/mii.h
include/pci_ids.h
include/post.h
lib/Makefile
lib/libfdt/Makefile
lib/lzma/Makefile
lib/lzo/Makefile
nand_spl/board/amcc/acadia/u-boot.lds
nand_spl/board/amcc/bamboo/u-boot.lds
nand_spl/board/amcc/canyonlands/u-boot.lds
nand_spl/board/amcc/kilauea/u-boot.lds
nand_spl/board/amcc/sequoia/u-boot.lds
nand_spl/board/freescale/mpc8313erdb/Makefile
nand_spl/board/freescale/mpc8313erdb/u-boot.lds
nand_spl/board/freescale/mpc8315erdb/Makefile
nand_spl/board/freescale/mpc8315erdb/u-boot.lds
nand_spl/board/karo/tx25/u-boot.lds
nand_spl/board/sheldon/simpc8313/Makefile
net/Makefile
post/Makefile
post/board/lwmon/Makefile
post/board/lwmon5/Makefile
post/board/netta/Makefile
post/board/pdm360ng/Makefile
post/cpu/mpc83xx/Makefile
post/cpu/mpc8xx/Makefile
post/cpu/ppc4xx/Makefile
post/cpu/ppc4xx/denali_ecc.c
post/drivers/Makefile
post/drivers/i2c.c
post/lib_powerpc/Makefile
post/lib_powerpc/fpu/Makefile
post/rules.mk
tools/env/Makefile

diff --git a/CREDITS b/CREDITS
index d6810189b607f6245d835e895b75fdfac24dacea..dacc5b4f9bf9dafb861a13e5de57a587a015a6ae 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -22,10 +22,6 @@ N: Guillaume Alexandre
 E: guillaume.alexandre@gespac.ch
 D: Add PCIPPC6 configuration
 
-N: Swen Anderson
-E: sand@peppercon.de
-D: ERIC Support
-
 N: Pantelis Antoniou
 E: panto@intracom.gr
 D: NETVIA & NETPHONE board support, ARTOS support.
@@ -282,11 +278,6 @@ N: Thomas Lange
 E: thomas@corelatus.se
 D: Support for GTH, GTH2 and dbau1x00 boards; lots of PCMCIA fixes
 
-N: Marc Leeman
-E: marc.leeman@barco.com
-D: Support for Barco Streaming Video Card (SVC) and Sample Compress Network (SCN)
-W: www.barco.com
-
 N: The LEOX team
 E: team@leox.org
 D: Support for LEOX boards, DS164x RTC
index 9258cb12732f23cfa8de54ea7d02a79f7c359be8..0590ad9d077f36a0d029d3cacc23b7ec3bf2547a 100644 (file)
@@ -310,10 +310,11 @@ Tirumala Marri <tmarri@apm.com>
 
        bluestone       APM821XX
 
-Reinhard Meyer <r.meyer@emk-elektronik.de>
+Reinhard Meyer <reinhard.meyer@emk-elektronik.de>
 
        TOP860          MPC860T
        TOP5200         MPC5200
+       TOP9000         ARM926EJS (AT91SAM9xxx SoC)
 
 Tolunay Orkun <torkun@nextio.com>
 
@@ -524,8 +525,6 @@ Unknown / orphaned boards:
        RPXClassic      MPC8xx
        RPXlite         MPC8xx
 
-       ERIC            PPC4xx
-
        MOUSSE          MPC824x
 
        RPXsuper        MPC8260
@@ -591,6 +590,10 @@ Po-Yu Chuang <ratbert@faraday-tech.com>
 
        a320evb         FA526 (ARM920T-like) (a320 SoC)
 
+Eric Cooper <ecc@cmu.edu>
+
+       dockstar        ARM926EJS (Kirkwood SoC)
+
 George G. Davis <gdavis@mvista.com>
 
        assabet         SA1100
diff --git a/MAKEALL b/MAKEALL
index 767d561c397fafceea04a044515e7bd6d9cc3863..42545659b84893420b146120c17e1a3b7725cf42 100755 (executable)
--- a/MAKEALL
+++ b/MAKEALL
@@ -187,6 +187,7 @@ boards_by_field()
 }
 boards_by_arch() { boards_by_field 2 "$@" ; }
 boards_by_cpu()  { boards_by_field 3 "$@" ; }
+boards_by_soc()  { boards_by_field 6 "$@" ; }
 
 #########################################################################
 ## MPC5xx Systems
@@ -439,11 +440,8 @@ LIST_ARMV7="               \
 ## AT91 Systems
 #########################################################################
 
-LIST_at91="                    \
-       afeb9260                \
-       at91cap9adk             \
-       at91rm9200dk            \
-       at91rm9200ek            \
+LIST_at91="$(boards_by_soc at91)\
+       $(boards_by_soc at91rm9200)\
        at91sam9260ek           \
        at91sam9261ek           \
        at91sam9263ek           \
@@ -451,19 +449,9 @@ LIST_at91="                        \
        at91sam9g20ek           \
        at91sam9m10g45ek        \
        at91sam9rlek            \
-       cmc_pu2                 \
        CPUAT91                 \
        CPU9260                 \
        CPU9G20                 \
-       csb637                  \
-       eb_cpux9k2              \
-       kb9202                  \
-       meesc                   \
-       mp2usb                  \
-       m501sk                  \
-       otc570                  \
-       pm9261                  \
-       pm9263                  \
        pm9g45                  \
        SBC35_A9G20             \
        TNY_A9260               \
index f0c270307c389950b34d40dd554d176e5921b82b..0685ef9955c2115babdee36cd9c879f5ff7cbbc2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@
 VERSION = 2010
 PATCHLEVEL = 12
 SUBLEVEL =
-EXTRAVERSION = -rc1
+EXTRAVERSION = -rc2
 ifneq "$(SUBLEVEL)" ""
 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 else
@@ -180,96 +180,96 @@ endif
 
 OBJS := $(addprefix $(obj),$(OBJS))
 
-LIBS  = lib/libgeneric.a
-LIBS += lib/lzma/liblzma.a
-LIBS += lib/lzo/liblzo.a
+LIBS  = lib/libgeneric.o
+LIBS += lib/lzma/liblzma.o
+LIBS += lib/lzo/liblzo.o
 LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \
-       "board/$(VENDOR)/common/lib$(VENDOR).a"; fi)
-LIBS += $(CPUDIR)/lib$(CPU).a
+       "board/$(VENDOR)/common/lib$(VENDOR).o"; fi)
+LIBS += $(CPUDIR)/lib$(CPU).o
 ifdef SOC
-LIBS += $(CPUDIR)/$(SOC)/lib$(SOC).a
+LIBS += $(CPUDIR)/$(SOC)/lib$(SOC).o
 endif
 ifeq ($(CPU),ixp)
-LIBS += arch/arm/cpu/ixp/npe/libnpe.a
+LIBS += arch/arm/cpu/ixp/npe/libnpe.o
 endif
-LIBS += arch/$(ARCH)/lib/lib$(ARCH).a
-LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
-       fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a \
-       fs/ubifs/libubifs.a
-LIBS += net/libnet.a
-LIBS += disk/libdisk.a
-LIBS += drivers/bios_emulator/libatibiosemu.a
-LIBS += drivers/block/libblock.a
-LIBS += drivers/dma/libdma.a
-LIBS += drivers/fpga/libfpga.a
-LIBS += drivers/gpio/libgpio.a
-LIBS += drivers/hwmon/libhwmon.a
-LIBS += drivers/i2c/libi2c.a
-LIBS += drivers/input/libinput.a
-LIBS += drivers/misc/libmisc.a
-LIBS += drivers/mmc/libmmc.a
-LIBS += drivers/mtd/libmtd.a
-LIBS += drivers/mtd/nand/libnand.a
-LIBS += drivers/mtd/onenand/libonenand.a
-LIBS += drivers/mtd/ubi/libubi.a
-LIBS += drivers/mtd/spi/libspi_flash.a
-LIBS += drivers/net/libnet.a
-LIBS += drivers/net/phy/libphy.a
-LIBS += drivers/pci/libpci.a
-LIBS += drivers/pcmcia/libpcmcia.a
-LIBS += drivers/power/libpower.a
-LIBS += drivers/spi/libspi.a
+LIBS += arch/$(ARCH)/lib/lib$(ARCH).o
+LIBS += fs/cramfs/libcramfs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o \
+       fs/reiserfs/libreiserfs.o fs/ext2/libext2fs.o fs/yaffs2/libyaffs2.o \
+       fs/ubifs/libubifs.o
+LIBS += net/libnet.o
+LIBS += disk/libdisk.o
+LIBS += drivers/bios_emulator/libatibiosemu.o
+LIBS += drivers/block/libblock.o
+LIBS += drivers/dma/libdma.o
+LIBS += drivers/fpga/libfpga.o
+LIBS += drivers/gpio/libgpio.o
+LIBS += drivers/hwmon/libhwmon.o
+LIBS += drivers/i2c/libi2c.o
+LIBS += drivers/input/libinput.o
+LIBS += drivers/misc/libmisc.o
+LIBS += drivers/mmc/libmmc.o
+LIBS += drivers/mtd/libmtd.o
+LIBS += drivers/mtd/nand/libnand.o
+LIBS += drivers/mtd/onenand/libonenand.o
+LIBS += drivers/mtd/ubi/libubi.o
+LIBS += drivers/mtd/spi/libspi_flash.o
+LIBS += drivers/net/libnet.o
+LIBS += drivers/net/phy/libphy.o
+LIBS += drivers/pci/libpci.o
+LIBS += drivers/pcmcia/libpcmcia.o
+LIBS += drivers/power/libpower.o
+LIBS += drivers/spi/libspi.o
 ifeq ($(CPU),mpc83xx)
-LIBS += drivers/qe/qe.a
-LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.a
+LIBS += drivers/qe/libqe.o
+LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
 endif
 ifeq ($(CPU),mpc85xx)
-LIBS += drivers/qe/qe.a
-LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.a
-LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.a
+LIBS += drivers/qe/libqe.o
+LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
+LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
 endif
 ifeq ($(CPU),mpc86xx)
-LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.a
-LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.a
+LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
+LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
 endif
-LIBS += drivers/rtc/librtc.a
-LIBS += drivers/serial/libserial.a
-LIBS += drivers/twserial/libtws.a
-LIBS += drivers/usb/gadget/libusb_gadget.a
-LIBS += drivers/usb/host/libusb_host.a
-LIBS += drivers/usb/musb/libusb_musb.a
-LIBS += drivers/usb/phy/libusb_phy.a
-LIBS += drivers/video/libvideo.a
-LIBS += drivers/watchdog/libwatchdog.a
-LIBS += common/libcommon.a
-LIBS += lib/libfdt/libfdt.a
-LIBS += api/libapi.a
-LIBS += post/libpost.a
+LIBS += drivers/rtc/librtc.o
+LIBS += drivers/serial/libserial.o
+LIBS += drivers/twserial/libtws.o
+LIBS += drivers/usb/gadget/libusb_gadget.o
+LIBS += drivers/usb/host/libusb_host.o
+LIBS += drivers/usb/musb/libusb_musb.o
+LIBS += drivers/usb/phy/libusb_phy.o
+LIBS += drivers/video/libvideo.o
+LIBS += drivers/watchdog/libwatchdog.o
+LIBS += common/libcommon.o
+LIBS += lib/libfdt/libfdt.o
+LIBS += api/libapi.o
+LIBS += post/libpost.o
 
 ifeq ($(SOC),omap3)
-LIBS += $(CPUDIR)/omap-common/libomap-common.a
+LIBS += $(CPUDIR)/omap-common/libomap-common.o
 endif
 ifeq ($(SOC),omap4)
-LIBS += $(CPUDIR)/omap-common/libomap-common.a
+LIBS += $(CPUDIR)/omap-common/libomap-common.o
 endif
 
 ifeq ($(SOC),s5pc1xx)
-LIBS += $(CPUDIR)/s5p-common/libs5p-common.a
+LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
 endif
 ifeq ($(SOC),s5pc2xx)
-LIBS += $(CPUDIR)/s5p-common/libs5p-common.a
+LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
 endif
 
-LIBS := $(addprefix $(obj),$(LIBS))
+LIBS := $(addprefix $(obj),$(sort $(LIBS)))
 .PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)
 
-LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a
+LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).o
 LIBBOARD := $(addprefix $(obj),$(LIBBOARD))
 
 # Add GCC lib
 ifdef USE_PRIVATE_LIBGCC
 ifeq ("$(USE_PRIVATE_LIBGCC)", "yes")
-PLATFORM_LIBGCC = -L $(OBJTREE)/arch/$(ARCH)/lib -lgcc
+PLATFORM_LIBGCC = $(OBJTREE)/arch/$(ARCH)/lib/libgcc.o
 else
 PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc
 endif
diff --git a/README b/README
index 1acf9a37eea34fe2db045b06f211c8130f654802..68f5fb09180ec39b4f87306a75e9902347e48cec 100644 (file)
--- a/README
+++ b/README
@@ -2836,15 +2836,15 @@ Low Level (hardware related) configuration options:
                globally (CONFIG_CMD_MEM).
 
 - CONFIG_SKIP_LOWLEVEL_INIT
-                [ARM only] If this variable is defined, then certain
-                low level initializations (like setting up the memory
-                controller) are omitted and/or U-Boot does not
-                relocate itself into RAM.
-
-                Normally this variable MUST NOT be defined. The only
-                exception is when U-Boot is loaded (to RAM) by some
-                other boot loader or by a debugger which performs
-                these initializations itself.
+               [ARM only] If this variable is defined, then certain
+               low level initializations (like setting up the memory
+               controller) are omitted and/or U-Boot does not
+               relocate itself into RAM.
+
+               Normally this variable MUST NOT be defined. The only
+               exception is when U-Boot is loaded (to RAM) by some
+               other boot loader or by a debugger which performs
+               these initializations itself.
 
 - CONFIG_PRELOADER
                Modifies the behaviour of start.S when compiling a loader
index 42168920725c6ff938f25963e4dcd0c557f72b7b..2a64c4ddf6fea109c56f741a7405f5e779afa12e 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libapi.a
+LIB    = $(obj)libapi.o
 
 COBJS-$(CONFIG_API) += api.o api_net.o api_storage.o api_platform-$(ARCH).o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 # defines $(obj).depend target
 include $(SRCTREE)/rules.mk
index 7701b03bbeb736a530a9ad970be5cbe01904f599..930e0d1bfc5d32fee79f3772508d0f1882433578 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index c8e18f7f0259f98788f91ba9a75b3765bd50539d..eaed37136ac64d9c86e08ad4ca264eeb81937c39 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  += generic.o
 COBJS  += timer.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 48dc7e3283371500b30d72fa95d2a7f08e105b9e..0776101443a20d82094d411db614896abcd2096c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  = reset.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index aecc943c8e980be314a38bd0582fa790da87b674..d14a7bb60bbf0f7a97e284f138b9bdd8647a8268 100644 (file)
@@ -104,22 +104,6 @@ _bss_start_ofs:
 _bss_end_ofs:
        .word _end - _start
 
-.globl _datarel_start_ofs
-_datarel_start_ofs:
-       .word __datarel_start - _start
-
-.globl _datarelrolocal_start_ofs
-_datarelrolocal_start_ofs:
-       .word __datarelrolocal_start - _start
-
-.globl _datarellocal_start_ofs
-_datarellocal_start_ofs:
-       .word __datarellocal_start - _start
-
-.globl _datarelro_start_ofs
-_datarelro_start_ofs:
-       .word __datarelro_start - _start
-
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
 .globl IRQ_STACK_START
@@ -176,6 +160,7 @@ next:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
 
 #ifdef CONFIG_NAND_SPL
@@ -202,22 +187,22 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
+       cmp     r0, r6
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
        ldr     r2, _TEXT_BASE
        ldr     r3, _bss_start_ofs
        add     r2, r0, r3              /* r2 <- source end address         */
-       cmp     r0, r6
-       beq     clear_bss
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
@@ -226,7 +211,7 @@ copy_loop:
         * fix .rel.dyn relocations
         */
        ldr     r0, _TEXT_BASE          /* r0 <- Text base */
-       sub     r9, r7, r0              /* r9 <- relocation offset */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
        ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
        add     r10, r10, r0            /* r10 <- sym table in FLASH */
        ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
@@ -237,10 +222,10 @@ fixloop:
        ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
        add     r0, r0, r9              /* r0 <- location to fix up in RAM */
        ldr     r1, [r2, #4]
-       and     r8, r1, #0xff
-       cmp     r8, #23                 /* relative fixup? */
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
        beq     fixrel
-       cmp     r8, #2                  /* absolute fixup? */
+       cmp     r7, #2                  /* absolute fixup? */
        beq     fixabs
        /* ignore unknown type of fixup */
        b       fixnext
@@ -267,7 +252,7 @@ clear_bss:
        ldr     r0, _bss_start_ofs
        ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
@@ -296,7 +281,7 @@ jump_2_ram:
        add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
        mov     pc, lr
 
index 31f43f0e084b96838f62f58c89f56c7656c283bf..253adbe479cf997ea1cccd899b1018e74f8bc47b 100644 (file)
@@ -20,7 +20,8 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
@@ -49,23 +50,9 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
        . = ALIGN(4);
-       __rel_dyn_start = .;
-       .rel.dyn : { *(.rel.dyn) }
-       __rel_dyn_end = .;
-
-       __dynsym_start = .;
-       .dynsym : { *(.dynsym) }
 
        . = .;
        __u_boot_cmd_start = .;
@@ -73,9 +60,24 @@ SECTIONS
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
 
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
index 1ca9199a642e2cf26fa9c614fb18c5b1056339ba..7ec869b9601d327a1b5e0abc066ecaa13fd31f53 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o
@@ -38,7 +38,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b52793913773187927ad4f668354a90348ff7d36..0785b194c50cd4894f6031ba03d98a67af0f9870 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  = reset.o
 
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f04d2688814e238bf460f5a56bef9c11a4a9b24e..dc692edc16e3e7293b75d0990d9c47621c97d528 100644 (file)
@@ -123,34 +123,6 @@ _bss_start_ofs:
 _bss_end_ofs:
        .word _end - _start
 
-.globl _datarel_start_ofs
-_datarel_start_ofs:
-       .word __datarel_start - _start
-
-.globl _datarelrolocal_start_ofs
-_datarelrolocal_start_ofs:
-       .word __datarelrolocal_start - _start
-
-.globl _datarellocal_start_ofs
-_datarellocal_start_ofs:
-       .word __datarellocal_start - _start
-
-.globl _datarelro_start_ofs
-_datarelro_start_ofs:
-       .word __datarelro_start - _start
-
-.globl _rel_dyn_start_ofs
-_rel_dyn_start_ofs:
-       .word __rel_dyn_start - _start
-
-.globl _rel_dyn_end_ofs
-_rel_dyn_end_ofs:
-       .word __rel_dyn_end - _start
-
-.globl _dynsym_start_ofs
-_dynsym_start_ofs:
-       .word __dynsym_start - _start
-
 /* IRQ stack memory (calculated at run-time) + 8 bytes */
 .globl IRQ_STACK_START_IN
 IRQ_STACK_START_IN:
@@ -251,6 +223,7 @@ skip_tcmdisable:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -268,22 +241,22 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
+       cmp     r0, r6
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
        ldr     r2, _TEXT_BASE
        ldr     r3, _bss_start_ofs
        add     r2, r0, r3              /* r2 <- source end address         */
-       cmp     r0, r6
-       beq     clear_bss
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
@@ -292,7 +265,7 @@ copy_loop:
         * fix .rel.dyn relocations
         */
        ldr     r0, _TEXT_BASE          /* r0 <- Text base */
-       sub     r9, r7, r0              /* r9 <- relocation offset */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
        ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
        add     r10, r10, r0            /* r10 <- sym table in FLASH */
        ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
@@ -300,13 +273,13 @@ copy_loop:
        ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
        add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r0, [r2]        /* r0 <- location to fix up, IN FLASH! */
-       add     r0, r0, r9      /* r0 <- location to fix up in RAM */
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
        ldr     r1, [r2, #4]
-       and     r8, r1, #0xff
-       cmp     r8, #23         /* relative fixup? */
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
        beq     fixrel
-       cmp     r8, #2          /* absolute fixup? */
+       cmp     r7, #2                  /* absolute fixup? */
        beq     fixabs
        /* ignore unknown type of fixup */
        b       fixnext
@@ -315,7 +288,7 @@ fixabs:
        mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
        add     r1, r10, r1             /* r1 <- address of symbol in table */
        ldr     r1, [r1, #4]            /* r1 <- symbol value */
-       add     r1, r1, r9              /* r1 <- relocated sym addr */
+       add     r1, r9                  /* r1 <- relocated sym addr */
        b       fixnext
 fixrel:
        /* relative fix: increase location by offset */
@@ -323,7 +296,7 @@ fixrel:
        add     r1, r1, r9
 fixnext:
        str     r1, [r0]
-       add     r2, r2, #8      /* each rel.dyn entry is 8 bytes */
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
@@ -371,7 +344,7 @@ clear_bss:
        ldr     r0, _bss_start_ofs
        ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
@@ -400,7 +373,7 @@ _nand_boot: .word nand_boot
        add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
        mov     pc, lr
 
@@ -408,6 +381,13 @@ _board_init_r_ofs:
        .word board_init_r - _start
 #endif
 
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
+
 #ifdef CONFIG_ENABLE_MMU
 _mmu_table_base:
        .word mmu_table
index fe9d8a0dcd617252acd742a1c28cf5235be45025..c63dc925efb725eea21858c7b13217e0da201081 100644 (file)
@@ -19,7 +19,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  += aemif.o clock.o init.o mux.o timer.o wdt.o
 SOBJS  += lowlevel_init.o
@@ -32,7 +32,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d9ed95405d848784b6e50eadcb51bfba0e08f36e..fe3180053277b2b1cd9a37a82b6c1423c37e7308 100644 (file)
@@ -41,33 +41,32 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       . = ALIGN(4);
-       __rel_dyn_start = .;
-       .rel.dyn : { *(.rel.dyn) }
-       __rel_dyn_end = .;
-
-       __dynsym_start = .;
-       .dynsym : { *(.dynsym) }
-
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
 
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
index d5ac7d3fd980e66e909bbe55dadaf3c3906c3737..1a097b5d985a7d78c688b0bb81c5471c26ef7faf 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = interrupts.o cpu.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 240f1e3b3b5ef66dc413442f09c04c3fa6a3eb5b..1b930086856f0b578db592ac4ca10947f7314f31 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = flash.o mmc.o mmc_hw.o spi.o
 SOBJS  = $(obj)iap_entry.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 # this MUST be compiled as thumb code!
 $(SOBJS):
index c099036351d989f726948bfe77f16dd9dbdf2530..5c6df08b1a9f16e6433ae807a34917441aa0a8e7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS-y        += cache.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8cd267b352a215bfcad139d75d40802066c599cc..f048badf91a04d1085b9aa3671d0d90903a95fd1 100644 (file)
@@ -81,14 +81,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -107,30 +110,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -159,6 +138,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -176,56 +156,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -242,18 +239,25 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * We are done. Do not return, instead branch to second part of board
  * initialization, now running from RAM.
  */
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
+
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
 
 /*
  *************************************************************************
index 4a0bc70c77090403103dca9add52f188f16a6beb..0686e423e243bfbb9939d9a57dd5310db6b82c55 100644 (file)
@@ -40,29 +40,38 @@ SECTIONS
 
        . = ALIGN(4);
        .data : {
-               *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index cbb13b2a4c8f697040323b5d0c1845f3ef0790ce..dcc7782f58786bca35ec119920924a0d74c6e6b7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f030c53626004733091e9b6040430465c5ab8908..31da706e593644f8c5a2e25e9d6e81a0bb955c13 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  += reset.o
 COBJS  += timer.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d8a4383650f65860b258ccbe8c7d20553709b4a5..5c71b7774724954e19b4420b065dd22b91a1ff4f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  += lowlevel_init.o
 COBJS  += reset.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ce9c156154f1e3252d6770999a5eb2c196efa38c..51043ecddb3f66a5c0d56e13fdbd71e37cafeb77 100644 (file)
 #include <asm/arch/hardware.h>
 #include <asm/arch/at91_st.h>
 
-void board_reset(void) __attribute__((__weak__));
+void  __attribute__((weak)) board_reset(void)
+{
+       /* true empty function for defining weak symbol */
+}
 
 void reset_cpu(ulong ignored)
 {
@@ -45,8 +48,7 @@ void reset_cpu(ulong ignored)
        serial_exit();
 #endif
 
-       if (board_reset)
-               board_reset();
+       board_reset();
 
        /* Reset the cpu by setting up the watchdog timer */
        writel(AT91_ST_WDMR_RSTEN | AT91_ST_WDMR_EXTEN | AT91_ST_WDMR_WDV(2),
index 91377d47a6e7271d1d61c7491d006bcf49d25e1a..d9a024fc0e86551334a478de2e63c7b9e1fa2384 100644 (file)
 
 #include <common.h>
 
-#include <asm/io.h>
-#include <asm/hardware.h>
+#include <asm/arch/io.h>
+#include <asm/arch/hardware.h>
 #include <asm/arch/at91_tc.h>
 #include <asm/arch/at91_pmc.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /* the number of clocks per CONFIG_SYS_HZ */
 #define TIMER_LOAD_VAL (CONFIG_SYS_HZ_CLOCK/CONFIG_SYS_HZ)
 
-static u32 timestamp;
-static u32 lastinc;
-
 int timer_init(void)
 {
        at91_tc_t *tc = (at91_tc_t *) AT91_TC_BASE;
@@ -64,8 +63,8 @@ int timer_init(void)
        writel(TIMER_LOAD_VAL, &tc->tc[0].rc);
 
        writel(AT91_TC_CCR_SWTRG | AT91_TC_CCR_CLKEN, &tc->tc[0].ccr);
-       lastinc = 0;
-       timestamp = 0;
+       gd->lastinc = 0;
+       gd->tbl = 0;
 
        return 0;
 }
@@ -86,7 +85,7 @@ ulong get_timer(ulong base)
 
 void set_timer(ulong t)
 {
-       timestamp = t;
+       gd->tbl = t;
 }
 
 void __udelay(unsigned long usec)
@@ -98,8 +97,8 @@ void reset_timer_masked(void)
 {
        /* reset time */
        at91_tc_t *tc = (at91_tc_t *) AT91_TC_BASE;
-       lastinc = readl(&tc->tc[0].cv) & 0x0000ffff;
-       timestamp = 0;
+       gd->lastinc = readl(&tc->tc[0].cv) & 0x0000ffff;
+       gd->tbl = 0;
 }
 
 ulong get_timer_raw(void)
@@ -109,16 +108,16 @@ ulong get_timer_raw(void)
 
        now = readl(&tc->tc[0].cv) & 0x0000ffff;
 
-       if (now >= lastinc) {
+       if (now >= gd->lastinc) {
                /* normal mode */
-               timestamp += now - lastinc;
+               gd->tbl += now - gd->lastinc;
        } else {
                /* we have an overflow ... */
-               timestamp += now + TIMER_LOAD_VAL - lastinc;
+               gd->tbl += now + TIMER_LOAD_VAL - gd->lastinc;
        }
-       lastinc = now;
+       gd->lastinc = now;
 
-       return timestamp;
+       return gd->tbl;
 }
 
 ulong get_timer_masked(void)
index 114d8adeb2fa9f3025516ef3dd2f6df3069740a2..7530e6ac321b9b59adc33aaa79fd58851bd433cd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  += lowlevel_init.o
 
@@ -44,7 +44,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 01a2f5555a757dd58d7bd16d7d9e44d7fb021b0e..1d6a538fd2a06004b8d7355c2864bdc171e8323d 100644 (file)
@@ -32,7 +32,7 @@
 #
 include $(TOPDIR)/config.mk
 
-LIB = $(obj)lib$(SOC).a
+LIB = $(obj)lib$(SOC).o
 
 COBJS   = cpu.o led.o speed.o timer.o
 SOBJS   = lowlevel_init.o
@@ -43,7 +43,7 @@ OBJS    := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:    $(obj).depend $(LIB)
 
 $(LIB): $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 28945e22cb8f67bfd120aebd49db259ddb22b384..32b41b33508bb31120e5a9246a53f660a15e41b6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  += generic.o
 COBJS  += speed.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f53fdc2b2511f695c7aa26017401e83f0f1133fb..00ce62bf61c44080a8ba8d29a6eaa58ec4742fb0 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  = lowlevel_init.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 7e8d6ed5f2f9e0872daea1501dc4851379561759..bd53724b5126a7652e6db82ffebc52cd3dd844b1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS-$(CONFIG_USE_IRQ) += interrupts.o
 COBJS-y        += speed.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d4edde797b7b24327f1db896b374e59eddf071d5..aa014d09d648d55072a95ae09bd88928915a7949 100644 (file)
@@ -77,14 +77,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -103,30 +106,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual start code
  */
@@ -205,6 +184,7 @@ copyex:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -222,56 +202,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -289,24 +286,33 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * initialization, now running from RAM.
  */
 #ifdef CONFIG_NAND_SPL
-       ldr     pc, _nand_boot
+       ldr     r0, _nand_boot_ofs
+       mov     pc, r0
 
-_nand_boot: .word nand_boot
+_nand_boot_ofs:
+       .word nand_boot
 #else
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
 #endif
 
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
+
 /*
  *************************************************************************
  *
index 69854347952f11a6bed118d61bc6414b28ab7f2b..a6f8b56a3ab106097e960909529842f87c608701 100644 (file)
@@ -49,28 +49,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 8d0e88f902601a8c1f004aa30c994b16ec6a0167..29465c2dcf9635ff3053fae1dfc4b0e4087144f7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -38,7 +38,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 51229c61544383f58a1e84295f2f6971e5fc202f..67e706b3cbbb451120b4f1f2d9ef3e659333b0b9 100644 (file)
@@ -87,14 +87,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -113,30 +116,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -196,6 +175,7 @@ poll1:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -213,56 +193,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -271,6 +268,8 @@ clbss_l:str r2, [r0]                /* clear loop...                    */
        cmp     r0, r1
        bne     clbss_l
 
+       bl coloured_LED_init
+       bl red_LED_on
 #endif
 
 /*
@@ -278,24 +277,33 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * initialization, now running from RAM.
  */
 #ifdef CONFIG_NAND_SPL
-       ldr     pc, _nand_boot
+       ldr     r0, _nand_boot_ofs
+       mov     pc, r0
 
-_nand_boot: .word nand_boot
+_nand_boot_ofs:
+       .word nand_boot
 #else
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
 #endif
 
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
+
 /*
  *************************************************************************
  *
index 1c4e9bcfb5055f9d42e010ca057b8b6f2a1ee857..7b53edb9be10e7c60bffec36cbf2a785e6b89ad0 100644 (file)
@@ -44,28 +44,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 7701b03bbeb736a530a9ad970be5cbe01904f599..930e0d1bfc5d32fee79f3772508d0f1882433578 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index def3980b63496ab3cbca212a1d856f6c82953976..be9f6dddf05e21a3ef667a2ae1da5af94541a3e6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS-$(CONFIG_AT91CAP9)       += at91cap9_devices.o
 COBJS-$(CONFIG_AT91SAM9260)    += at91sam9260_devices.o
@@ -51,7 +51,7 @@ OBJS    := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f699f4d4898cd170ea23ec5dbefb00c79e8d30e6..c1822b713d144d878922007f5774ccd277832f1a 100644 (file)
@@ -204,6 +204,11 @@ void at91_macb_hw_init(void)
 #else
        at91_set_b_periph(AT91_PIO_PORTA, 23, 0);       /* ETX2 */
        at91_set_b_periph(AT91_PIO_PORTA, 24, 0);       /* ETX3 */
+#if defined(CONFIG_AT91SAM9G20)
+       /* 9G20 BOOT ROM initializes those pins to multi-drive, undo that */
+       at91_set_pio_multi_drive(AT91_PIO_PORTA, 23, 0);
+       at91_set_pio_multi_drive(AT91_PIO_PORTA, 24, 0);
+#endif
 #endif
        at91_set_b_periph(AT91_PIO_PORTA, 22, 0);       /* ETXER */
 #endif
index d7e9e2ca047d3ca0c94061213051bd7b9e12c95e..4eb1d876eafd8e14478114c79255555a327c1322 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS-y                                += cpu.o timer.o psc.o
 COBJS-$(CONFIG_SOC_DM355)      += dm355.o
@@ -47,7 +47,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index fc2cc0300170d08252c987d2844e71730952c638..07542975e68b8a259a8caef81a575eef81f4fdaf 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS-y        = cpu.o
 COBJS-y        += dram.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ce3e5a5a5acfc595afeb173cf923226c8401d982..bab048bfd5f0b6cc66d94bf9b3001c15fc9158d8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = clock.o reset.o timer.o
 SOBJS  =
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 76f01791a0a35a82c09d0e62c14e5a77a204eab3..38d7f03ab2bf6af0fc6b89239b6bb73d5109d247 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = generic.o timer.o
 MX27OBJS = reset.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS) $(MX27OBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 67d1b0e30376be3e0e765e6f1259caca646de76b..0e112b34f4d7a49b173a84662dc729165bffcd93 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = generic.o reset.o timer.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0fc9f2a4c1f7c734baf65ed99dffb8f45065cb1a..1c1f58e1c3a59241b1093845a9246b1e90feb759 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = timer.o gpio.o
 SOBJS  = reset.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS)) $(addprefix $(obj),$(SOBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 74aea741892e93ebf4754ec10ed500031bc2cae2..862ca0276dd8be2a87d937fd23dbe6da87c0720e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = timer.o cpuinfo.o
 SOBJS  = reset.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 11f4141bffdacc9e71cbbc8557dbd6020559c9b4..e5a9994e6bc072ba604025fcaa0a35790dd43985 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS-y        = cpu.o
 COBJS-y        += dram.o
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index bf8dfa8c3ca911713eeb3e4bed98ae06f298e9c0..1cbff43d63e7a462e354342be5f5660c7c71a64b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  := reset.o \
           timer.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 6dcc9b4d6749455382ebb122a67334a950c4c9b8..6c49c830f2bdcea7ffdf7ecf465cc795ad9bd49b 100644 (file)
@@ -174,6 +174,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -191,22 +192,22 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
+       cmp     r0, r6
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy loop */
        ldr     r2, _TEXT_BASE
        ldr     r3, _bss_start_ofs
        add     r2, r0, r3              /* r2 <- source end address         */
-       cmp     r0, r6
-       beq     clear_bss
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
@@ -215,7 +216,7 @@ copy_loop:
         * fix .rel.dyn relocations
         */
        ldr     r0, _TEXT_BASE          /* r0 <- Text base */
-       sub     r9, r7, r0              /* r9 <- relocation offset */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
        ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
        add     r10, r10, r0            /* r10 <- sym table in FLASH */
        ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
@@ -226,10 +227,10 @@ fixloop:
        ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
        add     r0, r0, r9              /* r0 <- location to fix up in RAM */
        ldr     r1, [r2, #4]
-       and     r8, r1, #0xff
-       cmp     r8, #23                 /* relative fixup? */
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
        beq     fixrel
-       cmp     r8, #2                  /* absolute fixup? */
+       cmp     r7, #2                  /* absolute fixup? */
        beq     fixabs
        /* ignore unknown type of fixup */
        b       fixnext
@@ -256,7 +257,7 @@ clear_bss:
        ldr     r0, _bss_start_ofs
        ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
@@ -287,7 +288,7 @@ _nand_boot_ofs:
        add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
        mov     pc, lr
 
index 72f45f80040cf1fe644349edda6f187da7cc3698..28c91f937c612509be85fc5ea3c662f90adde670 100644 (file)
@@ -45,24 +45,30 @@ SECTIONS
 
        . = ALIGN(4);
 
-       __rel_dyn_start = .;
-       .rel.dyn : { *(.rel.dyn) }
-       __rel_dyn_end = .;
-
-       __dynsym_start = .;
-       .dynsym : { *(.dynsym) }
-
-       . = ALIGN(4);
-
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
 
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
index c335d5c8665363cf51b45d1b1d6a9816fa21b583..64e6aae229e0d66b2e3e6e3c6447af59624b57f3 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = timer.o
 SOBJS  = reset.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e81f2da29d16fda05d69a09b6943d35c9ae1de86..d4747f3c0e45aaf768ec7788779644a2eed53862 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -36,7 +36,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index cad43ba0485631762b8edafa9cfafd3c2a8349ad..4e75109f8c1ce00798c1446850fb5f123053c0e5 100644 (file)
@@ -10,6 +10,7 @@
  *  Copyright (c) 2002 Gary Jennejohn <garyj@denx.de>
  *  Copyright (c) 2003 Richard Woodruff <r-woodruff2@ti.com>
  *  Copyright (c) 2003 Kshitij <kshitij@ti.com>
+ *  Copyright (c) 2010 Albert Aribaud <albert.aribaud@free.fr>
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -71,6 +72,7 @@ _fiq:
 
        .balignl 16,0xdeadbeef
 
+_vectors_end:
 
 /*
  *************************************************************************
@@ -91,14 +93,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -117,30 +122,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -165,6 +146,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -182,63 +164,80 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
 clbss_l:str    r2, [r0]                /* clear loop...                    */
        add     r0, r0, #4
        cmp     r0, r1
-       bne     clbss_l
+       blo     clbss_l
 #endif
 
 /*
@@ -250,20 +249,27 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
 
 _nand_boot: .word nand_boot
 #else
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
 #endif
 
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
+
 /*
  *************************************************************************
  *
index 65359630933f597a2cfb6f1cf8e17ddc7b47f3d8..eb91979711c036fcdd4ddca1d69592061c3d83b2 100644 (file)
@@ -41,28 +41,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 7701b03bbeb736a530a9ad970be5cbe01904f599..930e0d1bfc5d32fee79f3772508d0f1882433578 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 957ca34766c333baaf943c8018fa552ce64ce97d..cbbc612b5c594f301e7fa92ae558754381d3b8be 100644 (file)
@@ -89,14 +89,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -115,30 +118,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -163,6 +142,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -180,56 +160,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -246,18 +243,33 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * We are done. Do not return, instead branch to second part of board
  * initialization, now running from RAM.
  */
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+#ifdef CONFIG_NAND_SPL
+       ldr     r0, _nand_boot_ofs
+       mov     pc, r0
+
+_nand_boot_ofs:
+       .word nand_boot
+#else
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
+#endif
+
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
 
 /*
  *************************************************************************
index 242c7ece020b5f4d383a7707f55721f8bcf4eeec..3b5c18d72a17753ad0599187d7e28243846b745a 100644 (file)
@@ -41,28 +41,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 7743fefdbea8e80741750aef49885994e29ebe69..8c0e9150037714ddd07eb12fc2cd8b03787d73ec 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  := start.o
 COBJS  := cpu.o
@@ -36,7 +36,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 7cfaa2c1305e639b10e2f9eb16c6fb79225c61a9..e8be9c9fabfa926de0f0ab30e3d8201005fad635 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 COBJS  = soc.o clock.o iomux.o timer.o speed.o
 SOBJS = lowlevel_init.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index aedea7b95b90a51f88bbf5e394c6c60fedd27671..dc01ee5d3c70f949d4010ad3d160315c69cd3ab9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libomap-common.a
+LIB    = $(obj)libomap-common.o
 
 SOBJS  := reset.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 95526d6893da16000b116b9e9324a0ac33ab22a1..7164d505b9c893cd17935b2b19cdb293c2d674a0 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    =  $(obj)lib$(SOC).a
+LIB    =  $(obj)lib$(SOC).o
 
 SOBJS  := lowlevel_init.o
 SOBJS  += cache.o
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(COBJS) $(COBJS-y) $(SOBJS))
 all:    $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0870857ede4eddd9d63a9783e5aff180ede84dbf..2227576b7b3135e02cc8eda28895fa741320f204 100644 (file)
@@ -48,10 +48,11 @@ u32 is_mem_sdr(void)
  */
 u32 get_sdr_cs_size(u32 cs)
 {
-       u32 size;
+       u32 size = 0;
 
        /* TODO: Calculate the size based on EMIF4 configuration */
-       size = CONFIG_SYS_CS0_SIZE;
+       if (cs == CS0)
+               size = CONFIG_SYS_CS0_SIZE;
 
        return size;
 }
index c75aa1d11ca69b44573345b93a7599e284242e10..a4979ce61d04762a94cc17e0635b998f559fbbc0 100644 (file)
@@ -149,6 +149,13 @@ void do_sdrc_init(u32 cs, u32 early)
                        &sdrc_actim_base1->ctrla);
                writel(readl(&sdrc_actim_base0->ctrlb),
                        &sdrc_actim_base1->ctrlb);
+
+               writel(CMD_NOP, &sdrc_base->cs[cs].manual);
+               writel(CMD_PRECHARGE, &sdrc_base->cs[cs].manual);
+               writel(CMD_AUTOREFRESH, &sdrc_base->cs[cs].manual);
+               writel(CMD_AUTOREFRESH, &sdrc_base->cs[cs].manual);
+               writel(readl(&sdrc_base->cs[CS0].mr),
+                       &sdrc_base->cs[CS1].mr);
        }
 
        /*
index d926fbb48024f69143c5c9968788ddfd09d2ed48..987dc9d78c27401f167dff767a6a328c6c201bb7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    =  $(obj)lib$(SOC).a
+LIB    =  $(obj)lib$(SOC).o
 
 SOBJS  += lowlevel_init.o
 
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS) $(SOBJS))
 all:    $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e7651d2dd5b5007aa27c95677d8b070b71b5038d..fcd29a73e0e51dc7ffaf64896d770073a20782e0 100644 (file)
@@ -32,6 +32,8 @@
 #include <asm/arch/sys_proto.h>
 #include <asm/sizes.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /*
  * Routine: s_init
  * Description: Does early system init of muxing and clocks.
@@ -100,7 +102,6 @@ u32 sdram_size(void)
  */
 int dram_init(void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
 
        gd->ram_size = sdram_size();
 
index 37371f6fda6831855816060d4a3da059d3bf6d13..922cd95448b7905cfb217254d6fec0d0258e8fd6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libs5p-common.a
+LIB    = $(obj)libs5p-common.o
 
 COBJS-y                += cpu_info.o
 COBJS-y                += timer.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y) $(SOBJS))
 all:    $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 04906503e6e40332507211ac070a3d1054eb6301..651fd5ddff4bc62c3d41c7dbe8ef1199c35786ae 100644 (file)
@@ -65,15 +65,12 @@ int timer_init(void)
        writel((PRESCALER_1 & 0xff) << 8, &timer->tcfg0);
        writel((MUX_DIV_2 & 0xf) << MUX4_DIV_SHIFT, &timer->tcfg1);
 
-       if (count_value == 0) {
-               /* reset initial value */
-               /* count_value = 2085937.5(HZ) (per 1 sec)*/
-               count_value = get_pwm_clk() / ((PRESCALER_1 + 1) *
-                               (MUX_DIV_2 + 1));
-
-               /* count_value / 100 = 20859.375(HZ) (per 10 msec) */
-               count_value = count_value / 100;
-       }
+       /* count_value = 2085937.5(HZ) (per 1 sec)*/
+       count_value = get_pwm_clk() / ((PRESCALER_1 + 1) *
+                       (MUX_DIV_2 + 1));
+
+       /* count_value / 100 = 20859.375(HZ) (per 10 msec) */
+       count_value = count_value / 100;
 
        /* set count value */
        writel(count_value, &timer->tcntb4);
@@ -114,8 +111,11 @@ void set_timer(unsigned long t)
 /* delay x useconds */
 void __udelay(unsigned long usec)
 {
+       struct s5p_timer *const timer = s5p_get_base_timer();
        unsigned long tmo, tmp;
 
+       count_value = readl(&timer->tcntb4);
+
        if (usec >= 1000) {
                /*
                 * if "big" number, spread normalization
index 263945f4e77d9b5d0ea8b250acfb4bf5c36efba7..b182bf5a4915e26ba5bb2752e6ede79860efdab0 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(SOC).a
+LIB    = $(obj)lib$(SOC).o
 
 SOBJS  = cache.o
 SOBJS  += reset.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS) $(SOBJS))
 all:    $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index bb3948d401cc30f34c9e748e53bdbda99ad5cbba..c71ef6cf92732228ca97f9aad038b4b2c0a53592 100644 (file)
@@ -98,30 +98,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start_ofs
-_datarel_start_ofs:
-       .word __datarel_start - _start
-
-.globl _datarelrolocal_start_ofs
-_datarelrolocal_start_ofs:
-       .word __datarelrolocal_start - _start
-
-.globl _datarellocal_start_ofs
-_datarellocal_start_ofs:
-       .word __datarellocal_start - _start
-
-.globl _datarelro_start_ofs
-_datarelro_start_ofs:
-       .word __datarelro_start - _start
-
-.globl _got_start_ofs
-_got_start_ofs:
-       .word __got_start - _start
-
-.globl _got_end_Ofs
-_got_end_ofs:
-       .word __got_end - _start
-
 /*
  * the actual reset code
  */
@@ -166,6 +142,7 @@ next:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -183,24 +160,24 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
+#ifndef CONFIG_PRELOADER
+       cmp     r0, r6
+       beq     clear_bss               /* skip relocation */
+#endif
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
        ldr     r2, _TEXT_BASE
        ldr     r3, _bss_start_ofs
        add     r2, r0, r3              /* r2 <- source end address         */
-       cmp     r0, r6
-#ifndef CONFIG_PRELOADER
-       beq     jump_2_ram
-#endif
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
@@ -209,7 +186,7 @@ copy_loop:
         * fix .rel.dyn relocations
         */
        ldr     r0, _TEXT_BASE          /* r0 <- Text base */
-       sub     r9, r7, r0              /* r9 <- relocation offset */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
        ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
        add     r10, r10, r0            /* r10 <- sym table in FLASH */
        ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
@@ -220,10 +197,10 @@ fixloop:
        ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
        add     r0, r0, r9              /* r0 <- location to fix up in RAM */
        ldr     r1, [r2, #4]
-       and     r8, r1, #0xff
-       cmp     r8, #23                 /* relative fixup? */
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
        beq     fixrel
-       cmp     r8, #2                  /* absolute fixup? */
+       cmp     r7, #2                  /* absolute fixup? */
        beq     fixabs
        /* ignore unknown type of fixup */
        b       fixnext
@@ -248,7 +225,7 @@ clear_bss:
        ldr     r0, _bss_start_ofs
        ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
@@ -270,7 +247,7 @@ jump_2_ram:
        add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
        mov     pc, lr
 
index f9ed9a307b7c0142a0e1bce1469c9acc1168906c..84d17f0f21d3bcce4b1a6de35e8d8518bf5d2c84 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <common.h>
 #include <asm/io.h>
-#include <asm/arch/sys_proto.h>
 
 /************************************************************
  * sdelay() - simple spin loop.  Will be constant time as
index 88a0fecd86b2ac510b945f8bde3b3276d617da9e..5725c30c69918676a4092ad25ddb7283f827738a 100644 (file)
@@ -44,34 +44,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
-       . = ALIGN(4);
-       __rel_dyn_start = .;
-       .rel.dyn : { *(.rel.dyn) }
-       __rel_dyn_end = .;
-
-       __dynsym_start = .;
-       .dynsym : { *(.dynsym) }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
-       __got_end = .;
 
+       . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss : { *(.bss) }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 1403c4f390f65e61e1f1a2e95eb101d4be454d66..b0a466ec4b3e8e9892ed851513b94173e5122ef6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -38,7 +38,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e1f970062df863b17c5d23069e1e507eb87aac98..c756a1da4166c16e881d84ea5473cb5e517fe6f6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB := $(obj)libnpe.a
+LIB := $(obj)libnpe.o
 
 LOCAL_CFLAGS  += -I$(TOPDIR)/arch/arm/cpu/ixp/npe/include -DCONFIG_IXP425_COMPONENT_ETHDB -D__linux
 CFLAGS  += $(LOCAL_CFLAGS)
@@ -86,7 +86,7 @@ SOBJS := $(addprefix $(obj),$(SOBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8d1aebc7199892cbdb53af18a2f4e98fe3c69f33..87942cd7d5fbf8d7ba1192acb70f1bd7667e7574 100644 (file)
@@ -100,14 +100,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -126,30 +129,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -289,6 +268,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -306,56 +286,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -372,19 +369,25 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * We are done. Do not return, instead branch to second part of board
  * initialization, now running from RAM.
  */
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
 
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
 
 /****************************************************************************/
 /*                                                                         */
index f3d9dc51487ba7deb10def6ce5636cb2303ab1af..a55eb8a509b48f5802a71774d80abc1497278356 100644 (file)
@@ -41,28 +41,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 1b3f58abb93bd50e85ce42b122d23fac0a2250ca..01cf7f54554485d57534f509697a5d6f3e533a39 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o speed.o timer.o
@@ -35,7 +35,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index fd8a40b8aa4a2aea201be7cf6d1d4c2d07658164..499b6328aab1d5b7b95da6813918c38fd56a1f94 100644 (file)
@@ -77,14 +77,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -103,30 +106,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -176,6 +155,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -193,56 +173,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -256,18 +253,25 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * We are done. Do not return, instead branch to second part of board
  * initialization, now running from RAM.
  */
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
+
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
 
 /*
  *************************************************************************
index cb55b0a2748185e05cee327cb27cd23f3976d66c..463237d916c70d2a466f78337d6320a452a5b678 100644 (file)
@@ -41,28 +41,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 07a151a17032d25ab23d10c975fbb6135bf99d84..49a6ed3c74d73ff5085c1b62a8eceaeaa260b393 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -40,7 +40,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ae358a56e61f816d4c87930a022f07c5e7ba48e8..0580adce17fb4c311f5529c2eb9f819e629e3aa8 100644 (file)
@@ -220,6 +220,7 @@ zerojmp:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -237,23 +238,23 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
+       cmp     r0, r6
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
        ldr     r2, _TEXT_BASE
        ldr     r3, _bss_start_ofs
        add     r2, r0, r3              /* r2 <- source end address         */
-       cmp     r0, r6
-       beq     clear_bss
 
        stmfd sp!, {r0-r12}
 copy_loop:
        ldmia   r0!, {r3-r5, r7-r11}    /* copy from source address [r0]    */
-       stmia   r6!, {r3-r5, r7-r11}    /* copy to   target address [r1]    */
+       stmia   r1!, {r3-r5, r7-r11}    /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
        ldmfd sp!, {r0-r12}
@@ -263,7 +264,7 @@ copy_loop:
         * fix .rel.dyn relocations
         */
        ldr     r0, _TEXT_BASE          /* r0 <- Text base */
-       sub     r9, r7, r0              /* r9 <- relocation offset */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
        ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
        add     r10, r10, r0            /* r10 <- sym table in FLASH */
        ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
@@ -274,10 +275,10 @@ fixloop:
        ldr     r0, [r2]        /* r0 <- location to fix up, IN FLASH! */
        add     r0, r9          /* r0 <- location to fix up in RAM */
        ldr     r1, [r2, #4]
-       and     r8, r1, #0xff
-       cmp     r8, #23         /* relative fixup? */
+       and     r7, r1, #0xff
+       cmp     r7, #23         /* relative fixup? */
        beq     fixrel
-       cmp     r8, #2          /* absolute fixup? */
+       cmp     r7, #2          /* absolute fixup? */
        beq     fixabs
        /* ignore unknown type of fixup */
        b       fixnext
@@ -304,7 +305,7 @@ clear_bss:
        ldr     r0, _bss_start_ofs
        ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
@@ -332,7 +333,7 @@ _start_oneboot_ofs
        add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
        mov     pc, lr
 
index d6643f9529b2f95473a2dca4643f00dbfa04c66b..0818d0b6ea11341706e93ca65c51c92d34f8c33a 100644 (file)
@@ -43,14 +43,6 @@ SECTIONS
                *(.data)
        }
 
-       . = ALIGN(4);
-       __rel_dyn_start = .;
-       .rel.dyn : { *(.rel.dyn) }
-       __rel_dyn_end = .;
-
-       __dynsym_start = .;
-       .dynsym : { *(.dynsym) }
-
        . = ALIGN(4);
 
        . = .;
@@ -59,7 +51,28 @@ SECTIONS
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 6da2016f66081242a47f6ee8872ee650a25beb05..7742dc2c9d5f104201bee99813b13360a0fc5aa4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -38,7 +38,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 67b2c6a695576701d72fee325be1da8f2d3f78ee..50e3f21cf3e49bb3919af3012e8a215cbc1b45f6 100644 (file)
@@ -68,14 +68,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -94,30 +97,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -148,6 +127,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -165,68 +145,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
-/*
-       now copy to sram the interrupt vector
-*/
-       adr     r0, real_vectors
-       add     r2, r0, #1024
-       ldr     r1, =0x0c000000
-       add     r1, r1, #0x08
-vector_copy_loop:
-       ldmia   r0!, {r3-r10}
-       stmia   r1!, {r3-r10}
-       cmp     r0, r2
-       blo     vector_copy_loop
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -243,18 +228,25 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * We are done. Do not return, instead branch to second part of board
  * initialization, now running from RAM.
  */
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
+
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
 
 /*
  *************************************************************************
index bbc8c3aa552e0887028293322bb249a315c3c661..ac2944018223f37f742902bac86fcb0b2967bbe3 100644 (file)
@@ -41,28 +41,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
index 28b668267c4912f874e941e7a859db8d83bc3cdf..1021c9989ae4855b755eeb3f9b0b12ce1c82a3d1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ace0c074df77f409f2e7f64d04eb648d04615948..b34e946554e10027087af64fb102760863cb4520 100644 (file)
@@ -78,14 +78,17 @@ _TEXT_BASE:
 
 /*
  * These are defined in the board-specific linker script.
+ * Subtracting _start from them lets the linker put their
+ * relative position in the executable instead of leaving
+ * them null.
  */
-.globl _bss_start
-_bss_start:
-       .word __bss_start
+.globl _bss_start_ofs
+_bss_start_ofs:
+       .word __bss_start - _start
 
-.globl _bss_end
-_bss_end:
-       .word _end
+.globl _bss_end_ofs
+_bss_end_ofs:
+       .word _end - _start
 
 #ifdef CONFIG_USE_IRQ
 /* IRQ stack memory (calculated at run-time) */
@@ -104,30 +107,6 @@ FIQ_STACK_START:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-.globl _datarel_start
-_datarel_start:
-       .word __datarel_start
-
-.globl _datarelrolocal_start
-_datarelrolocal_start:
-       .word __datarelrolocal_start
-
-.globl _datarellocal_start
-_datarellocal_start:
-       .word __datarellocal_start
-
-.globl _datarelro_start
-_datarelro_start:
-       .word __datarelro_start
-
-.globl _got_start
-_got_start:
-       .word __got_start
-
-.globl _got_end
-_got_end:
-       .word __got_end
-
 /*
  * the actual reset code
  */
@@ -152,6 +131,7 @@ reset:
 /* Set stackpointer in internal RAM to call board_init_f */
 call_board_init_f:
        ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
        ldr     r0,=0x00000000
        bl      board_init_f
 
@@ -169,56 +149,73 @@ relocate_code:
        mov     r4, r0  /* save addr_sp */
        mov     r5, r1  /* save addr of gd */
        mov     r6, r2  /* save addr of destination */
-       mov     r7, r2  /* save addr of destination */
 
        /* Set up the stack                                                 */
 stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       ldr     r2, _TEXT_BASE
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
        cmp     r0, r6
-       beq     clear_bss
+       beq     clear_bss               /* skip relocation */
+       mov     r1, r6                  /* r1 <- scratch for copy_loop */
+       ldr     r2, _TEXT_BASE
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
 
 copy_loop:
        ldmia   r0!, {r9-r10}           /* copy from source address [r0]    */
-       stmia   r6!, {r9-r10}           /* copy to   target address [r1]    */
+       stmia   r1!, {r9-r10}           /* copy to   target address [r1]    */
        cmp     r0, r2                  /* until source end address [r2]    */
        blo     copy_loop
 
 #ifndef CONFIG_PRELOADER
-       /* fix got entries */
-       ldr     r1, _TEXT_BASE          /* Text base */
-       mov     r0, r7                  /* reloc addr */
-       ldr     r2, _got_start          /* addr in Flash */
-       ldr     r3, _got_end            /* addr in Flash */
-       sub     r3, r3, r1
-       add     r3, r3, r0
-       sub     r2, r2, r1
-       add     r2, r2, r0
-
+       /*
+        * fix .rel.dyn relocations
+        */
+       ldr     r0, _TEXT_BASE          /* r0 <- Text base */
+       sub     r9, r6, r0              /* r9 <- relocation offset */
+       ldr     r10, _dynsym_start_ofs  /* r10 <- sym table ofs */
+       add     r10, r10, r0            /* r10 <- sym table in FLASH */
+       ldr     r2, _rel_dyn_start_ofs  /* r2 <- rel dyn start ofs */
+       add     r2, r2, r0              /* r2 <- rel dyn start in FLASH */
+       ldr     r3, _rel_dyn_end_ofs    /* r3 <- rel dyn end ofs */
+       add     r3, r3, r0              /* r3 <- rel dyn end in FLASH */
 fixloop:
-       ldr     r4, [r2]
-       sub     r4, r4, r1
-       add     r4, r4, r0
-       str     r4, [r2]
-       add     r2, r2, #4
+       ldr     r0, [r2]                /* r0 <- location to fix up, IN FLASH! */
+       add     r0, r0, r9              /* r0 <- location to fix up in RAM */
+       ldr     r1, [r2, #4]
+       and     r7, r1, #0xff
+       cmp     r7, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r7, #2                  /* absolute fixup? */
+       beq     fixabs
+       /* ignore unknown type of fixup */
+       b       fixnext
+fixabs:
+       /* absolute fix: set location to (offset) symbol value */
+       mov     r1, r1, LSR #4          /* r1 <- symbol index in .dynsym */
+       add     r1, r10, r1             /* r1 <- address of symbol in table */
+       ldr     r1, [r1, #4]            /* r1 <- symbol value */
+       add     r1, r9                  /* r1 <- relocated sym addr */
+       b       fixnext
+fixrel:
+       /* relative fix: increase location by offset */
+       ldr     r1, [r0]
+       add     r1, r1, r9
+fixnext:
+       str     r1, [r0]
+       add     r2, r2, #8              /* each rel.dyn entry is 8 bytes */
        cmp     r2, r3
        blo     fixloop
 #endif
 
 clear_bss:
 #ifndef CONFIG_PRELOADER
-       ldr     r0, _bss_start
-       ldr     r1, _bss_end
+       ldr     r0, _bss_start_ofs
+       ldr     r1, _bss_end_ofs
        ldr     r3, _TEXT_BASE          /* Text base */
-       mov     r4, r7                  /* reloc addr */
-       sub     r0, r0, r3
+       mov     r4, r6                  /* reloc addr */
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -232,18 +229,25 @@ clbss_l:str       r2, [r0]                /* clear loop...                    */
  * We are done. Do not return, instead branch to second part of board
  * initialization, now running from RAM.
  */
-       ldr     r0, _TEXT_BASE
-       ldr     r2, _board_init_r
-       sub     r2, r2, r0
-       add     r2, r2, r7      /* position from board_init_r in RAM */
+       ldr     r0, _board_init_r_ofs
+       adr     r1, _start
+       add     lr, r0, r1
+       add     lr, lr, r9
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
-       mov     r1, r7          /* dest_addr */
+       mov     r1, r6          /* dest_addr */
        /* jump to it ... */
-       mov     lr, r2
        mov     pc, lr
 
-_board_init_r: .word board_init_r
+_board_init_r_ofs:
+       .word board_init_r - _start
+
+_rel_dyn_start_ofs:
+       .word __rel_dyn_start - _start
+_rel_dyn_end_ofs:
+       .word __rel_dyn_end - _start
+_dynsym_start_ofs:
+       .word __dynsym_start - _start
 
 /*
  *************************************************************************
index 2e29291909176db3eba4239e05c93106c889e507..fa6d05cdf7db38ef2d747739dcb1fbf156cfff3e 100644 (file)
@@ -44,28 +44,38 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
-       __got_start = .;
        . = ALIGN(4);
-       .got : { *(.got) }
 
-       __got_end = .;
        . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }
diff --git a/arch/arm/include/asm/arch-at91/at91_shdwn.h b/arch/arm/include/asm/arch-at91/at91_shdwn.h
new file mode 100644 (file)
index 0000000..874f988
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010
+ * Reinhard Meyer, reinhard.meyer@emk-elektronik.de
+ *
+ * Shutdown Controller
+ * Based on AT91SAM9XE datasheet
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#ifndef AT91_SHDWN_H
+#define AT91_SHDWN_H
+
+#ifndef __ASSEMBLY__
+
+struct at91_shdwn {
+       u32     cr;     /* Control Rer.    WO */
+       u32     mr;     /* Mode Register   RW 0x00000003 */
+       u32     sr;     /* Status Register RO 0x00000000 */
+};
+
+#endif /* __ASSEMBLY__ */
+
+#define AT91_SHDW_CR_KEY       0xa5000000
+#define AT91_SHDW_CR_SHDW      0x00000001
+
+#define AT91_SHDW_MR_RTTWKEN   0x00010000
+#define AT91_SHDW_MR_CPTWK0    0x000000f0
+#define AT91_SHDW_MR_WKMODE0H2L        0x00000002
+#define AT91_SHDW_MR_WKMODE0L2H        0x00000001
+
+#define AT91_SHDW_SR_RTTWK     0x00010000
+#define AT91_SHDW_SR_WAKEUP0   0x00000001
+
+#endif
index cb34a94a3b396d4f21a3a4aa8f404c6085c2dc96..7fd60b74ffac993866c47d2dc4aea1d80fc8fac6 100644 (file)
@@ -56,6 +56,7 @@
 #define AT91_PIO_BASE          0xfffff400
 #define AT91_PMC_BASE          0xfffffc00
 #define AT91_RSTC_BASE         0xfffffd00
+#define AT91_SHDWN_BASE                0xfffffd10
 #define AT91_RTT_BASE          0xfffffd20
 #define AT91_PIT_BASE          0xfffffd30
 #define AT91_WDT_BASE          0xfffffd40
index f5f80e0b1b1bacb7e1bc4fb21057d2e924c1c2dd..6b44d6120732c697533265a42cd1dce84a0db785 100644 (file)
@@ -23,6 +23,7 @@
 #include <asm/arch/at91sam9260.h>
 #define AT91_BASE_MCI  AT91SAM9260_BASE_MCI
 #define AT91_BASE_SPI  AT91SAM9260_BASE_SPI0
+#define AT91_BASE_SPI1 AT91SAM9260_BASE_SPI1
 #define AT91_ID_UHP    AT91SAM9260_ID_UHP
 #define AT91_PMC_UHP   AT91SAM926x_PMC_UHP
 #elif defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9G10)
index f605f37fd2c0dca688d72dc5e3924fd2df5633bd..d489fa2157795a365eaba27e0696c173d2186fc3 100644 (file)
@@ -31,5 +31,6 @@
 #define USART2_BASE AT91_USART2
 #define USART3_BASE (AT91_BASE_SYS + AT91_DBGU)
 #define SPI0_BASE      AT91_BASE_SPI
+#define SPI1_BASE      AT91_BASE_SPI1
 
 #endif /* __ASM_ARM_ARCH_MEMORYMAP_H__ */
index ada3fbb6415cfe6d5a6d7b032743971c9e5be9c7..2a84d27a4e15e10a86cc5842eae25e80d21981e1 100644 (file)
@@ -55,11 +55,14 @@ typedef     struct  global_data {
        unsigned long   plla_rate_hz;
        unsigned long   pllb_rate_hz;
        unsigned long   at91_pllb_usb_init;
-       /* "static data" needed by at91's timer.c */
+#endif
+#ifdef CONFIG_ARM
+       /* "static data" needed by most of timer.c on ARM platforms */
        unsigned long   timer_rate_hz;
        unsigned long   tbl;
        unsigned long   tbu;
        unsigned long long      timer_reset_value;
+       unsigned long   lastinc;
 #endif
        unsigned long   relocaddr;      /* Start address of U-Boot in RAM */
        phys_size_t     ram_size;       /* RAM size */
index 02933485cd16600f4f9dbae073a85184a40a7d8d..454440c057af917936dca02cf6b6f04f326b1238 100644 (file)
@@ -23,8 +23,8 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
-LIBGCC = $(obj)libgcc.a
+LIB    = $(obj)lib$(ARCH).o
+LIBGCC = $(obj)libgcc.o
 
 GLSOBJS        += _ashldi3.o
 GLSOBJS        += _ashrdi3.o
@@ -51,7 +51,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 LGOBJS := $(addprefix $(obj),$(GLSOBJS)) \
           $(addprefix $(obj),$(GLCOBJS))
 
-# Always build libarm.a
+# Always build libarm.o
 TARGETS        := $(LIB)
 
 # Build private libgcc only when asked for
@@ -67,10 +67,10 @@ endif
 all:   $(TARGETS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 $(LIBGCC): $(obj).depend $(LGOBJS)
-       $(AR) $(ARFLAGS) $@ $(LGOBJS)
+       $(call cmd_link_o_target, $(LGOBJS))
 
 #########################################################################
 
index 1fd5f8362f7a3e1a076c44e9f554e6c0297dfdb0..96c0e301616e4ff8c3e64dbfa3bbe1e7c371187f 100644 (file)
@@ -276,7 +276,7 @@ void board_init_f (ulong bootflag)
        ulong addr, addr_sp;
 
        /* Pointer is writable since we allocated a register for it */
-       gd = (gd_t *) (CONFIG_SYS_INIT_SP_ADDR);
+       gd = (gd_t *) ((CONFIG_SYS_INIT_SP_ADDR) & ~0x07);
        /* compiler optimization barrier needed for GCC >= 3.4 */
        __asm__ __volatile__("": : :"memory");
 
index 57151689a90dbadf65420212882341005b8a8831..30686fe69b739af3c04b9902ba01c5ba3fa87e01 100644 (file)
@@ -38,7 +38,7 @@ void  flush_cache (unsigned long dummy1, unsigned long dummy2)
        /* disable write buffer as well (page 2-22) */
        asm("mcr p15, 0, %0, c7, c10, 4" : : "r" (0));
 #endif
-#ifdef CONFIG_ARMV7
+#ifdef CONFIG_OMAP34XX
        void v7_flush_cache_all(void);
 
        v7_flush_cache_all();
index 60899c79ea0b59c24fb3315412362a939afbb219..edb866f7f948a8c1d91e7b3c92a5e7ff08a051d7 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(CPU).a
+LIB    := $(obj)lib$(CPU).o
 
 START-y                        += start.o
 
@@ -44,7 +44,7 @@ START := $(addprefix $(obj),$(START-y))
 all: $(obj).depend $(START) $(LIB)
 
 $(LIB): $(OBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 #########################################################################
 
index 30ea92590dca3ed2179bfb7bcae69683fce9f324..8372149bd51b4a5f6bc021242d8947fb664d4ed5 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(SOC).a
+LIB    := $(obj)lib$(SOC).o
 
 COBJS  := portmux.o clk.o mmu.o
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
@@ -31,7 +31,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
 all: $(obj).depend $(LIB)
 
 $(LIB): $(OBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 #########################################################################
 
index 37b80514f3f4331c82078a2b83857c97ae32c41a..ee6d0672aa6f44dec64d47ff1952baca60abdbf6 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        += memset.o
 
@@ -37,7 +37,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b7f991dea04959c5959b7b43a9c66fd871a2217d..4a9e577a872ecb516fb77ce3aac9184a0f399b76 100644 (file)
@@ -11,7 +11,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 EXTRA    :=
 CEXTRA   := initcode.o
@@ -29,10 +29,6 @@ COBJS-y  += serial.o
 COBJS-y  += traps.o
 COBJS-$(CONFIG_HW_WATCHDOG)  += watchdog.o
 
-ifeq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
-COBJS-y  += initcode.o
-endif
-
 SRCS     := $(SEXTRA:.o=.S) $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
 OBJS     := $(addprefix $(obj),$(COBJS-y) $(SOBJS))
 EXTRA    := $(addprefix $(obj),$(EXTRA))
@@ -42,7 +38,7 @@ SEXTRA   := $(addprefix $(obj),$(SEXTRA))
 all:   $(obj).depend $(LIB) $(obj).depend $(EXTRA) $(CEXTRA) $(SEXTRA) check_initcode
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 $(OBJS): $(obj)bootrom-asm-offsets.h
 $(obj)bootrom-asm-offsets.c: bootrom-asm-offsets.c.in bootrom-asm-offsets.awk
index a18bbd63e9a98e2af7c29ab7c6746b5ff6b26cb5..4a227665aa0221f1e066eadf0fa1dccdb0a272dc 100644 (file)
@@ -29,7 +29,7 @@ include $(TOPDIR)/config.mk
 
 CFLAGS += -DBFIN_BOARD_NAME='"$(BOARD)"'
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        += ins.o
 SOBJS-y        += memcmp.o
@@ -53,7 +53,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4519596420e50debc3a111ef56c304cfd41c3509..3ac6d84548642be4656cefb12e576ac920314cbd 100644 (file)
@@ -71,6 +71,7 @@
  */
 
 #define COMMON_INS(func, ops) \
+.section .text._ins##func; \
 ENTRY(_ins##func) \
        P0 = R0;        /* P0 = port */ \
        CLI_OUTER;      /* 3 instructions before first read access */ \
index 90c6033c9e5f156ad51bc08af1a4eb7e8ccbecaa..253d4c3e417b47a2a92e503bec896b0d4a9d9457 100644 (file)
@@ -12,6 +12,7 @@
 
 .align 2
 
+.section .text._outsl
 ENTRY(_outsl)
        P0 = R0;        /* P0 = port */
        P1 = R1;        /* P1 = address */
@@ -23,6 +24,7 @@ ENTRY(_outsl)
        RTS;
 ENDPROC(_outsl)
 
+.section .text._outsw
 ENTRY(_outsw)
        P0 = R0;        /* P0 = port */
        P1 = R1;        /* P1 = address */
@@ -34,6 +36,7 @@ ENTRY(_outsw)
        RTS;
 ENDPROC(_outsw)
 
+.section .text._outsb
 ENTRY(_outsb)
        P0 = R0;        /* P0 = port */
        P1 = R1;        /* P1 = address */
@@ -45,6 +48,7 @@ ENTRY(_outsb)
        RTS;
 ENDPROC(_outsb)
 
+.section .text._outsw_8
 ENTRY(_outsw_8)
        P0 = R0;        /* P0 = port */
        P1 = R1;        /* P1 = address */
index 9163d20c29b858a448d021d00e36476dac3b0a23..f15c97ed0cbbc4ba677be673a3467cf56b107210 100644 (file)
@@ -147,6 +147,7 @@ SECTIONS
                *(.dynbss)
                *(.bss .bss.*)
                *(COMMON)
+               . = ALIGN(4);
        } >ram_data
        __bss_vma = ADDR(.bss);
        __bss_len = SIZEOF(.bss);
index bb0a48f8643582a1afc12c774388d4a10a5151c5..ddde83c91de61111e3f039db1512d6ce4255694b 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o start16.o resetvec.o
 COBJS  = interrupts.o cpu.o
@@ -38,7 +38,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 87835b2c20ddea1efbb251f3069e4549e2c6bff2..fb47c209934a486f97ec13a47067e56787507ddf 100644 (file)
@@ -29,7 +29,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(SOC).a
+LIB    := $(obj)lib$(SOC).o
 
 COBJS-$(CONFIG_SYS_SC520) += sc520.o
 COBJS-$(CONFIG_SYS_SC520_SSI) += sc520_ssi.o
@@ -44,7 +44,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 all: $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9838506689c079beb4466b349d639b69dd60da86..71e94f76f37d9e60df3fbd525e3c40bc03d33117 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        += bios.o
 SOBJS-y        += bios_pci.o
@@ -47,7 +47,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d0e9b4550f1f55d23b79e88988c4a0c3272a65d5..eb362648c21f50fd0c2ae3d6f347241a48c44cc6 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = lib$(CPU).a
+LIB    = lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o speed.o cpu_init.o interrupts.o
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d0e9b4550f1f55d23b79e88988c4a0c3272a65d5..eb362648c21f50fd0c2ae3d6f347241a48c44cc6 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = lib$(CPU).a
+LIB    = lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o speed.o cpu_init.o interrupts.o
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 937cdd058412ab0c8462b3857e5b2b3abe4c45f2..135744ea5a5b27520f6bc7bf1d62857641927f2c 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = interrupts.o cpu.o speed.o cpu_init.o
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 6790d90f272483c51500ee6f8514b56867cdbcaf..257d46da0d34043e331cd17a746341d22791da80 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = lib$(CPU).a
+LIB    = lib$(CPU).o
 
 START  =
 COBJS  = cpu.o speed.o cpu_init.o interrupts.o
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 26ec29895ee1cf771d942d21b030149b9d2fcaa3..047e35d39ccb6d8b0f028bb181fa5c469deb5ce7 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = lib$(CPU).a
+LIB    = lib$(CPU).o
 
 START  = start.o
 COBJS  = cpu.o speed.o cpu_init.o interrupts.o pci.o
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e12bef12c9e47c509fb958c6768c2fae75692d10..e41ce681c59be1a9ccf39a4f524dda7315171da3 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = lib$(CPU).a
+LIB    = lib$(CPU).o
 
 START  =
 COBJS  = cpu.o speed.o cpu_init.o pci.o interrupts.o slicetimer.o
@@ -37,7 +37,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 6db35ed2c10e476bd5e781dc483ee2bfee140701..a8d6cd54d808bbad49561d796217bb22dad24faa 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        +=
 
@@ -38,7 +38,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9d542013ccc3660551451b37c1b1b875d439be9c..1c169dd4bf2d846ad7e5d81d10a0dd2a3dfabfec 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS  = irq.o
@@ -36,7 +36,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 817643795e49af55e117dd2a33b9a5dbb0784715..de0a7d36c9b76404b49038db04176e8b8b756853 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        +=
 
@@ -35,7 +35,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 28a1cbb10422fd350cdb787d44eac5b89b0b4dc2..06df8d17a8cac07fcf43af606633a03808311b77 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS-y        = cache.o
@@ -41,7 +41,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 7967e5803a3be283c3093dd662a69a6e7e076d43..4e90704425aadb30b463dcce6420662007bd865e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        +=
 
@@ -39,7 +39,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3dfaa833c0a30d1be0c37018eebb594843c294dc..aa41160af35c60438a72db60a5b920c669e1caa9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS  = exceptions.o
@@ -36,7 +36,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 92320c5e4662211f1c20abf55819bbcc99cafdfc..443f99ee158174c10e9672037aa549b9a424c9c4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        += cache.o
 
@@ -36,7 +36,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 06a3b107d59d52bc44a34c52b981109adf990202..2912604afcb1a388554736be5a3d4134153b496e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000-2002
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -25,9 +25,20 @@ CROSS_COMPILE ?= ppc_8xx-
 
 STANDALONE_LOAD_ADDR = 0x40000
 
-PLATFORM_RELFLAGS += -mrelocatable
+PLATFORM_RELFLAGS += -mrelocatable -ffunction-sections -fdata-sections
 PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__
-PLATFORM_LDFLAGS  += -n
+PLATFORM_LDFLAGS  += -n --gc-sections
+
+ifdef CONFIG_SYS_LDSCRIPT
+# need to strip off double quotes
+LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
+else ifdef CONFIG_NAND_SPL
+LDSCRIPT := $(SRCTREE)/$(CONFIG_BOARDDIR)/u-boot-nand.lds
+else
+ifneq ($(wildcard $(SRCTREE)/arch/powerpc/cpu/$(CPU)/u-boot.lds),)
+LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/$(CPU)/u-boot.lds
+endif
+endif
 
 #
 # When cross-compiling on NetBSD, we have to define __PPC__ or else we
index fe905f31fe2b9ca633712c0db3c937756f21ec8a..8c2800b26b882ec9aa32d67eee94454df767aec8 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS  = cache.o kgdb.o io.o
@@ -39,7 +39,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
similarity index 53%
rename from board/freescale/mpc7448hpc2/u-boot.lds
rename to arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 3b3fb3a5c38f76576662896511e8a259a1f08722..771a8456fa527e81d645cf11905349af0144d305 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
+ * (C) Copyright 2010 Wolfgang Denk <wd@denx.de>
  *
  * See file CREDITS for list of people who contributed to this
  * project.
  * MA 02111-1307 USA
  */
 
-/*
- * u-boot.lds - linker script for U-Boot on mpc7448hpc2 Board.
- */
-
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
+    arch/powerpc/cpu/74xx_7xx/start.o  (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -71,9 +36,6 @@ SECTIONS
   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -81,23 +43,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -107,6 +65,7 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
@@ -122,9 +81,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 37b06f346edafaec6ee8ddaf27e595d2ba061d03..4a4bc0d471aaa87f5ee729c61d19463271ca21ad 100644 (file)
@@ -24,7 +24,7 @@ include $(TOPDIR)/config.mk
 
 $(shell mkdir -p $(OBJTREE)/board/freescale/common)
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS-y        := cpu.o
@@ -37,7 +37,6 @@ COBJS-y += iopin.o
 COBJS-y += serial.o
 COBJS-y += speed.o
 COBJS-$(CONFIG_FSL_DIU_FB) += diu.o
-COBJS-$(CONFIG_FSL_DIU_FB) += ../../../../board/freescale/common/fsl_diu_fb.o
 COBJS-$(CONFIG_CMD_IDE) += ide.o
 COBJS-$(CONFIG_IIM) += iim.o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -50,7 +49,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b29edb1b387bf18bda222f20b06c84dceb2f12a6..baf55ccaaf1b182c89b38963d856f1a22d5cacff 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2007-2009 DENX Software Engineering
+# (C) Copyright 2007-2010 DENX Software Engineering
 #
 # See file CREDITS for list of people who contributed to this
 # project.
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 # MA 02111-1307 USA
 #
+
 PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC512X -DCONFIG_E300 \
                        -ffixed-r2 -msoft-float -mcpu=603e
-
-# Use default linker script.
-# A board port can override this setting in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc512x/u-boot.lds
index c71679960c1260c30762c5624999ac499868f3cb..361e71489977929eb2bf64832c3e4cc2e4ff1cdb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2007 DENX Software Engineering.
+ * (C) Copyright 2007-2010 DENX Software Engineering.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
 OUTPUT_ARCH(powerpc)
 SECTIONS
 {
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc512x/start.o   (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc512x/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -66,10 +37,11 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
+    KEEP(*(.fixup))
     *(.fixup)
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
@@ -77,12 +49,8 @@ SECTIONS
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -108,9 +76,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 80c53203e9615a44f8ea71b6ba45e40bb8b9db05..078b52477a41d6656fa05d1e4aa08707fda5136c 100644 (file)
@@ -35,7 +35,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = serial.o cpu.o cpu_init.o interrupts.o traps.o speed.o spi.o
@@ -47,7 +47,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 5f9285df492c2b3a6a37dec3dbb7abee0ab9e0a7..1c7df0005c0db22a81a69fffd5cd107b46ed8484 100644 (file)
 # MA 02111-1307 USA
 #
 
-#
-# File:                        config.mk
-#
-# Discription:         compiler flags and make definitions
-#
-
-
 PLATFORM_RELFLAGS +=   -fPIC -meabi
 
 PLATFORM_CPPFLAGS +=   -DCONFIG_5xx -ffixed-r2 -mpowerpc -msoft-float
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc5xx/u-boot.lds
index d5e5dc1787ab5c1756cfb854c002c6517a420ae2..b7fd4bc3a732756d1f903e201b88f53a4d4ec5e7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001  Wolfgang Denk, DENX Software Engineering, wd@denx.de
+ * (C) Copyright 2001-2010 Wolfgang Denk, DENX Software Engineering, wd@denx.de
  * (C) Copyright 2003  Martin Winistoerfer, martinwinistoerfer@gmx.ch
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc5xx/start.o    (.text)
+    arch/powerpc/cpu/mpc5xx/start.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -77,23 +46,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -119,19 +84,17 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
 
   _end = . ;
   PROVIDE (end = .);
-/*   . = env_start;
-       .ppcenv :
-       {
-               common/env_embedded.o (.ppcenv)
-       }
-*/
+  . = env_start;
+  .ppcenv :
+  {
+    common/env_embedded.o (.ppcenv)
+  }
 }
index 0ee0611550b0c0db43c708ede83e308238a7adfc..1a088b77bc54c9d836f9b1cb8a504753dae1d255 100644 (file)
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
-
-START  = start.o
-SOBJS  = io.o firmware_sc_task_bestcomm.impl.o
-COBJS  = i2c.o traps.o cpu.o cpu_init.o ide.o interrupts.o \
-         loadtask.o pci_mpc5200.o serial.o speed.o usb_ohci.o usb.o
-
-SRCS   := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
-START  := $(addprefix $(obj),$(START))
+LIB    = $(obj)lib$(CPU).o
+
+SSTART = start.o
+CSTART  = traps.o
+SOBJS  += io.o
+SOBJS  += firmware_sc_task_bestcomm.impl.o
+COBJS-y += i2c.o
+COBJS-y += cpu.o
+COBJS-y += cpu_init.o
+COBJS-y += ide.o
+COBJS-y += interrupts.o
+COBJS-y += loadtask.o
+COBJS-y += pci_mpc5200.o
+COBJS-y += serial.o
+COBJS-y += speed.o
+COBJS-$(CONFIG_CMD_USB) += usb_ohci.o
+COBJS-$(CONFIG_CMD_USB) += usb.o
+
+SRCS   := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
+START  := $(addprefix $(obj),$(SSTART) $(CSTART))
 
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 7ef8a4708a90df8846bfff1d82d5c36d83ac786e..832909fbb3bd54118f33762965fe8e1d618e7aa1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2003
+# (C) Copyright 2003-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -25,6 +25,3 @@ PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC5xxx -ffixed-r2 \
                     -mstring -mcpu=603e -mmultiple
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 4f7f71632873318d9989a6babe47e8d6e5af05b4..9fb330f82fcc39397c2c8e35da1d1488d8379b13 100644 (file)
@@ -30,6 +30,7 @@ DECLARE_GLOBAL_DATA_PTR;
 #include <mpc5xxx.h>
 #include <i2c.h>
 
+#if !defined(CONFIG_I2C_MULTI_BUS)
 #if (CONFIG_SYS_I2C_MODULE == 2)
 #define I2C_BASE       MPC5XXX_I2C2
 #elif (CONFIG_SYS_I2C_MODULE == 1)
@@ -37,6 +38,19 @@ DECLARE_GLOBAL_DATA_PTR;
 #else
 #error CONFIG_SYS_I2C_MODULE is not properly configured
 #endif
+#else
+static unsigned int i2c_bus_num __attribute__ ((section (".data"))) =
+                                               CONFIG_SYS_SPD_BUS_NUM;
+static unsigned int i2c_bus_speed[2] = {CONFIG_SYS_I2C_SPEED,
+                                       CONFIG_SYS_I2C_SPEED};
+
+static const  unsigned long i2c_dev[2] = {
+       MPC5XXX_I2C1,
+       MPC5XXX_I2C2,
+};
+
+#define I2C_BASE       ((struct mpc5xxx_i2c *)i2c_dev[i2c_bus_num])
+#endif
 
 #define I2C_TIMEOUT    6667
 #define I2C_RETRIES    3
@@ -439,4 +453,33 @@ Done:
        return ret;
 }
 
+#if defined(CONFIG_I2C_MULTI_BUS)
+int i2c_set_bus_num(unsigned int bus)
+{
+       if (bus > 1)
+               return -1;
+
+       i2c_bus_num = bus;
+       i2c_init(i2c_bus_speed[bus], CONFIG_SYS_I2C_SLAVE);
+       return 0;
+}
+
+int i2c_set_bus_speed(unsigned int speed)
+{
+       i2c_init(speed, CONFIG_SYS_I2C_SLAVE);
+       return 0;
+}
+
+unsigned int i2c_get_bus_num(void)
+{
+       return i2c_bus_num;
+}
+
+unsigned int i2c_get_bus_speed(void)
+{
+       return i2c_bus_speed[i2c_bus_num];
+}
+#endif
+
+
 #endif /* CONFIG_HARD_I2C */
index ecffc1b32f9338aaf1e93b33e82084c6414497e9..bbf0f1625de2169130d079f231b7ace2354a5a07 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within  */
     /* the sector layout of our flash chips!    XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc5xxx/start.o          (.text)
-    arch/powerpc/cpu/mpc5xxx/traps.o          (.text)
-    lib/crc32.o         (.text)
-    arch/powerpc/lib/cache.o             (.text)
-    arch/powerpc/lib/time.o              (.text)
+    arch/powerpc/cpu/mpc5xxx/start.o   (.text*)
+    arch/powerpc/cpu/mpc5xxx/traps.o   (.text*)
 
     . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o        (.ppcenv)
+    common/env_embedded.o              (.ppcenv*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -80,23 +48,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -122,9 +86,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index ea4060d482216fe755605cc4490f1d9cb93523f5..eeeff6c8504f4a3ad82a55887fb8ea8828204455 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2003-2007
+ * (C) Copyright 2003-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc5xxx/start.o   (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc5xxx/start.o   (.text*)
+    arch/powerpc/cpu/mpc5xxx/traps.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -69,23 +41,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -111,10 +79,9 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
    *(COMMON)
+   *(.bss*)
+   *(.sbss*)
    . = ALIGN(4);
   }
   _end = . ;
index b4fad286dcbc8cda1998e4962f8b3ed74be0421e..b8529efe9123e9f789e4a7885c5789bba0def579 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS  = io.o fec_dma_tasks.o
@@ -38,7 +38,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e706883938d2e00a5a27ad742d1f05d9aa23e6bd..9142b91a5da8b90e75567beedc7717a4e676c36c 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2003
+# (C) Copyright 2003-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -25,6 +25,3 @@ PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC8220 -ffixed-r2 \
                     -mstring -mcpu=603e -mmultiple
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc8220/u-boot.lds
index 31a7a0e4ef035a813db29b72fd71e1afa8a2e19c..63cbbd7f41890656c8a2e56e59143fcb549c93c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2003-2004
+ * (C) Copyright 2003-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8220/start.o   (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8220/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -69,23 +40,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -111,9 +78,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index a57ad12c41e93fc4199bbcddea221a909c0bed29..2bfcd8548c23f28eb2f0cc98a511b20d96838963 100644 (file)
@@ -27,7 +27,7 @@ $(shell mkdir -p $(obj)drivers/epic)
 $(shell mkdir -p $(obj)drivers/i2c)
 endif
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 COBJS  = traps.o cpu.o cpu_init.o interrupts.o speed.o \
@@ -41,7 +41,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 $(obj)bedbug_603e.c:
        ln -sf $(src)../mpc8260/bedbug_603e.c $(obj)bedbug_603e.c
index 27c287351bea431707df9a3bb2b829367abe29d8..65a177133a995e2b7c3385acd29325e3ef62e045 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -24,6 +24,3 @@
 PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC824X -ffixed-r2 -mstring -mcpu=603e -msoft-float
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc824x/u-boot.lds
index d1fcd7c47dad409d15fa09e2f1b81dbb86c00ca0..e7f283787bafc062fa91b0640e690c3c07dbd2c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001-2007
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -27,41 +27,13 @@ OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc824x/start.o           (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc824x/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -69,23 +41,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -111,9 +79,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 9f0c2dd50cc706ce32cc0c0234091036b30f3a09..aa8b88105a84f35cd0237b7d63f7100b84544e87 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o kgdb.o
 COBJS  = traps.o serial_smc.o serial_scc.o cpu.o cpu_init.o speed.o \
@@ -41,7 +41,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(obj)kgdb.o
+       $(call cmd_link_o_target, $(OBJS) $(obj)kgdb.o)
 
 #########################################################################
 
index a9bb6887a078c79015611762bdd8dda1be2be3f0..5e4645a0257ea1a637b2acc8ecae8282d10a7ea1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -25,6 +25,3 @@ PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_8260 -DCONFIG_CPM2 -ffixed-r2 \
                     -mstring -mcpu=603e -mmultiple
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc8260/u-boot.lds
index b8681e706d4caaa9d42b8c1036485dfdd2380307..ad2ce37f1bcae0243e94e30234c8e8366f34cc64 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001-2007
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8260/start.o           (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8260/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -69,23 +40,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -111,9 +78,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 15e2c18b13760c25f266a51934659c4fdc845730..3979b6fbab69b990cc95930ccb6c1279b6252e75 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 
@@ -50,7 +50,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8a3a8c1b98e9ec0e686f4cfb63a98a68e12d7a12..0dced88add78995b7fdeb014a7c4ce2414a9d522 100644 (file)
@@ -24,6 +24,3 @@ PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC83xx -DCONFIG_E300 \
                        -ffixed-r2 -msoft-float
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 515be4c871bc6c189ad91ec5a21a8cb2ce237f74..460ac9aabb9f5bf18db4532120f95a3a14f8092b 100644 (file)
@@ -1158,6 +1158,10 @@ map_flash_by_law1:
        bne 1b
 
        stw r4, LBLAWAR1(r3) /* LBLAWAR1 <= 8MB Flash Size */
+       /* Wait for HW to catch up */
+       lwz r4, LBLAWAR1(r3)
+       twi 0,r4,0
+       isync
        blr
 
        /* Though all the LBIU Local Access Windows and LBC Banks will be
@@ -1196,5 +1200,9 @@ remap_flash_by_law0:
        xor r4, r4, r4
        stw r4, LBLAWBAR1(r3)
        stw r4, LBLAWAR1(r3) /* Off LBIU LAW1 */
+       /* Wait for HW to catch up */
+       lwz r4, LBLAWAR1(r3)
+       twi 0,r4,0
+       isync
        blr
 #endif /* CONFIG_SYS_FLASHBOOT */
index 0b74a13fb1dc8c5110765f1bae893a41133c1871..81a7ace64c2392ee572165f973522bd17fbaf407 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2006
+ * (C) Copyright 2006-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -25,41 +25,13 @@ OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc83xx/start.o   (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc83xx/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -67,23 +39,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -109,9 +77,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index b7c027210527255e16361b2222a62ead50e02307..63d79233d5a5dae30b5403cf2e085494927f14be 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o resetvec.o
 SOBJS-$(CONFIG_MP)     += release.o
@@ -95,7 +95,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ce4376b1004049d7850a10e0994f9215546f23a5..66d1741cc17aad1b38aa6b9ec06c4356eec695e1 100644 (file)
@@ -25,15 +25,8 @@ PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -ffixed-r2 -Wa,-me500 -msoft-float -mno-string
 
-# Enable gc-sections to enable generation of smaller images.
-PLATFORM_LDFLAGS += --gc-sections
-PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
-
 # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC;
 # see "[PATCH,rs6000] make -mno-spe work as expected" on
 # http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html
 PLATFORM_CPPFLAGS +=$(call cc-option,-mspe=yes)
 PLATFORM_CPPFLAGS +=$(call cc-option,-mno-spe)
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc85xx/u-boot.lds
index 27236a0bad5082c943cb16df870dc54d94348520..4b8faa5daf31a08da29a89d125d4342ece85fa0c 100644 (file)
@@ -327,7 +327,7 @@ int cpu_init_r(void)
        if (l2cache->l2ctl & MPC85xx_L2CTL_L2E) {
                puts("already enabled");
                l2srbar = l2cache->l2srbar0;
-#ifdef CONFIG_SYS_INIT_L2_ADDR
+#if defined(CONFIG_SYS_INIT_L2_ADDR) && defined(CONFIG_SYS_FLASH_BASE)
                if (l2cache->l2ctl & MPC85xx_L2CTL_L2SRAM_ENTIRE
                                && l2srbar >= CONFIG_SYS_FLASH_BASE) {
                        l2srbar = CONFIG_SYS_INIT_L2_ADDR;
index daca79ad4f2217ec4a2775808dd83a3f1f50a0ff..5b7d80a5bd6cfb0a3dbbd622a99f99a12c6ee86d 100644 (file)
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
-START  = start.o
+SSTART = start.o
+CSTART = traps.o
 
 SOBJS-y += cache.o
 SOBJS-$(CONFIG_MP) += release.o
@@ -42,16 +43,15 @@ COBJS-$(CONFIG_OF_LIBFDT) += fdt.o
 COBJS-y        += interrupts.o
 COBJS-$(CONFIG_MP) += mp.o
 COBJS-y        += speed.o
-COBJS-y        += traps.o
 
 SRCS   := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
-START  := $(addprefix $(obj),$(START))
+START  := $(addprefix $(obj),$(SSTART) $(CSTART))
 
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(ASOBJS) $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index bce0fb374b999b854ec4119bc46a1f709e9d6073..ca2f8376edd9dd167ae986e6726055cdf6d0e2ac 100644 (file)
@@ -25,10 +25,3 @@ PLATFORM_RELFLAGS += -fPIC -meabi
 
 PLATFORM_CPPFLAGS += -ffixed-r2 -mstring
 PLATFORM_CPPFLAGS += -maltivec -mabi=altivec -msoft-float
-
-# Enable gc-sections to enable generation of smaller images.
-PLATFORM_LDFLAGS += --gc-sections
-PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 4bfcb9064199c265cbf7b9feeec9ed6b3d38d502..49a4c782d5bfc4cd44cb623af885e265cb22ac06 100644 (file)
@@ -26,40 +26,10 @@ SECTIONS
 {
 
   /* Read-only sections, merged into text segment: */
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc86xx/start.o   (.text)
-    arch/powerpc/cpu/mpc86xx/traps.o (.text)
-    arch/powerpc/cpu/mpc86xx/interrupts.o (.text)
-    arch/powerpc/cpu/mpc86xx/cpu_init.o (.text)
-    arch/powerpc/cpu/mpc86xx/cpu.o (.text)
-    arch/powerpc/cpu/mpc86xx/speed.o (.text)
-    common/dlmalloc.o (.text)
-    lib/crc32.o (.text)
-    arch/powerpc/lib/extable.o (.text)
-    lib/zlib.o (.text)
+    arch/powerpc/cpu/mpc86xx/start.o   (.text*)
+    arch/powerpc/cpu/mpc86xx/traps.o   (.text*)
     *(.text*)
    }
     _etext = .;
@@ -112,8 +82,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss*)
    *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 5f70459690a22441c94882aef9fe7914174aec95..0d1a12c45827a26b8e77ab2f1cf1f79f75a7bd96 100644 (file)
@@ -25,10 +25,10 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DET_DEBUG
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
-START-y        += start.o
-START-y        += kgdb.o
+SSTART-y += start.o
+CSTART-y += traps.o
 COBJS-y        += bedbug_860.o
 COBJS-y        += commproc.o
 COBJS-y        += cpu.o
@@ -42,19 +42,19 @@ COBJS-y     += scc.o
 COBJS-y        += serial.o
 COBJS-y        += speed.o
 COBJS-y        += spi.o
-COBJS-y        += traps.o
 COBJS-y        += upatch.o
 COBJS-y        += video.o
+SOBJS-y        += kgdb.o
 SOBJS-y        += plprcr_write.o
 
-SRCS   := $(START-y:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
+SRCS   := $(SSTART-y:.o=.S) $(CSTART-y:.o=.c) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
-START  := $(addprefix $(obj),$(START-y))
+START  := $(addprefix $(obj),$(SSTART-y) $(CSTART-y))
 
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(obj)kgdb.o
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 5540d653502b383f1173f3107e82b1e6a79de548..f5e08a5138a298e11edf471a34e5352dccc7063c 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
index ea5122289e2d538499089a63ee1653e5ec955df0..ab80dd77230b56e685229888f0905f24ae31cd1e 100644 (file)
@@ -8,7 +8,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib8xxx.a
+LIB    = $(obj)lib8xxx.o
 
 ifneq ($(CPU),mpc83xx)
 COBJS-y        += cpu.o
@@ -24,7 +24,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 include $(SRCTREE)/rules.mk
 
index cb7f856554c6901968cefb8d81da374c0cffe4fb..4a5a78558be976369e2d2968d250bf0afc1c5f1d 100644 (file)
@@ -8,7 +8,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libddr.a
+LIB    = $(obj)libddr.o
 
 COBJS-$(CONFIG_FSL_DDR1)       += main.o util.o ctrl_regs.o options.o \
                                   lc_common_dimm_params.o
@@ -28,7 +28,7 @@ OBJS  := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 all:   $(obj).depend $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 include $(SRCTREE)/rules.mk
 
index cf9d66d5349d503affe845f5b7ce61760c4dab27..9634deba4855b10ea044d54b253aada2b7965613 100644 (file)
@@ -50,8 +50,6 @@
 
 #include "ecc.h"
 
-#if defined(CONFIG_SDRAM_PPC4xx_IBM_DDR2)
-
 #define PPC4xx_IBM_DDR2_DUMP_REGISTER(mnemonic)                                \
        do {                                                            \
                u32 data;                                               \
@@ -3194,5 +3192,3 @@ inline void ppc4xx_ibm_ddr2_register_dump(void)
        PPC4xx_IBM_DDR2_DUMP_REGISTER(RTSR);
 #endif /* defined(DEBUG) */
 }
-
-#endif /* CONFIG_SDRAM_PPC4xx_IBM_DDR2 */
index e90c93e495e2de84926323575117a1703bb06523..b909fcab0d8161a222209a01c64e60cb7a7a7e52 100644 (file)
@@ -44,8 +44,6 @@
 
 #include "ecc.h"
 
-#if defined(CONFIG_PPC4xx_DDR_AUTOCALIBRATION)
-
 /*
  * Only compile the DDR auto-calibration code for NOR boot and
  * not for NAND boot (NAND SPL and NAND U-Boot - NUB)
@@ -1253,4 +1251,3 @@ u32 DQS_autocalibration(void)
        return 0;
 }
 #endif /* !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) */
-#endif /* defined(CONFIG_PPC4xx_DDR_AUTOCALIBRATION) */
index fa8d10c627cf24e28d5b6745ab1de92465445456..d97ca207c020ba16562d055c170d6e156cd22a3b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  := resetvec.o
 START  += start.o
@@ -34,31 +34,27 @@ SOBJS       += kgdb.o
 
 COBJS  := 40x_spd_sdram.o
 
+ifndef CONFIG_NAND_SPL
+ifndef CONFIG_NAND_U_BOOT
 COBJS  += 44x_spd_ddr.o
-COBJS  += 44x_spd_ddr2.o
-ifdef CONFIG_PPC4xx_DDR_AUTOCALIBRATION
-COBJS  += 4xx_ibm_ddr2_autocalib.o
 endif
+endif
+COBJS-$(CONFIG_SDRAM_PPC4xx_IBM_DDR2) += 44x_spd_ddr2.o
+COBJS-$(CONFIG_PPC4xx_DDR_AUTOCALIBRATION) += 4xx_ibm_ddr2_autocalib.o
 COBJS  += 4xx_pci.o
 COBJS  += 4xx_pcie.o
 COBJS  += bedbug_405.o
-ifdef CONFIG_CMD_CHIP_CONFIG
-COBJS  += cmd_chip_config.o
-endif
+COBJS-$(CONFIG_CMD_CHIP_CONFIG)        += cmd_chip_config.o
 COBJS  += cpu.o
 COBJS  += cpu_init.o
 COBJS  += denali_data_eye.o
 COBJS  += denali_spd_ddr2.o
 COBJS  += ecc.o
-ifdef CONFIG_CMD_ECCTEST
-COBJS  += cmd_ecctest.o
-endif
+COBJS-$(CONFIG_CMD_ECCTEST) += cmd_ecctest.o
 COBJS  += fdt.o
 COBJS  += interrupts.o
 COBJS  += iop480_uart.o
-ifdef CONFIG_CMD_REGINFO
-COBJS  += reginfo.o
-endif
+COBJS-$(CONFIG_CMD_REGINFO) += reginfo.o
 COBJS  += sdram.o
 COBJS  += speed.o
 COBJS  += tlb.o
@@ -66,23 +62,22 @@ COBJS       += traps.o
 COBJS  += usb.o
 COBJS  += usb_ohci.o
 COBJS  += usbdev.o
+COBJS-$(CONFIG_XILINX_440) += xilinx_irq.o
 ifndef CONFIG_XILINX_440
 COBJS  += 4xx_uart.o
 COBJS  += gpio.o
 COBJS  += miiphy.o
 COBJS  += uic.o
-else
-COBJS  += xilinx_irq.o
 endif
 
 SRCS   := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS) $(COBJS-y))
 START  := $(addprefix $(obj),$(START))
 
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index fd81b70e7aa4589d2a1f5bb38fd0062d9a0b338c..542ab69a13c9654a56b4b2995569ea7793ebf32c 100644 (file)
@@ -190,15 +190,13 @@ static int do_ecctest(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        int error;
 
        if (argc < 3) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
 
        ptr = (u32 *)simple_strtoul(argv[1], NULL, 16);
        error = simple_strtoul(argv[2], NULL, 16);
        if ((error < 1) || (error > 2)) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
 
        printf("Using address %p for %d bit ECC error injection\n",
index 5bda710e26dcdda8bb4aa8fd8bdafa55478ee181..d862bb4fb83ad3dc0de0851038b8ba19649cb8c4 100644 (file)
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -32,6 +32,3 @@ PLATFORM_CPPFLAGS += -Wa,-m440 -mcpu=440
 else
 PLATFORM_CPPFLAGS += -Wa,-m405 -mcpu=405
 endif
-
-# Use default linker script.  Board port can override in board/*/config.mk
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 65195f528a8d7c884f2531cef1760d14e5062e0c..0e75794d225887b3068b3313745d08f3245643e4 100644 (file)
@@ -1389,8 +1389,8 @@ in32r:
 relocate_code:
 #if defined(CONFIG_4xx_DCACHE) || defined(CONFIG_SYS_INIT_DCACHE_CS)
        /*
-        * We need to flush the initial global data (gd_t) before the dcache
-        * will be invalidated.
+        * We need to flush the initial global data (gd_t) and bd_info
+        * before the dcache will be invalidated.
         */
 
        /* Save registers */
@@ -1398,10 +1398,11 @@ relocate_code:
        mr      r10, r4
        mr      r11, r5
 
-       /* Flush initial global data range */
-       mr      r3, r4
-       addi    r4, r4, GENERATED_GBL_DATA_SIZE@l
-       bl      flush_dcache_range
+       /*
+        * Flush complete dcache, this is faster than flushing the
+        * ranges for global_data and bd_info instead.
+        */
+       bl      flush_dcache
 
 #if defined(CONFIG_SYS_INIT_DCACHE_CS)
        /*
index eca1f9dd82720406b9f20a8111132d0e66593663..dac0e5b61c8a6638063192a506b76f35c31dee43 100644 (file)
@@ -27,8 +27,7 @@
 #endif
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 PHDRS
 {
   text PT_LOAD;
@@ -39,43 +38,16 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    *(.text)
-    *(.got1)
+    *(.text*)
    } :text
     _etext = .;
     PROVIDE (etext = .);
     .rodata    :
    {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   } :text
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -83,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -138,7 +106,7 @@ SECTIONS
 
   .resetvec RESET_VECTOR_ADDRESS :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } :text = 0xffff
 
   . = RESET_VECTOR_ADDRESS + 0x4;
@@ -157,9 +125,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
   } :bss
 
index cec7666b446c970119252b426b61623191c99ed6..724d8ee7f74d05b098c882e7312c708d12b5c1a6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        += ppccache.o
 SOBJS-y        += ppcstring.o
@@ -63,7 +63,7 @@ $(LIB):       $(obj).depend $(OBJS)
                echo "       Upgrade to a recent toolchain."; \
                exit 1; \
        fi;
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 2e0749da0a545a3d15300903c9e5def269a8bdac..9759e23a53de45782291a2b649484fc6c81151be 100644 (file)
@@ -645,6 +645,17 @@ void board_init_r (gd_t *id, ulong dest_addr)
        gd->cpu += dest_addr - CONFIG_SYS_MONITOR_BASE;
 #endif
 
+#ifdef CONFIG_SYS_EXTRA_ENV_RELOC
+       /*
+        * Some systems need to relocate the env_addr pointer early because the
+        * location it points to will get invalidated before env_relocate is
+        * called.  One example is on systems that might use a L2 or L3 cache
+        * in SRAM mode and initialize that cache from SRAM mode back to being
+        * a cache in cpu_init_r.
+        */
+       gd->env_addr += dest_addr - CONFIG_SYS_MONITOR_BASE;
+#endif
+
 #ifdef CONFIG_SERIAL_MULTI
        serial_initialize();
 #endif
@@ -694,7 +705,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
         */
        pci_init ();
 #endif
-#if defined(CONFIG_BAB7xx)
+#if defined(CONFIG_WINBOND_83C553)
        /*
         * Initialise the ISA bridge
         */
index 346d3285dbc3d6e830f2385fe7e33a9c8c708867..a36f0c3c3c1b7547711bc8e301e93a0257f2a2bd 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 SOBJS  = start.o
 COBJS  = cpu.o interrupts.o watchdog.o
@@ -36,7 +36,7 @@ OBJS    := $(addprefix $(obj),$(COBJS))
 SOBJS   := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 77043f686a0cc394c4c50f515d104e22ab2f0f25..8e0e64067b72f44ce202191ae2b855f43af4a82d 100644 (file)
@@ -26,7 +26,7 @@
        .align  2
 
        .global _start
-_start:
+_sh_start:
        .long 0x00000010        /* Ppower ON reset PC*/
        .long 0x00000000
        .long 0x00000010        /* Manual reset PC */
@@ -39,7 +39,7 @@ _init:
        nop
 1:     sts     pr, r5
        mov.l   ._reloc_dst, r4
-       add     #(_start-1b), r5
+       add     #(_sh_start-1b), r5
        mov.l   ._reloc_dst_end, r6
 
 2:     mov.l   @r5+, r1
@@ -74,6 +74,6 @@ loop:
 ._reloc_dst_end:       .long   reloc_dst_end
 ._bss_start:           .long   bss_start
 ._bss_end:             .long   bss_end
-._gd_init:             .long   (_start - GENERATED_GBL_DATA_SIZE)
-._stack_init:  .long   (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
+._gd_init:             .long   (_sh_start - GENERATED_GBL_DATA_SIZE)
+._stack_init:  .long   (_sh_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
 ._sh_generic_init:     .long   sh_generic_init
index 35e8f51ab1540159727d1edef6ba0358f877237d..d51b07c65528599382ec3b40a6748fbad4db41ec 100644 (file)
@@ -29,7 +29,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 SOBJS  = start.o
 COBJS  = cpu.o interrupts.o watchdog.o cache.o
@@ -39,7 +39,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9dd23032657b1850c80b9783dfac7407218c5b04..d96ca910c6ed704cedc363ab6419926cc14adeca 100644 (file)
@@ -29,7 +29,7 @@
        .align  2
 
        .global _start
-_start:
+_sh_start:
        mov.l   ._lowlevel_init, r0
 100:   bsrf    r0
        nop
@@ -38,7 +38,7 @@ _start:
        nop
 1:     sts     pr, r5
        mov.l   ._reloc_dst, r4
-       add     #(_start-1b), r5
+       add     #(_sh_start-1b), r5
        mov.l   ._reloc_dst_end, r6
 
 2:     mov.l   @r5+, r1
@@ -73,6 +73,6 @@ loop:
 ._reloc_dst_end:       .long   reloc_dst_end
 ._bss_start:           .long   bss_start
 ._bss_end:             .long   bss_end
-._gd_init:             .long   (_start - GENERATED_GBL_DATA_SIZE)
-._stack_init:  .long   (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
+._gd_init:             .long   (_sh_start - GENERATED_GBL_DATA_SIZE)
+._stack_init:  .long   (_sh_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
 ._sh_generic_init:     .long   sh_generic_init
index 3c96a49311f0471131d20a4b4a44186f4e34b5d7..ba84de39fb84e4f8b33daf383032ce70e5bee934 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 SOBJS  = start.o
 COBJS  = cpu.o interrupts.o watchdog.o cache.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4b5f606fff7d5f5e98f25daebc2ce3f069739aa8..a1d5ee42ef881f782e596632cfd0057f3fc8d1a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2007
+ * (C) Copyright 2007, 2010
  * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
  *
  * This program is free software; you can redistribute it and/or
@@ -26,7 +26,7 @@
        .align  2
 
        .global _start
-_start:
+_sh_start:
        mov.l   ._lowlevel_init, r0
 100:   bsrf    r0
        nop
@@ -35,7 +35,7 @@ _start:
        nop
 1:     sts     pr, r5
        mov.l   ._reloc_dst, r4
-       add     #(_start-1b), r5
+       add     #(_sh_start-1b), r5
        mov.l   ._reloc_dst_end, r6
 
 2:     mov.l   @r5+, r1
@@ -70,6 +70,6 @@ loop:
 ._reloc_dst_end:       .long   reloc_dst_end
 ._bss_start:           .long   bss_start
 ._bss_end:             .long   bss_end
-._gd_init:             .long   (_start - GENERATED_GBL_DATA_SIZE)
-._stack_init:          .long   (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
+._gd_init:             .long   (_sh_start - GENERATED_GBL_DATA_SIZE)
+._stack_init:          .long   (_sh_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
 ._sh_generic_init:     .long   sh_generic_init
index f7c6479426d74458108d442baa55a01e313c3adf..7f6039699dafadbb675e04a0e402d5ba473305aa 100644 (file)
@@ -20,7 +20,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS-y        +=
 
@@ -36,7 +36,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 91dc96794d2a7ef287d8127b19548d351cde20fb..a9a18eb1ff2d0cb6a3437f88de886f97dbff0c72 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS  =
@@ -36,7 +36,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 64c67f8dbc24e7a2d5e834c9dd8bb820d31c907a..16d3377c7304e0119b78547c9a4463ccf8d402f8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(CPU).a
+LIB    = $(obj)lib$(CPU).o
 
 START  = start.o
 SOBJS  =
@@ -36,7 +36,7 @@ START := $(addprefix $(obj),$(START))
 all:   $(obj).depend $(START) $(LIB)
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 040ca10d3b3bfbbdb6f7b552b241044949f21d31..7133ef1015d39a1b131335a372b7ab23fa472466 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).a
+LIB    = $(obj)lib$(ARCH).o
 
 SOBJS  =
 
@@ -33,7 +33,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 44961b97d1516734aa6c7642da0969265bdae2eb..0f14699c5e527186e5c354660132fd240b6dad63 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o cfm_flash.o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8171a7d0b51c8c17003425e072014288db6103b2..f45836f3f8add695fad668efa3b895f03c6e7f74 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cpux9k2.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 29286919c0fb3860b3fea7b52bacfe90b0d35c1d..96727cb71e9947e92702da263f5f12a577b2a2db 100644 (file)
@@ -34,7 +34,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 1efdf7dc32b62a3290fcee55484ea45d5274a96b..9077e69717f0f8d6802be4650ac61524e88b6a3e 100644 (file)
 */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o                    (.text)
-    common/dlmalloc.o                  (.text)
-    arch/powerpc/lib/ppcstring.o                       (.text)
-    lib/vsprintf.o             (.text)
-    lib/crc32.o                        (.text)
-    lib/zlib.o                 (.text)
-    lib/string.o               (.text)
-    arch/powerpc/lib/cache.o                   (.text)
-    arch/powerpc/lib/extable.o                 (.text)
-    arch/powerpc/lib/time.o                    (.text)
-    arch/powerpc/lib/ticks.o                   (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    common/libcommon.o                 (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    board/LEOX/elpt860/libelpt860.o    (.text*)
+    arch/powerpc/lib/libpowerpc.o      (.text*)
+/*    drivers/rtc/librtc.o             (.text*)        */
 
     . = env_offset;
-    common/env_embedded.o              (.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -99,23 +67,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -140,9 +104,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index df542dc043df5be1f0c679859e64084b214b0e53..f73338906436d4c1a30e30fb3634d881041cf18f 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := edminiv2.o
 
@@ -35,7 +35,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 641a0ab8603486dde51c82ae20d48a589f1ffce7..036d255fe174e8d699b82dae1394adbeaa849b19 100644 (file)
@@ -29,7 +29,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS  = ../common/misc.o
 
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
diff --git a/board/Marvell/db64360/u-boot.lds b/board/Marvell/db64360/u-boot.lds
deleted file mode 100644 (file)
index 29dcc09..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
-    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(256);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(256);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss (NOLOAD)       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-   . = ALIGN(4);
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index 641a0ab8603486dde51c82ae20d48a589f1ffce7..036d255fe174e8d699b82dae1394adbeaa849b19 100644 (file)
@@ -29,7 +29,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS  = ../common/misc.o
 
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index 99748a7ea598585e32a68369b842456d06210b1f..ff7e9d7075c92adf9adcc305ac623c48bad3767b 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := guruplug.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 92d0b4760db124dccb63b59195802b8af80edcb5..24431010dbb2bed90a156d2c1f2fdfb44e2d5725 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mv88f6281gtw_ge.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 3ef0b9befacf977b5bb9758dca0bcf2638bdd6fe..d6d0ed33791fde296abfe678ceab478f46c030a0 100644 (file)
@@ -29,7 +29,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := openrd_base.o
 
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 907dd7d017f83f89e914b79051a55cc8ab5dca29..e730e372ead7f069fa39e76306be68de55f6dd4f 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := rd6281a.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e378b5b1fa97035b1872a9bde7c5a1763d13acd9..d2286facb93bc13c9179d6895784b0cd458cf093 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sheevaplug.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 19ea3ed3e3edfed1b8354c5b0161609175fb8167..554a865d5fd94f2f8aa5d377317e9bcdd15e00a0 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o eccx.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3f92a9dc438ea241e4920f2a31f0e15ddd044583..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-/* XXX ?
-    . = env_offset;
-*/
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -86,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -128,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3f92a9dc438ea241e4920f2a31f0e15ddd044583..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-/* XXX ?
-    . = env_offset;
-*/
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -86,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -128,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 6bff2a800b838233e11d8291b7a0574390de4e72..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-/* XXX ?
-    . = env_offset;
-*/
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -86,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -128,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e426247c9083946807d87fe421a13350c733d9ba..5232e20680cbead0685134d1c762ed8032400b25 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2002
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
     . = env_offset;
     common/env_embedded.o      (.ppcenv)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +52,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +90,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
similarity index 64%
rename from board/barco/Makefile
rename to board/Seagate/dockstar/Makefile
index 5aa02d4a7f17a2319aea7376c4e5b9497aa352a5..bfcc6d939412dc9ad1fdf5ab3e31fcfa8d3ef8eb 100644 (file)
@@ -1,6 +1,10 @@
 #
-# (C) Copyright 2000-2006
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+# Copyright (C) 2010  Eric C. Cooper <ecc@cmu.edu>
+#
+# Based on sheevaplug/Makefile originally written by
+# Prafulla Wadaskar <prafulla@marvell.com>
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
 #
 # See file CREDITS for list of people who contributed to this
 # project.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
 #
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
-COBJS =  $(BOARD).o flash.o
+COBJS  := dockstar.o
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
+
+clean:
+       rm -f $(SOBJS) $(OBJS)
+
+distclean:     clean
+       rm -f $(LIB) core *.bak .depend
 
 #########################################################################
 
diff --git a/board/Seagate/dockstar/dockstar.c b/board/Seagate/dockstar/dockstar.c
new file mode 100644 (file)
index 0000000..cab3a83
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2010  Eric C. Cooper <ecc@cmu.edu>
+ *
+ * Based on sheevaplug.c originally written by
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <miiphy.h>
+#include <asm/arch/kirkwood.h>
+#include <asm/arch/mpp.h>
+#include "dockstar.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_early_init_f(void)
+{
+       /*
+        * default gpio configuration
+        * There are maximum 64 gpios controlled through 2 sets of registers
+        * the  below configuration configures mainly initial LED status
+        */
+       kw_config_gpio(DOCKSTAR_OE_VAL_LOW,
+                       DOCKSTAR_OE_VAL_HIGH,
+                       DOCKSTAR_OE_LOW, DOCKSTAR_OE_HIGH);
+
+       /* Multi-Purpose Pins Functionality configuration */
+       u32 kwmpp_config[] = {
+               MPP0_NF_IO2,
+               MPP1_NF_IO3,
+               MPP2_NF_IO4,
+               MPP3_NF_IO5,
+               MPP4_NF_IO6,
+               MPP5_NF_IO7,
+               MPP6_SYSRST_OUTn,
+               MPP7_GPO,
+               MPP8_UART0_RTS,
+               MPP9_UART0_CTS,
+               MPP10_UART0_TXD,
+               MPP11_UART0_RXD,
+               MPP12_SD_CLK,
+               MPP13_SD_CMD,
+               MPP14_SD_D0,
+               MPP15_SD_D1,
+               MPP16_SD_D2,
+               MPP17_SD_D3,
+               MPP18_NF_IO0,
+               MPP19_NF_IO1,
+               MPP20_GPIO,
+               MPP21_GPIO,
+               MPP22_GPIO,
+               MPP23_GPIO,
+               MPP24_GPIO,
+               MPP25_GPIO,
+               MPP26_GPIO,
+               MPP27_GPIO,
+               MPP28_GPIO,
+               MPP29_TSMP9,
+               MPP30_GPIO,
+               MPP31_GPIO,
+               MPP32_GPIO,
+               MPP33_GPIO,
+               MPP34_GPIO,
+               MPP35_GPIO,
+               MPP36_GPIO,
+               MPP37_GPIO,
+               MPP38_GPIO,
+               MPP39_GPIO,
+               MPP40_GPIO,
+               MPP41_GPIO,
+               MPP42_GPIO,
+               MPP43_GPIO,
+               MPP44_GPIO,
+               MPP45_GPIO,
+               MPP46_GPIO,
+               MPP47_GPIO,
+               MPP48_GPIO,
+               MPP49_GPIO,
+               0
+       };
+       kirkwood_mpp_conf(kwmpp_config);
+       return 0;
+}
+
+int board_init(void)
+{
+       /*
+        * arch number of board
+        */
+       gd->bd->bi_arch_number = MACH_TYPE_DOCKSTAR;
+
+       /* address of boot parameters */
+       gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
+       return 0;
+}
+
+#ifdef CONFIG_RESET_PHY_R
+/* Configure and enable MV88E1116 PHY */
+void reset_phy(void)
+{
+       u16 reg;
+       u16 devadr;
+       char *name = "egiga0";
+
+       if (miiphy_set_current_dev(name))
+               return;
+
+       /* command to read PHY dev address */
+       if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
+               printf("Err..%s could not read PHY dev address\n",
+                       __FUNCTION__);
+               return;
+       }
+
+       /*
+        * Enable RGMII delay on Tx and Rx for CPU port
+        * Ref: sec 4.7.2 of chip datasheet
+        */
+       miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
+       miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, &reg);
+       reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
+       miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
+       miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
+
+       /* reset the phy */
+       miiphy_reset(name, devadr);
+
+       printf("88E1116 Initialized on %s\n", name);
+}
+#endif /* CONFIG_RESET_PHY_R */
+
+#define GREEN_LED      (1 << 14)
+#define ORANGE_LED     (1 << 15)
+#define BOTH_LEDS      (GREEN_LED | ORANGE_LED)
+#define NEITHER_LED    0
+
+static void set_leds(u32 leds, u32 blinking)
+{
+       struct kwgpio_registers *r = (struct kwgpio_registers *)KW_GPIO1_BASE;
+       u32 oe = readl(&r->oe) | BOTH_LEDS;
+       writel(oe & ~leds, &r->oe);     /* active low */
+       u32 bl = readl(&r->blink_en) & ~BOTH_LEDS;
+       writel(bl | blinking, &r->blink_en);
+}
+
+void show_boot_progress(int val)
+{
+       switch (val) {
+       case 15:                /* booting Linux */
+               set_leds(BOTH_LEDS, NEITHER_LED);
+               break;
+       case 64:                /* Ethernet initialization */
+               set_leds(GREEN_LED, GREEN_LED);
+               break;
+       default:
+               if (val < 0)    /* error */
+                       set_leds(ORANGE_LED, ORANGE_LED);
+               break;
+       }
+}
diff --git a/board/Seagate/dockstar/dockstar.h b/board/Seagate/dockstar/dockstar.h
new file mode 100644 (file)
index 0000000..a2efe87
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010  Eric C. Cooper <ecc@cmu.edu>
+ *
+ * Based on sheevaplug.h originally written by
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef __DOCKSTAR_H
+#define __DOCKSTAR_H
+
+#define DOCKSTAR_OE_LOW                (~(0))
+#define DOCKSTAR_OE_HIGH               (~(0))
+#define DOCKSTAR_OE_VAL_LOW            (1 << 29)       /* USB_PWEN low */
+#define DOCKSTAR_OE_VAL_HIGH           (1 << 17)       /* LED pin high */
+
+/* PHY related */
+#define MV88E1116_LED_FCTRL_REG                10
+#define MV88E1116_CPRSP_CR3_REG                21
+#define MV88E1116_MAC_CTRL_REG         21
+#define MV88E1116_PGADR_REG            22
+#define MV88E1116_RGMII_TXTM_CTRL      (1 << 4)
+#define MV88E1116_RGMII_RXTM_CTRL      (1 << 5)
+
+#endif /* __DOCKSTAR_H */
diff --git a/board/Seagate/dockstar/kwbimage.cfg b/board/Seagate/dockstar/kwbimage.cfg
new file mode 100644 (file)
index 0000000..98b514d
--- /dev/null
@@ -0,0 +1,165 @@
+#
+# Copyright (C) 2010  Eric C. Cooper <ecc@cmu.edu>
+#
+# Based on sheevaplug/kwbimage.cfg originally written by
+# Prafulla Wadaskar <prafulla@marvell.com>
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+
+# Boot Media configurations
+BOOT_FROM      nand
+NAND_ECC_MODE  default
+NAND_PAGE_SIZE 0x0800
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0 interface pad voltage to 1.8V
+DATA 0xFFD100e0 0x1b1b1b9b
+
+#Dram initalization for SINGLE x16 CL=5 @ 400MHz
+DATA 0xFFD01400 0x43000c30     # DDR Configuration register
+# bit13-0:  0xc30 (3120 DDR2 clks refresh rate)
+# bit23-14: zero
+# bit24: 1= enable exit self refresh mode on DDR access
+# bit25: 1 required
+# bit29-26: zero
+# bit31-30: 01
+
+DATA 0xFFD01404 0x37543000     # DDR Controller Control Low
+# bit 4:    0=addr/cmd in smame cycle
+# bit 5:    0=clk is driven during self refresh, we don't care for APX
+# bit 6:    0=use recommended falling edge of clk for addr/cmd
+# bit14:    0=input buffer always powered up
+# bit18:    1=cpu lock transaction enabled
+# bit23-20: 5=recommended value for CL=5 and STARTBURST_DEL disabled bit31=0
+# bit27-24: 7= CL+2, STARTBURST sample stages, for freqs 400MHz, unbuffered DIMM
+# bit30-28: 3 required
+# bit31:    0=no additional STARTBURST delay
+
+DATA 0xFFD01408 0x22125451     # DDR Timing (Low) (active cycles value +1)
+# bit3-0:   TRAS lsbs
+# bit7-4:   TRCD
+# bit11- 8: TRP
+# bit15-12: TWR
+# bit19-16: TWTR
+# bit20:    TRAS msb
+# bit23-21: 0x0
+# bit27-24: TRRD
+# bit31-28: TRTP
+
+DATA 0xFFD0140C 0x00000a33     #  DDR Timing (High)
+# bit6-0:   TRFC
+# bit8-7:   TR2R
+# bit10-9:  TR2W
+# bit12-11: TW2W
+# bit31-13: zero required
+
+DATA 0xFFD01410 0x0000000d     #  DDR Address Control
+# bit1-0:   00, Cs0width=x8
+# bit3-2:   11, Cs0size=1Gb
+# bit5-4:   00, Cs1width=nonexistent
+# bit7-6:   00, Cs1size =nonexistent
+# bit9-8:   00, Cs2width=nonexistent
+# bit11-10: 00, Cs2size =nonexistent
+# bit13-12: 00, Cs3width=nonexistent
+# bit15-14: 00, Cs3size =nonexistent
+# bit16:    0,  Cs0AddrSel
+# bit17:    0,  Cs1AddrSel
+# bit18:    0,  Cs2AddrSel
+# bit19:    0,  Cs3AddrSel
+# bit31-20: 0 required
+
+DATA 0xFFD01414 0x00000000     #  DDR Open Pages Control
+# bit0:    0,  OpenPage enabled
+# bit31-1: 0 required
+
+DATA 0xFFD01418 0x00000000     #  DDR Operation
+# bit3-0:   0x0, DDR cmd
+# bit31-4:  0 required
+
+DATA 0xFFD0141C 0x00000C52     #  DDR Mode
+# bit2-0:   2, BurstLen=2 required
+# bit3:     0, BurstType=0 required
+# bit6-4:   4, CL=5
+# bit7:     0, TestMode=0 normal
+# bit8:     0, DLL reset=0 normal
+# bit11-9:  6, auto-precharge write recovery ????????????
+# bit12:    0, PD must be zero
+# bit31-13: 0 required
+
+DATA 0xFFD01420 0x00000040     #  DDR Extended Mode
+# bit0:    0,  DDR DLL enabled
+# bit1:    0,  DDR drive strenght normal
+# bit2:    0,  DDR ODT control lsd (disabled)
+# bit5-3:  000, required
+# bit6:    1,  DDR ODT control msb, (disabled)
+# bit9-7:  000, required
+# bit10:   0,  differential DQS enabled
+# bit11:   0, required
+# bit12:   0, DDR output buffer enabled
+# bit31-13: 0 required
+
+DATA 0xFFD01424 0x0000F17F     #  DDR Controller Control High
+# bit2-0:  111, required
+# bit3  :  1  , MBUS Burst Chop disabled
+# bit6-4:  111, required
+# bit7  :  0
+# bit8  :  1  , add writepath sample stage, must be 1 for DDR freq >= 300MHz
+# bit9  :  0  , no half clock cycle addition to dataout
+# bit10 :  0  , 1/4 clock cycle skew enabled for addr/ctl signals
+# bit11 :  0  , 1/4 clock cycle skew disabled for write mesh
+# bit15-12: 1111 required
+# bit31-16: 0    required
+
+DATA 0xFFD01428 0x00085520     # DDR2 ODT Read Timing (default values)
+DATA 0xFFD0147C 0x00008552     # DDR2 ODT Write Timing (default values)
+
+DATA 0xFFD01500 0x00000000     # CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x07FFFFF1     # CS[0]n Size
+# bit0:    1,  Window enabled
+# bit1:    0,  Write Protect disabled
+# bit3-2:  00, CS0 hit selected
+# bit23-4: ones, required
+# bit31-24: 0x07, Size (i.e. 128MB)
+
+DATA 0xFFD01508 0x10000000     # CS[1]n Base address to 256Mb
+DATA 0xFFD0150C 0x00000000     # CS[1]n Size, window disabled
+
+DATA 0xFFD01514 0x00000000     # CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000     # CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x00030000     #  DDR ODT Control (Low)
+DATA 0xFFD01498 0x00000000     #  DDR ODT Control (High)
+# bit1-0:  00, ODT0 controlled by ODT Control (low) register above
+# bit3-2:  01, ODT1 active NEVER!
+# bit31-4: zero, required
+
+DATA 0xFFD0149C 0x0000E803     # CPU ODT Control
+DATA 0xFFD01480 0x00000001     # DDR Initialization Control
+#bit0=1, enable DDR init upon this register write
+
+# End of Header extension
+DATA 0x0 0x0
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 442e2d0df25c1719bc48681008793e7f697ff541..d3c31d66797543031783cfe517f46caef6c3af96 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b7cc6e11d55294f9a705290af8c434427cc42e84..31e044b68f5ea93cfd92d559eca71f370f8ca050 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := actux1.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dd1d8d3ad0da759da6913993fdd583aecf8bd06c..88634f7fe2b278a763231008fa18e0edfe0827a7 100644 (file)
@@ -1,6 +1,6 @@
 CONFIG_SYS_TEXT_BASE = 0x00e00000
 
 # include NPE ethernet driver
-BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.a
+BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
 
 LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
index 5ef3bdaeabf2fbac08a5cdfb13e5b2040be54b0b..b026d94fe91e2a41ff35edc132def9f77daf800b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := actux2.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dd1d8d3ad0da759da6913993fdd583aecf8bd06c..88634f7fe2b278a763231008fa18e0edfe0827a7 100644 (file)
@@ -1,6 +1,6 @@
 CONFIG_SYS_TEXT_BASE = 0x00e00000
 
 # include NPE ethernet driver
-BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.a
+BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
 
 LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
index 2cd6d84a1756527fe1421c10349dc4fcb5e015ba..97317fbe1e54227d308d13aefd48c56b4e374644 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := actux3.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dd1d8d3ad0da759da6913993fdd583aecf8bd06c..88634f7fe2b278a763231008fa18e0edfe0827a7 100644 (file)
@@ -1,6 +1,6 @@
 CONFIG_SYS_TEXT_BASE = 0x00e00000
 
 # include NPE ethernet driver
-BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.a
+BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
 
 LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
index b82fc62e9eb4d7dae8223c69b50681600043010b..c631a5b213af5a8df043128defb85b7a3e85f492 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := actux4.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 09ae5890010b5cddb22e37d678f5256b664161ce..9cb838b7380ce75e86c3934bef50cd965ddc8be2 100644 (file)
@@ -1,4 +1,4 @@
 CONFIG_SYS_TEXT_BASE = 0x00e00000
 
 # include NPE ethernet driver
-BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.a
+BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
index 6b3706daaeea622debda670da175b2865375e0be..70205f1fb025b81c5bafc134a5691e90bebc8ca5 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dc6dd7ae66fa68fb323b859f00f83e0a1c50e40f..26c9a223587bb4a2c73154d1a0ea726f2ca8aa2a 100644 (file)
@@ -28,40 +28,14 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp        : { *(.interp)                }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt           : { *(.plt)           }
   .text          :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -69,23 +43,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -111,9 +81,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 73187fb70d8f7313c6df0f94b8abe55b134e9f33..895412d72dcb301168bbb0d3f67a171adec3d83d 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += afeb9260.o
 COBJS-y        += partition.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5297e81435708ede2b4ebef823d370b62e5291d0..d8aace2e0962b71be4357c1ad6ea94438c50b09d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d1fca70a0e321ca2d8351d280de75dfa523beff9..63863520b1aff051fc440b0ff965ee15cb495ceb 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_IDE) += ../common/cfide.o
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9abb29d85f262c461eec8f49c25250854a569a69..b2772870a944d87c9de14f0c6276df49822e3d29 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o cmd_acadia.o memory.o pll.o
 SOBJS  =
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0649799889c5b4cf069ac07b780ab0456c54f2a7..2e7dc39178c1be7ed120ec422b9ffb3d81f0144a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = init.o
@@ -32,8 +32,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e256b198d6918e5033ecd908d147876855231aac..c34bb62cc48b3da45b2a9a65308340003c90fd70 100644 (file)
@@ -26,34 +26,13 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/ppc4xx/start.o    (.text)
+    arch/powerpc/cpu/ppc4xx/start.o    (.text*)
+    board/amcc/bamboo/init.o           (.text*)
 
     /* Align to next NAND block */
     . = ALIGN(0x4000);
@@ -61,8 +40,7 @@ SECTIONS
     /* Keep some space here for redundant env and potential bad env blocks */
     . = ALIGN(0x10000);
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -70,9 +48,6 @@ SECTIONS
   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -80,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -122,9 +93,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 41751c870b397ebe1d66deaee52aa06ef2d8658e..642eda01a728e9cb8e6d86d70075efd8db65086f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 SOBJS  := init.o
@@ -33,8 +33,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1939d51688b5b9c3ceb07c47525578af88e53e91..9f63df15010591d4c0841e75a91dac413821e54e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 12f8a642e70490726d2d175f476e15134ab8a812..4d87ea9a786e1ae05552573042ab27f47d347c65 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -34,8 +34,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index faa3720df3f5f67d0f7365b2a522390320a8fe60..80e2739fe011218e7c09fda94e617c3cdf7971b0 100644 (file)
@@ -363,18 +363,6 @@ int checkboard(void)
 }
 #endif /* !defined(CONFIG_ARCHES) */
 
-#if defined(CONFIG_NAND_U_BOOT)
-/*
- * NAND booting U-Boot version uses a fixed initialization, since the whole
- * I2C SPD DIMM autodetection/calibration doesn't fit into the 4k of boot
- * code.
- */
-phys_size_t initdram(int board_type)
-{
-       return CONFIG_SYS_MBYTES_SDRAM << 20;
-}
-#endif
-
 #if defined(CONFIG_PCI)
 int board_pcie_first(void)
 {
index c71f0b7c0afa1bc4db3dbec2a69325bb14457eff..534d6ddf4c1f5237668c08158b0705009afe3bc7 100644 (file)
@@ -26,34 +26,13 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/powerpc/cpu/ppc4xx/start.o    (.text)
+    board/amcc/canyonlands/init.o      (.text*)
 
     /* Align to next NAND block */
     . = ALIGN(0x20000);
@@ -61,8 +40,7 @@ SECTIONS
     /* Keep some space here for redundant env and potential bad env blocks */
     . = ALIGN(0x80000);
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -70,9 +48,6 @@ SECTIONS
   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -80,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -122,9 +93,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 6ab1a26b15b5338d60a5cefc03b14b8b1567872a..b5d0fe56a7e534a48964841c25b81a821882567b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 168bab5d2f1cb39d91ed10fba8bf8ef54746fc64..466b1902e8c5e3606ec79f0d5ebb239fc343fd31 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 751e9f39fd4434547955446c321d59502f910a9b..726c3ce4f1b4ac85a3df4899f3af3aebdaf51a66 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -33,7 +33,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 6ab1a26b15b5338d60a5cefc03b14b8b1567872a..b5d0fe56a7e534a48964841c25b81a821882567b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dc3edc11aa863caa67a01ed9daab07370f55cae2..e10fadba254f0503b08f35af18498070a7159e8e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o cmd_pll.o
 SOBJS  = init.o
@@ -32,7 +32,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 6ab1a26b15b5338d60a5cefc03b14b8b1567872a..b5d0fe56a7e534a48964841c25b81a821882567b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5793307d6d107d559b87139d8a08bf345f39a510..875900118501e16d731829aebc9ea95ca602b395 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 8da3bd5114930536784641761381d37fb9527286..efe2065e4a50f25fc71f14375cd21c730f32f59e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        = $(BOARD).o sdram.o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -34,8 +34,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf4229a22e05077a79322e1d9d4522fae78b3a2f..f3855c4dd7dd2589e639bc94ee2922d5885ac8bc 100644 (file)
@@ -26,34 +26,13 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/powerpc/cpu/ppc4xx/start.o    (.text)
+    board/amcc/sequoia/init.o  (.text*)
 
     /* Align to next NAND block */
     . = ALIGN(0x4000);
@@ -61,8 +40,7 @@ SECTIONS
     /* Keep some space here for redundant env and potential bad env blocks */
     . = ALIGN(0x10000);
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -70,9 +48,6 @@ SECTIONS
   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -80,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -122,9 +93,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 63e87c98863b6c1042b0c980c03015f9a18ca251..ba76a779206334f33bc1e1e2286c36cca46dbf47 100644 (file)
@@ -26,34 +26,12 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/ppc4xx/start.o    (.text)
+    arch/powerpc/cpu/ppc4xx/start.o    (.text*)
+    board/amcc/sequoia/init.o          (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -61,9 +39,6 @@ SECTIONS
   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -71,23 +46,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -113,9 +84,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 0b9f970ead324ffef9128021765b37db691e10f0..9b2e7e4b032c816357c9cf07c1dd5bad2002cb2b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o lcd.o update.o
 
@@ -31,7 +31,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 9d20e0f6bfbc5142b7c6a3e57eac3bab646bb7d3..099cf9d6bb494c7a9c91af4dcd75aef4a26cf8b5 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o lcd.o update.o showinfo.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1939d51688b5b9c3ceb07c47525578af88e53e91..9f63df15010591d4c0841e75a91dac413821e54e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b93f2c3890ef77b66ed5f5a3afa2365c1501963b..5b0ffc29209a37d33567d66b67750008bba7309d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0ff522c31cf496a1daaee1f6f05d6c2d390c81cd..d9fb7134d780e554da82784ddeaa4ae89c8990d1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o cmd_yucca.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d0729348a977710cf235da41c66ad2b26ce83dd5..fe7a6a2144f800e3d86c8e49daac6744a9771a99 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o serial.o pci.o powerspan.o
 SOBJS  = init.o
@@ -32,8 +32,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index bebcded619431371af49b5f331651717ccaff6e1..356d019976005bba2b84a02877e5f729f20b7af7 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/powerpc/cpu/ppc4xx/start.o    (.text)
-    board/amirix/ap1000/init.o (.text)
-    arch/powerpc/cpu/ppc4xx/kgdb.o     (.text)
-    arch/powerpc/cpu/ppc4xx/traps.o    (.text)
-    arch/powerpc/cpu/ppc4xx/interrupts.o       (.text)
-    arch/powerpc/cpu/ppc4xx/4xx_uart.o (.text)
-    arch/powerpc/cpu/ppc4xx/cpu_init.o (.text)
-    arch/powerpc/cpu/ppc4xx/speed.o    (.text)
-    common/dlmalloc.o  (.text)
-    lib/crc32.o                (.text)
-    arch/powerpc/lib/extable.o (.text)
-    lib/zlib.o         (.text)
-
-/*    . = env_offset;*/
-/*    common/env_embedded.o(.text)*/
-
-    *(.text)
-    *(.got1)
+    board/amirix/ap1000/init.o         (.text)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -91,23 +49,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -131,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index f20de3c938130c4e7528e365c94c0e3cdb136769..ce41efc98a662c26502db6f56958337c2b441aec 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := apollon.o mem.o sys_info.o
 SOBJS  := lowlevel_init.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b18e42bff30c707cdc938eea2af6ada9a205da90..3b524524f9c08d164977d0dcc8e696f1d9171c6c 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := armadillo.o flash.o
 SOBJS  := lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 14d64b7e88d7feaac1ba10061a89bf96f7064c81..c452631337f67f69eb13de048b7f05fcc48c7cc8 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS-y        := lowlevel_init.o
 
@@ -40,7 +40,7 @@ COBJS := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(COBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(COBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(COBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(COBJS)
index 80a2c7e21ceba2101b0f689a4fdfa69f3d8d2c0e..347032847824a112166a09986c23ee3179958e04 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := versatile.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ee5c0d87ac0673c4ce1524e07854d7e50e07fbbd..49c4b81e6d70e2b4105cf5b22aa5314317db8b97 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ca9x4_ct_vxp.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 48dfc8c4358abb47a7ec4dd0749525bf84494970..ce1be1e7665c39b5ca6d9bbf607bc78ee820697a 100644 (file)
@@ -95,16 +95,19 @@ static void flash__init(void)
 
 int dram_init(void)
 {
-       gd->ram_size = get_ram_size(CONFIG_SYS_SDRAM_BASE, PHYS_SDRAM_1_SIZE);
+       gd->ram_size =
+               get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, PHYS_SDRAM_1_SIZE);
        return 0;
 }
 
 void dram_init_banksize(void)
 {
        gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-       gd->bd->bi_dram[0].size = get_ram_size(PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
+       gd->bd->bi_dram[0].size =
+                       get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
        gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
-       gd->bd->bi_dram[1].size = get_ram_size(PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE);
+       gd->bd->bi_dram[1].size =
+                       get_ram_size((long *)PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE);
 }
 
 int timer_init(void)
@@ -154,7 +157,7 @@ void reset_cpu(ulong addr)
  * Delay x useconds AND perserve advance timstamp value
  *     assumes timer is ticking at 1 msec
  */
-void udelay(ulong usec)
+void __udelay(ulong usec)
 {
        ulong tmo, tmp;
 
index 2d797d7151ca6fe6feb045866adaadbf7b376688..36395f22e538f66baea74e2b4b70db7198cf6328 100644 (file)
@@ -19,5 +19,4 @@
 #
 # Linux-Kernel is expected to be at 0x60008000
 #
-TEXT_BASE = 0x60800000
-LDSCRIPT := $(SRCTREE)/board/armltd/vexpress/u-boot.lds
+CONFIG_SYS_TEXT_BASE = 0x60800000
diff --git a/board/armltd/vexpress/u-boot.lds b/board/armltd/vexpress/u-boot.lds
deleted file mode 100644 (file)
index 5ac62f2..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * (C) Copyright 2002
- * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-SECTIONS
-{
-       . = 0x00000000;
-       . = ALIGN(4);
-       .text   :
-       {
-               arch/arm/cpu/armv7/start.o      (.text)
-               *(.text)
-       }
-
-       . = ALIGN(4);
-       .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata))) }
-
-       . = ALIGN(4);
-       .data : { *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
-       }
-
-       __got_start = .;
-       . = ALIGN(4);
-       .got : { *(.got) }
-       __got_end = .;
-
-       . = .;
-       __u_boot_cmd_start = .;
-       .u_boot_cmd : { *(.u_boot_cmd) }
-       __u_boot_cmd_end = .;
-
-       . = ALIGN(4);
-       __bss_start = .;
-       .bss : { *(.bss) }
-       _end = .;
-}
index 03f0762a3bd41c77e91b7d0783917b7f999d692f..b3cf4aa01c1c2619db40d98f4e46be7137f4381b 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := assabet.o
 SOBJS  := setup.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c7a1d055187358b741a8deef6b2e1f56a8e5713c..d44a260e1e44992488dedc5359dd2f95d3dcf55c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o fpga.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4b9cd7b8209973070647206681ef1d26c68f5381..bbfb28c83dc608367cb4d2bb42a5f2db7c7ba84f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ti113x.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 473bb10af774a9fee7a949f036700bf8a66b22cf..ff871f64f972a2c59b892634848028f482392d49 100644 (file)
@@ -468,7 +468,7 @@ static int i365_set_io_map (socket_info_t * s, struct pccard_io_map *io)
 
 /*====================================================================*/
 
-int i82365_init (void)
+static int i82365_init (void)
 {
        u_int val;
        int i;
@@ -545,7 +545,7 @@ int i82365_init (void)
        return 0;
 }
 
-void i82365_exit (void)
+static void i82365_exit (void)
 {
        io.map = 0;
        io.flags = 0;
index 2496f9bd48a227babb6e88c4d82a168fab3512a4..2eec0ce23146f1360486978f3c371c4e589a67bd 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += at91cap9adk.o
 COBJS-y        += led.o
@@ -38,7 +38,7 @@ OBJS    := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 79d41d6a73ac6cd7f489cb6c01fdf00d803ee141..bc3dbc609d9575f21e49d1f219bf842f3243b0c6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-y += flash.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 96a0f055ac0f476974e5ea57e6ab393f4a283add..f64e5957333d34bb7d8276a5cf592a894e707462 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-y += led.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
diff --git a/board/atmel/at91rm9200ek/config.mk b/board/atmel/at91rm9200ek/config.mk
deleted file mode 100644 (file)
index c7323fe..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# currently only NOR flash booting is supported
-CONFIG_SYS_TEXT_BASE = 0x10000000
index aaa324062a93a01d15b67bd49e925296866f341a..1fd85297985096c41cbf874a9a077243041c4d22 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += at91sam9260ek.o
 COBJS-y        += led.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d9b3a79536fae9df0480852fb943ca7225456b42..9d20ba02ea0722118f66feb3fd14ba534811e196 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += at91sam9261ek.o
 COBJS-y += led.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 79ec45fd9f95447653261a0a80f08992d09e237b..e43326e4ae8e8272205097615153940f9f39eda7 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += at91sam9263ek.o
 COBJS-y += led.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4caf1e416dc58a2099f50f64849ad5e23452fc97..7aa2521e439a7a3d22961a7146f24a7ec4dad93b 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += at91sam9m10g45ek.o
 COBJS-y += led.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 92a5a2b9883f518b25a5a9705e3488289d614130..234aeb611bf2692c9ecb5e9d6b889b253c933d5c 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += at91sam9rlek.o
 COBJS-y += led.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9f3849feaf28acebbe2f32dade580bda249a74c2..7fbd20d002ea5b15b4c7467c7afec3ff736a5f94 100644 (file)
@@ -20,7 +20,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(BOARD).a
+LIB    := $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -28,7 +28,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f9b26e5d3bcd1861bd7b66375e2ddd7e39c45f65..ae47396970774718a34001470479e0682b1d0b53 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB                    := $(obj)lib$(BOARD).a
+LIB                    := $(obj)lib$(BOARD).o
 
 COBJS-y                        += $(BOARD).o
 COBJS-y                        += flash.o
@@ -33,7 +33,7 @@ SRCS                  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS                   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b99130819107b4de59f5801e7fe3400dbbd4115f..0bb9ec86ececd0c03cd154c352c03103f8f5a843 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -39,7 +39,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 7db615e943b2f23a3f758ed19d1bbc0a51aa32a9..29e79150f934cc9c15d42f2544c122e70137c3ef 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := balloon3.o
 
@@ -29,7 +29,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
diff --git a/board/barco/README b/board/barco/README
deleted file mode 100644 (file)
index d255a3d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-This port of U-Boot is tuned to run on a range of Barco Control Rooms
-Streaming Video Solutions, including:
-
-   - Streaming Video Card (SVC)
-   - Sample Compress Network (SCN)
-
-For more information, see http://www.barcocontrolrooms.com/
-
-Code and configuration are originally based on the Sandpoint board
-
-Marc Leeman <marc.leeman@barco.com>
diff --git a/board/barco/barco.c b/board/barco/barco.c
deleted file mode 100644 (file)
index 263a288..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/********************************************************************
- *
- * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms
- *
- * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/barco.c,v $
- * $Revision: 1.4 $
- * $Author: mleeman $
- * $Date: 2005/03/02 16:40:20 $
- *
- * Last ChangeLog Entry
- * $Log: barco.c,v $
- * Revision 1.4  2005/03/02 16:40:20  mleeman
- * remove empty labels (3.4 complains)
- *
- * Revision 1.3  2005/02/21 12:48:58  mleeman
- * update of copyright years (feedback wd)
- *
- * Revision 1.2  2005/02/21 10:10:53  mleeman
- * - split up switch statement to a function call (Linux kernel coding guidelines)
- *   ( feedback wd)
- *
- * Revision 1.1  2005/02/14 09:31:07  mleeman
- * renaming of files
- *
- * Revision 1.1  2005/02/14 09:23:46  mleeman
- * - moved 'barcohydra' directory to a more generic barco; since we will be
- *   supporting and adding multiple boards
- *
- * Revision 1.3  2005/02/10 13:57:32  mleeman
- * fixed flash corruption: I should exit from the moment I find the correct value
- *
- * Revision 1.2  2005/02/09 12:56:23  mleeman
- * add generic header to track changes in sources
- *
- *
- *******************************************************************/
-
-/*
- * (C) Copyright 2004
- * Marc Leeman <marc.leeman@barco.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <mpc824x.h>
-#include <pci.h>
-#include <malloc.h>
-#include <command.h>
-
-#include "config.h"
-#include "barco_svc.h"
-
-#define TRY_WORKING  (3)
-#define BOOT_DEFAULT (2)
-#define BOOT_WORKING (1)
-
-int checkboard (void)
-{
-       /*TODO: Check processor type */
-
-       puts (  "Board: Streaming Video Card for Hydra systems "
-#ifdef CONFIG_MPC8240
-               "8240"
-#endif
-#ifdef CONFIG_MPC8245
-               "8245"
-#endif
-               " Unity ##Test not implemented yet##\n");
-       return 0;
-}
-
-phys_size_t initdram (int board_type)
-{
-       long size;
-       long new_bank0_end;
-       long mear1;
-       long emear1;
-
-       size = get_ram_size (CONFIG_SYS_SDRAM_BASE, CONFIG_SYS_MAX_RAM_SIZE);
-
-       new_bank0_end = size - 1;
-       mear1 = mpc824x_mpc107_getreg (MEAR1);
-       emear1 = mpc824x_mpc107_getreg (EMEAR1);
-       mear1 = (mear1  & 0xFFFFFF00) |
-               ((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT);
-       emear1 = (emear1 & 0xFFFFFF00) |
-               ((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT);
-       mpc824x_mpc107_setreg (MEAR1, mear1);
-       mpc824x_mpc107_setreg (EMEAR1, emear1);
-
-       return (size);
-}
-
-/*
- * Initialize PCI Devices, report devices found.
- */
-#ifndef CONFIG_PCI_PNP
-static struct pci_config_table pci_barcohydra_config_table[] = {
-       { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x0f, PCI_ANY_ID,
-         pci_cfgfunc_config_device, { PCI_ENET0_IOADDR,
-                                      PCI_ENET0_MEMADDR,
-                                      PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER } },
-       { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x10, PCI_ANY_ID,
-         pci_cfgfunc_config_device, { PCI_ENET1_IOADDR,
-                                      PCI_ENET1_MEMADDR,
-                                      PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER } },
-       { }
-};
-#endif
-
-struct pci_controller hose = {
-#ifndef CONFIG_PCI_PNP
-       config_table: pci_barcohydra_config_table,
-#endif
-};
-
-void pci_init_board (void)
-{
-       pci_mpc824x_init (&hose);
-}
-
-int write_flash (char *addr, char value)
-{
-       char *adr = (char *)0xFF800000;
-       int cnt = 0;
-       char status,oldstatus;
-
-       *(adr+0x55) = 0xAA; udelay (1);
-       *(adr+0xAA) = 0x55; udelay (1);
-       *(adr+0x55) = 0xA0; udelay (1);
-       *addr = value;
-
-       status = *addr;
-       do {
-               oldstatus = status;
-               status = *addr;
-
-               if ((oldstatus & 0x40) == (status & 0x40)) {
-                       return 4;
-               }
-               cnt++;
-               if (cnt > 10000) {
-                       return 2;
-               }
-       } while ( (status & 0x20) == 0 );
-
-       oldstatus = *addr;
-       status = *addr;
-
-       if ((oldstatus & 0x40) == (status & 0x40)) {
-               return 0;
-       } else {
-               *(adr+0x55) = 0xF0;
-               return 1;
-       }
-}
-
-unsigned update_flash (unsigned char *buf)
-{
-       switch ((*buf) & 0x3) {
-       case TRY_WORKING:
-               printf ("found 3 and converted it to 2\n");
-               write_flash ((char *)buf, (*buf) & 0xFE);
-               *((unsigned char *)0xFF800000) = 0xF0;
-               udelay (100);
-               printf ("buf [%#010x] %#010x\n", (unsigned)buf, (*buf));
-               /* XXX - fall through??? */
-       case BOOT_WORKING :
-               return BOOT_WORKING;
-       }
-       return BOOT_DEFAULT;
-}
-
-unsigned scan_flash (void)
-{
-       char section[] =  "kernel";
-       int cfgFileLen  =  (CONFIG_SYS_FLASH_ERASE_SECTOR_LENGTH >> 1);
-       int sectionPtr  = 0;
-       int foundItem   = 0; /* 0: None, 1: section found, 2: "=" found */
-       int bufPtr;
-       unsigned char *buf;
-
-       buf = (unsigned char*)(CONFIG_SYS_FLASH_RANGE_BASE + CONFIG_SYS_FLASH_RANGE_SIZE \
-                       - CONFIG_SYS_FLASH_ERASE_SECTOR_LENGTH);
-       for (bufPtr = 0; bufPtr < cfgFileLen; ++bufPtr) {
-               if ((buf[bufPtr]==0xFF) && (*(int*)(buf+bufPtr)==0xFFFFFFFF)) {
-                       return BOOT_DEFAULT;
-               }
-               /* This is the scanning loop, we try to find a particular
-                * quoted value
-                */
-               switch (foundItem) {
-               case 0:
-                       if ((section[sectionPtr] == 0)) {
-                               ++foundItem;
-                       } else if (buf[bufPtr] == section[sectionPtr]) {
-                               ++sectionPtr;
-                       } else {
-                               sectionPtr = 0;
-                       }
-                       break;
-               case 1:
-                       ++foundItem;
-                       break;
-               case 2:
-                       ++foundItem;
-                       break;
-               case 3:
-               default:
-                       return update_flash (&buf[bufPtr - 1]);
-               }
-       }
-
-       printf ("Failed to read %s\n",section);
-       return BOOT_DEFAULT;
-}
-
-TSBootInfo* find_boot_info (void)
-{
-       unsigned bootimage = scan_flash ();
-       TSBootInfo* info = (TSBootInfo*)malloc (sizeof(TSBootInfo));
-
-       switch (bootimage) {
-       case TRY_WORKING:
-               info->address = CONFIG_SYS_WORKING_KERNEL_ADDRESS;
-               break;
-       case BOOT_WORKING :
-               info->address = CONFIG_SYS_WORKING_KERNEL_ADDRESS;
-               break;
-       case BOOT_DEFAULT:
-       default:
-               info->address= CONFIG_SYS_DEFAULT_KERNEL_ADDRESS;
-
-       }
-       info->size = *((unsigned int *)(info->address ));
-
-       return info;
-}
-
-void barcobcd_boot (void)
-{
-       TSBootInfo* start;
-       char *bootm_args[2];
-       char *buf;
-       int cnt;
-       extern int do_bootm (cmd_tbl_t *, int, int, char *[]);
-
-       buf = (char *)(0x00800000);
-       /* make certain there are enough chars to print the command line here!
-        */
-       bootm_args[0] = (char *)malloc (16*sizeof(char));
-       bootm_args[1] = (char *)malloc (16*sizeof(char));
-
-       start = find_boot_info ();
-
-       printf ("Booting kernel at address %#10x with size %#10x\n",
-                       start->address, start->size);
-
-       /* give length of the kernel image to bootm */
-       sprintf (bootm_args[0],"%x",start->size);
-       /* give address of the kernel image to bootm */
-       sprintf (bootm_args[1],"%x",(unsigned)buf);
-
-       printf ("flash address: %#10x\n",start->address+8);
-       printf ("buf address: %#10x\n",(unsigned)buf);
-
-       /* aha, we reserve 8 bytes here... */
-       for (cnt = 0; cnt < start->size ; cnt++) {
-               buf[cnt] = ((char *)start->address)[cnt+8];
-       }
-
-       /* initialise RAM memory */
-       *((unsigned int *)0xFEC00000) = 0x00141A98;
-       do_bootm (NULL,0,2,bootm_args);
-}
-
-int barcobcd_boot_image (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
-{
-       barcobcd_boot ();
-
-       return 0;
-}
-
-/* Currently, boot_working and boot_default are the same command. This is
- * left in here to see what we'll do in the future */
-
-U_BOOT_CMD (
-               try_working, 1, 1, barcobcd_boot_image,
-               "check flash value and boot the appropriate image",
-               ""
-         );
-
-U_BOOT_CMD (
-               boot_working, 1, 1, barcobcd_boot_image,
-               "check flash value and boot the appropriate image",
-               ""
-         );
-
-U_BOOT_CMD (
-               boot_default, 1, 1, barcobcd_boot_image,
-               "check flash value and boot the appropriate image",
-               ""
-         );
-/*
- * We are not using serial communication, so just provide empty functions
- */
-int serial_init (void)
-{
-       return 0;
-}
-void serial_setbrg (void)
-{
-       return;
-}
-void serial_putc (const char c)
-{
-       return;
-}
-void serial_puts (const char *c)
-{
-       return;
-}
-int serial_getc (void)
-{
-       return 0;
-}
-int serial_tstc (void)
-{
-       return 0;
-}
diff --git a/board/barco/barco_svc.h b/board/barco/barco_svc.h
deleted file mode 100644 (file)
index e103260..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/********************************************************************
- *
- * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms
- *
- * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/barco_svc.h,v $
- * $Revision: 1.2 $
- * $Author: mleeman $
- * $Date: 2005/02/21 12:48:58 $
- *
- * Last ChangeLog Entry
- * $Log: barco_svc.h,v $
- * Revision 1.2  2005/02/21 12:48:58  mleeman
- * update of copyright years (feedback wd)
- *
- * Revision 1.1  2005/02/14 09:31:07  mleeman
- * renaming of files
- *
- * Revision 1.1  2005/02/14 09:23:46  mleeman
- * - moved 'barcohydra' directory to a more generic barco; since we will be
- *   supporting and adding multiple boards
- *
- * Revision 1.1  2005/02/08 15:40:19  mleeman
- * modified and added platform files
- *
- * Revision 1.2  2005/01/25 08:05:04  mleeman
- * more cleanup of the code
- *
- * Revision 1.1  2004/07/20 08:49:55  mleeman
- * Working version of the default and nfs kernel booting.
- *
- *
- *******************************************************************/
-
-#ifndef _LOCAL_BARCOHYDRA_H_
-#define _LOCAL_BARCOHYDRA_H_
-
-#include <flash.h>
-#include <asm/io.h>
-
-/* Defines for the barcohydra board */
-#ifndef CONFIG_SYS_FLASH_ERASE_SECTOR_LENGTH
-#define CONFIG_SYS_FLASH_ERASE_SECTOR_LENGTH (0x10000)
-#endif
-
-#ifndef CONFIG_SYS_DEFAULT_KERNEL_ADDRESS
-#define CONFIG_SYS_DEFAULT_KERNEL_ADDRESS (CONFIG_SYS_FLASH_BASE + 0x30000)
-#endif
-
-#ifndef CONFIG_SYS_WORKING_KERNEL_ADDRESS
-#define CONFIG_SYS_WORKING_KERNEL_ADDRESS (0xFFE00000)
-#endif
-
-
-typedef struct SBootInfo {
-       unsigned int address;
-       unsigned int size;
-       unsigned char state;
-}TSBootInfo;
-
-/* barcohydra.c */
-int checkboard(void);
-phys_size_t initdram(int board_type);
-void pci_init_board(void);
-void check_flash(void);
-int write_flash(char *addr, char value);
-TSBootInfo* find_boot_info(void);
-void final_boot(void);
-#endif
diff --git a/board/barco/early_init.S b/board/barco/early_init.S
deleted file mode 100644 (file)
index 61b4b55..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * (C) Copyright 2001
- * Thomas Koeller, tkoeller@gmx.net
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef        __ASSEMBLY__
-#define __ASSEMBLY__   1
-#endif
-
-#include <asm-offsets.h>
-#include <config.h>
-#include <asm/processor.h>
-#include <mpc824x.h>
-#include <ppc_asm.tmpl>
-
-#if defined(USE_DINK32)
-  /* We are running from RAM, so do not clear the MCCR1_MEMGO bit! */
-  #define MCCR1VAL ((CONFIG_SYS_ROMNAL << MCCR1_ROMNAL_SHIFT) | (CONFIG_SYS_ROMFAL << MCCR1_ROMFAL_SHIFT) | MCCR1_MEMGO)
-#else
-  #define MCCR1VAL (CONFIG_SYS_ROMNAL << MCCR1_ROMNAL_SHIFT) | (CONFIG_SYS_ROMFAL << MCCR1_ROMFAL_SHIFT)
-#endif
-
-       .text
-
-       /* Values to program into memory controller registers */
-tbl:   .long   MCCR1, MCCR1VAL
-       .long   MCCR2, CONFIG_SYS_REFINT << MCCR2_REFINT_SHIFT
-       .long   MCCR3
-       .long   (((CONFIG_SYS_BSTOPRE & 0x000000f0) >> 4) << MCCR3_BSTOPRE2TO5_SHIFT) | \
-               (CONFIG_SYS_REFREC << MCCR3_REFREC_SHIFT) | \
-               (CONFIG_SYS_RDLAT  << MCCR3_RDLAT_SHIFT)
-       .long   MCCR4
-       .long   (CONFIG_SYS_PRETOACT << MCCR4_PRETOACT_SHIFT) | (CONFIG_SYS_ACTTOPRE << MCCR4_ACTTOPRE_SHIFT) | \
-               (CONFIG_SYS_REGISTERD_TYPE_BUFFER << 20) | \
-               (((CONFIG_SYS_BSTOPRE & 0x00000300) >> 8) << MCCR4_BSTOPRE0TO1_SHIFT ) | \
-               ((CONFIG_SYS_SDMODE_CAS_LAT << 4) | (CONFIG_SYS_SDMODE_WRAP << 3) | \
-               (CONFIG_SYS_SDMODE_BURSTLEN) << MCCR4_SDMODE_SHIFT) | \
-               (CONFIG_SYS_ACTTORW << MCCR4_ACTTORW_SHIFT) | \
-               ((CONFIG_SYS_BSTOPRE & 0x0000000f) << MCCR4_BSTOPRE6TO9_SHIFT )
-       .long   MSAR1
-       .long   (((CONFIG_SYS_BANK0_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK1_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK2_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK3_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
-       .long   EMSAR1
-       .long   (((CONFIG_SYS_BANK0_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK1_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK2_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK3_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
-       .long   MSAR2
-       .long   (((CONFIG_SYS_BANK4_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK5_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK6_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK7_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
-       .long   EMSAR2
-       .long   (((CONFIG_SYS_BANK4_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK5_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK6_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK7_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
-       .long   MEAR1
-       .long   (((CONFIG_SYS_BANK0_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK1_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK2_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK3_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
-       .long   EMEAR1
-       .long   (((CONFIG_SYS_BANK0_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK1_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK2_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK3_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
-       .long   MEAR2
-       .long   (((CONFIG_SYS_BANK4_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK5_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK6_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK7_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
-       .long   EMEAR2
-       .long   (((CONFIG_SYS_BANK4_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  0) | \
-               (((CONFIG_SYS_BANK5_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) <<  8) | \
-               (((CONFIG_SYS_BANK6_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
-               (((CONFIG_SYS_BANK7_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
-       .long   0
-
-
-       /*
-        * Early CPU initialization. Set up memory controller, so we can access any RAM at all. This
-        * must be done in assembly, since we have no stack at this point.
-        */
-       .global early_init_f
-early_init_f:
-       mflr    r10
-
-       /* basic memory controller configuration */
-       lis     r3, CONFIG_ADDR_HIGH
-       lis     r4, CONFIG_DATA_HIGH
-       bl      lab
-lab:   mflr    r5
-       lwzu    r0, tbl - lab(r5)
-loop:  lwz     r1, 4(r5)
-       stwbrx  r0, 0, r3
-       eieio
-       stwbrx  r1, 0, r4
-       eieio
-       lwzu    r0, 8(r5)
-       cmpli   cr0, 0, r0, 0
-       bne     cr0, loop
-
-       /* set bank enable bits */
-       lis     r0, MBER@h
-       ori     r0, 0, MBER@l
-       li      r1, CONFIG_SYS_BANK_ENABLE
-       stwbrx  r0, 0, r3
-       eieio
-       stb     r1, 0(r4)
-       eieio
-
-       /* delay loop */
-       lis     r0, 0x0003
-       mtctr   r0
-delay: bdnz    delay
-
-       /* enable memory controller */
-       lis     r0, MCCR1@h
-       ori     r0, 0, MCCR1@l
-       stwbrx  r0, 0, r3
-       eieio
-       lwbrx   r0, 0, r4
-       oris    r0, 0, MCCR1_MEMGO@h
-       stwbrx  r0, 0, r4
-       eieio
-
-       /* set up stack pointer */
-       lis     r1, CONFIG_SYS_INIT_SP_OFFSET@h
-       ori     r1, r1, CONFIG_SYS_INIT_SP_OFFSET@l
-
-       mtlr    r10
-       blr
diff --git a/board/barco/flash.c b/board/barco/flash.c
deleted file mode 100644 (file)
index c9efb15..0000000
+++ /dev/null
@@ -1,611 +0,0 @@
-/********************************************************************
- *
- * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms
- *
- * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/flash.c,v $
- * $Revision: 1.3 $
- * $Author: mleeman $
- * $Date: 2005/02/21 12:48:58 $
- *
- * Last ChangeLog Entry
- * $Log: flash.c,v $
- * Revision 1.3  2005/02/21 12:48:58  mleeman
- * update of copyright years (feedback wd)
- *
- * Revision 1.2  2005/02/21 11:04:04  mleeman
- * remove dead code and Coding style (feedback wd)
- *
- * Revision 1.1  2005/02/14 09:23:46  mleeman
- * - moved 'barcohydra' directory to a more generic barco; since we will be
- *   supporting and adding multiple boards
- *
- * Revision 1.2  2005/02/09 12:56:23  mleeman
- * add generic header to track changes in sources
- *
- *
- *******************************************************************/
-
-/*
- * (C) Copyright 2000
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <mpc824x.h>
-#include <asm/processor.h>
-#include <flash.h>
-
-#define ROM_CS0_START  0xFF800000
-#define ROM_CS1_START  0xFF000000
-
-flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips    */
-
-#if defined(CONFIG_ENV_IS_IN_FLASH)
-# ifndef  CONFIG_ENV_ADDR
-#  define CONFIG_ENV_ADDR  (CONFIG_SYS_FLASH_BASE + CONFIG_ENV_OFFSET)
-# endif
-# ifndef  CONFIG_ENV_SIZE
-#  define CONFIG_ENV_SIZE  CONFIG_ENV_SECT_SIZE
-# endif
-# ifndef  CONFIG_ENV_SECT_SIZE
-#  define CONFIG_ENV_SECT_SIZE  CONFIG_ENV_SIZE
-# endif
-#endif
-
-/*-----------------------------------------------------------------------
- * Functions
- */
-static int write_word (flash_info_t *info, ulong dest, ulong data);
-
-/*flash command address offsets*/
-
-#define ADDR0          (0xAAA)
-#define ADDR1          (0x555)
-#define ADDR3          (0x001)
-
-#define FLASH_WORD_SIZE unsigned char
-
-/*-----------------------------------------------------------------------
- */
-
-static unsigned long flash_id(unsigned char mfct, unsigned char chip) __attribute__ ((const));
-
-typedef struct{
-  FLASH_WORD_SIZE extval;
-  unsigned short intval;
-} map_entry;
-
-static unsigned long flash_id(unsigned char mfct, unsigned char chip)
-{
-       static const map_entry mfct_map[] = {
-               {(FLASH_WORD_SIZE) AMD_MANUFACT,        (unsigned short) ((unsigned long) FLASH_MAN_AMD >> 16)},
-               {(FLASH_WORD_SIZE) FUJ_MANUFACT,        (unsigned short) ((unsigned long) FLASH_MAN_FUJ >> 16)},
-               {(FLASH_WORD_SIZE) STM_MANUFACT,        (unsigned short) ((unsigned long) FLASH_MAN_STM >> 16)},
-               {(FLASH_WORD_SIZE) MT_MANUFACT, (unsigned short) ((unsigned long) FLASH_MAN_MT >> 16)},
-               {(FLASH_WORD_SIZE) INTEL_MANUFACT,(unsigned short) ((unsigned long) FLASH_MAN_INTEL >> 16)},
-               {(FLASH_WORD_SIZE) INTEL_ALT_MANU,(unsigned short) ((unsigned long) FLASH_MAN_INTEL >> 16)}
-       };
-
-       static const map_entry chip_map[] = {
-               {AMD_ID_F040B,  FLASH_AM040},
-               {AMD_ID_F033C,  FLASH_AM033},
-               {AMD_ID_F065D,  FLASH_AM065},
-               {ATM_ID_LV040,  FLASH_AT040},
-               {(FLASH_WORD_SIZE) STM_ID_x800AB,       FLASH_STM800AB}
-       };
-
-       const map_entry *p;
-       unsigned long result = FLASH_UNKNOWN;
-
-       /* find chip id */
-       for(p = &chip_map[0]; p < &chip_map[sizeof chip_map / sizeof chip_map[0]]; p++){
-               if(p->extval == chip){
-                       result = FLASH_VENDMASK | p->intval;
-                       break;
-               }
-       }
-
-       /* find vendor id */
-       for(p = &mfct_map[0]; p < &mfct_map[sizeof mfct_map / sizeof mfct_map[0]]; p++){
-               if(p->extval == mfct){
-                       result &= ~FLASH_VENDMASK;
-                       result |= (unsigned long) p->intval << 16;
-                       break;
-               }
-       }
-
-       return result;
-}
-
-
-unsigned long flash_init(void)
-{
-       unsigned long i;
-       unsigned char j;
-       static const ulong flash_banks[] = CONFIG_SYS_FLASH_BANKS;
-
-       /* Init: no FLASHes known */
-       for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++){
-               flash_info_t * const pflinfo = &flash_info[i];
-               pflinfo->flash_id = FLASH_UNKNOWN;
-               pflinfo->size = 0;
-               pflinfo->sector_count = 0;
-       }
-
-       /* Enable writes to Hydra/Argus flash */
-       {
-               register unsigned int temp;
-               CONFIG_READ_WORD(PICR1,temp);
-               temp |= PICR1_FLASH_WR_EN;
-               CONFIG_WRITE_WORD(PICR1,temp);
-       }
-
-       for(i = 0; i < sizeof flash_banks / sizeof flash_banks[0]; i++){
-               flash_info_t * const pflinfo = &flash_info[i];
-               const unsigned long base_address = flash_banks[i];
-               volatile FLASH_WORD_SIZE * const flash = (FLASH_WORD_SIZE *) base_address;
-
-               /* write autoselect sequence */
-               flash[0x5555] = 0xaa;
-               flash[0x2aaa] = 0x55;
-               flash[0x5555] = 0x90;
-               __asm__ __volatile__("sync");
-
-               pflinfo->flash_id = flash_id(flash[0x0], flash[0x1]);
-
-               switch(pflinfo->flash_id & FLASH_TYPEMASK){
-                       case FLASH_AM033:
-                               pflinfo->size = 0x00200000;
-                               pflinfo->sector_count = 64;
-                               for(j = 0; j < 64; j++){
-                                       pflinfo->start[j] = base_address + 0x00010000 * j;
-                                       pflinfo->protect[j] = flash[(j << 16) | 0x2];
-                               }
-                               break;
-                       case FLASH_AM065:
-                               pflinfo->size = 0x00800000;
-                               pflinfo->sector_count =128;
-                               for(j = 0; j < 128; j++){
-                                       pflinfo->start[j] = base_address + 0x00010000 * j;
-                                       pflinfo->protect[j] = flash[(j << 16) | 0x2];
-                               }
-                               break;
-                       case FLASH_AT040:
-                               pflinfo->size = 0x00080000;
-                               pflinfo->sector_count = 2;
-                               pflinfo->start[0] = base_address ;
-                               pflinfo->start[1] = base_address + 0x00004000;
-                               pflinfo->protect[0] = ((flash[0x02] & 0X01)==0) ? 0X02 : 0X01;
-                               pflinfo->protect[1] = 0X02;
-                               break;
-                       case FLASH_AM040:
-                               pflinfo->size = 0x00080000;
-                               pflinfo->sector_count = 8;
-                               for(j = 0; j < 8; j++){
-                                       pflinfo->start[j] = base_address + 0x00010000 * j;
-                                       pflinfo->protect[j] = flash[(j << 16) | 0x2];
-                               }
-                               break;
-                       case FLASH_STM800AB:
-                               pflinfo->size = 0x00100000;
-                               pflinfo->sector_count = 19;
-                               pflinfo->start[0] = base_address;
-                               pflinfo->start[1] = base_address + 0x4000;
-                               pflinfo->start[2] = base_address + 0x6000;
-                               pflinfo->start[3] = base_address + 0x8000;
-                               for(j = 1; j < 16; j++){
-                                       pflinfo->start[j+3] = base_address + 0x00010000 * j;
-                               }
-                               break;
-               }
-               /* Protect monitor and environment sectors */
-#if CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE
-               flash_protect(FLAG_PROTECT_SET,
-                               CONFIG_SYS_MONITOR_BASE,
-                               CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1,
-                               &flash_info[0]);
-#endif
-
-#if defined(CONFIG_ENV_IS_IN_FLASH) && defined(CONFIG_ENV_ADDR)
-               flash_protect(FLAG_PROTECT_SET,
-                               CONFIG_ENV_ADDR,
-                               CONFIG_ENV_ADDR + CONFIG_ENV_SIZE - 1,
-                               &flash_info[0]);
-#endif
-
-               /* reset device to read mode */
-               flash[0x0000] = 0xf0;
-               __asm__ __volatile__("sync");
-       }
-
-       return flash_info[0].size + flash_info[1].size;
-}
-
-/*-----------------------------------------------------------------------
- */
-void flash_print_info(flash_info_t *info)
-{
-       static const char unk[] = "Unknown";
-       const char *mfct = unk, *type = unk;
-       unsigned int i;
-
-       if(info->flash_id != FLASH_UNKNOWN){
-               switch(info->flash_id & FLASH_VENDMASK){
-                       case FLASH_MAN_ATM:
-                               mfct = "Atmel";
-                               break;
-                       case FLASH_MAN_AMD:
-                               mfct = "AMD";
-                               break;
-                       case FLASH_MAN_FUJ:
-                               mfct = "FUJITSU";
-                               break;
-                       case FLASH_MAN_STM:
-                               mfct = "STM";
-                               break;
-                       case FLASH_MAN_SST:
-                               mfct = "SST";
-                               break;
-                       case FLASH_MAN_BM:
-                               mfct = "Bright Microelectonics";
-                               break;
-                       case FLASH_MAN_INTEL:
-                               mfct = "Intel";
-                               break;
-               }
-
-               switch(info->flash_id & FLASH_TYPEMASK){
-                       case FLASH_AT040:
-                               type = "AT49LV040 (512K * 8, uniform sector size)";
-                               break;
-                       case FLASH_AM033:
-                               type = "AM29F033C (4 Mbit * 8, uniform sector size)";
-                               break;
-                       case FLASH_AM040:
-                               type = "AM29F040B (512K * 8, uniform sector size)";
-                               break;
-                       case FLASH_AM065:
-                               type = "AM29F0465D ( 8 MBit * 8, uniform sector size) or part of AM29F652D( 16 MB)";
-                               break;
-                       case FLASH_AM400B:
-                               type = "AM29LV400B (4 Mbit, bottom boot sect)";
-                               break;
-                       case FLASH_AM400T:
-                               type = "AM29LV400T (4 Mbit, top boot sector)";
-                               break;
-                       case FLASH_AM800B:
-                               type = "AM29LV800B (8 Mbit, bottom boot sect)";
-                               break;
-                       case FLASH_AM800T:
-                               type = "AM29LV800T (8 Mbit, top boot sector)";
-                               break;
-                       case FLASH_AM160T:
-                               type = "AM29LV160T (16 Mbit, top boot sector)";
-                               break;
-                       case FLASH_AM320B:
-                               type = "AM29LV320B (32 Mbit, bottom boot sect)";
-                               break;
-                       case FLASH_AM320T:
-                               type = "AM29LV320T (32 Mbit, top boot sector)";
-                               break;
-                       case FLASH_STM800AB:
-                               type = "M29W800AB (8 Mbit, bottom boot sect)";
-                               break;
-                       case FLASH_SST800A:
-                               type = "SST39LF/VF800 (8 Mbit, uniform sector size)";
-                               break;
-                       case FLASH_SST160A:
-                               type = "SST39LF/VF160 (16 Mbit, uniform sector size)";
-                               break;
-               }
-       }
-
-       printf(
-                       "\n  Brand: %s Type: %s\n"
-                       "  Size: %lu KB in %d Sectors\n",
-                       mfct,
-                       type,
-                       info->size >> 10,
-                       info->sector_count
-             );
-
-       printf ("  Sector Start Addresses:");
-
-       for (i = 0; i < info->sector_count; i++){
-               unsigned long size;
-               unsigned int erased;
-               unsigned long * flash = (unsigned long *) info->start[i];
-
-               /*
-                * Check if whole sector is erased
-                */
-               size =
-                       (i != (info->sector_count - 1)) ?
-                       (info->start[i + 1] - info->start[i]) >> 2 :
-                       (info->start[0] + info->size - info->start[i]) >> 2;
-
-               for(
-                               flash = (unsigned long *) info->start[i], erased = 1;
-                               (flash != (unsigned long *) info->start[i] + size) && erased;
-                               flash++
-                  ){
-                       erased = *flash == ~0x0UL;
-               }
-
-               printf(
-                               "%s %08lX %s %s",
-                               (i % 5) ? "" : "\n   ",
-                               info->start[i],
-                               erased ? "E" : " ",
-                               info->protect[i] ? "RO" : "  "
-                     );
-       }
-
-       puts("\n");
-       return;
-}
-
-int flash_erase(flash_info_t *info, int s_first, int s_last)
-{
-       volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[0]);
-       int flag, prot, sect, l_sect;
-       ulong start, now, last;
-       unsigned char sh8b;
-
-       if ((s_first < 0) || (s_first > s_last)) {
-               if (info->flash_id == FLASH_UNKNOWN) {
-                       printf ("- missing\n");
-               } else {
-                       printf ("- no sectors to erase\n");
-               }
-               return 1;
-       }
-
-       if ((info->flash_id == FLASH_UNKNOWN) ||
-                       (info->flash_id > (FLASH_MAN_STM | FLASH_AMD_COMP))) {
-               printf ("Can't erase unknown flash type - aborted\n");
-               return 1;
-       }
-
-       prot = 0;
-       for (sect=s_first; sect<=s_last; ++sect) {
-               if (info->protect[sect]) {
-                       prot++;
-               }
-       }
-
-       if (prot) {
-               printf ("- Warning: %d protected sectors will not be erased!\n",
-                               prot);
-       } else {
-               printf ("\n");
-       }
-
-       l_sect = -1;
-
-       /* Check the ROM CS */
-       if ((info->start[0] >= ROM_CS1_START) && (info->start[0] < ROM_CS0_START)){
-               sh8b = 3;
-       }
-       else{
-               sh8b = 0;
-       }
-
-       /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts();
-
-       addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00AA00AA;
-       addr[ADDR1 << sh8b] = (FLASH_WORD_SIZE)0x00550055;
-       addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00800080;
-       addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00AA00AA;
-       addr[ADDR1 << sh8b] = (FLASH_WORD_SIZE)0x00550055;
-
-       /* Start erase on unprotected sectors */
-       for (sect = s_first; sect<=s_last; sect++) {
-               if (info->protect[sect] == 0) { /* not protected */
-                       addr = (FLASH_WORD_SIZE *)(info->start[0] + (
-                                               (info->start[sect] - info->start[0]) << sh8b));
-                       if (info->flash_id & FLASH_MAN_SST){
-                               addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00AA00AA;
-                               addr[ADDR1 << sh8b] = (FLASH_WORD_SIZE)0x00550055;
-                               addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00800080;
-                               addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00AA00AA;
-                               addr[ADDR1 << sh8b] = (FLASH_WORD_SIZE)0x00550055;
-                               addr[0] = (FLASH_WORD_SIZE)0x00500050;  /* block erase */
-                               udelay(30000);  /* wait 30 ms */
-                       }
-                       else
-                               addr[0] = (FLASH_WORD_SIZE)0x00300030;  /* sector erase */
-                       l_sect = sect;
-               }
-       }
-
-       /* re-enable interrupts if necessary */
-       if (flag){
-               enable_interrupts();
-       }
-
-       /* wait at least 80us - let's wait 1 ms */
-       udelay (1000);
-
-       /*
-        * We wait for the last triggered sector
-        */
-       if (l_sect < 0){
-               goto DONE;
-       }
-
-       start = get_timer (0);
-       last  = start;
-       addr = (FLASH_WORD_SIZE *)(info->start[0] + (
-                               (info->start[l_sect] - info->start[0]) << sh8b));
-       while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-               if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
-                       printf ("Timeout\n");
-                       return 1;
-               }
-               /* show that we're waiting */
-               if ((now - last) > 1000) {  /* every second */
-                       serial_putc ('.');
-                       last = now;
-               }
-       }
-
-DONE:
-       /* reset to read mode */
-       addr = (FLASH_WORD_SIZE *)info->start[0];
-       addr[0] = (FLASH_WORD_SIZE)0x00F000F0;  /* reset bank */
-
-       printf (" done\n");
-       return 0;
-}
-
-/*-----------------------------------------------------------------------
- * Copy memory to flash, returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- */
-
-int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
-{
-       ulong cp, wp, data;
-       int i, l, rc;
-
-       wp = (addr & ~3);   /* get lower word aligned address */
-
-       /*
-        * handle unaligned start bytes
-        */
-       if ((l = addr - wp) != 0) {
-               data = 0;
-               for (i=0, cp=wp; i<l; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *)cp);
-               }
-               for (; i<4 && cnt>0; ++i) {
-                       data = (data << 8) | *src++;
-                       --cnt;
-                       ++cp;
-               }
-               for (; cnt==0 && i<4; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *)cp);
-               }
-
-               if ((rc = write_word(info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp += 4;
-       }
-
-       /*
-        * handle word aligned part
-        */
-       while (cnt >= 4) {
-               data = 0;
-               for (i=0; i<4; ++i) {
-                       data = (data << 8) | *src++;
-               }
-               if ((rc = write_word(info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp  += 4;
-               cnt -= 4;
-       }
-
-       if (cnt == 0) {
-               return (0);
-       }
-
-       /*
-        * handle unaligned tail bytes
-        */
-       data = 0;
-       for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) {
-               data = (data << 8) | *src++;
-               --cnt;
-       }
-       for (; i<4; ++i, ++cp) {
-               data = (data << 8) | (*(uchar *)cp);
-       }
-
-       return (write_word(info, wp, data));
-}
-
-/*-----------------------------------------------------------------------
- * Write a word to Flash, returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- */
-static int write_word (flash_info_t *info, ulong dest, ulong data)
-{
-       volatile FLASH_WORD_SIZE *addr2 = (FLASH_WORD_SIZE *)info->start[0];
-       volatile FLASH_WORD_SIZE *dest2;
-       volatile FLASH_WORD_SIZE *data2 = (FLASH_WORD_SIZE *)&data;
-       ulong start;
-       int flag;
-       int i;
-       unsigned char sh8b;
-
-       /* Check the ROM CS */
-       if ((info->start[0] >= ROM_CS1_START) && (info->start[0] < ROM_CS0_START)){
-               sh8b = 3;
-       }
-       else{
-               sh8b = 0;
-       }
-
-       dest2 = (FLASH_WORD_SIZE *)(((dest - info->start[0]) << sh8b) +
-                       info->start[0]);
-
-       /* Check if Flash is (sufficiently) erased */
-       if ((*dest2 & (FLASH_WORD_SIZE)data) != (FLASH_WORD_SIZE)data) {
-               return (2);
-       }
-       /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts();
-
-       for (i=0; i<4/sizeof(FLASH_WORD_SIZE); i++){
-               addr2[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00AA00AA;
-               addr2[ADDR1 << sh8b] = (FLASH_WORD_SIZE)0x00550055;
-               addr2[ADDR0 << sh8b] = (FLASH_WORD_SIZE)0x00A000A0;
-
-               dest2[i << sh8b] = data2[i];
-
-               /* re-enable interrupts if necessary */
-               if (flag){
-                       enable_interrupts();
-               }
-
-               /* data polling for D7 */
-               start = get_timer (0);
-               while ((dest2[i << sh8b] & (FLASH_WORD_SIZE)0x00800080) !=
-                               (data2[i] & (FLASH_WORD_SIZE)0x00800080)) {
-                       if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
-                               return (1);
-                       }
-               }
-       }
-
-       return (0);
-}
-
-/*----------------------------------------------------------------------- */
diff --git a/board/barco/speed.h b/board/barco/speed.h
deleted file mode 100644 (file)
index e883dfb..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/********************************************************************
- *
- * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms
- *
- * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/speed.h,v $
- * $Revision: 1.2 $
- * $Author: mleeman $
- * $Date: 2005/02/21 12:48:58 $
- *
- * Last ChangeLog Entry
- * $Log: speed.h,v $
- * Revision 1.2  2005/02/21 12:48:58  mleeman
- * update of copyright years (feedback wd)
- *
- * Revision 1.1  2005/02/14 09:23:46  mleeman
- * - moved 'barcohydra' directory to a more generic barco; since we will be
- *   supporting and adding multiple boards
- *
- * Revision 1.2  2005/02/09 12:56:23  mleeman
- * add generic header to track changes in sources
- *
- *
- *******************************************************************/
-
-/*
- * (C) Copyright 2000
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*-----------------------------------------------------------------------
- * Timer value for timer 2, ICLK = 10
- *
- * SPEED_FCOUNT2 =  GCLK / (16 * (TIMER_TMR_PS + 1))
- * SPEED_TMR3_PS = (GCLK / (16 * SPEED_FCOUNT3)) - 1
- *
- * SPEED_FCOUNT2       timer 2 counting frequency
- * GCLK                        CPU clock
- * SPEED_TMR2_PS       prescaler
- */
-#define SPEED_TMR2_PS  (250 - 1)       /* divide by 250        */
-
-/*-----------------------------------------------------------------------
- * Timer value for PIT
- *
- * PIT_TIME = SPEED_PITC / PITRTCLK
- * PITRTCLK = 8192
- */
-#define SPEED_PITC     (82 << 16)      /* start counting from 82       */
-
-/*
- * The new value for PTA is calculated from
- *
- *     PTA = (gclk * Trefresh) / (2 ^ (2 * DFBRG) * PTP * NCS)
- *
- * gclk                CPU clock (not bus clock !)
- * Trefresh    Refresh cycle * 4 (four word bursts used)
- * DFBRG       For normal mode (no clock reduction) always 0
- * PTP         Prescaler (already adjusted for no. of banks and 4K / 8K refresh)
- * NCS         Number of SDRAM banks (chip selects) on this UPM.
- */
index 9c1d0cc5612bb23cd87513b7c88ba23e5f53066b..53aa651ad68fc4b77f659b5efdf849c0a84cacf9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o cmd_bc3450.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf99d29f1c19a5f02e15323864b54d09ca8c1ffe..b2688151e2aa28b69d956e1b4ece9f28d13f8647 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o gpio_cfi_flash.o cled.o
 COBJS-$(CONFIG_BFIN_MAC) += smsc9303.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1a2f4b16bbc6d7f3af29fef756fc9aa1038b70b8..98a81213d273b7e32c9a7140d2d92e60258f5b29 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_VIDEO)      += video.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 487b737ba8557cd55ab73a1528c98ae8d23ef2dc..dfc1724eaebcfafeb58d931d65495d80e4e51b00 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o flash.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 832037b17cfd48361b0abf05adad1401c11844a3..ce3ff426acc8705de5dff85a6ead093b4a490244 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_STAMP_CF) += ide-cf.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 47bf90539bc72a250c4d6ddf9a540d187138d846..2b9328be32ae51fd63cf3485741389a3d174c06e 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_BFIN_IDE)   += ide-cf.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1a2f4b16bbc6d7f3af29fef756fc9aa1038b70b8..98a81213d273b7e32c9a7140d2d92e60258f5b29 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_VIDEO)      += video.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cc039a05e9d45f84f39fe7be6aee9f6fbf0691a5..9259d6e361bbbb1016fe7c4a6e21021e879083ff 100644 (file)
@@ -29,7 +29,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index bfeaf791e19f2b2a4900fe501d7b39d91c75be2a..0d176764f1a276266bcfbd206505ed95b42c2c8c 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ac85cc3506a2f9f167775f03f9d054fb6493c272..4f88efafd462998cf32c0c78ac4865fa18948a15 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ns16550.o serial.o m48t59y.o
 
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index 2b10b0c518acfb4eee7879e5aa0f3ccaa7f7b4cb..b49f26da274c521461933b0e4a8c75ef66f07dee 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 36dd55dee45b561869345e0f2c6d373d13974114..7a088c97d82658c6e7d4fdd260cf179d29851c9c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    net/libnet.o                       (.text*)
 
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +93,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 8b4a9116b209e948182d3c2b2a8db5e05cd917c0..cc4219db160e71df051230f9a24530ea6677d842 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += sbc35_a9g20.o
 COBJS-$(CONFIG_ATMEL_SPI)      += spi.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 21f5ed100628a55607ea44cfa8c842898cd5ea3c..151a228fcb846731479f7ceb434fc1520af28b20 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += tny_a9260.o
 COBJS-$(CONFIG_ATMEL_SPI)      += spi.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b6b67d8e720c64a0c8f640a54bebb62a46c23fa0..0e2ec4b4d3f94404924c84e9bdd3ad09d1c7b761 100644 (file)
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 #$(shell mkdir -p $(obj)../common)
 #endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 #../common/flash.o ../common/vpd.o ../common/am79c874.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b111b519f080d430db49c7ea3e135614f61ab3f6..d824ffa0d784685bb0c869a4df08b611ba7aedf9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cerf250.o flash.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index bad018aa34d6a4a17abbf33cb5a0ecc6b70591bc..4d7bf14f8b194f7e170c881578fcc09241cea9bc 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o gpio_cfi_flash.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index bad018aa34d6a4a17abbf33cb5a0ecc6b70591bc..4d7bf14f8b194f7e170c881578fcc09241cea9bc 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o gpio_cfi_flash.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index bad018aa34d6a4a17abbf33cb5a0ecc6b70591bc..4d7bf14f8b194f7e170c881578fcc09241cea9bc 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o gpio_cfi_flash.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1a2f4b16bbc6d7f3af29fef756fc9aa1038b70b8..98a81213d273b7e32c9a7140d2d92e60258f5b29 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_VIDEO)      += video.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cd3f962f28af4ca40981241668be8fdec599c2a4..e9bae19153beb81ce6e8209d69c3fab1ff7d04ba 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cm4008.o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 952a8ae21bc61321632d739a4e39b6c29f33d156..e608fe8b286e81ada03da1cf753b8d96205dc8c6 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cm41xx.o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d76e13a07868c680cc14df9a10cad3aa5413f0fe..ac431a7317002a7807de9a850c577a456e7644c5 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o cmd_cm5200.o fwupdate.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9745ebd37817a0159d959c297a3950b7c4d2a4e9..a60f2e9612f01514b09271f340e68d28e3132dda 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cmc_pu2.o flash.o load_sernum_ethaddr.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index aeebb9ecb5f0eeda1e0719df729fbb6ed4aa4874..c554ce22d6c60e7cbbb6cf68a2f7e689bdefdc7a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := flash.o cmi.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index afa134558f66236bd14680eacb9e5267103c0641..334f03f312a9660dedb8b0400ad505858226f992 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mb.o flash.o dipsw.o lcd.o serial.o # pci.o rtc.o par.o kbm.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2fecb0fcf63dc9943fe32ae7f975888a0eb9ed6c..42ed142ea2b4fa0e2796a00e9dca2730ecd02e7e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  * MA 02111-1307 USA
  */
 
+#include <config.h>
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    *(.text)
-    common/env_embedded.o(.text)
-    *(.got1)
+#ifdef CONFIG_MPC8260
+    arch/powerpc/cpu/mpc8260/start.o   (.text*)
+#else
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+#endif
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -73,23 +51,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -115,9 +89,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index f8b44abee008f064a9a61a377f97813c3e91fe78..40b3a3d50e050e4f7a726916ec8aec3fe69f448a 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := colibri_pxa270.o
 
@@ -29,7 +29,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 374fdd7650e60a021c39daa220c93177afbabd75..5c6b78f704616f9730634a5cf9ad150c963e309d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o plx9030.o pd67290.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 12c9c746c5bc9a08c96fae3a7ff3fb5c0bec2eb7..0d8ef2336845fc843ce50898c370ef393aa93e4e 100644 (file)
@@ -639,7 +639,7 @@ static int i365_set_io_map (socket_info_t * s, struct pccard_io_map *io)
 #define        HOST_TO_PCI(addr)       ((addr) - 0xfe000000)
 #define        PCI_TO_HOST(addr)       ((addr) + 0xfe000000)
 
-int i82365_init (void)
+static int i82365_init (void)
 {
        u_int val;
        int i;
@@ -719,7 +719,7 @@ int i82365_init (void)
        return 0;
 }
 
-void i82365_exit (void)
+static void i82365_exit (void)
 {
        io.map = 0;
        io.flags = 0;
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 720593c4825e86a159328f30caac39749ec0535e..18040c77263c50625ca8f5e52d7b082a2d788f5e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cradle.o flash.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 0f5f02cb8c6a82057b34d52af4321775ef6860df..d87b6ef90633b274384e04c34ed1ae120959001c 100644 (file)
@@ -169,12 +169,6 @@ int misc_init_r (void)
        return (0);
 }
 
-/* ------------------------------------------------------------------------- */
-phys_size_t initdram (int board_type)
-{
-       return (L1_MEMSIZE);
-}
-
 /* ------------------------------------------------------------------------- */
 /* stubs so we can print dates w/o any nvram RTC.*/
 int rtc_get (struct rtc_time *tmp)
index 21b513c29fab7be8d3157b74dafa5c9578ba3d96..d1a7a0b0df1fde5371d6da208f7de06e9a5b4a62 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = init.o
@@ -36,7 +36,7 @@ SOBJS := $(addprefix $(obj),$(SOBJS))
 # HACK: depend needs bootscript.c, which needs tools/mkimage, which is not
 # built in the depend stage.  So... put bootscript.o here, not in OBJS
 $(LIB):        $(OBJS) $(SOBJS) $(obj)bootscript.o
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS) $(obj)bootscript.c \
index 5e1332bae41332b19d2f27bc1c54012efb1dd31d..b10c447c94ded3fc4e7b3b6fbe0f6514a371c9fb 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := csb226.o flash.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 6d42bff750547ccecc7df71c876caca0135e5cfb..cfc8839b8861739bb91643b8ebb61e46f25e0058 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 #COBJS = $(BOARD).o flash.o
 #COBJS = $(BOARD).o strataflash.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 6d42bff750547ccecc7df71c876caca0135e5cfb..cfc8839b8861739bb91643b8ebb61e46f25e0058 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 #COBJS = $(BOARD).o flash.o
 #COBJS = $(BOARD).o strataflash.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ab28434a319848d48a2dda972edf52d19aceb58c..a5484ae35db3e240fad4570ab6525432e811025b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := csb637.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e70d2c8e37c14e8f950831af453a94d70c3c9a0b..b981579a8e23babf22e087e408d681d8c028ef32 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := B2.o flash.o
 SOBJS  := lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1869f8ceee8d7c49b2f1af8db6bcd1ecdcde860c..50285106abe1ddc04bee84039d971923e8cefa9d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o nand.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
similarity index 50%
rename from board/Marvell/db64460/u-boot.lds
rename to board/dave/PPChameleonEVB/u-boot.lds
index 29dcc0910051a98f2e2d119f291317fddf1ea8d7..17f59193e9e1d907c465905cbcbe1fc9c0bcdf32 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
+ * Copyright 2007-2009 Freescale Semiconductor, Inc.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
  * MA 02111-1307 USA
  */
 
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
+#include "config.h"    /* CONFIG_BOARDDIR */
+
+#ifndef RESET_VECTOR_ADDRESS
+#define RESET_VECTOR_ADDRESS   0xfffffffc
+#endif
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
+PHDRS
+{
+  text PT_LOAD;
+  bss PT_LOAD;
+}
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
+    *(.text*)
+   } :text
+    _etext = .;
+    PROVIDE (etext = .);
+    .rodata    :
+   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
+  } :text
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -82,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
+  __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -108,7 +77,6 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
-
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
@@ -121,15 +89,40 @@ SECTIONS
   . = ALIGN(256);
   __init_end = .;
 
+  ppcenv_assert = ASSERT(. < 0xFFFF8000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CONFIG_SYS_MONITOR_BASE, CONFIG_SYS_MONITOR_LEN and CONFIG_SYS_TEXT_BASE may need to be modified.");
+  . = 0xFFFF8000;
+  .ppcenv :
+  {
+    common/env_embedded.o(.ppcenv);
+  }
+
+  .resetvec RESET_VECTOR_ADDRESS :
+  {
+    KEEP(*(.resetvec))
+  } :text = 0xffff
+
+  . = RESET_VECTOR_ADDRESS + 0x4;
+
+  /*
+   * Make sure that the bss segment isn't linked at 0x0, otherwise its
+   * address won't be updated during relocation fixups.  Note that
+   * this is a temporary fix.  Code to dynamically the fixup the bss
+   * location will be added in the future.  When the bss relocation
+   * fixup code is present this workaround should be removed.
+   */
+#if (RESET_VECTOR_ADDRESS == 0xfffffffc)
+  . |= 0x10;
+#endif
+
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
-   . = ALIGN(4);
-  }
+  } :bss
+
+  . = ALIGN(4);
   _end = . ;
   PROVIDE (end = .);
 }
index 2e3d73a351398066bd7fd5d0a4a9398528617bc0..30dba232651169ffa40cd64bc70567adb616ed57 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ada6e03a2ca150a50117ac57aab3b051aa96b4b3..1dca60d17037a0f52e5e311a4f16db636e2702b0 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := qong.o fpga.o
 SOBJS  := lowlevel_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 8d9ea00ddc345497f3f3f61d1b9953c7e3bcfa7c..5ddb564d0bd0be92e92dc5160a57477ddea4e587 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)board/$(VENDOR)/common)
 endif
 
-LIB    = $(obj)lib$(VENDOR).a
+LIB    = $(obj)lib$(VENDOR).o
 
 COBJS  := misc.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 17cbe86c8198adf43ed7e62053cc6aded2abf398..88fee5004782de7fe7990e9e4c9a9d16713c1339 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += common.o
 COBJS-$(CONFIG_MACH_DAVINCI_DA830_EVM) += da830evm.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c8c5e1b30edb5f08fdbb0b5f2c8b3b82ad1e6c04..c3267cbf51a6502e0665b2c930e1fb55f47c56e9 100644 (file)
@@ -118,6 +118,39 @@ static const struct lpsc_resource lpsc[] = {
        { DAVINCI_LPSC_GPIO },
 };
 
+#ifndef CONFIG_DA850_EVM_MAX_CPU_CLK
+#define CONFIG_DA850_EVM_MAX_CPU_CLK   300000000
+#endif
+
+/*
+ * get_board_rev() - setup to pass kernel board revision information
+ * Returns:
+ * bit[0-3]    Maximum cpu clock rate supported by onboard SoC
+ *             0000b - 300 MHz
+ *             0001b - 372 MHz
+ *             0010b - 408 MHz
+ *             0011b - 456 MHz
+ */
+u32 get_board_rev(void)
+{
+       char *s;
+       u32 maxcpuclk = CONFIG_DA850_EVM_MAX_CPU_CLK;
+       u32 rev = 0;
+
+       s = getenv("maxcpuclk");
+       if (s)
+               maxcpuclk = simple_strtoul(s, NULL, 10);
+
+       if (maxcpuclk >= 456000000)
+               rev = 3;
+       else if (maxcpuclk >= 408000000)
+               rev = 2;
+       else if (maxcpuclk >= 372000000)
+               rev = 1;
+
+       return rev;
+}
+
 int board_init(void)
 {
 #ifndef CONFIG_USE_IRQ
index 26b070546570af233892d8b639c3a4fbaf4e53e9..480459721d43f488216d5c117e314abcb338ed49 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  :=
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 26b070546570af233892d8b639c3a4fbaf4e53e9..480459721d43f488216d5c117e314abcb338ed49 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  :=
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 26b070546570af233892d8b639c3a4fbaf4e53e9..480459721d43f488216d5c117e314abcb338ed49 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  :=
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 26b070546570af233892d8b639c3a4fbaf4e53e9..480459721d43f488216d5c117e314abcb338ed49 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  :=
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fb31ee42b2575520dbd707efd90a0fb9241d8ff9..72fd963ed2bfa4878be279fbff773233eebaa972 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  := board_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fb31ee42b2575520dbd707efd90a0fb9241d8ff9..72fd963ed2bfa4878be279fbff773233eebaa972 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  := board_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fb31ee42b2575520dbd707efd90a0fb9241d8ff9..72fd963ed2bfa4878be279fbff773233eebaa972 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  := board_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fb31ee42b2575520dbd707efd90a0fb9241d8ff9..72fd963ed2bfa4878be279fbff773233eebaa972 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 SOBJS  := board_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index afe02c27c6ff9baecff2c09aed27241fb42cbb97..f1594a236812d9247a4911e67a34fb13a87996f4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index 0bededca19deeccc585ba895cb2c0a746af019c7..a40076c870ae0a4c18faf0eb61c11cf110f0a50f 100644 (file)
@@ -5,7 +5,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o cmd_mtc.o
 
@@ -14,7 +14,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c56e9d1e817e2e50611c82ff03bf2558b74dda00..8a86c0f34019ce3674c5707bfafa9d3407a1bc27 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := dnp1110.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 588d21d269ef62b6cc54c0064a2596819873ad2b..498078702e2f59b8bfe02780bd79e0ffb76fd49c 100644 (file)
@@ -29,7 +29,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += eNET.o
 COBJS-$(CONFIG_PCI) += eNET_pci.o
@@ -40,7 +40,7 @@ SRCS  := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 98601a3f36814a4591ba0c41a6604dd99f8e3857..fa874139c18aa2330ab5d865a16b3fb862e9ff8a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3e67a65863ed5b5ac1847b616e6275273f9a9700..00eb0f42a16a7a6bc64b6ba1f91e0a9a6ae5d381 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(BOARD).a
+LIB    := $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -30,7 +30,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e2e26361e2915d2a69722b4a813f6752c2ba33c9..dcaed06b30f0d7eb0f598359d20da24fe4c55702 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := edb93xx.o flash_cfg.o pll_cfg.o sdram_cfg.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1e76d25f7a4a2ccd9fe874b9218efd6ab68c5ed1..b22160fea0a628762831f79176ed44387189c15a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o pci.o misc.o el_srom.o dc_srom.o l2cache.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
diff --git a/board/eltec/bab7xx/u-boot.lds b/board/eltec/bab7xx/u-boot.lds
deleted file mode 100644 (file)
index 29dcc09..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
-    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(256);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(256);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss (NOLOAD)       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-   . = ALIGN(4);
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index 24cbfeee39f9d7d876f94ae59c6e2ac27158a894..367239a0fca8564f9e2c13aca962420597058ec7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o pci.o misc.o mpc107_i2c.o eepro100_srom.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
diff --git a/board/eltec/elppc/u-boot.lds b/board/eltec/elppc/u-boot.lds
deleted file mode 100644 (file)
index 29dcc09..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
-    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(256);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(256);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss (NOLOAD)       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-   . = ALIGN(4);
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9fe9758c476ec3617250e0aee7a2001d5e504659..4a96388f04e3acf7c601d9570b238b8077394c4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -75,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -117,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 86b887029f0a49c1eefb3958d59183c26074dbec..72db38db32303c257fa97d987c564ca6918f1e3c 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o ../common/flash.o ../common/vpd.o ../common/am79c874.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 88abd76c5c1451812516c2ef75e2745a374ec567..6b0a4fa905ce14737d367ab60e772c178cb353d7 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/flash.o ../common/vpd.o ../common/am79c874.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4f986f72c1dfce7f3c9302104a07b067a7fafd3d..ae1a791b03abd8d22bd9aba2b621481f275ffe24 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -74,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -117,9 +86,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
similarity index 77%
rename from board/eric/Makefile
rename to board/emk/top9000/Makefile
index c2a68728093b67b8cbde49f6a9e369d1663f0e94..9b280482a9e2c35c56c26f6bf0adbc3bfaff8c83 100644 (file)
@@ -1,7 +1,10 @@
 #
-# (C) Copyright 2001-2006
+# (C) Copyright 2003-2008
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
+# (C) Copyright 2010
+# Reinhard Meyer, EMK Elektronik, reinhard.meyer@emk-elektronik.de
+#
 # See file CREDITS for list of people who contributed to this
 # project.
 #
@@ -12,7 +15,7 @@
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
@@ -25,14 +28,14 @@ include $(TOPDIR)/config.mk
 
 LIB    = $(obj)lib$(BOARD).a
 
-COBJS  = $(BOARD).o flash.o
-SOBJS  = init.o
+COBJS-y        += top9000.o
+COBJS-$(CONFIG_ATMEL_SPI)      += spi.o
 
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
+SRCS   := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
+$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
        $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
 
 clean:
diff --git a/board/emk/top9000/spi.c b/board/emk/top9000/spi.c
new file mode 100644 (file)
index 0000000..b468948
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2010
+ * Reinhard Meyer, EMK Elektronik, reinhard.meyer@emk-elektronik.de
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/at91_spi.h>
+#include <asm/arch/gpio.h>
+#include <spi.h>
+
+static const struct {
+       u32     port;
+       u32     bit;
+} cs_to_portbit[2][4] = {
+       {{AT91_PIO_PORTA,  3}, {AT91_PIO_PORTC, 11},
+                       {AT91_PIO_PORTC, 16}, {AT91_PIO_PORTC, 17} },
+       {{AT91_PIO_PORTB,  3}, {AT91_PIO_PORTC,  5},
+                       {AT91_PIO_PORTC,  4}, {AT91_PIO_PORTC,  3} }
+};
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+       debug("spi_cs_is_valid: bus=%u cs=%u\n", bus, cs);
+       if (bus < 2 && cs < 4)
+               return 1;
+       return 0;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+       debug("spi_cs_activate: bus=%u cs=%u\n", slave->bus, slave->cs);
+       at91_set_pio_output(cs_to_portbit[slave->bus][slave->cs].port,
+               cs_to_portbit[slave->bus][slave->cs].bit, 0);
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+       debug("spi_cs_deactivate: bus=%u cs=%u\n", slave->bus, slave->cs);
+       at91_set_pio_output(cs_to_portbit[slave->bus][slave->cs].port,
+               cs_to_portbit[slave->bus][slave->cs].bit, 1);
+}
+
diff --git a/board/emk/top9000/top9000.c b/board/emk/top9000/top9000.c
new file mode 100644 (file)
index 0000000..b0fe2d6
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * (C) Copyright 2010
+ * Reinhard Meyer, EMK Elektronik, reinhard.meyer@emk-elektronik.de
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <net.h>
+#include <netdev.h>
+#include <mmc.h>
+#include <i2c.h>
+#include <spi.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/at91sam9260_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_common.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/at91_shdwn.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+#include <asm/arch/hardware.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#ifdef CONFIG_CMD_NAND
+static void nand_hw_init(void)
+{
+       unsigned long csa;
+
+       /* Enable CS3 */
+       csa = at91_sys_read(AT91_MATRIX_EBICSA);
+       at91_sys_write(AT91_MATRIX_EBICSA,
+               csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
+
+       /* Configure SMC CS3 for NAND/SmartMedia */
+       at91_sys_write(AT91_SMC_SETUP(3),
+               AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
+               AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
+       at91_sys_write(AT91_SMC_PULSE(3),
+               AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
+               AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
+       at91_sys_write(AT91_SMC_CYCLE(3),
+               AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
+       at91_sys_write(AT91_SMC_MODE(3),
+               AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
+               AT91_SMC_EXNWMODE_DISABLE |
+               AT91_SMC_DBW_8 |
+               AT91_SMC_TDF_(2));
+
+       /* Configure RDY/BSY */
+       at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
+
+       /* Enable NandFlash */
+       at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void macb_hw_init(void)
+{
+       /* Enable EMAC clock */
+       at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_EMAC);
+
+       /* Initialize EMAC=MACB hardware */
+       at91_macb_hw_init();
+}
+#endif
+
+#ifdef CONFIG_GENERIC_ATMEL_MCI
+/* this is a weak define that we are overriding */
+int board_mmc_init(bd_t *bd)
+{
+       /* Enable MCI clock */
+       at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_MCI);
+
+       /* Initialize MCI hardware */
+       at91_mci_hw_init();
+
+       /* This calls the atmel_mmc_init in gen_atmel_mci.c */
+       return atmel_mci_init((void *)AT91_BASE_MCI);
+}
+
+/* this is a weak define that we are overriding */
+int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+{
+       /*
+        * the only currently existing use of this function
+        * (fsl_esdhc.c) suggests this function must return
+        * *cs = TRUE if a card is NOT detected -> in most
+        * cases the value of the pin when the detect switch
+        * closes to GND
+        */
+       *cd = at91_get_gpio_value(CONFIG_SYS_MMC_CD_PIN) ? 1 : 0;
+       return 0;
+}
+
+#endif
+
+int board_early_init_f(void)
+{
+       at91_shdwn_t *shdwn = (at91_shdwn_t *)AT91_SHDWN_BASE;
+
+       /*
+        * make sure the board can be powered on by
+        * any transition on WKUP
+        */
+       writel(AT91_SHDW_MR_WKMODE0H2L | AT91_SHDW_MR_WKMODE0L2H,
+               &shdwn->mr);
+
+       /* Enable clocks for all PIOs */
+       at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOA);
+       at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOB);
+       at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOC);
+
+       /* set SCL0 and SDA0 to open drain */
+       at91_set_pio_output(I2C0_PORT, SCL0_PIN, 1);
+       at91_set_pio_multi_drive(I2C0_PORT, SCL0_PIN, 1);
+       at91_set_pio_pullup(I2C0_PORT, SCL0_PIN, 1);
+       at91_set_pio_output(I2C0_PORT, SDA0_PIN, 1);
+       at91_set_pio_multi_drive(I2C0_PORT, SDA0_PIN, 1);
+       at91_set_pio_pullup(I2C0_PORT, SDA0_PIN, 1);
+
+       /* set SCL1 and SDA1 to open drain */
+       at91_set_pio_output(I2C1_PORT, SCL1_PIN, 1);
+       at91_set_pio_multi_drive(I2C1_PORT, SCL1_PIN, 1);
+       at91_set_pio_pullup(I2C1_PORT, SCL1_PIN, 1);
+       at91_set_pio_output(I2C1_PORT, SDA1_PIN, 1);
+       at91_set_pio_multi_drive(I2C1_PORT, SDA1_PIN, 1);
+       at91_set_pio_pullup(I2C1_PORT, SDA1_PIN, 1);
+       return 0;
+}
+
+int board_init(void)
+{
+       /* arch number of TOP9000 Board */
+       gd->bd->bi_arch_number = MACH_TYPE_TOP9000;
+       /* adress of boot parameters */
+       gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+
+       at91_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+       nand_hw_init();
+#endif
+#ifdef CONFIG_MACB
+       macb_hw_init();
+#endif
+#ifdef CONFIG_ATMEL_SPI0
+       /* (n+4) denotes to use nSPISEL(0) in GPIO mode! */
+       at91_spi0_hw_init(1 << (FRAM_CS_NUM + 4));
+#endif
+#ifdef CONFIG_ATMEL_SPI1
+       at91_spi1_hw_init(1 << (ENC_CS_NUM + 4));
+#endif
+       return 0;
+}
+
+#ifdef CONFIG_MISC_INIT_R
+int misc_init_r(void)
+{
+       /* read 'factory' part of EEPROM */
+       read_factory_r();
+       return 0;
+}
+#endif
+
+int dram_init(void)
+{
+       gd->ram_size = get_ram_size(
+               (void *)CONFIG_SYS_SDRAM_BASE,
+               CONFIG_SYS_SDRAM_SIZE);
+       return 0;
+}
+
+#ifdef CONFIG_RESET_PHY_R
+void reset_phy(void)
+{
+       /*
+        * Initialize ethernet HW addresses prior to starting Linux,
+        * needed for nfsroot.
+        * TODO: We need to investigate if that is really necessary.
+        */
+       eth_init(gd->bd);
+}
+#endif
+
+int board_eth_init(bd_t *bis)
+{
+       int rc = 0;
+       int num = 0;
+#ifdef CONFIG_MACB
+       rc = macb_eth_initialize(0,
+               (void *)AT91_EMAC_BASE,
+               CONFIG_SYS_PHY_ID);
+       if (!rc)
+               num++;
+#endif
+#ifdef CONFIG_ENC28J60
+       rc = enc28j60_initialize(ENC_SPI_BUS, ENC_CS_NUM,
+               ENC_SPI_CLOCK, SPI_MODE_0);
+       if (!rc)
+               num++;
+# ifdef CONFIG_ENC28J60_2
+       rc = enc28j60_initialize(ENC_SPI_BUS, ENC_CS_NUM+1,
+               ENC_SPI_CLOCK, SPI_MODE_0);
+       if (!rc)
+               num++;
+#  ifdef CONFIG_ENC28J60_3
+       rc = enc28j60_initialize(ENC_SPI_BUS, ENC_CS_NUM+2,
+               ENC_SPI_CLOCK, SPI_MODE_0);
+       if (!rc)
+               num++;
+#  endif
+# endif
+#endif
+       return num;
+}
+
+/*
+ * I2C access functions
+ *
+ * Note:
+ * We need to access Bus 0 before relocation to access the
+ * environment settings.
+ * However i2c_get_bus_num() cannot be called before
+ * relocation.
+ */
+#ifdef CONFIG_SOFT_I2C
+void iic_init(void)
+{
+       /* ports are now initialized in board_early_init_f() */
+}
+
+int iic_read(void)
+{
+       switch ((gd->flags & GD_FLG_RELOC) ? i2c_get_bus_num() : 0) {
+       case 0:
+               return at91_get_pio_value(I2C0_PORT, SDA0_PIN);
+       case 1:
+               return at91_get_pio_value(I2C1_PORT, SDA1_PIN);
+       }
+       return 1;
+}
+
+void iic_sda(int bit)
+{
+       switch ((gd->flags & GD_FLG_RELOC) ? i2c_get_bus_num() : 0) {
+       case 0:
+               at91_set_pio_value(I2C0_PORT, SDA0_PIN, bit);
+               break;
+       case 1:
+               at91_set_pio_value(I2C1_PORT, SDA1_PIN, bit);
+               break;
+       }
+}
+
+void iic_scl(int bit)
+{
+       switch ((gd->flags & GD_FLG_RELOC) ? i2c_get_bus_num() : 0) {
+       case 0:
+               at91_set_pio_value(I2C0_PORT, SCL0_PIN, bit);
+               break;
+       case 1:
+               at91_set_pio_value(I2C1_PORT, SCL1_PIN, bit);
+               break;
+       }
+}
+
+#endif
index 776a444eed3a5aa0ad643ab9b70765e6e55b2f9c..f2d8cf5012f5be5508b32b622fbe9249aa0325aa 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ep7312.o flash.o
 SOBJS  := lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dc40d9b94a6dd89e249b38cbfa6e5b830fc11afd..9079aad8566d16e67b56e0a6b800bdb8a1a9c8c5 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b8bf320347e1af91a37d6f0c8b665fa152a6e812..68a4803cf27a6936ff0ad67ae31b699f4eac7ddc 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o mii_phy.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c69c475a8dcda8a50ef78e34694e1655568a576f..74b9a356f726f53eb0e233436bf3ef0218cb6222 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 6b3706daaeea622debda670da175b2865375e0be..70205f1fb025b81c5bafc134a5691e90bebc8ca5 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 172caa5569b133e4b96d2bc217e26af1de709df2..851348e65fe4fd715d7624e557976912fc7b4cbf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001-2003
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * Modified by Yuli Barcohen <yuli@arabellasw.com>
@@ -28,39 +28,14 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp        : { *(.interp)                }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt           : { *(.plt)           }
   .text          :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    *(.text*)
     . = ALIGN(16);
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -68,23 +43,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -110,9 +81,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
diff --git a/board/eric/eric.c b/board/eric/eric.c
deleted file mode 100644 (file)
index d431204..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * (C) Copyright 2001
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <i2c.h>
-#include "eric.h"
-#include <asm/processor.h>
-
-#define PPC405GP_GPIO0_OR      0xef600700      /* GPIO Output */
-#define PPC405GP_GPIO0_TCR     0xef600704      /* GPIO Three-State Control */
-#define PPC405GP_GPIO0_ODR     0xef600718      /* GPIO Open Drain */
-#define PPC405GP_GPIO0_IR      0xef60071c      /* GPIO Input */
-
-void sdram_init(void);
-
-int board_early_init_f (void)
-{
-
-   /*-------------------------------------------------------------------------+
-   | Interrupt controller setup for the ERIC board.
-   | Note: IRQ 0-15  405GP internally generated; active high; level sensitive
-   |       IRQ 16    405GP internally generated; active low; level sensitive
-   |       IRQ 17-24 RESERVED
-   |       IRQ 25 (EXT IRQ 0) FLASH; active low; level sensitive
-   |       IRQ 26 (EXT IRQ 1) PHY ; active low; level sensitive
-   |       IRQ 27 (EXT IRQ 2) HOST FAIL, active low; level sensitive
-   |                          indicates NO Power or HOST RESET active
-   |                          check GPIO7 (HOST RESET#) and GPIO8 (NO Power#)
-   |                          for real IRQ source
-   |       IRQ 28 (EXT IRQ 3) HOST; active high; level sensitive
-   |       IRQ 29 (EXT IRQ 4) PCI INTC#; active low; level sensitive
-   |       IRQ 30 (EXT IRQ 5) PCI INTB#; active low; level sensitive
-   |       IRQ 31 (EXT IRQ 6) PCI INTA#; active low; level sensitive
-   |        -> IRQ6 Pin is NOW GPIO23 and can be activateted by setting
-   |           PPC405GP_GPIO0_TCR Bit 0 = 1 (driving the output as defined in PPC405GP_GPIO0_OR,
-   |           else tristate)
-   | Note for ERIC board:
-   |       An interrupt taken for the HOST (IRQ 28) indicates that
-   |       the HOST wrote a "1" to one of the following locations
-   |       - VGA CRT_GPIO0 (if R1216 is loaded)
-   |       - VGA CRT_GPIO1 (if R1217 is loaded)
-   |
-   +-------------------------------------------------------------------------*/
-
-       mtdcr (UIC0SR, 0xFFFFFFFF);     /* clear all ints */
-       mtdcr (UIC0ER, 0x00000000);     /* disable all ints */
-       mtdcr (UIC0CR, 0x00000000);     /* set all SMI to be non-critical */
-       mtdcr (UIC0PR, 0xFFFFFF88);     /* set int polarities; IRQ3 to 1 */
-       mtdcr (UIC0TR, 0x10000000);     /* set int trigger levels, UART0 is EDGE */
-       mtdcr (UIC0VCR, 0x00000001);    /* set vect base=0,INT0 highest priority */
-       mtdcr (UIC0SR, 0xFFFFFFFF);     /* clear all ints */
-
-       mtdcr (CPC0_CR0, 0x00002000);   /* set IRQ6 as GPIO23 to generate an interrupt request to the PCP2PCI bridge */
-
-       out32 (PPC405GP_GPIO0_OR, 0x60000000);  /*fixme is SMB_INT high or low active??; IRQ6 is GPIO23 output */
-       out32 (PPC405GP_GPIO0_TCR, 0x7E400000);
-
-       return 0;
-}
-
-
-/* ------------------------------------------------------------------------- */
-
-/*
- * Check Board Identity:
- */
-
-int checkboard (void)
-{
-       char *s = getenv ("serial#");
-       char *e;
-
-       puts ("Board: ");
-
-       if (!s || strncmp (s, "ERIC", 9)) {
-               puts ("### No HW ID - assuming ERIC");
-       } else {
-               for (e = s; *e; ++e) {
-                       if (*e == ' ')
-                               break;
-               }
-
-               for (; s < e; ++s) {
-                       putc (*s);
-               }
-       }
-
-
-       putc ('\n');
-
-       return (0);
-}
-
-
-/* ------------------------------------------------------------------------- */
-/* ------------------------------------------------------------------------- */
-/* ------------------------------------------------------------------------- */
-/*
-  initdram(int board_type) reads EEPROM via I2c. EEPROM contains all of
-  the necessary info for SDRAM controller configuration
-*/
-/* ------------------------------------------------------------------------- */
-/* ------------------------------------------------------------------------- */
-phys_size_t initdram (int board_type)
-{
-#ifndef CONFIG_ERIC
-       int i;
-       unsigned char datain[128];
-       int TotalSize;
-#endif
-
-       /*
-        * ToDo: Move the asm init routine sdram_init() to this C file,
-        * or even better use some common ppc4xx code available
-        * in arch/powerpc/cpu/ppc4xx
-        */
-       sdram_init();
-
-#ifdef CONFIG_ERIC
-       /*
-        * we have no EEPROM on ERIC
-        * so let init.S do the init job for SDRAM
-        * and simply return 32MByte here
-        */
-       return (CONFIG_SYS_SDRAM_SIZE * 1024 * 1024);
-#else
-
-       /* Read Serial Presence Detect Information */
-       for (i = 0; i < 128; i++)
-               datain[i] = 127;
-       i2c_send (SPD_EEPROM_ADDRESS, 0, 1, datain, 128);
-       printf ("\nReading DIMM...\n");
-#if 0
-       for (i = 0; i < 128; i++) {
-               printf ("%d=0x%x ", i, datain[i]);
-               if (((i + 1) % 10) == 0)
-                       printf ("\n");
-       }
-       printf ("\n");
-#endif
-
-  /*****************************/
-       /* Retrieve interesting data */
-  /*****************************/
-       /* size of a SDRAM bank */
-       /* Number of bytes per side / number of banks per side */
-       if (datain[31] == 0x08)
-               TotalSize = 32;
-       else if (datain[31] == 0x10)
-               TotalSize = 64;
-       else {
-               printf ("IIC READ ERROR!!!\n");
-               TotalSize = 32;
-       }
-
-       /* single-sided DIMM or double-sided DIMM? */
-       if (datain[5] != 1) {
-               /* double-sided DIMM => SDRAM banks 0..3 are valid */
-               printf ("double-sided DIMM\n");
-               TotalSize *= 2;
-       }
-       /* else single-sided DIMM => SDRAM bank 0 and bank 2 are valid */
-       else {
-               printf ("single-sided DIMM\n");
-       }
-
-
-       /* return size in Mb unit => *(1024*1024) */
-       return (TotalSize * 1024 * 1024);
-#endif
-}
-
-/* ------------------------------------------------------------------------- */
-
-int testdram (void)
-{
-       /* TODO: XXX XXX XXX */
-       printf ("test: xxx MB - ok\n");
-
-       return (0);
-}
-
-/* ------------------------------------------------------------------------- */
diff --git a/board/eric/eric.h b/board/eric/eric.h
deleted file mode 100644 (file)
index b50d521..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * (C) Copyright 2001
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/****************************************************************************
- * FLASH Memory Map as used by TQ Monitor:
- *
- *                          Start Address    Length
- * +-----------------------+ 0x4000_0000     Start of Flash -----------------
- * | MON8xx code           | 0x4000_0100     Reset Vector
- * +-----------------------+ 0x400?_????
- * | (unused)              |
- * +-----------------------+ 0x4001_FF00
- * | Ethernet Addresses    |                 0x78
- * +-----------------------+ 0x4001_FF78
- * | (Reserved for MON8xx) |                 0x44
- * +-----------------------+ 0x4001_FFBC
- * | Lock Address          |                 0x04
- * +-----------------------+ 0x4001_FFC0                     ^
- * | Hardware Information  |                 0x40            | MON8xx
- * +=======================+ 0x4002_0000 (sector border)    -----------------
- * | Autostart Header      |                                 | Applications
- * | ...                   |                                 v
- *
- *****************************************************************************/
diff --git a/board/eric/flash.c b/board/eric/flash.c
deleted file mode 100644 (file)
index 7459873..0000000
+++ /dev/null
@@ -1,1131 +0,0 @@
-/*
- * (C) Copyright 2001
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/ppc4xx.h>
-#include <asm/processor.h>
-
-flash_info_t   flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */
-
-
-#ifdef CONFIG_SYS_FLASH_16BIT
-#define FLASH_WORD_SIZE        unsigned short
-#define        FLASH_ID_MASK   0xFFFF
-#else
-#define FLASH_WORD_SIZE unsigned long
-#define        FLASH_ID_MASK   0xFFFFFFFF
-#endif
-
-/*-----------------------------------------------------------------------
- * Functions
- */
-/* stolen from esteem192e/flash.c */
-ulong flash_get_size (volatile FLASH_WORD_SIZE *addr, flash_info_t *info);
-
-#ifndef CONFIG_SYS_FLASH_16BIT
-static int write_word (flash_info_t *info, ulong dest, ulong data);
-#else
-static int write_short (flash_info_t *info, ulong dest, ushort data);
-#endif
-static void flash_get_offsets (ulong base, flash_info_t *info);
-
-
-/*-----------------------------------------------------------------------
- */
-
-unsigned long flash_init (void)
-{
-       unsigned long size_b0, size_b1;
-       int i;
-       uint pbcr;
-       unsigned long base_b0, base_b1;
-
-       /* Init: no FLASHes known */
-       for (i=0; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i) {
-               flash_info[i].flash_id = FLASH_UNKNOWN;
-       }
-
-       /* Static FLASH Bank configuration here - FIXME XXX */
-
-       size_b0 = flash_get_size((volatile FLASH_WORD_SIZE *)FLASH_BASE0_PRELIM, &flash_info[0]);
-
-       if (flash_info[0].flash_id == FLASH_UNKNOWN) {
-               printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
-                       size_b0, size_b0<<20);
-       }
-
-       /* Only one bank */
-       if (CONFIG_SYS_MAX_FLASH_BANKS == 1)
-         {
-           /* Setup offsets */
-           flash_get_offsets (FLASH_BASE0_PRELIM, &flash_info[0]);
-
-           /* Monitor protection ON by default */
-#if 0      /* sand: */
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               FLASH_BASE0_PRELIM-monitor_flash_len+size_b0,
-                               FLASH_BASE0_PRELIM-1+size_b0,
-                               &flash_info[0]);
-#else
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               CONFIG_SYS_MONITOR_BASE,
-                               CONFIG_SYS_MONITOR_BASE+monitor_flash_len-1,
-                               &flash_info[0]);
-#endif
-           size_b1 = 0 ;
-           flash_info[0].size = size_b0;
-         }
-
-       /* 2 banks */
-       else
-         {
-           size_b1 = flash_get_size((volatile FLASH_WORD_SIZE *)FLASH_BASE1_PRELIM, &flash_info[1]);
-
-           /* Re-do sizing to get full correct info */
-
-           if (size_b1)
-             {
-               mtdcr(EBC0_CFGADDR, PB0CR);
-               pbcr = mfdcr(EBC0_CFGDATA);
-               mtdcr(EBC0_CFGADDR, PB0CR);
-               base_b1 = -size_b1;
-               pbcr = (pbcr & 0x0001ffff) | base_b1 | (((size_b1/1024/1024)-1)<<17);
-               mtdcr(EBC0_CFGDATA, pbcr);
-               /*          printf("PB1CR = %x\n", pbcr); */
-             }
-
-           if (size_b0)
-             {
-               mtdcr(EBC0_CFGADDR, PB1CR);
-               pbcr = mfdcr(EBC0_CFGDATA);
-               mtdcr(EBC0_CFGADDR, PB1CR);
-               base_b0 = base_b1 - size_b0;
-               pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
-               mtdcr(EBC0_CFGDATA, pbcr);
-               /*            printf("PB0CR = %x\n", pbcr); */
-             }
-
-           size_b0 = flash_get_size((volatile FLASH_WORD_SIZE *)base_b0, &flash_info[0]);
-
-           flash_get_offsets (base_b0, &flash_info[0]);
-
-           /* monitor protection ON by default */
-#if 0      /* sand: */
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               FLASH_BASE0_PRELIM-monitor_flash_len+size_b0,
-                               FLASH_BASE0_PRELIM-1+size_b0,
-                               &flash_info[0]);
-#else
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               CONFIG_SYS_MONITOR_BASE,
-                               CONFIG_SYS_MONITOR_BASE+monitor_flash_len-1,
-                               &flash_info[0]);
-#endif
-
-           if (size_b1) {
-             /* Re-do sizing to get full correct info */
-             size_b1 = flash_get_size((volatile FLASH_WORD_SIZE *)base_b1, &flash_info[1]);
-
-             flash_get_offsets (base_b1, &flash_info[1]);
-
-             /* monitor protection ON by default */
-             (void)flash_protect(FLAG_PROTECT_SET,
-                                 base_b1+size_b1-monitor_flash_len,
-                                 base_b1+size_b1-1,
-                                 &flash_info[1]);
-             /* monitor protection OFF by default (one is enough) */
-             (void)flash_protect(FLAG_PROTECT_CLEAR,
-                                 base_b0+size_b0-monitor_flash_len,
-                                 base_b0+size_b0-1,
-                                 &flash_info[0]);
-           } else {
-             flash_info[1].flash_id = FLASH_UNKNOWN;
-             flash_info[1].sector_count = -1;
-           }
-
-           flash_info[0].size = size_b0;
-           flash_info[1].size = size_b1;
-         }/* else 2 banks */
-       return (size_b0 + size_b1);
-}
-
-
-/*-----------------------------------------------------------------------
- */
-
-static void flash_get_offsets (ulong base, flash_info_t *info)
-{
-       int i;
-
-       /* set up sector start adress table */
-       if ((info->flash_id & FLASH_TYPEMASK) == FLASH_28F320J3A ||
-           (info->flash_id & FLASH_TYPEMASK) == FLASH_28F640J3A ||
-           (info->flash_id & FLASH_TYPEMASK) == FLASH_28F128J3A) {
-           for (i = 0; i < info->sector_count; i++) {
-               info->start[i] = base + (i * info->size/info->sector_count);
-           }
-       } else if (info->flash_id & FLASH_BTYPE) {
-            if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) {
-
-#ifndef CONFIG_SYS_FLASH_16BIT
-               /* set sector offsets for bottom boot block type        */
-               info->start[0] = base + 0x00000000;
-               info->start[1] = base + 0x00004000;
-               info->start[2] = base + 0x00008000;
-               info->start[3] = base + 0x0000C000;
-               info->start[4] = base + 0x00010000;
-               info->start[5] = base + 0x00014000;
-               info->start[6] = base + 0x00018000;
-               info->start[7] = base + 0x0001C000;
-               for (i = 8; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00020000) - 0x000E0000;
-               }
-              }
-            else {
-               /* set sector offsets for bottom boot block type        */
-               info->start[0] = base + 0x00000000;
-               info->start[1] = base + 0x00008000;
-               info->start[2] = base + 0x0000C000;
-               info->start[3] = base + 0x00010000;
-               for (i = 4; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00020000) - 0x00060000;
-               }
-              }
-#else
-               /* set sector offsets for bottom boot block type        */
-               info->start[0] = base + 0x00000000;
-               info->start[1] = base + 0x00002000;
-               info->start[2] = base + 0x00004000;
-               info->start[3] = base + 0x00006000;
-               info->start[4] = base + 0x00008000;
-               info->start[5] = base + 0x0000A000;
-               info->start[6] = base + 0x0000C000;
-               info->start[7] = base + 0x0000E000;
-               for (i = 8; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00010000) - 0x00070000;
-               }
-              }
-            else {
-               /* set sector offsets for bottom boot block type        */
-               info->start[0] = base + 0x00000000;
-               info->start[1] = base + 0x00004000;
-               info->start[2] = base + 0x00006000;
-               info->start[3] = base + 0x00008000;
-               for (i = 4; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00010000) - 0x00030000;
-               }
-              }
-#endif
-       } else {
-               /* set sector offsets for top boot block type           */
-               i = info->sector_count - 1;
-            if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) {
-
-#ifndef CONFIG_SYS_FLASH_16BIT
-               info->start[i--] = base + info->size - 0x00004000;
-               info->start[i--] = base + info->size - 0x00008000;
-               info->start[i--] = base + info->size - 0x0000C000;
-               info->start[i--] = base + info->size - 0x00010000;
-               info->start[i--] = base + info->size - 0x00014000;
-               info->start[i--] = base + info->size - 0x00018000;
-               info->start[i--] = base + info->size - 0x0001C000;
-               for (; i >= 0; i--) {
-                       info->start[i] = base + i * 0x00020000;
-               }
-
-              } else {
-
-               info->start[i--] = base + info->size - 0x00008000;
-               info->start[i--] = base + info->size - 0x0000C000;
-               info->start[i--] = base + info->size - 0x00010000;
-               for (; i >= 0; i--) {
-                       info->start[i] = base + i * 0x00020000;
-               }
-              }
-#else
-               info->start[i--] = base + info->size - 0x00002000;
-               info->start[i--] = base + info->size - 0x00004000;
-               info->start[i--] = base + info->size - 0x00006000;
-               info->start[i--] = base + info->size - 0x00008000;
-               info->start[i--] = base + info->size - 0x0000A000;
-               info->start[i--] = base + info->size - 0x0000C000;
-               info->start[i--] = base + info->size - 0x0000E000;
-               for (; i >= 0; i--) {
-                       info->start[i] = base + i * 0x00010000;
-               }
-
-              } else {
-
-               info->start[i--] = base + info->size - 0x00004000;
-               info->start[i--] = base + info->size - 0x00006000;
-               info->start[i--] = base + info->size - 0x00008000;
-               for (; i >= 0; i--) {
-                       info->start[i] = base + i * 0x00010000;
-               }
-              }
-#endif
-       }
-
-
-}
-
-/*-----------------------------------------------------------------------
- */
-
-void flash_print_info  (flash_info_t *info)
-{
-       int i;
-       uchar *boottype;
-       uchar botboot[]=", bottom boot sect)\n";
-       uchar topboot[]=", top boot sector)\n";
-
-       if (info->flash_id == FLASH_UNKNOWN) {
-               printf ("missing or unknown FLASH type\n");
-               return;
-       }
-
-       switch (info->flash_id & FLASH_VENDMASK) {
-       case FLASH_MAN_AMD:     printf ("AMD ");                break;
-       case FLASH_MAN_FUJ:     printf ("FUJITSU ");            break;
-       case FLASH_MAN_SST:     printf ("SST ");                break;
-       case FLASH_MAN_STM:     printf ("STM ");                break;
-       case FLASH_MAN_INTEL:   printf ("INTEL ");              break;
-       default:                printf ("Unknown Vendor ");     break;
-       }
-
-       if (info->flash_id & 0x0001 ) {
-       boottype = botboot;
-       } else {
-       boottype = topboot;
-       }
-
-       switch (info->flash_id & FLASH_TYPEMASK) {
-       case FLASH_AM400B:      printf ("AM29LV400B (4 Mbit%s",boottype);
-                               break;
-       case FLASH_AM400T:      printf ("AM29LV400T (4 Mbit%s",boottype);
-                               break;
-       case FLASH_AM800B:      printf ("AM29LV800B (8 Mbit%s",boottype);
-                               break;
-       case FLASH_AM800T:      printf ("AM29LV800T (8 Mbit%s",boottype);
-                               break;
-       case FLASH_AM160B:      printf ("AM29LV160B (16 Mbit%s",boottype);
-                               break;
-       case FLASH_AM160T:      printf ("AM29LV160T (16 Mbit%s",boottype);
-                               break;
-       case FLASH_AM320B:      printf ("AM29LV320B (32 Mbit%s",boottype);
-                               break;
-       case FLASH_AM320T:      printf ("AM29LV320T (32 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL800B:   printf ("INTEL28F800B (8 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL800T:   printf ("INTEL28F800T (8 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL160B:   printf ("INTEL28F160B (16 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL160T:   printf ("INTEL28F160T (16 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL320B:   printf ("INTEL28F320B (32 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL320T:   printf ("INTEL28F320T (32 Mbit%s",boottype);
-                               break;
-
-#if 0 /* enable when devices are available */
-
-       case FLASH_INTEL640B:   printf ("INTEL28F640B (64 Mbit%s",boottype);
-                               break;
-       case FLASH_INTEL640T:   printf ("INTEL28F640T (64 Mbit%s",boottype);
-                               break;
-#endif
-       case FLASH_28F320J3A:   printf ("INTEL28F320J3A (32 Mbit%s",boottype);
-                               break;
-       case FLASH_28F640J3A:   printf ("INTEL28F640J3A (64 Mbit%s",boottype);
-                               break;
-       case FLASH_28F128J3A:   printf ("INTEL28F128J3A (128 Mbit%s",boottype);
-                               break;
-
-       default:                printf ("Unknown Chip Type\n");
-                               break;
-       }
-
-       printf ("  Size: %ld MB in %d Sectors\n",
-               info->size >> 20, info->sector_count);
-
-       printf ("  Sector Start Addresses:");
-       for (i=0; i<info->sector_count; ++i) {
-               if ((i % 5) == 0)
-                       printf ("\n   ");
-               printf (" %08lX%s",
-                       info->start[i],
-                       info->protect[i] ? " (RO)" : "     "
-               );
-       }
-       printf ("\n");
-       return;
-}
-
-
-/*-----------------------------------------------------------------------
- */
-
-
-/*-----------------------------------------------------------------------
- */
-
-/*
- * The following code cannot be run from FLASH!
- */
-ulong flash_get_size (volatile FLASH_WORD_SIZE *addr, flash_info_t *info)
-{
-       short i;
-       ulong base = (ulong)addr;
-       FLASH_WORD_SIZE value;
-
-       /* Write auto select command: read Manufacturer ID */
-
-
-#ifndef CONFIG_SYS_FLASH_16BIT
-
-       /*
-        * Note: if it is an AMD flash and the word at addr[0000]
-        * is 0x00890089 this routine will think it is an Intel
-        * flash device and may(most likely) cause trouble.
-        */
-
-       addr[0x0000] = 0x00900090;
-       if(addr[0x0000] != 0x00890089){
-               addr[0x0555] = 0x00AA00AA;
-               addr[0x02AA] = 0x00550055;
-               addr[0x0555] = 0x00900090;
-#else
-
-       /*
-        * Note: if it is an AMD flash and the word at addr[0000]
-        * is 0x0089 this routine will think it is an Intel
-        * flash device and may(most likely) cause trouble.
-        */
-
-       addr[0x0000] = 0x0090;
-
-       if(addr[0x0000] != 0x0089){
-               addr[0x0555] = 0x00AA;
-               addr[0x02AA] = 0x0055;
-               addr[0x0555] = 0x0090;
-#endif
-       }
-       value = addr[0];
-
-       switch (value) {
-       case (AMD_MANUFACT & FLASH_ID_MASK):
-               info->flash_id = FLASH_MAN_AMD;
-               break;
-       case (FUJ_MANUFACT & FLASH_ID_MASK):
-               info->flash_id = FLASH_MAN_FUJ;
-               break;
-       case (STM_MANUFACT & FLASH_ID_MASK):
-               info->flash_id = FLASH_MAN_STM;
-               break;
-       case (SST_MANUFACT & FLASH_ID_MASK):
-               info->flash_id = FLASH_MAN_SST;
-               break;
-       case (INTEL_MANUFACT & FLASH_ID_MASK):
-               info->flash_id = FLASH_MAN_INTEL;
-               break;
-       default:
-               info->flash_id = FLASH_UNKNOWN;
-               info->sector_count = 0;
-               info->size = 0;
-               return (0);                     /* no or unknown flash  */
-
-       }
-
-       value = addr[1];                        /* device ID            */
-
-       switch (value) {
-
-       case (AMD_ID_LV400T & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM400T;
-               info->sector_count = 11;
-               info->size = 0x00100000;
-               break;                          /* => 1 MB              */
-
-       case (AMD_ID_LV400B & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM400B;
-               info->sector_count = 11;
-               info->size = 0x00100000;
-               break;                          /* => 1 MB              */
-
-       case (AMD_ID_LV800T & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM800T;
-               info->sector_count = 19;
-               info->size = 0x00200000;
-               break;                          /* => 2 MB              */
-
-       case (AMD_ID_LV800B & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM800B;
-               info->sector_count = 19;
-               info->size = 0x00200000;
-               break;                          /* => 2 MB              */
-
-       case (AMD_ID_LV160T & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM160T;
-               info->sector_count = 35;
-               info->size = 0x00400000;
-               break;                          /* => 4 MB              */
-
-       case (AMD_ID_LV160B & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM160B;
-               info->sector_count = 35;
-               info->size = 0x00400000;
-               break;                          /* => 4 MB              */
-#if 0  /* enable when device IDs are available */
-       case (AMD_ID_LV320T & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM320T;
-               info->sector_count = 67;
-               info->size = 0x00800000;
-               break;                          /* => 8 MB              */
-
-       case (AMD_ID_LV320B & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM320B;
-               info->sector_count = 67;
-               info->size = 0x00800000;
-               break;                          /* => 8 MB              */
-#endif
-
-       case (INTEL_ID_28F800B3T & FLASH_ID_MASK):
-               info->flash_id += FLASH_INTEL800T;
-               info->sector_count = 23;
-               info->size = 0x00200000;
-               break;                          /* => 2 MB              */
-
-       case (INTEL_ID_28F800B3B & FLASH_ID_MASK):
-               info->flash_id += FLASH_INTEL800B;
-               info->sector_count = 23;
-               info->size = 0x00200000;
-               break;                          /* => 2 MB              */
-
-       case (INTEL_ID_28F160B3T & FLASH_ID_MASK):
-               info->flash_id += FLASH_INTEL160T;
-               info->sector_count = 39;
-               info->size = 0x00400000;
-               break;                          /* => 4 MB              */
-
-       case (INTEL_ID_28F160B3B & FLASH_ID_MASK):
-               info->flash_id += FLASH_INTEL160B;
-               info->sector_count = 39;
-               info->size = 0x00400000;
-               break;                          /* => 4 MB              */
-
-       case (INTEL_ID_28F320B3T & FLASH_ID_MASK):
-               info->flash_id += FLASH_INTEL320T;
-               info->sector_count = 71;
-               info->size = 0x00800000;
-               break;                          /* => 8 MB              */
-
-       case (INTEL_ID_28F320B3B & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM320B;
-               info->sector_count = 71;
-               info->size = 0x00800000;
-               break;                          /* => 8 MB              */
-
-#if 0 /* enable when devices are available */
-       case (INTEL_ID_28F320B3T & FLASH_ID_MASK):
-               info->flash_id += FLASH_INTEL320T;
-               info->sector_count = 135;
-               info->size = 0x01000000;
-               break;                          /* => 16 MB             */
-
-       case (INTEL_ID_28F320B3B & FLASH_ID_MASK):
-               info->flash_id += FLASH_AM320B;
-               info->sector_count = 135;
-               info->size = 0x01000000;
-               break;                          /* => 16 MB             */
-#endif
-       case (INTEL_ID_28F320J3A & FLASH_ID_MASK):
-               info->flash_id += FLASH_28F320J3A;
-               info->sector_count = 32;
-               info->size = 0x00400000;
-               break;                          /* => 32 MBit   */
-       case (INTEL_ID_28F640J3A & FLASH_ID_MASK):
-               info->flash_id += FLASH_28F640J3A;
-               info->sector_count = 64;
-               info->size = 0x00800000;
-               break;                          /* => 64 MBit   */
-       case (INTEL_ID_28F128J3A & FLASH_ID_MASK):
-               info->flash_id += FLASH_28F128J3A;
-               info->sector_count = 128;
-               info->size = 0x01000000;
-               break;                          /* => 128 MBit  */
-
-       default:
-               /* FIXME*/
-               info->flash_id = FLASH_UNKNOWN;
-               return (0);                     /* => no or unknown flash */
-       }
-
-       flash_get_offsets(base, info);
-
-       /* check for protected sectors */
-       for (i = 0; i < info->sector_count; i++) {
-               /* read sector protection at sector address, (A7 .. A0) = 0x02 */
-               /* D0 = 1 if protected */
-               addr = (volatile FLASH_WORD_SIZE *)(info->start[i]);
-               info->protect[i] = addr[2] & 1;
-       }
-
-       /*
-        * Prevent writes to uninitialized FLASH.
-        */
-       if (info->flash_id != FLASH_UNKNOWN) {
-               addr = (volatile FLASH_WORD_SIZE *)info->start[0];
-               if( (info->flash_id & 0xFF00) == FLASH_MAN_INTEL){
-                  *addr = (0x00F000F0 & FLASH_ID_MASK);        /* reset bank */
-               } else {
-                  *addr = (0x00FF00FF & FLASH_ID_MASK);        /* reset bank */
-               }
-       }
-
-       return (info->size);
-}
-
-
-/*-----------------------------------------------------------------------
- */
-
-int    flash_erase (flash_info_t *info, int s_first, int s_last)
-{
-
-       volatile FLASH_WORD_SIZE *addr=(volatile FLASH_WORD_SIZE*)(info->start[0]);
-       int flag, prot, sect, l_sect, barf;
-       ulong start, now, last;
-       int rcode = 0;
-
-       if ((s_first < 0) || (s_first > s_last)) {
-               if (info->flash_id == FLASH_UNKNOWN) {
-                       printf ("- missing\n");
-               } else {
-                       printf ("- no sectors to erase\n");
-               }
-               return 1;
-       }
-
-       if ((info->flash_id == FLASH_UNKNOWN) ||
-           ((info->flash_id > FLASH_AMD_COMP) &&
-            ( (info->flash_id & FLASH_VENDMASK) != FLASH_MAN_INTEL ) ) ){
-               printf ("Can't erase unknown flash type - aborted\n");
-               return 1;
-       }
-
-       prot = 0;
-       for (sect=s_first; sect<=s_last; ++sect) {
-               if (info->protect[sect]) {
-                       prot++;
-               }
-       }
-
-       if (prot) {
-               printf ("- Warning: %d protected sectors will not be erased!\n",
-                       prot);
-       } else {
-               printf ("\n");
-       }
-
-       l_sect = -1;
-
-       /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts();
-    if(info->flash_id < FLASH_AMD_COMP) {
-#ifndef CONFIG_SYS_FLASH_16BIT
-       addr[0x0555] = 0x00AA00AA;
-       addr[0x02AA] = 0x00550055;
-       addr[0x0555] = 0x00800080;
-       addr[0x0555] = 0x00AA00AA;
-       addr[0x02AA] = 0x00550055;
-#else
-       addr[0x0555] = 0x00AA;
-       addr[0x02AA] = 0x0055;
-       addr[0x0555] = 0x0080;
-       addr[0x0555] = 0x00AA;
-       addr[0x02AA] = 0x0055;
-#endif
-       /* Start erase on unprotected sectors */
-       for (sect = s_first; sect<=s_last; sect++) {
-               if (info->protect[sect] == 0) { /* not protected */
-                       addr = (volatile FLASH_WORD_SIZE *)(info->start[sect]);
-                       addr[0] = (0x00300030 & FLASH_ID_MASK);
-                       l_sect = sect;
-               }
-       }
-
-       /* re-enable interrupts if necessary */
-       if (flag)
-               enable_interrupts();
-
-       /* wait at least 80us - let's wait 1 ms */
-       udelay (1000);
-
-       /*
-        * We wait for the last triggered sector
-        */
-       if (l_sect < 0)
-               goto DONE;
-
-       start = get_timer (0);
-       last  = start;
-       addr = (volatile FLASH_WORD_SIZE*)(info->start[l_sect]);
-       while ((addr[0] & (0x00800080&FLASH_ID_MASK)) !=
-                         (0x00800080&FLASH_ID_MASK)  )
-       {
-               if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
-                       printf ("Timeout\n");
-                       return 1;
-               }
-               /* show that we're waiting */
-               if ((now - last) > 1000) {      /* every second */
-                       serial_putc ('.');
-                       last = now;
-               }
-       }
-
-DONE:
-       /* reset to read mode */
-       addr = (volatile FLASH_WORD_SIZE *)info->start[0];
-       addr[0] = (0x00F000F0 & FLASH_ID_MASK); /* reset bank */
-    } else {
-
-
-       for (sect = s_first; sect<=s_last; sect++) {
-               if (info->protect[sect] == 0) { /* not protected */
-                       barf = 0;
-#ifndef CONFIG_SYS_FLASH_16BIT
-                       addr = (vu_long*)(info->start[sect]);
-                       addr[0] = 0x00200020;
-                       addr[0] = 0x00D000D0;
-                       while(!(addr[0] & 0x00800080)); /* wait for error or finish */
-                       if( addr[0] & 0x003A003A) {     /* check for error */
-                               barf = addr[0] & 0x003A0000;
-                               if( barf ) {
-                                       barf >>=16;
-                               } else {
-                                       barf = addr[0] & 0x0000003A;
-                               }
-                       }
-#else
-                       addr = (vu_short*)(info->start[sect]);
-                       addr[0] = 0x0020;
-                       addr[0] = 0x00D0;
-                       while(!(addr[0] & 0x0080));     /* wait for error or finish */
-                       if( addr[0] & 0x003A)   /* check for error */
-                               barf = addr[0] & 0x003A;
-#endif
-                       if(barf) {
-                               printf("\nFlash error in sector at %lx\n",(unsigned long)addr);
-                               if(barf & 0x0002) printf("Block locked, not erased.\n");
-                               if((barf & 0x0030) == 0x0030)
-                                       printf("Command Sequence error.\n");
-                               if((barf & 0x0030) == 0x0020)
-                                       printf("Block Erase error.\n");
-                               if(barf & 0x0008) printf("Vpp Low error.\n");
-                               rcode = 1;
-                       } else printf(".");
-                       l_sect = sect;
-               }
-       addr = (volatile FLASH_WORD_SIZE *)info->start[0];
-       addr[0] = (0x00FF00FF & FLASH_ID_MASK); /* reset bank */
-
-       }
-
-    }
-       printf (" done\n");
-       return rcode;
-}
-
-/*-----------------------------------------------------------------------
- */
-
-/*flash_info_t *addr2info (ulong addr)
-{
-       flash_info_t *info;
-       int i;
-
-       for (i=0, info=&flash_info[0]; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i, ++info) {
-               if ((addr >= info->start[0]) &&
-                   (addr < (info->start[0] + info->size)) ) {
-                       return (info);
-               }
-       }
-
-       return (NULL);
-}
-*/
-/*-----------------------------------------------------------------------
- * Copy memory to flash.
- * Make sure all target addresses are within Flash bounds,
- * and no protected sectors are hit.
- * Returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- * 4 - target range includes protected sectors
- * 8 - target address not in Flash memory
- */
-
-/*int flash_write (uchar *src, ulong addr, ulong cnt)
-{
-       int i;
-       ulong         end        = addr + cnt - 1;
-       flash_info_t *info_first = addr2info (addr);
-       flash_info_t *info_last  = addr2info (end );
-       flash_info_t *info;
-
-       if (cnt == 0) {
-               return (0);
-       }
-
-       if (!info_first || !info_last) {
-               return (8);
-       }
-
-       for (info = info_first; info <= info_last; ++info) {
-               ulong b_end = info->start[0] + info->size;*/    /* bank end addr */
-/*             short s_end = info->sector_count - 1;
-               for (i=0; i<info->sector_count; ++i) {
-                       ulong e_addr = (i == s_end) ? b_end : info->start[i + 1];
-
-                       if ((end >= info->start[i]) && (addr < e_addr) &&
-                           (info->protect[i] != 0) ) {
-                               return (4);
-                       }
-               }
-       }
-
-*/     /* finally write data to flash */
-/*     for (info = info_first; info <= info_last && cnt>0; ++info) {
-               ulong len;
-
-               len = info->start[0] + info->size - addr;
-               if (len > cnt)
-                       len = cnt;
-               if ((i = write_buff(info, src, addr, len)) != 0) {
-                       return (i);
-               }
-               cnt  -= len;
-               addr += len;
-               src  += len;
-       }
-       return (0);
-}
-*/
-/*-----------------------------------------------------------------------
- * Copy memory to flash, returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- */
-
-int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
-{
-#ifndef CONFIG_SYS_FLASH_16BIT
-       ulong cp, wp, data;
-       int l;
-#else
-       ulong cp, wp;
-       ushort data;
-#endif
-       int i, rc;
-
-#ifndef CONFIG_SYS_FLASH_16BIT
-
-
-       wp = (addr & ~3);       /* get lower word aligned address */
-
-       /*
-        * handle unaligned start bytes
-        */
-       if ((l = addr - wp) != 0) {
-               data = 0;
-               for (i=0, cp=wp; i<l; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *)cp);
-               }
-               for (; i<4 && cnt>0; ++i) {
-                       data = (data << 8) | *src++;
-                       --cnt;
-                       ++cp;
-               }
-               for (; cnt==0 && i<4; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *)cp);
-               }
-
-               if ((rc = write_word(info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp += 4;
-       }
-
-       /*
-        * handle word aligned part
-        */
-       while (cnt >= 4) {
-               data = 0;
-               for (i=0; i<4; ++i) {
-                       data = (data << 8) | *src++;
-               }
-               if ((rc = write_word(info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp  += 4;
-               cnt -= 4;
-       }
-
-       if (cnt == 0) {
-               return (0);
-       }
-
-       /*
-        * handle unaligned tail bytes
-        */
-       data = 0;
-       for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) {
-               data = (data << 8) | *src++;
-               --cnt;
-       }
-       for (; i<4; ++i, ++cp) {
-               data = (data << 8) | (*(uchar *)cp);
-       }
-
-       return (write_word(info, wp, data));
-
-#else
-       wp = (addr & ~1);       /* get lower word aligned address */
-
-       /*
-        * handle unaligned start byte
-        */
-       if (addr - wp) {
-               data = 0;
-               data = (data << 8) | *src++;
-               --cnt;
-               if ((rc = write_short(info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp += 2;
-       }
-
-       /*
-        * handle word aligned part
-        */
-/*     l = 0; used for debuging  */
-       while (cnt >= 2) {
-               data = 0;
-               for (i=0; i<2; ++i) {
-                       data = (data << 8) | *src++;
-               }
-
-/*             if(!l){
-                       printf("%x",data);
-                       l = 1;
-               }  used for debuging */
-
-               if ((rc = write_short(info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp  += 2;
-               cnt -= 2;
-       }
-
-       if (cnt == 0) {
-               return (0);
-       }
-
-       /*
-        * handle unaligned tail bytes
-        */
-       data = 0;
-       for (i=0, cp=wp; i<2 && cnt>0; ++i, ++cp) {
-               data = (data << 8) | *src++;
-               --cnt;
-       }
-       for (; i<2; ++i, ++cp) {
-               data = (data << 8) | (*(uchar *)cp);
-       }
-
-       return (write_short(info, wp, data));
-
-
-#endif
-}
-
-/*-----------------------------------------------------------------------
- * Write a word to Flash, returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- */
-#ifndef CONFIG_SYS_FLASH_16BIT
-static int write_word (flash_info_t * info, ulong dest, ulong data)
-{
-       vu_long *addr = (vu_long *) (info->start[0]);
-       ulong start, barf;
-       int flag;
-
-
-       /* Check if Flash is (sufficiently) erased */
-       if ((*((vu_long *) dest) & data) != data) {
-               return (2);
-       }
-
-       /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts ();
-
-       if (info->flash_id > FLASH_AMD_COMP) {
-               /* AMD stuff */
-               addr[0x0555] = 0x00AA00AA;
-               addr[0x02AA] = 0x00550055;
-               addr[0x0555] = 0x00A000A0;
-       } else {
-               /* intel stuff */
-               *addr = 0x00400040;
-       }
-       *((vu_long *) dest) = data;
-
-       /* re-enable interrupts if necessary */
-       if (flag)
-               enable_interrupts ();
-
-       /* data polling for D7 */
-       start = get_timer (0);
-
-       if (info->flash_id > FLASH_AMD_COMP) {
-
-               while ((*((vu_long *) dest) & 0x00800080) !=
-                      (data & 0x00800080)) {
-                       if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
-                               return (1);
-                       }
-               }
-
-       } else {
-
-               while (!(addr[0] & 0x00800080)) {       /* wait for error or finish */
-                       if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
-                               return (1);
-                       }
-
-                       if (addr[0] & 0x003A003A) {     /* check for error */
-                               barf = addr[0] & 0x003A0000;
-                               if (barf) {
-                                       barf >>= 16;
-                               } else {
-                                       barf = addr[0] & 0x0000003A;
-                               }
-                               printf ("\nFlash write error at address %lx\n",
-                                       (unsigned long) dest);
-                               if (barf & 0x0002)
-                                       printf ("Block locked, not erased.\n");
-                               if (barf & 0x0010)
-                                       printf ("Programming error.\n");
-                               if (barf & 0x0008)
-                                       printf ("Vpp Low error.\n");
-                               return (2);
-                       }
-
-
-               }
-
-               return (0);
-
-       }
-
-#else
-
-static int write_short (flash_info_t * info, ulong dest, ushort data)
-{
-       vu_short *addr = (vu_short *) (info->start[0]);
-       ulong start, barf;
-       int flag;
-
-       /* Check if Flash is (sufficiently) erased */
-       if ((*((vu_short *) dest) & data) != data) {
-               return (2);
-       }
-
-       /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts ();
-
-       if (info->flash_id < FLASH_AMD_COMP) {
-               /* AMD stuff */
-               addr[0x0555] = 0x00AA;
-               addr[0x02AA] = 0x0055;
-               addr[0x0555] = 0x00A0;
-       } else {
-               /* intel stuff */
-               *addr = 0x00D0;
-               *addr = 0x0040;
-       }
-       *((vu_short *) dest) = data;
-
-       /* re-enable interrupts if necessary */
-       if (flag)
-               enable_interrupts ();
-
-       /* data polling for D7 */
-       start = get_timer (0);
-
-       if (info->flash_id < FLASH_AMD_COMP) {
-               /* AMD stuff */
-               while ((*((vu_short *) dest) & 0x0080) != (data & 0x0080)) {
-                       if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
-                               return (1);
-                       }
-               }
-
-       } else {
-               /* intel stuff */
-               while (!(addr[0] & 0x0080)) {   /* wait for error or finish */
-                       if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT)
-                               return (1);
-               }
-
-               if (addr[0] & 0x003A) { /* check for error */
-                       barf = addr[0] & 0x003A;
-                       printf ("\nFlash write error at address %lx\n",
-                               (unsigned long) dest);
-                       if (barf & 0x0002)
-                               printf ("Block locked, not erased.\n");
-                       if (barf & 0x0010)
-                               printf ("Programming error.\n");
-                       if (barf & 0x0008)
-                               printf ("Vpp Low error.\n");
-                       return (2);
-               }
-               *addr = 0x00B0;
-               *addr = 0x0070;
-               while (!(addr[0] & 0x0080)) {   /* wait for error or finish */
-                       if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT)
-                               return (1);
-               }
-               *addr = 0x00FF;
-       }
-       return (0);
-}
-#endif
-/*-----------------------------------------------------------------------*/
diff --git a/board/eric/init.S b/board/eric/init.S
deleted file mode 100644 (file)
index 1902241..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-/*------------------------------------------------------------------------------+ */
-/* */
-/*       This source code is dual-licensed.  You may use it under the terms */
-/*       of the GNU General Public License version 2, or under the license  */
-/*       below.                                                             */
-/*                                                                          */
-/*       This source code has been made available to you by IBM on an AS-IS */
-/*       basis.  Anyone receiving this source is licensed under IBM */
-/*       copyrights to use it in any way he or she deems fit, including */
-/*       copying it, modifying it, compiling it, and redistributing it either */
-/*       with or without modifications.  No license under IBM patents or */
-/*       patent applications is to be implied by the copyright license. */
-/* */
-/*       Any user of this software should understand that IBM cannot provide */
-/*       technical support for this software and will not be responsible for */
-/*       any consequences resulting from the use of this software. */
-/* */
-/*       Any person who transfers this source code or any derivative work */
-/*       must include the IBM copyright notice, this paragraph, and the */
-/*       preceding two paragraphs in the transferred software. */
-/* */
-/*       COPYRIGHT   I B M   CORPORATION 1995 */
-/*       LICENSED MATERIAL  -  PROGRAM PROPERTY OF I B M */
-/*------------------------------------------------------------------------------- */
-
-/*----------------------------------------------------------------------------- */
-/* Function:     ext_bus_cntlr_init */
-/* Description:  Initializes the External Bus Controller for the external */
-/*             peripherals. IMPORTANT: For pass1 this code must run from */
-/*             cache since you can not reliably change a peripheral banks */
-/*             timing register (pbxap) while running code from that bank. */
-/*             For ex., since we are running from ROM on bank 0, we can NOT */
-/*             execute the code that modifies bank 0 timings from ROM, so */
-/*             we run it from cache. */
-/* */
-/*----------------------------------------------------------------------------- */
-#include <config.h>
-#include <asm/ppc4xx.h>
-
-#define _LINUX_CONFIG_H 1      /* avoid reading Linux autoconf.h file  */
-
-#include <ppc_asm.tmpl>
-#include <ppc_defs.h>
-
-#include <asm/cache.h>
-#include <asm/mmu.h>
-
-
-       .globl  ext_bus_cntlr_init
-ext_bus_cntlr_init:
-       mflr    r4                      /* save link register */
-       bl      ..getAddr
-..getAddr:
-       mflr    r3                      /* get address of ..getAddr */
-       mtlr    r4                      /* restore link register */
-       addi    r4,0,14                 /* set ctr to 10; used to prefetch */
-       mtctr   r4                      /* 10 cache lines to fit this function */
-                                       /* in cache (gives us 8x10=80 instrctns) */
-..ebcloop:
-       icbt    r0,r3                   /* prefetch cache line for addr in r3 */
-       addi    r3,r3,32                /* move to next cache line */
-       bdnz    ..ebcloop               /* continue for 10 cache lines */
-
-       /*------------------------------------------------------------------- */
-       /* Delay to ensure all accesses to ROM are complete before changing */
-       /* bank 0 timings. 200usec should be enough. */
-       /*   200,000,000 (cycles/sec) X .000200 (sec) = 0x9C40 cycles */
-       /*------------------------------------------------------------------- */
-       addis   r3,0,0x0
-       ori     r3,r3,0xA000          /* ensure 200usec have passed since reset */
-       mtctr   r3
-..spinlp:
-       bdnz    ..spinlp                /* spin loop */
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 0 (Flash) initialization (from openbios) */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB1AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS0_AP@h
-       ori     r4,r4,CS0_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB0CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS0_CR@h
-       ori     r4,r4,CS0_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 1 (NVRAM/RTC) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB1AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS1_AP@h
-       ori     r4,r4,CS1_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB1CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS1_CR@h
-       ori     r4,r4,CS1_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 2 (A/D converter) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB2AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS2_AP@h
-       ori     r4,r4,CS2_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB2CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS2_CR@h
-       ori     r4,r4,CS2_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 3 (Ethernet PHY Reset) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB3AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS3_AP@h
-       ori     r4,r4,CS3_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB3CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS3_CR@h
-       ori     r4,r4,CS3_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 4 (PC-MIP PRSNT1#) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB4AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS4_AP@h
-       ori     r4,r4,CS4_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB4CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS4_CR@h
-       ori     r4,r4,CS4_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 5 (PC-MIP PRSNT2#) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB5AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS5_AP@h
-       ori     r4,r4,CS5_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB5CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS5_CR@h
-       ori     r4,r4,CS5_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 6 (CPU LED0) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB6AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS6_AP@h
-       ori     r4,r4,CS6_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB6CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS6_CR@h
-       ori     r4,r4,CS5_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       /*----------------------------------------------------------------------- */
-       /* Memory Bank 7 (CPU LED1) initialization */
-       /*----------------------------------------------------------------------- */
-
-       addi    r4,0,PB7AP
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS7_AP@h
-       ori     r4,r4,CS7_AP@l
-       mtdcr   EBC0_CFGDATA,r4
-
-       addi    r4,0,PB7CR
-       mtdcr   EBC0_CFGADDR,r4
-       addis   r4,0,CS7_CR@h
-       ori     r4,r4,CS7_CR@l
-       mtdcr   EBC0_CFGDATA,r4
-
-/*     addis   r4,r0,FPGA_BRDC@h */
-/*     ori     r4,r4,FPGA_BRDC@l */
-/*     lbz     r3,0(r4)                /###*get FPGA board control reg */
-/*     eieio */
-/*     ori     r3,r3,0x01              /###*set UART1 control to select CTS/RTS */
-/*     stb     r3,0(r4) */
-
-       nop                             /* pass2 DCR errata #8 */
-       blr
-
-/*----------------------------------------------------------------------------- */
-/* Function:     sdram_init */
-/* Description:  Configures SDRAM memory banks on ERIC. */
-/*               We do manually init our SDRAM. */
-/*               If we have two SDRAM banks, simply undef SINGLE_BANK (ROLF :-) */
-/*              It is assumed that a 32MB 12x8(2) SDRAM is used. */
-/*----------------------------------------------------------------------------- */
-       .globl  sdram_init
-
-sdram_init:
-
-       mflr    r31
-
-#ifdef CONFIG_SYS_SDRAM_MANUALLY
-       /*------------------------------------------------------------------- */
-       /* Set MB0CF for bank 0. (0-32MB) Address Mode 4 since 12x8(2) */
-       /*------------------------------------------------------------------- */
-
-       addi    r4,0,SDRAM0_B0CR
-       mtdcr   SDRAM0_CFGADDR,r4
-       addis   r4,0,MB0CF@h
-       ori     r4,r4,MB0CF@l
-       mtdcr   SDRAM0_CFGDATA,r4
-
-       /*------------------------------------------------------------------- */
-       /* Set MB1CF for bank 1. (32MB-64MB) Address Mode 4 since 12x8(2) */
-       /*------------------------------------------------------------------- */
-
-       addi    r4,0,SDRAM0_B1CR
-       mtdcr   SDRAM0_CFGADDR,r4
-       addis   r4,0,MB1CF@h
-       ori     r4,r4,MB1CF@l
-       mtdcr   SDRAM0_CFGDATA,r4
-
-       /*------------------------------------------------------------------- */
-       /* Set MB2CF for bank 2. off */
-       /*------------------------------------------------------------------- */
-
-       addi    r4,0,SDRAM0_B2CR
-       mtdcr   SDRAM0_CFGADDR,r4
-       addis   r4,0,MB2CF@h
-       ori     r4,r4,MB2CF@l
-       mtdcr   SDRAM0_CFGDATA,r4
-
-       /*------------------------------------------------------------------- */
-       /* Set MB3CF for bank 3. off */
-       /*------------------------------------------------------------------- */
-
-       addi    r4,0,SDRAM0_B3CR
-       mtdcr   SDRAM0_CFGADDR,r4
-       addis   r4,0,MB3CF@h
-       ori     r4,r4,MB3CF@l
-       mtdcr   SDRAM0_CFGDATA,r4
-
-       /*------------------------------------------------------------------- */
-       /* Set the SDRAM Timing reg, SDTR1 and the refresh timer reg, RTR. */
-       /* To set the appropriate timings, we need to know the SDRAM speed. */
-       /* We can use the PLB speed since the SDRAM speed is the same as */
-       /* the PLB speed. The PLB speed is the FBK divider times the */
-       /* 405GP reference clock, which on the Walnut board is 33Mhz. */
-       /* Thus, if FBK div is 2, SDRAM is 66Mhz; if FBK div is 3, SDRAM is */
-       /* 100Mhz; if FBK is 3, SDRAM is 133Mhz. */
-       /* NOTE: The Walnut board supports SDRAM speeds of 66Mhz, 100Mhz, and */
-       /* maybe 133Mhz. */
-       /*------------------------------------------------------------------- */
-
-       mfdcr   r5,CPC0_PSR               /* determine FBK divider */
-                                         /* via STRAP reg to calc PLB speed. */
-                                         /* SDRAM speed is the same as the PLB */
-                                         /* speed. */
-       rlwinm  r4,r5,4,0x3             /* get FBK divide bits */
-
-..chk_66:
-       cmpi    %cr0,0,r4,0x1
-       bne     ..chk_100
-       addis   r6,0,SDTR_66@h          /* SDTR1 value for 66Mhz */
-       ori     r6,r6,SDTR_66@l
-       addis   r7,0,RTR_66             /* RTR value for 66Mhz */
-       b       ..sdram_ok
-..chk_100:
-       cmpi    %cr0,0,r4,0x2
-       bne     ..chk_133
-       addis   r6,0,SDTR_100@h        /* SDTR1 value for 100Mhz */
-       ori     r6,r6,SDTR_100@l
-       addis   r7,0,RTR_100           /* RTR value for 100Mhz */
-       b       ..sdram_ok
-..chk_133:
-       addis   r6,0,0x0107            /* SDTR1 value for 133Mhz */
-       ori     r6,r6,0x4015
-       addis   r7,0,0x07F0            /* RTR value for 133Mhz */
-
-..sdram_ok:
-       /*------------------------------------------------------------------- */
-       /* Set SDTR1 */
-       /*------------------------------------------------------------------- */
-       addi    r4,0,SDRAM0_TR
-       mtdcr   SDRAM0_CFGADDR,r4
-       mtdcr   SDRAM0_CFGDATA,r6
-
-       /*------------------------------------------------------------------- */
-       /* Set RTR */
-       /*------------------------------------------------------------------- */
-       addi    r4,0,SDRAM0_RTR
-       mtdcr   SDRAM0_CFGADDR,r4
-       mtdcr   SDRAM0_CFGDATA,r7
-
-       /*------------------------------------------------------------------- */
-       /* Delay to ensure 200usec have elapsed since reset. Assume worst */
-       /* case that the core is running 200Mhz: */
-       /*   200,000,000 (cycles/sec) X .000200 (sec) = 0x9C40 cycles */
-       /*------------------------------------------------------------------- */
-       addis   r3,0,0x0000
-       ori     r3,r3,0xA000          /* ensure 200usec have passed since reset */
-       mtctr   r3
-..spinlp2:
-       bdnz    ..spinlp2               /* spin loop */
-
-       /*------------------------------------------------------------------- */
-       /* Set memory controller options reg, MCOPT1. */
-       /* Set DC_EN to '1' and BRD_PRF to '01' for 16 byte PLB Burst */
-       /* read/prefetch. */
-       /*------------------------------------------------------------------- */
-       addi    r4,0,SDRAM0_CFG
-       mtdcr   SDRAM0_CFGADDR,r4
-       addis   r4,0,0x8080             /* set DC_EN=1 */
-       ori     r4,r4,0x0000
-       mtdcr   SDRAM0_CFGDATA,r4
-
-       /*------------------------------------------------------------------- */
-       /* Delay to ensure 10msec have elapsed since reset. This is */
-       /* required for the MPC952 to stabalize. Assume worst */
-       /* case that the core is running 200Mhz: */
-       /*   200,000,000 (cycles/sec) X .010 (sec) = 0x1E8480 cycles */
-       /* This delay should occur before accessing SDRAM. */
-       /*------------------------------------------------------------------- */
-       addis   r3,0,0x001E
-       ori     r3,r3,0x8480          /* ensure 10msec have passed since reset */
-       mtctr   r3
-..spinlp3:
-       bdnz    ..spinlp3                /* spin loop */
-
-#else
-/*fixme: do SDRAM Autoconfig from EEPROM here */
-
-#endif
-       mtlr    r31                     /* restore lr */
-       blr
index 0fadf814ef4f562886f8785671f2759d8274d9e7..7b3d6dcde2c5d46b3ed01e129decc0847e8a5cf3 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o ../common/pci.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 911460655732b5ddfd8b04302e9fb007f43d60bd..df391da6c2b3ec259b7a4752d69702834eabe28f 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o \
        ../common/misc.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ba92b24c8dcb61b86996cdfd663c9812d4846523..bd0825336fb02787786792cb09e3d226e32f4e46 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 98acb4b7712b5648d4fa528ce0c0613c6515d592..401622f4ab3bd56a2e9f79a1618bbaa5b96ec5ff 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o \
        ../common/misc.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ba92b24c8dcb61b86996cdfd663c9812d4846523..bd0825336fb02787786792cb09e3d226e32f4e46 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1093c52756b40b0c02801fd86945824b0b891274..15a32a0d4c1e6c3f8e457a6779edb0eb23f342a8 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common/xilinx_jtag)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 # Objects for Xilinx JTAG programming (CPLD)
 CPLD    = ../common/xilinx_jtag/lenval.o \
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9a5607f69574bc29c9897b5ce8962a4185f81893..be65097b7e912ffc2d7f8c180e234e31858d9705 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o ../common/cmd_loadpci.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7516c2280e8d88598fd126598b2d67cd6a7c7ac8..c6e1d40bd30b795361904de52e25c069b0fe6a28 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o ../common/auto_update.o
 COBJS  += ../common/cmd_loadpci.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4a640f663806c319c10376ee335e2d534149ad4f..d41cbcd959691978571c40f88ffe8be5febed322 100644 (file)
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 # $(shell mkdir -p $(obj)../common/xilinx_jtag)
 # endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 # Objects for Xilinx JTAG programming (CPLD)
 # CPLD  = ../common/xilinx_jtag/lenval.o \
@@ -41,7 +41,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4379cfc74b15997fb403999d1eb582717924aff3..4c9275bd66c8e7ad505594a40b65229ee8d921d4 100644 (file)
@@ -29,7 +29,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../../Marvell/common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS  = misc.o
 
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
diff --git a/board/esd/cpci750/u-boot.lds b/board/esd/cpci750/u-boot.lds
deleted file mode 100644 (file)
index 29dcc09..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
-    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(256);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(256);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss (NOLOAD)       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-   . = ALIGN(4);
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index ba92b24c8dcb61b86996cdfd663c9812d4846523..bd0825336fb02787786792cb09e3d226e32f4e46 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d736af8b97aaef542537091959f74c44491c882d..f1cadb181e14e0161f693012db0a4f59f49f5200 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o cmd_dasa_sim.o eeprom.o ../common/pci.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0e1d625a1b7911236653925a1ab44588cbf03e1c..3349fe8d4072de87c9117afe9f9022ea256fb4d2 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   .resetvec 0xFFFFFFFC :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } = 0xffff
 
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/ppc4xx/start.o            (.text)
+    arch/powerpc/cpu/ppc4xx/start.o    (.text)
 
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -82,23 +54,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -124,9 +92,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 86bd4461debd6350f02ffeb2a5bd4bd8a3620128..d4012b022db96a2cd60b8526ff7027b2947f1342 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common/xilinx_jtag)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 # Objects for Xilinx JTAG programming (CPLD)
 CPLD    = ../common/xilinx_jtag/lenval.o \
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ba92b24c8dcb61b86996cdfd663c9812d4846523..bd0825336fb02787786792cb09e3d226e32f4e46 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 909d007c47dedbdf362569c5c04626f7d7dabc38..06824c7ac4a8d1248892b649430293d70f07d6e7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -32,8 +32,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c57d90cf6fed304f5257010ecd59be1a7e5c7042..090005febf2cc6116e8b20c52741a188369b61b2 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o \
        ../common/misc.o \
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 98acb4b7712b5648d4fa528ce0c0613c6515d592..401622f4ab3bd56a2e9f79a1618bbaa5b96ec5ff 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o \
        ../common/misc.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2e3d73a351398066bd7fd5d0a4a9398528617bc0..30dba232651169ffa40cd64bc70567adb616ed57 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 3fbb9099691d25955ec3a79fbb7a33dd3367c218..22ee9847b3bf91f4fe7d44730e0263eba7a8ac17 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2dd6b25c9481c5afa05daefb009e166325d71917..b4144798e4486f7a80cbc0d04369f0d705a0f967 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-$(CONFIG_HAS_DATAFLASH) += partition.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index edf3c5686290e595c7173021d6c47748a0006d17..f9274b50c33792493e19de164513bbf38d98d58c 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o cmd_ocrtc.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 755c5eebdcce21abe1c3a054d71f98e0cfd41ea7..87657ffcb2daad28165f317b015ef8f72d6424b0 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y                                += $(BOARD).o
 COBJS-$(CONFIG_HAS_DATAFLASH)  += partition.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 862e88d39f51a05d051ba1c2c2a24dcfba39048c..d551ec91be61d7c5fcb93e786c4ebd280b54c5a1 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ../common/misc.o cmd_pci405.o
 SOBJS  = writeibm.o
@@ -36,8 +36,8 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-#      $(AR) $(ARFLAGS) $@ $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+#      $(call cmd_link_o_target, $(OBJS))
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index efd24feef84e4d1cd0d77aaa590dd7ee4a0382a4..2f42566e61597c8162bb049c0ea7362ef2432615 100644 (file)
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
 # $(shell mkdir -p $(obj)../common/xilinx_jtag)
 # endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 # Objects for Xilinx JTAG programming (CPLD)
 # CPLD  = ../common/xilinx_jtag/lenval.o \
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 98acb4b7712b5648d4fa528ce0c0613c6515d592..401622f4ab3bd56a2e9f79a1618bbaa5b96ec5ff 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o \
        ../common/misc.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 12c1ba730cbfdc21f0d11adf233827c9412fa361..36707f4fbbd0e6464d37d9bac048ae02973ceacd 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common/xilinx_jtag)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 # Objects for Xilinx JTAG programming (CPLD)
 CPLD    = ../common/xilinx_jtag/lenval.o \
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f435495767afbd4c3cf1a17a697c566e0dae56c6..2833844793c7e49ec7bdfedee0d3d6f584f76dc9 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        = $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 8c09efae7bbe60f1042729c9c637320e6306c43c..f640d1e0085670dae7b87f45a9bf4ccf563a80ce 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o cmd_pmc440.o sdram.o fpga.o \
        ../common/cmd_loadpci.o
@@ -37,8 +37,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9f937c8ca3c0b74c087ab2c19887d51e78fa63b6..5b926b21441358c6d46f14739aa51df58d472ce2 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o caddy.o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 98acb4b7712b5648d4fa528ce0c0613c6515d592..401622f4ab3bd56a2e9f79a1618bbaa5b96ec5ff 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o \
        ../common/misc.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 86bd4461debd6350f02ffeb2a5bd4bd8a3620128..d4012b022db96a2cd60b8526ff7027b2947f1342 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common/xilinx_jtag)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 # Objects for Xilinx JTAG programming (CPLD)
 CPLD    = ../common/xilinx_jtag/lenval.o \
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 98acb4b7712b5648d4fa528ce0c0613c6515d592..401622f4ab3bd56a2e9f79a1618bbaa5b96ec5ff 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o \
        ../common/misc.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c79cba85667e1f681a51eb424a3e7609b287c435..4ecef4a297272063e0844db3166bbfc6d21b5d6f 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := espt.o
 SOBJS  := lowlevel_init.o
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 5b6a9c0a1f78a19ee2713862849bf3af59e7b3aa..93b756bc8e3b3aa125b48f6efcde1121dba521d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    net/libnet.o                       (.text*)
+    board/esteem192e/libesteem192e.o   (.text*)
+    *(.text.*printf)
 
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +56,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +94,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index fdf77369158ee75371bc58a7354886dbcc99c5b8..99a9c9d4eeff3b82b06357011d30b8facf24a387 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS =  $(BOARD).o flash.o phantom.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 18b735061e4346ef5019aee270db6ea04fcd0028..644b4e3a592bb18f450670221c03d1ee10a01e7e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o multiverse.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 28ac825c19643cf9fa173366ef502b4dcfb056bc..614880be1ff85804842d550bb3cde5cb8797a675 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o    (.text)
-    arch/powerpc/cpu/mpc8xx/interrupts.o       (.text)
-    arch/powerpc/cpu/mpc8xx/serial.o   (.text)
-    arch/powerpc/cpu/mpc8xx/cpu_init.o (.text)
-    arch/powerpc/cpu/mpc8xx/speed.o    (.text)
-    common/dlmalloc.o  (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    net/libnet.o                       (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    *(.text.*printf*)
 
     . = env_offset;
-    common/env_embedded.o(.text)
-    *(.text)
-    *(.got1)
+    common/env_embedded.o              (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -87,23 +56,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -129,9 +94,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index e98b5418cac5a6e4f234c9cf0b3031b5554d8d1e..4d02aae0b542dcc37a1c8e40dcb1ab47e8ce185a 100644 (file)
@@ -31,7 +31,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-y += led.o
@@ -41,7 +41,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y) $(SOBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c31b7a1a5d8f1632008dffbe9221500d3a18fe56..15da3d87ab66acb4f814607bd6adc557072a384a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := cpuat91.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 3ab1aa038b05de8f839d57e0febd425ccf7e1ff1..102eaded4c71120a36ec38d306210b30796e119f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := evb4510.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index aa39bafab659e8e247fef204deb2a61e44ca5521..d72465edc922ce9d1cc0c47db78fad4159b3bd6e 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS  = misc.o
 COBJS  = $(BOARD).o flash.o serial.o memory.o pci.o \
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index 29dcc0910051a98f2e2d119f291317fddf1ea8d7..bc0bb0636ac36d0df70360ccd8625279d6cb1ed0 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
+    arch/powerpc/cpu/74xx_7xx/start.o  (.text*)
+    *(.text*)
 
-    *(.text)
-    *(.got1)
+    . = DEFINED(env_offset) ? env_offset : .;
+    common/env_embedded.o      (.ppcenv*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -82,23 +51,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -124,9 +89,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 667c6afbc4dfa9906bcb04e824cd883eada4f44a..cf79029e0b68ca9e821808f75d0d1b695197bc77 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o lamp.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 100c9804da66ccdbaf268c524683d36bc7163f27..c1ad14120d93665c5c689feb8eadfaf2ccb03757 100644 (file)
@@ -26,48 +26,22 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
     /*. = DEFINED(env_offset) ? env_offset : .;*/
-    common/env_embedded.o      (.ppcenv)
+    common/env_embedded.o      (.ppcenv*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -75,23 +49,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -117,9 +87,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
diff --git a/board/fads/u-boot.lds.debug b/board/fads/u-boot.lds.debug
deleted file mode 100644 (file)
index a7a67a9..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * (C) Copyright 2000
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    arch/powerpc/lib/extable.o (.text)
-
-    . = env_offset;
-    common/env_embedded.o(.text)
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.rodata)
-    *(.rodata1)
-    *(.rodata.str1.4)
-    *(.eh_frame)
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x0FFF) & 0xFFFFF000;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(4096);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(4096);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index 74f660d23ea86bf77d538654fe291e65da36e7a4..fb540b49f8766dff0c26e859515e39f15fd5a4df 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := a320evb.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0da55d97911f48bca7446676adb3029375068cab..4a96388f04e3acf7c601d9570b238b8077394c4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -74,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index dca3ac0fef5dba709e07a556d2da32e38c5c1fac..1abd3e56703b014d0a0085ae332d139e8634e170 100644 (file)
 include $(TOPDIR)/config.mk
 
 ifneq ($(OBJTREE),$(SRCTREE))
-$(shell mkdir -p $(obj)board/$(VENDOR)/common)
+$(shell mkdir -p $(obj)board/freescale/common)
 endif
 
-LIB    = $(obj)lib$(VENDOR).a
+LIB    = $(obj)libfreescale.o
 
 COBJS-$(CONFIG_FSL_CADMUS)     += cadmus.o
 COBJS-$(CONFIG_FSL_VIA)                += cds_via.o
-COBJS-$(CONFIG_FSL_DIU_FB)     += fsl_diu_fb.o
 COBJS-$(CONFIG_FSL_PIXIS)      += pixis.o
 COBJS-$(CONFIG_FSL_NGPIXIS)    += ngpixis.o
 COBJS-$(CONFIG_PQ_MDS_PIB)     += pq-mds-pib.o
@@ -53,7 +52,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7a56fa2ce3de88f64b2437cba7ed0d140b07ef5a..1047d783f498dfcc48fa9faf4962128193bf5d08 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 507e21a03bbcee2f15327828528ebdc2a1843ca2..860286930a1fc44ef006135f824b8ecf474b295d 100644 (file)
@@ -56,8 +56,8 @@ SECTIONS
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/m68k/cpu/mcf52x2/start.o              (.text)
-    arch/m68k/cpu/mcf52x2/libmcf52x2.a (.text)
-    arch/m68k/lib/libm68k.a            (.text)
+    arch/m68k/cpu/mcf52x2/libmcf52x2.o (.text)
+    arch/m68k/lib/libm68k.o            (.text)
     common/dlmalloc.o          (.text)
 
     . = DEFINED(env_offset) ? env_offset : .;
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4591196e68ed27323ef59c662100e6efa152e85b..9458aef5c38b4ffc8b4b4992e44067afd0796d9b 100644 (file)
@@ -56,9 +56,9 @@ SECTIONS
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/m68k/cpu/mcf5227x/start.o     (.text)
-    arch/m68k/cpu/mcf5227x/libmcf5227x.a       (.text)
-    arch/m68k/lib/libm68k.a            (.text)
-    lib/libgeneric.a   (.text)
+    arch/m68k/cpu/mcf5227x/libmcf5227x.o       (.text)
+    arch/m68k/lib/libm68k.o            (.text)
+    lib/libgeneric.o   (.text)
     common/cmd_mem.o           (.text)
     common/main.o              (.text)
 
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 45ff158905a842644f14583d1317e7070fac41c0..47ec6dc8b951ec675d945c1f4692b7bd6aa41948 100644 (file)
@@ -60,7 +60,7 @@ SECTIONS
     arch/m68k/cpu/mcf523x/cpu_init.o   (.text)
     arch/m68k/cpu/mcf523x/interrupts.o (.text)
     arch/m68k/cpu/mcf523x/speed.o              (.text)
-    arch/m68k/lib/libm68k.a            (.text)
+    arch/m68k/lib/libm68k.o            (.text)
     common/dlmalloc.o          (.text)
     common/cmd_bootm.o         (.text)
     common/cmd_flash.o         (.text)
@@ -68,7 +68,7 @@ SECTIONS
     common/cmd_mem.o           (.text)
     common/console.o           (.text)
     common/main.o              (.text)
-    lib/libgeneric.a   (.text)
+    lib/libgeneric.o   (.text)
 
     . = DEFINED(env_offset) ? env_offset : .;
     common/env_embedded.o      (.text)
index 424ab1cf9e3251575e95a3faf767cfc87b765cf2..ac860c1348f6ba2e8d6ce881e99d95599b203ef9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 424ab1cf9e3251575e95a3faf767cfc87b765cf2..ac860c1348f6ba2e8d6ce881e99d95599b203ef9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 424ab1cf9e3251575e95a3faf767cfc87b765cf2..ac860c1348f6ba2e8d6ce881e99d95599b203ef9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ca41232c6420e43d6863ef5e6d3f10dce4f90851..9878ec18c44ffcc676cebe1a88d369d74b879325 100644 (file)
@@ -24,7 +24,7 @@
 OUTPUT_ARCH(m68k)
 /* Do we need any of these for elf?
    __DYNAMIC = 0;    */
-GROUP(libgcc.a)
+GROUP(libgcc.o)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
index 424ab1cf9e3251575e95a3faf767cfc87b765cf2..ac860c1348f6ba2e8d6ce881e99d95599b203ef9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 424ab1cf9e3251575e95a3faf767cfc87b765cf2..ac860c1348f6ba2e8d6ce881e99d95599b203ef9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 6577299c25e97f26261d1e77424d89e52bb7eab1..2e002ad364d0be9ec33e768611d5ad248dd0e56f 100644 (file)
@@ -56,8 +56,8 @@ SECTIONS
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/m68k/cpu/mcf532x/start.o              (.text)
-    arch/m68k/cpu/mcf532x/libmcf532x.a (.text)
-    arch/m68k/lib/libm68k.a            (.text)
+    arch/m68k/cpu/mcf532x/libmcf532x.o (.text)
+    arch/m68k/lib/libm68k.o            (.text)
     common/dlmalloc.o          (.text)
     lib/zlib.o         (.text)
 
index 07b693c13eadde1f16d2457358757731daffe2df..f8699fc4ad684a74fef299c7611cb7dcedc26a8c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o nand.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 07b693c13eadde1f16d2457358757731daffe2df..f8699fc4ad684a74fef299c7611cb7dcedc26a8c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o nand.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 09ac481dd1dee3ef383a6b22adb50f25a3790502..bd86a45bcb45a75a46ddd3a759107fbe06c91090 100644 (file)
@@ -56,13 +56,13 @@ SECTIONS
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
     arch/m68k/cpu/mcf5445x/start.o             (.text)
-    arch/m68k/cpu/mcf5445x/libmcf5445x.a       (.text)
-    arch/m68k/lib/libm68k.a            (.text)
+    arch/m68k/cpu/mcf5445x/libmcf5445x.o       (.text)
+    arch/m68k/lib/libm68k.o            (.text)
     common/cmd_flash.o         (.text)
     common/dlmalloc.o          (.text)
     common/main.o              (.text)
     common/image.o             (.text)
-    lib/libgeneric.a   (.text)
+    lib/libgeneric.o   (.text)
 
     . = DEFINED(env_offset) ? env_offset : .;
     common/env_embedded.o      (.text)
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 981763d205ca70ece9f60df14e99c235f425cc3e..c454d76bbfce1d9ce61eaee0139226bcffed2529 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 20fbf6e9aeb2a01e1a89fc341fe3932402181448..cded9ebdf23bc2779ca6e3031b10a8e7a46a94dd 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 $(shell mkdir -p $(OBJTREE)/board/freescale/common)
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 995afbcd5ceee86089533a32d6fb01e014fe64c5..5df9d5d69b0dcf5ea596a3421163c4674906fc3a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o tsi108_init.o
 SOBJS  := asm_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e1d4af0f904b0e3987574a1e3559142030013eee..74f5b8599e6f731012471c65eb3d6ebb70dbb332 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4ffb83f783fd91b1804b502bee8ba079fb9502a9..f4938c49bd2fe0cfc575fd53116fac5c8aca13cd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e9bfa2bc0dbb1b634b83b50fcfb76c7bc6f71039..241a55782e8fd7a65a795a8fe2762cdf72e7adc8 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o sdram.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7c34c5e1641a64fd69a670837c85a3f9cd430959..f18aded2ce5110b97887f0d36eb13c879514b6bd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o sdram.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7c34c5e1641a64fd69a670837c85a3f9cd430959..f18aded2ce5110b97887f0d36eb13c879514b6bd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o sdram.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c95f90eaab82d6797b6c797d1f00ed7a50687b14..4a1b249b4c5bf31c2e8d23b42ea4c6a51e362ce2 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c34905c74a8d8a3766c5eda1a5280b05d44934ee..4f76eab23e19ddfc3af006329ca990e5c0c5f574 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c34905c74a8d8a3766c5eda1a5280b05d44934ee..4f76eab23e19ddfc3af006329ca990e5c0c5f574 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 527420b53472d1d97b2634f5fba312318142ccc2..f431316d79506f65a66e1a11a9486cc7716809a8 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c34905c74a8d8a3766c5eda1a5280b05d44934ee..4f76eab23e19ddfc3af006329ca990e5c0c5f574 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d1735041f967dd820fff1bfa49e60fef6c752124..107bdc312b35d7498e5b7f567b7b33e59fd38dc9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_CMD_NAND) += nand.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c34905c74a8d8a3766c5eda1a5280b05d44934ee..4f76eab23e19ddfc3af006329ca990e5c0c5f574 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c34905c74a8d8a3766c5eda1a5280b05d44934ee..4f76eab23e19ddfc3af006329ca990e5c0c5f574 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7fcbdaa09c50f6673862152fdb5d2d5a23c89cd6..2ee7b4333a3a6ac3baae3de0f2f8757f1ffd2261 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 4c6da4d80e46c8ccb5b33693aff50b4169e16804..b94237e7a2abb1d39f13575846df75c0c0514a98 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index c19a527d16591170c6eb8d8dfa3bac29a9ed0227..b50d7fde42656e338eb0afc1706864acbdf44d15 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 39979944e4dd6304b2498b6df6bf82729605d494..8684f5ceca9dc831a1176878a98d41e69d6acbd4 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index c19a527d16591170c6eb8d8dfa3bac29a9ed0227..b50d7fde42656e338eb0afc1706864acbdf44d15 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index c19a527d16591170c6eb8d8dfa3bac29a9ed0227..b50d7fde42656e338eb0afc1706864acbdf44d15 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 67dbdeb3a9843562c10cbe5346701f947cf1416e..9fce3be503db7295371fcc41dac98bee4d542f01 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index d499fb31e2f896e93363d37ba54a04040ae20c40..eda359feed0207d3896b31d04f6ae818f221961d 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += bcsr.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 23805ea41a4dabc884805af8d22c3e74f8c2d9ee..1d49757289f0fcd0fa790e57fc65573ebb12eb53 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += bcsr.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 3e82bbfeff4f6510270a2dddf7db75eeef4e0317..5b9fa10be52ecf118e9b2d05ad728fc6c5132944 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 847edaf920f297df2d9e1becd3c481fa39755f6a..e91c2c59cb1eb2431f08128056b5843427e74d23 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-$(CONFIG_FSL_DDR2) += ddr.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index c78b0a8280b4271518475cc29d866a232ba8445f..433c132fab676d46572acc2642671a98c8060e71 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 812111db10070b47098e7364fb446848d568b9ef..882ff0bf2d1eb8b41f8d92ef5cebb732e19984c9 100644 (file)
@@ -60,9 +60,6 @@ int checkboard(void)
        return 0;
 }
 
-const char *board_hwconfig = "foo:bar=baz";
-const char *cpu_hwconfig = "foo:bar=baz";
-
 phys_size_t
 initdram(int board_type)
 {
index a12f39174beaf379264431db5380e75cd97d0076..be4d61a9e340f147fa9e8d5e0f47e2beb8ceb2b0 100644 (file)
@@ -19,7 +19,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mx31ads.o
 SOBJS  := lowlevel_init.o
@@ -29,7 +29,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 273129457b227ee95506a38b69fb309fc0fe7aa0..ecd97075b04bab4d64c4e1e30bab5c6b8df1cbf7 100644 (file)
@@ -38,10 +38,10 @@ SECTIONS
          /* the sector layout of our flash chips!      XXX FIXME XXX   */
 
          arch/arm/cpu/arm1136/start.o                  (.text)
-         board/freescale/mx31ads/libmx31ads.a  (.text)
-         arch/arm/lib/libarm.a                 (.text)
-         net/libnet.a                          (.text)
-         drivers/mtd/libmtd.a                  (.text)
+         board/freescale/mx31ads/libmx31ads.o  (.text)
+         arch/arm/lib/libarm.o                 (.text)
+         net/libnet.o                          (.text)
+         drivers/mtd/libmtd.o                  (.text)
 
          . = DEFINED(env_offset) ? env_offset : .;
          common/env_embedded.o(.text)
index d5d8f0475dc2af5383023d0c2a43f37e295e1861..02878852ae6f518a75e923432953b030174f1d09 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mx31pdk.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index eb12fc51fd97bd4f4a4e27b3768000ad86c7e40f..3344c28092002fad016347910dbc79337efe816a 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mx51evk.o
 
@@ -30,7 +30,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 678eb2ae0687355eea9a1ef0fe4b2f845e8cf46b..30d174030a710e181fc1bd49f0bb5264933717b2 100644 (file)
@@ -9,7 +9,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -23,7 +23,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index ad1b7692913a21502c3ad94bd6165b01c7e2c05f..ba7e5df056826aabb31c7ac6d6f3e4c0f608a925 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 41032ace4269e9b0db1c8edd72ae91986acc577b..3306e4484ad36c4cdcc69c972aab3af6f7d1c52c 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index b507677c3fed782433f79be5899e98bc571f0d5a..b05ef989b915674e75bd0af6989ef3f447ae4858 100644 (file)
@@ -69,9 +69,6 @@ int checkboard(void)
        return 0;
 }
 
-const char *board_hwconfig = "foo:bar=baz";
-const char *cpu_hwconfig = "foo:bar=baz";
-
 phys_size_t initdram(int board_type)
 {
        phys_size_t dram_size = 0;
index 493422d390af18206e07db93ebe9c5c28909e247..91d4d357c927b42345c45be1b35da2a73cbc4365 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o m88e6060.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1c60447e85483ac51c5d52c111cc9804538f0649..0f53340312aa390964fff395062deb239e4538bc 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o strataflash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4a5d73b47c13b1e4311c52878581ff5428a3f5e9..66d5a384e0171b14b14dacafd2c5f8a9d344fc13 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4a5d73b47c13b1e4311c52878581ff5428a3f5e9..66d5a384e0171b14b14dacafd2c5f8a9d344fc13 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4a5d73b47c13b1e4311c52878581ff5428a3f5e9..66d5a384e0171b14b14dacafd2c5f8a9d344fc13 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 56123dc07b3ca9c62b52302f366b0dd7faeb8e35..a567c76ac8bfd3d0a47b926811f8bbf74cb330ff 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 56123dc07b3ca9c62b52302f366b0dd7faeb8e35..a567c76ac8bfd3d0a47b926811f8bbf74cb330ff 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 22ce8e64f292a3e687aaadb4e56cdd0d36e455f9..f5d88bb6e2ae58724e4364ed454a407a1034aceb 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7bc636bb9c1faf8d2bf6eef4bd4623cca8975a43..e62aa1b0389bd9f95ec5b574e08723338533347b 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := gcplus.o flash.o
 SOBJS  := lowlevel_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 13dff52d77b6b18ef66cc65d818211b8efae15fe..ed3120784b9b0c305982520657ebdf7ffbdd16d9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-$(CONFIG_IO) += io.o
 COBJS-$(CONFIG_IOCON) += iocon.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 93cde5aa17472807c38ac9dbe1df6964ccada31c..22570373850c879f8a21e75e299dacf271a4fdde 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)board/$(VENDOR)/common)
 endif
 
-LIB    = $(obj)lib$(VENDOR).a
+LIB    = $(obj)lib$(VENDOR).o
 
 COBJS-$(CONFIG_IO) += miiphybb.o
 COBJS-$(CONFIG_IOCON) += osd.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 05800ffba487bb2b895eabc13030b7ce29ccf38d..239c870eff76ebfec29cfafe6a72c88cd69208aa 100644 (file)
@@ -142,8 +142,7 @@ static int osd_print(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        char *text;
 
        if (argc < 5) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
 
        x = simple_strtoul(argv[1], NULL, 16);
@@ -204,8 +203,7 @@ int osd_write(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        unsigned count = (argc > 4) ?  simple_strtoul(argv[4], NULL, 16) : 1;
 
        if ((argc < 4) || (strlen(argv[3]) % 4)) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
 
        x = simple_strtoul(argv[1], NULL, 16);
index 1270feafc256fe879f26fb521a492aae080337cc..1c3dadb30632f74f4ab66e90cea5cbe93ff0f6e1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS   =
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b93f2c3890ef77b66ed5f5a3afa2365c1501963b..5b0ffc29209a37d33567d66b67750008bba7309d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 12f8a642e70490726d2d175f476e15134ab8a812..4d87ea9a786e1ae05552573042ab27f47d347c65 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -34,8 +34,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1270feafc256fe879f26fb521a492aae080337cc..1c3dadb30632f74f4ab66e90cea5cbe93ff0f6e1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS   =
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fd34cb0db29487c2ab1caada7600fdf4c3c6f8c5..585362691638532588086f5c6db7684ab3a846c1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o beeper.o fpga.o ioport.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 35e92d11140d5ea167be0e34820093a64adf1c8d..cda6c47b33a9f1f29174045b8263557b584a2a79 100644 (file)
@@ -2,7 +2,7 @@
  * Linker command file for the GEN860T board when the environment is
  * stored in flash memory.
  *
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -31,33 +31,12 @@ SECTIONS
    * Read-only sections, merged into text segment:
    */
   . = + SIZEOF_HEADERS;
-  .interp        : { *(.interp)                }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt           : { *(.plt)           }
   .text :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -65,9 +44,6 @@ SECTIONS
   {
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /*
    * Read-write section, merged into data segment:
@@ -77,23 +53,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data:
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -118,9 +90,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index a4c30321168f12eaa06b16859be466a874d2e695..1729c17552a3857f9de4eac7a2d85dd70f7cf8d8 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Linker command file for the GEN860T board.
  *
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -30,44 +30,19 @@ SECTIONS
    * Read-only sections, merged into text segment:
    */
   . = + SIZEOF_HEADERS;
-  .interp        : { *(.interp)                }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt           : { *(.plt)           }
   .text :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /*
    * Read-write section, merged into data segment:
@@ -77,23 +52,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -119,9 +90,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index bcfdd87af428d38678db3db96b505460e26bf578..6b45ea0c26ecf59c682c2c7c6e2b2af423f6a426 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    lib/libgeneric.o                   (.text*)
+    net/libnet.o                       (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    board/genietv/libgenietv.o         (.text*)
+    arch/powerpc/lib/libpowerpc.o      (.text*)
+    *(.text.do_load_serial*)
+    *(.text.do_mem_*)
+    *(.text.do_bootm*)
 
     . = env_offset;
-    common/env_embedded.o(.text)
-    *(.text)
-    *(.got1)
+    common/env_embedded.o              (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -84,23 +61,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -126,9 +99,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
   }
   . = ALIGN(256 * 1024);
index 097ffec35c2126aa823057e373d37f5645b0e619..77965fbba688f42a72eac3c15cfa9ceb308f9486 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o ee_access.o
 SOBJS  = lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index cb3c566d3195771fb5c2b067facf7931dac89a9e..82a80680ba3c2374ae77653fbb1b79dd6fdc372b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := gw8260.o flash.o
 SOBJS   :=
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index e121d65f7bcb16bc089b6f987dae9b0c7609a60c..456140df9f0d193b66bbf829f24d31114e5eb2f7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    board/hermes/libhermes.o           (.text*)
 
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/cpu/mpc8xx/interrupts.o       (.text)
-    arch/powerpc/lib/time.o            (.text)
-    arch/powerpc/lib/ticks.o           (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    lib/crc32.o                (.text)
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +53,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +91,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 5aa02d4a7f17a2319aea7376c4e5b9497aa352a5..befc92a7f553a7c43697129c30021504c53a1929 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS =  $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 1fb7e79aa97a1c4f347d1f9113be2119d44c39f9..6b56f33ee3b5fa1aef6268722bcf9a79eedae8d7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o bsp.o eeprom.o fetch.o input.o env.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index bfeaf791e19f2b2a4900fe501d7b39d91c75be2a..0d176764f1a276266bcfbd206505ed95b42c2c8c 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c94e24fc6a683dff273d5ec91f764bb2c8e6702c..d45db9ff8212c9bf53bee4f9a85e7a903b327158 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2b10b0c518acfb4eee7879e5aa0f3ccaa7f7b4cb..b49f26da274c521461933b0e4a8c75ef66f07dee 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 7c5278adae7f8ba9a2683ce9e8f8ef05dad2af41..08dfaeec0af8513f058e25d6405bbacc10d38001 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-/*
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-
-    . = env_offset;
-    common/env_embedded.o(.text)
-*/
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -88,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index ca41232c6420e43d6863ef5e6d3f10dce4f90851..9878ec18c44ffcc676cebe1a88d369d74b879325 100644 (file)
@@ -24,7 +24,7 @@
 OUTPUT_ARCH(m68k)
 /* Do we need any of these for elf?
    __DYNAMIC = 0;    */
-GROUP(libgcc.a)
+GROUP(libgcc.o)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
index 4c9634c9750bca39b4270dc0b2dbcfcedd327d44..2b702cee2d76146e1fcc51989e25b05cb55dfb97 100644 (file)
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
-COBJS  = $(BOARD).o flash.o
+COBJS  = $(BOARD).o
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
diff --git a/board/ids8247/flash.c b/board/ids8247/flash.c
deleted file mode 100644 (file)
index 5107553..0000000
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * (C) Copyright 2005
- * Heiko Schocher, DENX Software Engineering, <hs@denx.de>
- *
- * (C) Copyright 2001
- * Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net
- *
- * (C) Copyright 2001-2005
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#undef DEBUG
-
-#include <common.h>
-
-flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];   /* info for FLASH chips    */
-
-#if defined(CONFIG_ENV_IS_IN_FLASH)
-# ifndef  CONFIG_ENV_ADDR
-#  define CONFIG_ENV_ADDR      (CONFIG_SYS_FLASH_BASE + CONFIG_ENV_OFFSET)
-# endif
-# ifndef  CONFIG_ENV_SIZE
-#  define CONFIG_ENV_SIZE      CONFIG_ENV_SECT_SIZE
-# endif
-# ifndef  CONFIG_ENV_SECT_SIZE
-#  define CONFIG_ENV_SECT_SIZE  CONFIG_ENV_SIZE
-# endif
-#endif
-
-/*-----------------------------------------------------------------------
- * Protection Flags:
- */
-#define FLAG_PROTECT_SET       0x01
-#define FLAG_PROTECT_CLEAR     0x02
-
-/* Board support for 1 or 2 flash devices */
-#undef FLASH_PORT_WIDTH32
-#undef FLASH_PORT_WIDTH16
-#define FLASH_PORT_WIDTH8
-
-#ifdef FLASH_PORT_WIDTH16
-#define FLASH_PORT_WIDTH       ushort
-#define FLASH_PORT_WIDTHV      vu_short
-#elif FLASH_PORT_WIDTH32
-#define FLASH_PORT_WIDTH       ulong
-#define FLASH_PORT_WIDTHV      vu_long
-#else /* FLASH_PORT_WIDTH8 */
-#define FLASH_PORT_WIDTH       uchar
-#define FLASH_PORT_WIDTHV      vu_char
-#endif
-
-#define FPW                    FLASH_PORT_WIDTH
-#define FPWV                   FLASH_PORT_WIDTHV
-
-/*-----------------------------------------------------------------------
- * Functions
- */
-static ulong flash_get_size (FPWV * addr, flash_info_t * info);
-static int write_data (flash_info_t * info, ulong dest, FPW data);
-static void flash_get_offsets (ulong base, flash_info_t * info);
-
-/*-----------------------------------------------------------------------
- */
-
-unsigned long flash_init (void)
-{
-       unsigned long size_b0;
-       int i;
-       volatile immap_t * immr = (immap_t *)CONFIG_SYS_IMMR;
-       volatile memctl8260_t *memctl = &immr->im_memctl;
-
-       /* Init: no FLASHes known */
-       for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; ++i) {
-               flash_info[i].flash_id = FLASH_UNKNOWN;
-       }
-
-       /* Static FLASH Bank configuration here - FIXME XXX */
-       size_b0 = flash_get_size ((FPW *) CONFIG_SYS_FLASH0_BASE, &flash_info[0]);
-
-       if (flash_info[0].flash_id == FLASH_UNKNOWN) {
-               printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
-                       size_b0, size_b0 << 20);
-       }
-
-       memctl->memc_or0 = 0xff800060;
-       memctl->memc_br0 = 0xff800801;
-
-       flash_get_offsets (0xff800000, &flash_info[0]);
-
-#if CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE
-       /* monitor protection ON by default */
-       (void) flash_protect (FLAG_PROTECT_SET,
-                               CONFIG_SYS_MONITOR_BASE,
-                               CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1,
-                               &flash_info[0]);
-#endif
-
-#ifdef CONFIG_ENV_IS_IN_FLASH
-       /* ENV protection ON by default */
-       flash_protect (FLAG_PROTECT_SET,
-                       CONFIG_ENV_ADDR,
-                       CONFIG_ENV_ADDR + CONFIG_ENV_SIZE - 1,
-                       &flash_info[0]);
-#endif
-
-       flash_info[0].size = size_b0;
-
-       return (size_b0);
-}
-
-/*-----------------------------------------------------------------------
- */
-static void flash_get_offsets (ulong base, flash_info_t * info)
-{
-       int i;
-
-       if (info->flash_id == FLASH_UNKNOWN) {
-               return;
-       }
-
-       if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) {
-               for (i = 0; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00020000);
-               }
-       }
-}
-
-/*-----------------------------------------------------------------------
- */
-void flash_print_info (flash_info_t * info)
-{
-       int i;
-
-       if (info->flash_id == FLASH_UNKNOWN) {
-               printf ("missing or unknown FLASH type\n");
-               return;
-       }
-
-       switch (info->flash_id & FLASH_VENDMASK) {
-       case FLASH_MAN_INTEL:
-               printf ("INTEL ");
-               break;
-       default:
-               printf ("Unknown Vendor ");
-               break;
-       }
-
-       switch (info->flash_id & FLASH_TYPEMASK) {
-       case FLASH_28F320J3A:
-               printf ("28F320J3A\n");
-               break;
-       case FLASH_28F640J3A:
-               printf ("28F640J3A\n");
-               break;
-       case FLASH_28F128J3A:
-               printf ("28F128J3A\n");
-               break;
-       default:
-               printf ("Unknown Chip Type\n");
-               break;
-       }
-
-       printf ("  Size: %ld MB in %d Sectors\n",
-                       info->size >> 20, info->sector_count);
-
-       printf ("  Sector Start Addresses:");
-       for (i = 0; i < info->sector_count; ++i) {
-               if ((i % 5) == 0)
-                       printf ("\n   ");
-               printf (" %08lX%s",
-                       info->start[i],
-                       info->protect[i] ? " (RO)" : "     ");
-       }
-       printf ("\n");
-       return;
-}
-
-/*-----------------------------------------------------------------------
- */
-
-
-/*-----------------------------------------------------------------------
- */
-
-/*
- * The following code cannot be run from FLASH!
- */
-
-static ulong flash_get_size (FPWV * addr, flash_info_t * info)
-{
-       FPW value;
-
-       addr[0] = (FPW) 0x00900090;
-
-       value = addr[0];
-
-       debug ("Manuf. ID @ 0x%08lx: 0x%08lx\n", (ulong)addr, value);
-
-       switch (value) {
-       case (FPW) INTEL_MANUFACT:
-               info->flash_id = FLASH_MAN_INTEL;
-               break;
-       default:
-               info->flash_id = FLASH_UNKNOWN;
-               info->sector_count = 0;
-               info->size = 0;
-               addr[0] = (FPW) 0x00FF00FF;     /* restore read mode */
-               return (0);                     /* no or unknown flash  */
-       }
-
-#ifdef FLASH_PORT_WIDTH8
-       value = addr[2];                        /* device ID        */
-#else
-       value = addr[1];                        /* device ID        */
-#endif
-
-       debug ("Device ID @ 0x%08lx: 0x%08lx\n", (ulong)(&addr[1]), value);
-
-       switch (value) {
-       case (FPW) INTEL_ID_28F320J3A:
-               info->flash_id += FLASH_28F320J3A;
-               info->sector_count = 32;
-               info->size = 0x00400000;
-               break;                          /* => 4 MB     */
-
-       case (FPW) INTEL_ID_28F640J3A:
-               info->flash_id += FLASH_28F640J3A;
-               info->sector_count = 64;
-               info->size = 0x00800000;
-               break;                          /* => 8 MB     */
-
-       case (FPW) INTEL_ID_28F128J3A:
-               info->flash_id += FLASH_28F128J3A;
-               info->sector_count = 128;
-               info->size = 0x01000000;
-               break;                          /* => 16 MB     */
-
-       default:
-               info->flash_id = FLASH_UNKNOWN;
-               break;
-       }
-
-       if (info->sector_count > CONFIG_SYS_MAX_FLASH_SECT) {
-               printf ("** ERROR: sector count %d > max (%d) **\n",
-                               info->sector_count, CONFIG_SYS_MAX_FLASH_SECT);
-               info->sector_count = CONFIG_SYS_MAX_FLASH_SECT;
-       }
-
-       addr[0] = (FPW) 0x00FF00FF;     /* restore read mode */
-
-       return (info->size);
-}
-
-
-/*-----------------------------------------------------------------------
- */
-
-int flash_erase (flash_info_t * info, int s_first, int s_last)
-{
-       int flag, prot, sect;
-       ulong type, start, now, last;
-       int rcode = 0;
-
-       if ((s_first < 0) || (s_first > s_last)) {
-               if (info->flash_id == FLASH_UNKNOWN) {
-                       printf ("- missing\n");
-               } else {
-                       printf ("- no sectors to erase\n");
-               }
-               return 1;
-       }
-
-       type = (info->flash_id & FLASH_VENDMASK);
-       if ((type != FLASH_MAN_INTEL)) {
-               printf ("Can't erase unknown flash type %08lx - aborted\n",
-                       info->flash_id);
-               return 1;
-       }
-
-       prot = 0;
-       for (sect = s_first; sect <= s_last; ++sect) {
-               if (info->protect[sect]) {
-                       prot++;
-               }
-       }
-
-       if (prot) {
-               printf ("- Warning: %d protected sectors will not be erased!\n",
-                       prot);
-       } else {
-               printf ("\n");
-       }
-
-       start = get_timer (0);
-       last = start;
-       /* Start erase on unprotected sectors */
-       for (sect = s_first; sect <= s_last; sect++) {
-               if (info->protect[sect] == 0) { /* not protected */
-                       FPWV *addr = (FPWV *) (info->start[sect]);
-                       FPW status;
-
-                       /* Disable interrupts which might cause a timeout here */
-                       flag = disable_interrupts ();
-
-                       *addr = (FPW) 0x00500050;       /* clear status register */
-                       *addr = (FPW) 0x00200020;       /* erase setup */
-                       *addr = (FPW) 0x00D000D0;       /* erase confirm */
-
-                       /* re-enable interrupts if necessary */
-                       if (flag)
-                               enable_interrupts ();
-
-                       /* wait at least 80us - let's wait 1 ms */
-                       udelay (1000);
-
-                       while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-                           if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
-                               printf ("Timeout\n");
-                               *addr = (FPW) 0x00B000B0;       /* suspend erase     */
-                               *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
-                               rcode = 1;
-                               break;
-                           }
-
-                           /* show that we're waiting */
-                           if ((now - last) > 1000) {  /* every second */
-                               putc ('.');
-                               last = now;
-                           }
-                       }
-
-                       *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
-               }
-       }
-       printf (" done\n");
-       return rcode;
-}
-
-/*-----------------------------------------------------------------------
- * Copy memory to flash, returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- * 4 - Flash not identified
- */
-
-int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
-{
-       ulong cp, wp;
-       FPW data;
-
-       int i, l, rc, port_width;
-
-       if (info->flash_id == FLASH_UNKNOWN) {
-               return 4;
-       }
-/* get lower word aligned address */
-#ifdef FLASH_PORT_WIDTH16
-       wp = (addr & ~1);
-       port_width = 2;
-#elif defined(FLASH_PORT_WIDTH32)
-       wp = (addr & ~3);
-       port_width = 4;
-#else
-       wp = addr;
-       port_width = 1;
-#endif
-
-       /*
-        * handle unaligned start bytes
-        */
-       if ((l = addr - wp) != 0) {
-               data = 0;
-               for (i = 0, cp = wp; i < l; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *) cp);
-               }
-               for (; i < port_width && cnt > 0; ++i) {
-                       data = (data << 8) | *src++;
-                       --cnt;
-                       ++cp;
-               }
-               for (; cnt == 0 && i < port_width; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *) cp);
-               }
-
-               if ((rc = write_data (info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp += port_width;
-       }
-
-       /*
-        * handle word aligned part
-        */
-       while (cnt >= port_width) {
-               data = 0;
-               for (i = 0; i < port_width; ++i) {
-                       data = (data << 8) | *src++;
-               }
-               if ((rc = write_data (info, wp, data)) != 0) {
-                       return (rc);
-               }
-               wp += port_width;
-               cnt -= port_width;
-       }
-
-       if (cnt == 0) {
-               return (0);
-       }
-
-       /*
-        * handle unaligned tail bytes
-        */
-       data = 0;
-       for (i = 0, cp = wp; i < port_width && cnt > 0; ++i, ++cp) {
-               data = (data << 8) | *src++;
-               --cnt;
-       }
-       for (; i < port_width; ++i, ++cp) {
-               data = (data << 8) | (*(uchar *) cp);
-       }
-
-       return (write_data (info, wp, data));
-}
-
-/*-----------------------------------------------------------------------
- * Write a word or halfword to Flash, returns:
- * 0 - OK
- * 1 - write timeout
- * 2 - Flash not erased
- */
-static int write_data (flash_info_t * info, ulong dest, FPW data)
-{
-       FPWV *addr = (FPWV *) dest;
-       ulong status;
-       ulong start;
-       int flag;
-
-       /* Check if Flash is (sufficiently) erased */
-       if ((*addr & data) != data) {
-               printf ("not erased at %08lx (%x)\n", (ulong) addr, *addr);
-               return (2);
-       }
-       /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts ();
-
-       *addr = (FPW) 0x00400040;       /* write setup */
-       *addr = data;
-
-       /* re-enable interrupts if necessary */
-       if (flag)
-               enable_interrupts ();
-
-       start = get_timer (0);
-
-       while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
-                       *addr = (FPW) 0x00FF00FF;       /* restore read mode */
-                       return (1);
-               }
-       }
-
-       *addr = (FPW) 0x00FF00FF;       /* restore read mode */
-
-       return (0);
-}
index 4cb13b74ab795bbb24ee9dcf15c9a6fcca4e9348..79b12a220cc2434c3d60d7ba632c4bfeb06fe0a0 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := impa7.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5ed2b4bd9fee298f468f8ca304261c364801c09e..4fd4864bf59cd5f9aedcde9130bbd7c20789247b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := imx31_phycore.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index afe02c27c6ff9baecff2c09aed27241fb42cbb97..f1594a236812d9247a4911e67a34fb13a87996f4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index 82aa950017223e0247237246923e451822d91946..6ec04b8a45c23a54c49d9b7aca0ddaa111a555e5 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o inkadiag.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ba248c03e73536580b225d59b087254e27851744..054175f1bcbd4d83945bea1e6aeaace992824788 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := innokom.o flash.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index e7ce304f13d05b33286ba15ff3ca17fc67e69ed1..06b8217e46e99f7d4a39a2c2043c2e873f1b3490 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4ac77c29850cc5f924f12e70fd6ce280135973b0..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    arch/powerpc/cpu/mpc8xx/interrupts.o (.text)
-    arch/powerpc/lib/time.o            (.text)
-    arch/powerpc/lib/ticks.o           (.text)
-/**
-    . = env_offset;
-    common/env_embedded.o(.text)
-**/
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index ddfd2ef8afe023bfe5c017ead825bff259cf59fb..16f0c6bc529267ba825b4fcfb94b1667ea4f6790 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 877afde1ced3768c9787a1fa1f8bf1e25f3e4564..89d3524d7a29465acd7be4c8b11388ebb4bd87be 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2f118792d1145bc9060323d8259dba945901f0a5..678a682ff150a7a5dd0ed9fc1803f6a8aa39fa0c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := igep0020.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index b8812f94ab197c1c7ebeb094945e585961c537fc..7964621ac722141a06cf9a41872d3eaaee67fdc5 100644 (file)
@@ -30,4 +30,4 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-TEXT_BASE = 0x80008000
+CONFIG_SYS_TEXT_BASE = 0x80008000
index 3f7eda1a6badb85bd901076bf519b65dc5dec344..3ba541e21e6c5596142568be95f53da518a27853 100644 (file)
@@ -26,6 +26,7 @@
 #include <asm/io.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mem.h>
+#include <asm/arch/mmc_host_def.h>
 #include <asm/arch/mux.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-types.h>
@@ -91,6 +92,14 @@ static void setup_net_chip(void)
 }
 #endif
 
+#ifdef CONFIG_GENERIC_MMC
+int board_mmc_init(bd_t *bis)
+{
+       omap_mmc_init(0);
+       return 0;
+}
+#endif
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
index cfc0411ed20f75a3cab5d8723a3523b7f1e40f06..d2088728b196e3f0364483ea97fae4289dff11b8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := igep0030.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 019f93f20075c33df663df569d957bd32ee551ea..de6384f93cf07c2f33d3b606dec2afe1a6d57900 100644 (file)
@@ -30,4 +30,5 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-TEXT_BASE = 0x80008000
+CONFIG_SYS_TEXT_BASE = 0x80008000
+
index 924425911285e609f1901535009d03f921239ed4..bb4dc3ba1743ef87dccc48f893982e9a967c48f3 100644 (file)
@@ -24,6 +24,7 @@
 #include <twl4030.h>
 #include <asm/io.h>
 #include <asm/arch/mem.h>
+#include <asm/arch/mmc_host_def.h>
 #include <asm/arch/mux.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/mach-types.h>
@@ -46,6 +47,14 @@ int board_init(void)
        return 0;
 }
 
+#ifdef CONFIG_GENERIC_MMC
+int board_mmc_init(bd_t *bis)
+{
+       omap_mmc_init(0);
+       return 0;
+}
+#endif
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
index 6b3706daaeea622debda670da175b2865375e0be..70205f1fb025b81c5bafc134a5691e90bebc8ca5 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b6e08843fa6ee3b2ce4f4f000ec6962b75714737..f4c6c981a7f7123c2cfed4b2da7838146d8a2c6b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/env_embedded.o(.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FF) & 0xFFFFFF00;
@@ -74,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index efeb31dba76f0935ca748ac390fc677d68b49b5d..4ba038356d97db6c2e4581f4e43ded8a944339ca 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ixdp425.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1b4e192b299e1f04986a3d13b2c97cf3007e6524..e0176927a540e95b6e92c5fee3ee2a15e2add9e5 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := jornada.o
 SOBJS  := setup.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 885e02f7dbcfde187ed150924aaa86bf298594f4..cdf5f544503cac093b58e46a7b35b22ebf929edb 100644 (file)
@@ -112,12 +112,13 @@ gafr_set: .long   0x08600000
 .globl lowlevel_init
 lowlevel_init:
 
-       /* set output and direction of pins */
-       ldr r0, PPC_BASE
-       ldr r1, pin_set_out
-       str r1, [r0, #PPSR]
-       ldr r1, pin_set_dir
-       str r1, [r0, #PPDR]
+
+       /* this is required for flashing */
+       ldr     r0, PPC_BASE
+       ldr     r1, pin_set_out
+       str     r1, [r0, #PPSR]
+       ldr     r1, pin_set_dir
+       str     r1, [r0, #PPDR]
 
        /* Setting up the memory and stuff */
        /***********************************/
@@ -190,6 +191,11 @@ lowlevel_init:
        ldr     r3, [r2]
 .endr
 
+       ldr     r2, [r0, #MDCNFG]
+       orr     r2, r2, #0x00000003
+       orr     r2, r2, #0x00030000
+       str     r2, [r0, #MDCNFG]
+
        ldr     r1, msc0
        str     r1, [r0, #MSC0]
        ldr     r1, msc1
@@ -198,13 +204,7 @@ lowlevel_init:
        str     r1, [r0, #MSC2]
        ldr     r1, smcnfg
        str     r1, [r0, #SMCNFG]
-       ldr     r1, mdcnfg
-       str     r1, [r0, #MDCNFG]
        ldr     r1, mecr
        str     r1, [r0, #MECR]
 
-       /* enable SDRAM */
-       orr     r1, r1, #0x00000001
-       str     r1, [r0, #MDCNFG]
-
        mov     pc, lr
index fc71601e5c473807224b9691cb9ebf61e3b1969b..a3050c7c3d84284c1adc2e5e8985ee21da4b6a47 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o sdram.o flash.o host_bridge.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index aa80a71982054dadc686ec11f5a263a350b34787..6a6ad8d98ae5973e7710230592446808eb246b77 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 88c37c11855e77e2ce2aa3ff4a561999604718f9..8350788458a6d3f7f4527cf44c7f0753f16d09cc 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := tx25.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 363f6657eed03914ae3d12c7f27461b4a0530ac8..49be161fa24b3c6d0c036b38ebb414f694327c63 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := kb9202.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index a6f32415aa04c3d8909241bee25d9372a5a3e8a6..abb9ef97244b141422d2bdb5b7422fbb41494264 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/common.o ../common/keymile_hdlc_enet.o \
                km8xx_hdlc_enet.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index cba9c6c6814e18c78769a8b41373355eab739d62..ea70ae458b95280a9ed4d64e7402d1933136a998 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.ppcenv)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
@@ -78,11 +41,7 @@ SECTIONS
     *(.rodata)
     *(.rodata1)
     *(.rodata.str1.4)
-    *(.eh_frame)
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -90,23 +49,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -132,9 +87,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index c5b0be16ef794cc6e9507156cbc5e131f03bc848..6bcfb257a8cdf5f859fe64bb7e4e3ffd5ee18b1d 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o ../common/common.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 12a1518ff1a3de733eb9211235fdd6e4af785be2..2fa84f307a3834c951d7419a845cf5a5c0799307 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  += $(BOARD).o ../common/common.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2774a702b02501fafb31c2e6ed7ca9cf3b5857f8..3308621a13d7476d31522a25712673e18d036284 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o ../common/common.o ../common/keymile_hdlc_enet.o \
                mgcoge_hdlc_enet.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index df74774bf7e2bf9a3a1d660f3eda4e1a7ca2d153..6781596e7b715f6d91350215cdcecc25d4289398 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -32,8 +32,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 957b3d31323abfd1baa6e805570e6b79d3cc126e..5caae8991918770b6b0f2419031339b5f93b6e9d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o kup.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4727a5b1b28b610bce53a0eef59448ffc09eadef..e519b8388073245bab27135f8d21b216df4dd6cc 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/flash.o ../common/kup.o ../common/load_sernum_ethaddr.o ../common/pcmcia.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 369ef19a473b2d9202da6435912a24c6244b0c7e..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-/*
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-
-    . = env_offset;
-    common/env_embedded.o(.text)
-*/
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 4727a5b1b28b610bce53a0eef59448ffc09eadef..e519b8388073245bab27135f8d21b216df4dd6cc 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/flash.o ../common/kup.o ../common/load_sernum_ethaddr.o ../common/pcmcia.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 369ef19a473b2d9202da6435912a24c6244b0c7e..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-/*
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-
-    . = env_offset;
-    common/env_embedded.o(.text)
-*/
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9fd4d1c61c8dd9fac28caaf87b6f257c07d53dea..00af66977ae7102e7235c073d772e21e0cc74e75 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000, 2001
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    net/libnet.o                       (.text*)
+    arch/powerpc/lib/libpowerpc.o      (.text*)
+    drivers/rtc/librtc.o               (.text*)
 
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +56,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +94,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 9eeaa990bab26814157d7b05fcba9db2ea21ef92..463bc0bade92aaaa98a82d548b5828d1ef5bad7f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := lart.o flash.o
 SOBJS  := flashasm.o lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 8f4da0c978bcb9c3dbf8882513ffe077d36ad726..55674b74b2ef8b000c92acf484af1415c2f00f5e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 OBJS   = $(BOARD).o ide.o hwctl.o avr.o
 
@@ -31,7 +31,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(OBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3a6b1a11c101c5d4adf7be3c9dd45b442a26ec52..83fab0e4fdc0eb0914d1de9fec869870d44d9b8b 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := am3517evm.o
 
@@ -30,7 +30,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 102d32b9131150903e88f07d2783fe9f20366e48..71ec5d0b14f8deb37f93a70d3aae2c9d0e1eddd3 100644 (file)
@@ -27,4 +27,4 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
+CONFIG_SYS_TEXT_BASE = 0x80008000
index 04dc8ae1fd9689e4c1d9371e20df3cc1a49eee88..944434bb93380f8237ed1c83baf8f3512276b0f4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := imx27lite.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 218d9684a12febf06e69529a31a41e41e76b8c7d..e604c31b193316ca721bfebc6fa4331a8531d459 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := imx31_litekit.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9e87f17395336d4a11476be42aa81e86131147b9..75085b4e16b17d3345fe4c159706d4bd76df4a94 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := zoom1.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 39a94dc4ca3a62105985fb9a0bbefc578f019b32..e89de31c914241183d9784e45600c210ceb58ffd 100644 (file)
@@ -30,4 +30,4 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
+CONFIG_SYS_TEXT_BASE = 0x80008000
index 2feafbee1df79686c319e605863a5519b25920c9..17f595e72c6f245f077759f51263c4a1831da463 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y := $(BOARD).o
 COBJS-y += debug_board.o
@@ -35,7 +35,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 8a8adc785ab0605fe2688a6c0a0aad9d8f5b1862..9f3f57d6ff0a8f1ae89c16fd00a011f36a865a7a 100644 (file)
@@ -30,4 +30,4 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
+CONFIG_SYS_TEXT_BASE = 0x80008000
index 4eeb03258b88f3c0cb4bede34046d8382f71a3dd..c1a5b0b37dbbcb86d50d6b84017b6527017ac0d1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := flash.o lpc2292sodimm.o
 SOBJTS := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJTS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 446fd5bb82b3d6d67c2f5d387db7c5d0d5634cef..3aeb2fb1ad87ec9751ead8080a2499caca77bf3b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := lpd7a40x.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2853bca8d7798ef5ec1dd2409d174f0d3abdff2d..60ac9cf55c584d646a252624c4d0c61647effbe4 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := lubbock.o flash.o
 
@@ -32,7 +32,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 2b10b0c518acfb4eee7879e5aa0f3ccaa7f7b4cb..b49f26da274c521461933b0e4a8c75ef66f07dee 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b871958f1ba5bef503329b1cf7a4925362adee2f..dd9be60cf08ab20eddebe9a1d9716e5f6a961429 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/env_embedded.o(.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FF) & 0xFFFFFF00;
@@ -74,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 5bb266f799d69f6dc5f341609f6df2c75a180a4c..f7fef96fb44dc7fc4155934ac1f220f6ef3cf9c8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o kbd.o sdram.o
 SOBJS  = init.o
@@ -32,8 +32,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index aec3d1c7c0705de8950e46b05ccd5b48e0d37fac..439e99f6733c2c94b8fb5c79675d49577bbea021 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := m501sk.o eeprom.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 442e2d0df25c1719bc48681008793e7f697ff541..d3c31d66797543031783cfe517f46caef6c3af96 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
diff --git a/board/manroland/hmi1001/config.mk b/board/manroland/hmi1001/config.mk
deleted file mode 100644 (file)
index 54dc1c4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# (C) Copyright 2004
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 721c0164b2040d01fbff238493c977ad173b5376..a3b4e4c0b39546b07841c230a4e9d1d3ff59c2cb 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 92ee091f6809c186e50accd7958508147735e495..c1a385b87099b857d088b9a2adb241b952258e91 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 #COBJS = $(BOARD).o flash.o pcmcia.o
 COBJS  = $(BOARD).o pcmcia.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0d8f60594643e4854013fc0b37641995e7131153..dc83071602e1240a8ce39ffb95141c3d0bd0d78f 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    common/env_embedded.o      (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -87,23 +50,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -129,9 +88,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 442e2d0df25c1719bc48681008793e7f697ff541..d3c31d66797543031783cfe517f46caef6c3af96 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b496258e2cbcca0d6d9adb158fdbb5da4a1d9fd1..2ad54a03f9cc70765c2948756799373f369796ef 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)board/$(VENDOR)/common)
 endif
 
-LIB    = $(obj)lib$(VENDOR).a
+LIB    = $(obj)lib$(VENDOR).o
 
 COBJS-y        = mv_common.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ea72f77cdc2ed5a949eebbf08ab900335352a04a..9ee0895e92cfe7d851737e04470673501dd3df98 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o fpga.o
 
@@ -35,7 +35,7 @@ OBJS    := $(addprefix $(obj),$(COBJS))
 SOBJS   := $(addprefix $(obj),$(SOBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-               $(AR) $(ARFLAGS) $@ $(OBJS)
+               $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 12c7cb6e6eef43dfde7f2b39d36838d0ba23e71b..2ee74e012734cc397dd4158f37f3a99494454c89 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o pci.o fpga.o
 
@@ -31,7 +31,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
        @mkimage -T script -C none -n M7_script -d bootscript $(obj)bootscript.img
 
 clean:
index 2817fe072c8e10ee0b286c46adde2f8d9123176f..8ee556c8faf9af45daabe5fd80a5840b3c90f5f7 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o fpga.o
 
@@ -35,7 +35,7 @@ OBJS    := $(addprefix $(obj),$(COBJS))
 SOBJS   := $(addprefix $(obj),$(SOBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-               $(AR) $(ARFLAGS) $@ $(OBJS)
+               $(call cmd_link_o_target, $(OBJS))
        @mkimage -T script -C none -n mvSMR_Script -d bootscript $(obj)bootscript.img
 
 clean:
index f9b103e6175ed14ccd52fda22258620958fb9c41..074a4827e79e0748a685d1ddbba3f7a3ef5d69b9 100644 (file)
@@ -28,38 +28,13 @@ OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within  */
     /* the first two sectors (=8KB) of our S29GL flash chip */
-    arch/powerpc/cpu/mpc5xxx/start.o   (.text)
-    arch/powerpc/cpu/mpc5xxx/traps.o   (.text)
-    lib/crc32.o                                (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
+    arch/powerpc/cpu/mpc5xxx/start.o   (.text*)
+    arch/powerpc/cpu/mpc5xxx/traps.o   (.text*)
+    board/matrix_vision/common/libmatrix_vision.o (.text*)
 
     /* This is only needed to force failure if size of above code will ever */
     /* increase and grow into reserved space. */
@@ -69,15 +44,10 @@ SECTIONS
     . = env_offset;    /* ld error as soon as above ALIGN misplaces lc */
     common/env_embedded.o        (.ppcenv)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -85,23 +55,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,10 +93,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
+   *(.bss*)
+   *(.sbss*)
    . = ALIGN(4);
   }
   _end = . ;
index d30cc62ac91072e4f85e78f74a841328ee785fc9..a98a01761e732d8d1a1bcb2c923c1538028979fa 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o vpd.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f883e7f02466b9731692311e033ae835047cec8f..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -74,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index e6e81ce3c10b999ea96eef277313214c90d86cce..e0a24b1c421f53d7a0eed962bbc97ced6cc0a422 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o lcd.o auto_update.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2737ade0ead5c194e6bf339a7705b10ba03b6da1..a7748fe95f64a81782c1caa3e824412e6fed9505 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y := $(BOARD).o
 COBJS-y += ebi.o
@@ -39,7 +39,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9f3849feaf28acebbe2f32dade580bda249a74c2..7fbd20d002ea5b15b4c7467c7afec3ff736a5f94 100644 (file)
@@ -20,7 +20,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(BOARD).a
+LIB    := $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -28,7 +28,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 4b74d16200241f9e200e1928f503878b6587edd0..43f0b50114b807fc22b4d00d042a1dc3ac3a1b39 100644 (file)
@@ -20,7 +20,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)lib$(BOARD).a
+LIB    := $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -28,7 +28,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 59644dba6a645eda7d19c517dc2b50e44680faac..67de4f9faab8f19f91787539f9e0f16a2cd47367 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o serial.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 950f857976cd72990bd2d67b1af630e5f8cf4176..b6c0715711785fa5274fe4ac90c879b5362d24ae 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/ppc4xx/start.o    (.text)
-    board/ml2/init.o   (.text)
-    arch/powerpc/cpu/ppc4xx/kgdb.o     (.text)
-    arch/powerpc/cpu/ppc4xx/traps.o    (.text)
-    arch/powerpc/cpu/ppc4xx/interrupts.o       (.text)
-    arch/powerpc/cpu/ppc4xx/4xx_uart.o (.text)
-    arch/powerpc/cpu/ppc4xx/cpu_init.o (.text)
-    arch/powerpc/cpu/ppc4xx/speed.o    (.text)
-    common/dlmalloc.o  (.text)
-    lib/crc32.o                (.text)
-    arch/powerpc/lib/extable.o (.text)
-    lib/zlib.o         (.text)
-
-/*    . = env_offset;*/
-/*    common/env_embedded.o(.text)*/
-
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -91,22 +44,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
+    *(.data*)
+    *(.sdata*)
     CONSTRUCTORS
   }
   _edata  =  .;
@@ -133,9 +83,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index bee5a8668be40cafe39acc521df5bd9d21d21fb6..d5a541fa6ccdae44a72957a91c22042a396f827c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := modnet50.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dad0457f6bb3a2da1b292796e246879d68256a57..39cff51bd690bce3178efa2a5f2639dc82668d4b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 22ce8e64f292a3e687aaadb4e56cdd0d36e455f9..f5d88bb6e2ae58724e4364ed454a407a1034aceb 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 3e719f0cc0c53d9251e40469148ea6707685d6a6..346f779e14e28dffa9394456b8b901c8b48613e0 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o m48t59y.o pci.o flash.o
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0116dde4df2f433cee2353db7a0287011fb6edee..4cfb95c496868a58d5ffe7943aca70299a7216ad 100644 (file)
@@ -27,46 +27,13 @@ OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc824x/start.o           (.text)
-    arch/powerpc/lib/board.o           (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-
-    *(.got1)
+    arch/powerpc/cpu/mpc824x/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FF) & 0xFFFFFF00;
@@ -74,23 +41,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +79,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 67efd725db9850686c0c4c2692ef0f31ccf1c855..335734a7ab7a71a9baaad76998490673b5d56e7e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mp2usb.o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e9bfa2bc0dbb1b634b83b50fcfb76c7bc6f71039..241a55782e8fd7a65a795a8fe2762cdf72e7adc8 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o sdram.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5a68f11e7d0506bdcebbbddfa3a4c9cd95b07820..5eccfab69ee0d98e40a3f1cf11c00a789a242305 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 21e3cdaeca94de57b9a960fe3d04fdc2ddd6f3c3..042cd83387f3c01b4a635cd2466bfc06235443c6 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/flash.o cmd_mip405.o ../common/pci.o \
                        ../common/usb_uhci.o ../common/common_util.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9f38d706cef989b4b30d6bec4fd06285b5d60acc..937dfec85addbd1d14266cc42a273b2429ecdf20 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  :=  pati.o ../common/flash.o cmd_pati.o ../common/common_util.o
 #### cmd_pati.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fb39ec3ec3bc58944f1f8402d4a9668d9c7096c6..8b4bbc59a8be711b7bfd7693cc09b05c780a6daf 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o \
          ../common/flash.o cmd_pip405.o ../common/pci.o \
@@ -41,7 +41,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 3f629fc0996465af179b979d80814fa0fcdcfe8a..27cef1d833f451870d13236b48dc9d5f35034a55 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := vcma9.o flash.o cmd_vcma9.o
 COBJS  += ../common/common_util.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9f8fb807aba43a8ce39806c4af7f2170a2757b91..b9c45b95a8b25b6968dd9caac30c2c32bb466509 100644 (file)
@@ -30,7 +30,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mpr2.o
 SOBJS  := lowlevel_init.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 18745ecff3c8845ee5e889d208eec2e1aea690aa..0bf774363e84e7568a8e6f4f89c3c736192bf178 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ms7720se.o
 SOBJS  := lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b203b6d4c7c4cf4744fc64e018b43d59449e6d99..fc8ae21f230d1afb86224a7f8430e1b451a13442 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ms7722se.o
 SOBJS  := lowlevel_init.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 01ddf69201e4ec510a5a5df75d9c8eecb8d68111..8f1b459e18611a7dd096efcf41ba816f853c5e29 100644 (file)
@@ -19,7 +19,7 @@
 #
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ms7750se.o
 SOBJS  := lowlevel_init.o
@@ -29,7 +29,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index a4413b2eb0e50eef3919957b833f54d696417b23..f219cf93ea7c4a0d06c4fc0f8cd3d6dd43ee9c33 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5862bed5cc2a4ccfac05287073e03ebd8da1b4af..5c7f947e528b6eeb7d10ae9002ccad9c1650033f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
similarity index 50%
rename from board/pcippc2/u-boot.lds
rename to board/mvblue/u-boot.lds
index 87d8c67949c353436b0cfef0710b493902c15228..ad06af0b1634f2decd52275166da2bf97d53cbb7 100644 (file)
@@ -1,8 +1,5 @@
 /*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * (C) Copyright 2002
+ * (C) Copyright 2001-2007
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  * MA 02111-1307 USA
  */
 
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
 OUTPUT_ARCH(powerpc)
 /* Do we need any of these for elf?
    __DYNAMIC = 0;    */
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
+    arch/powerpc/cpu/mpc824x/start.o           (.text*)
+    lib/libgeneric.o                           (.text*)
+    net/libnet.o                               (.text*)
+    drivers/pci/libpci.o                       (.text*)
+    arch/powerpc/cpu/mpc824x/libmpc824x.o      (.text*)
+    board/mvblue/libmvblue.o                   (.text*)
+    arch/powerpc/lib/libpowerpc.o              (.text*)
 
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
+    . = DEFINED(env_offset) ? env_offset : .;
+    common/env_embedded.o      (.ppcenv*)
 
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
+    *(.text*)
+    . = ALIGN(16);
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
+  . = (. + 0x0FFF) & 0xFFFFF000;
   _erotext = .;
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
+  __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -117,19 +79,18 @@ SECTIONS
   __ex_table : { *(__ex_table) }
   __stop___ex_table = .;
 
-  . = ALIGN(256);
+  . = ALIGN(4096);
   __init_begin = .;
   .text.init : { *(.text.init) }
   .data.init : { *(.data.init) }
-  . = ALIGN(256);
+  . = ALIGN(4096);
   __init_end = .;
 
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index b68b1bdd25dec95826e4380f81f857a7ded06069..20d7b8624a1c37089880a4f81bd2ebde64456cf4 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mx1ads.o syncflash.o
 SOBJS  := lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f81f7acd578f5308b3dea1db6f58f7aa781713a4..c55b695a51eb9af58ec50704e1cf13297faa9280 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := mx1fs2.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index df7d3123b96bc51b2b96d9a59e1ad05b103e6572..24c79a6dfad3804c041a7ce211bb2e8e432e5834 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o phone_console.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 77aebe6b49a2bea871ad216f5adc92c28f4eaae5..684ab81c4a2a1d4144f775fc6f59448634a5b467 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp              : { *(.interp)          }
-  .hash         : { *(.hash)           }
-  .dynsym       : { *(.dynsym)         }
-  .dynstr       : { *(.dynstr)         }
-  .rel.text     : { *(.rel.text)       }
-  .rela.text    : { *(.rela.text)      }
-  .rel.data     : { *(.rel.data)       }
-  .rela.data    : { *(.rela.data)      }
-  .rel.rodata   : { *(.rel.rodata)     }
-  .rela.rodata  : { *(.rela.rodata)    }
-  .rel.got      : { *(.rel.got)                }
-  .rela.got     : { *(.rela.got)       }
-  .rel.ctors    : { *(.rel.ctors)      }
-  .rela.ctors   : { *(.rela.ctors)     }
-  .rel.dtors    : { *(.rel.dtors)      }
-  .rela.dtors   : { *(.rela.dtors)     }
-  .rel.bss      : { *(.rel.bss)                }
-  .rela.bss     : { *(.rela.bss)       }
-  .rel.plt      : { *(.rel.plt)                }
-  .rela.plt     : { *(.rela.plt)       }
-  .init         : { *(.init)           }
-  .plt         : { *(.plt)             }
   .text        :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cd62642894425f87b0140c7fd330d49697fa37b2..a983de9f907900cb0cc97a4d3e55637b60d70cfc 100644 (file)
@@ -23,7 +23,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o \
        ../common/fixed_sdram.o \
@@ -33,7 +33,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(OBJS)
index d037552d709bc481fb5a3e787b93da7bb67c492e..280c2f668e33be364e46836a6bd342dbdb5786a6 100644 (file)
@@ -23,7 +23,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o \
        sdram.o \
@@ -34,8 +34,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cd62642894425f87b0140c7fd330d49697fa37b2..a983de9f907900cb0cc97a4d3e55637b60d70cfc 100644 (file)
@@ -23,7 +23,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o \
        ../common/fixed_sdram.o \
@@ -33,7 +33,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(OBJS)
index 5773c13f4d892a6f7d80a34cea32e2d2dd5b85dc..7230a2f88abf2b597c747a682f909de7d32b0b09 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := netstar.o
 SOBJS  := setup.o
@@ -43,7 +43,7 @@ all:  $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin \
                $(obj)crcek.srec $(obj)crcek.bin $(obj)crcit
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 $(obj)eeprom_start.o:
        echo "b eeprom" | $(CC) $(AFLAGS) -c -x assembler -o $@ -
index 96374ba3fc55faf7b80ee5a737834e931400691e..878151ccdb554621f6b15f6b6f7357b3abc17371 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o dsp.o codec.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9001767ef7ce93664763596d8360fff065b072fc..684ab81c4a2a1d4144f775fc6f59448634a5b467 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp      : { *(.interp)          }
-  .hash         : { *(.hash)           }
-  .dynsym       : { *(.dynsym)         }
-  .dynstr       : { *(.dynstr)         }
-  .rel.text     : { *(.rel.text)       }
-  .rela.text    : { *(.rela.text)      }
-  .rel.data     : { *(.rel.data)       }
-  .rela.data    : { *(.rela.data)      }
-  .rel.rodata   : { *(.rel.rodata)     }
-  .rela.rodata  : { *(.rela.rodata)    }
-  .rel.got      : { *(.rel.got)                }
-  .rela.got     : { *(.rela.got)       }
-  .rel.ctors    : { *(.rel.ctors)      }
-  .rela.ctors   : { *(.rela.ctors)     }
-  .rel.dtors    : { *(.rel.dtors)      }
-  .rela.dtors   : { *(.rela.dtors)     }
-  .rel.bss      : { *(.rel.bss)                }
-  .rela.bss     : { *(.rela.bss)       }
-  .rel.plt      : { *(.rel.plt)                }
-  .rela.plt     : { *(.rela.plt)       }
-  .init         : { *(.init)           }
-  .plt         : { *(.plt)             }
   .text        :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9001767ef7ce93664763596d8360fff065b072fc..684ab81c4a2a1d4144f775fc6f59448634a5b467 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp      : { *(.interp)          }
-  .hash         : { *(.hash)           }
-  .dynsym       : { *(.dynsym)         }
-  .dynstr       : { *(.dynstr)         }
-  .rel.text     : { *(.rel.text)       }
-  .rela.text    : { *(.rela.text)      }
-  .rel.data     : { *(.rel.data)       }
-  .rela.data    : { *(.rela.data)      }
-  .rel.rodata   : { *(.rel.rodata)     }
-  .rela.rodata  : { *(.rela.rodata)    }
-  .rel.got      : { *(.rel.got)                }
-  .rela.got     : { *(.rela.got)       }
-  .rel.ctors    : { *(.rel.ctors)      }
-  .rela.ctors   : { *(.rela.ctors)     }
-  .rel.dtors    : { *(.rel.dtors)      }
-  .rela.dtors   : { *(.rela.dtors)     }
-  .rel.bss      : { *(.rel.bss)                }
-  .rela.bss     : { *(.rela.bss)       }
-  .rel.plt      : { *(.rel.plt)                }
-  .rela.plt     : { *(.rela.plt)       }
-  .init         : { *(.init)           }
-  .plt         : { *(.plt)             }
   .text        :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d05f80bb36b2792e8572c6c1a9fee5e36f5afcc3..684ab81c4a2a1d4144f775fc6f59448634a5b467 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp      : { *(.interp)          }
-  .hash         : { *(.hash)           }
-  .dynsym       : { *(.dynsym)         }
-  .dynstr       : { *(.dynstr)         }
-  .rel.text     : { *(.rel.text)       }
-  .rela.text    : { *(.rela.text)      }
-  .rel.data     : { *(.rel.data)       }
-  .rela.data    : { *(.rela.data)      }
-  .rel.rodata   : { *(.rel.rodata)     }
-  .rela.rodata  : { *(.rela.rodata)    }
-  .rel.got      : { *(.rel.got)                }
-  .rela.got     : { *(.rela.got)       }
-  .rel.ctors    : { *(.rel.ctors)      }
-  .rela.ctors   : { *(.rela.ctors)     }
-  .rel.dtors    : { *(.rel.dtors)      }
-  .rela.dtors   : { *(.rela.dtors)     }
-  .rel.bss      : { *(.rel.bss)                }
-  .rela.bss     : { *(.rela.bss)       }
-  .rel.plt      : { *(.rel.plt)                }
-  .rela.plt     : { *(.rela.plt)       }
-  .init         : { *(.init)           }
-  .plt         : { *(.plt)             }
   .text        :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 2ffed99f7a93a1e7da7f37d19d2c0842cd3bf77f..7794fbd251c411a2a91a0cac0c878f14d36f877b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ns9750dev.o flash.o led.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9fe9758c476ec3617250e0aee7a2001d5e504659..4a96388f04e3acf7c601d9570b238b8077394c4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2001
+ * (C) Copyright 2001-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -75,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -117,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 58afd7b6597326d80a3e899be5814b9271731c95..3c99739bdbfbb767cd520ac8c02cb2bfce28603e 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dd673ca4d4a1c701f6b01811631c9cdf68b8efae..22ba7748d44c66d6e700bc866adf5e9596db57dd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := overo.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 9c926938ba2ec661565dbf1769adaba386806e02..f917e402b06d66d2d9a6004884019d92e78d1349 100644 (file)
 #include <asm/mach-types.h>
 #include "overo.h"
 
+#define TWL4030_I2C_BUS                        0
+#define EXPANSION_EEPROM_I2C_BUS       2
+#define EXPANSION_EEPROM_I2C_ADDRESS   0x51
+
+#define GUMSTIX_SUMMIT                 0x01000200
+#define GUMSTIX_TOBI                   0x02000200
+#define GUMSTIX_TOBI_DUO               0x03000200
+#define GUMSTIX_PALO35                 0x04000200
+#define GUMSTIX_PALO43                 0x05000200
+#define GUMSTIX_CHESTNUT43             0x06000200
+#define GUMSTIX_PINTO                  0x07000200
+#define GUMSTIX_GALLOP43               0x08000200
+
+#define ETTUS_USRP_E                   0x01000300
+
+#define GUMSTIX_NO_EEPROM              0xffffffff
+
+static struct {
+       unsigned int device_vendor;
+       unsigned char revision;
+       unsigned char content;
+       char fab_revision[8];
+       char env_var[16];
+       char env_setting[64];
+} expansion_config;
+
 #if defined(CONFIG_CMD_NET)
 static void setup_net_chip(void);
 #endif
@@ -136,6 +162,31 @@ int get_sdio2_config(void)
        return sdio_direct;
 }
 
+/*
+ * Routine: get_expansion_id
+ * Description: This function checks for expansion board by checking I2C
+ *             bus 2 for the availability of an AT24C01B serial EEPROM.
+ *             returns the device_vendor field from the EEPROM
+ */
+unsigned int get_expansion_id(void)
+{
+       i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS);
+
+       /* return GUMSTIX_NO_EEPROM if eeprom doesn't respond */
+       if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) {
+               i2c_set_bus_num(TWL4030_I2C_BUS);
+               return GUMSTIX_NO_EEPROM;
+       }
+
+       /* read configuration data */
+       i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config,
+                sizeof(expansion_config));
+
+       i2c_set_bus_num(TWL4030_I2C_BUS);
+
+       return expansion_config.device_vendor;
+}
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
@@ -164,6 +215,70 @@ int misc_init_r(void)
                printf("Unable to detect mmc2 connection type\n");
        }
 
+       switch (get_expansion_id()) {
+       case GUMSTIX_SUMMIT:
+               printf("Recognized Summit expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               setenv("defaultdisplay", "dvi");
+               break;
+       case GUMSTIX_TOBI:
+               printf("Recognized Tobi expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               setenv("defaultdisplay", "dvi");
+               break;
+       case GUMSTIX_TOBI_DUO:
+               printf("Recognized Tobi Duo expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               break;
+       case GUMSTIX_PALO35:
+               printf("Recognized Palo35 expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               setenv("defaultdisplay", "lcd35");
+               break;
+       case GUMSTIX_PALO43:
+               printf("Recognized Palo43 expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               setenv("defaultdisplay", "lcd43");
+               break;
+       case GUMSTIX_CHESTNUT43:
+               printf("Recognized Chestnut43 expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               setenv("defaultdisplay", "lcd43");
+               break;
+       case GUMSTIX_PINTO:
+               printf("Recognized Pinto expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               break;
+       case GUMSTIX_GALLOP43:
+               printf("Recognized Gallop43 expansion board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               setenv("defaultdisplay", "lcd43");
+               break;
+       case ETTUS_USRP_E:
+               printf("Recognized Ettus Research USRP-E (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               MUX_USRP_E();
+               setenv("defaultdisplay", "dvi");
+               break;
+       case GUMSTIX_NO_EEPROM:
+               printf("No EEPROM on expansion board\n");
+               break;
+       default:
+               printf("Unrecognized expansion board\n");
+       }
+
+       if (expansion_config.content == 1)
+               setenv(expansion_config.env_var, expansion_config.env_setting);
+
        dieid_num_r();
 
        return 0;
index 33a92e4e126849abbfeed4e8197cacc6b40e6440..68e1243e9c3f5a1bfca42045805596bf4f1e1c78 100644 (file)
@@ -419,4 +419,8 @@ const omap3_sysinfo sysinfo = {
        MUX_VAL(CP(MMC1_DAT6),          (IEN  | PTU | EN  | M4)) /*GPIO_128*/\
        MUX_VAL(CP(MMC1_DAT7),          (IEN  | PTU | EN  | M4)) /*GPIO_129*/
 
+#define MUX_USRP_E() \
+       MUX_VAL(CP(MCSPI1_SOMI),        (IEN  | PTD | DIS | M4)) /*GPIO_173 */\
+       MUX_VAL(CP(MCSPI1_CS1),         (IDIS | PTD | EN  | M4)) /*GPIO_175 */\
+
 #endif
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0cca8ab9ec283ad4d3362af978d25dcbb624c422..29cdaeefbcbc7276e286800d79b8b2b304a51238 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := palmld.o
 
@@ -29,7 +29,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 3a12e6617561be60fc53df1e866dd7ac9d310968..15ef6599ef1f11b457e7e6ca40099b3ea30be1c2 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := palmtc.o
 
@@ -30,7 +30,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index b41e8a0a54caf7930f41cd7bdb17800032370037..03086819cd50870c55d0e7b543aa6579ceff80d8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := pandora.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
diff --git a/board/pandora/config.mk b/board/pandora/config.mk
deleted file mode 100644 (file)
index 0fab80c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# (C) Copyright 2006
-# Texas Instruments, <www.ti.com>
-#
-# Pandora uses OMAP3 (ARM-CortexA8) cpu
-# see http://www.ti.com/ for more information on Texas Instruments
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-# Physical Address:
-# 8000'0000 (bank0)
-# A000/0000 (bank1)
-# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
-# (mem base + reserved)
-
-# For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
index afe02c27c6ff9baecff2c09aed27241fb42cbb97..f1594a236812d9247a4911e67a34fb13a87996f4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index a6ae906de9db32379220f0461c10fe7c5b4321d6..6f0a928805eca1dae29cd28ba897e7e90cc79614 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o cpc710_pci.o flash.o sconsole.o \
          fpga_serial.o pcippc2_fpga.o cpc710_init_ram.o i2c.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index 40446884c8a32d8c86d8223fef94a82a1fb2468f..8708834b118d29f89d193cb51f3e2109b99808c9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 85132420813966e4fb8beaccf0eeaa3615be5c59..1b3d5302154e66852ca93456faa61404fd84ab8b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 22ce8e64f292a3e687aaadb4e56cdd0d36e455f9..f5d88bb6e2ae58724e4364ed454a407a1034aceb 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cb0c3d7cb9092bfbc1b58e81c6a06587ba12c27e..9b076f54ca0c8b3b00fbaa3dfccd7ebd35c3ca46 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := pleb2.o flash.o
 
@@ -32,7 +32,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index c94e24fc6a683dff273d5ec91f764bb2c8e6702c..d45db9ff8212c9bf53bee4f9a85e7a903b327158 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o flash.o
 
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 52a756c8e3af3e123bd3a510ae6daf1bc6c7591f..9f623a29d2fa18ab2f104506e221a183a1d85d26 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 52a756c8e3af3e123bd3a510ae6daf1bc6c7591f..9f623a29d2fa18ab2f104506e221a183a1d85d26 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index eb88898e71dd3d97aefa915ca7abb80c61d60a3d..eb17b5c9d50318cf4e9a9a565c5a40228b357524 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o cmd_pn62.o misc.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 22332fb3dc4b21fddb0b3cfec5117397d04a5a09..ff27a20db988ec77214c2db6ce237c6814d86567 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS  := init.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
diff --git a/board/ppmc7xx/u-boot.lds b/board/ppmc7xx/u-boot.lds
deleted file mode 100644 (file)
index 604d0d3..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(256);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(256);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss (NOLOAD)       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-   . = ALIGN(4);
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index 1d56d161836b073208076039e9ea438b05fde213..0141ea66016336c1d086712c620921b4ec564742 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ppmc8260.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ef3accbf1881f5ba9da3f203ebe945eeb57d7cda..66ff738cc2aeb3f2d23c21be2bfdc0daae1ccabd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o fpga.o nand.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 8456df36300adfee4a80014e91a77f7a34e837c5..59dc27de71a6c993c929b6f1f0940c6c8753cce2 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../../Marvell/common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 SOBJS  = misc.o
 COBJS  = $(BOARD).o mpsc.o mv_eth.o pci.o sdram_init.o serial.o \
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
diff --git a/board/prodrive/p3mx/u-boot.lds b/board/prodrive/p3mx/u-boot.lds
deleted file mode 100644 (file)
index 29dcc09..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * (C) Copyright 2001
- * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
-  .text      :
-  {
-    arch/powerpc/cpu/74xx_7xx/start.o  (.text)
-
-/* store the environment in a seperate sector in the boot flash */
-/*    . = env_offset; */
-/*    common/env_embedded.o(.text) */
-
-    *(.text)
-    *(.got1)
-  }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.eh_frame)
-    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
-
-  /* Read-write section, merged into data segment: */
-  . = (. + 0x00FF) & 0xFFFFFF00;
-  _erotext = .;
-  PROVIDE (erotext = .);
-  .reloc   :
-  {
-    *(.got)
-    _GOT2_TABLE_ = .;
-    *(.got2)
-    _FIXUP_TABLE_ = .;
-    *(.fixup)
-  }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
-  .data    :
-  {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
-  }
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
-  . = ALIGN(256);
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  .data.init : { *(.data.init) }
-  . = ALIGN(256);
-  __init_end = .;
-
-  __bss_start = .;
-  .bss (NOLOAD)       :
-  {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-   . = ALIGN(4);
-  }
-  _end = . ;
-  PROVIDE (end = .);
-}
index b93f2c3890ef77b66ed5f5a3afa2365c1501963b..5b0ffc29209a37d33567d66b67750008bba7309d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index d07f25f98185eb72d5e2ca2c802f1728c16eced6..40a6fd27c4890648688c3380fef052d7635e31e0 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := flash.o pdnb3.o nand.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 301b4a0a5d2bff1b96106d294e6e5e2bce6edff4..1cfe9e5c2ab987442ec6049a85b6843a0f1d3d54 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COMOBJS := ../common/AMDLV065D.o
 
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e23a17bc3182f0daddeb75d97facc9c0b5426e76..4677809f511503b3fec46a2f254fa5f37aa7c43c 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../common)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COMOBJS := ../common/AMDLV065D.o
 
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 29844ba967350840655b9ef79b259ce2be8602e9..10e566da5c2c6cc82a6a47f6a4c4915e203caae2 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o sconsole.o
 SOBJS  = lowlevel_init.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 2835f37554ce0614c223810e0f51b338f9799700..dbde833edcfca205414ff087cab55ee3aa321b9d 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := pxa_idp.o
 
@@ -32,7 +32,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 837b6b9d88d0c134c0a4bfcebb5bd64438028d49..6251bb84adc40bba98a8f9566e42eff229b25339 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):         $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index f9db112e7cf951a05a7b0f745b36b03739042c6a..4ceb34430b2d588775d8ddb6c82193c08a61e851 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o nand.o
 SOBJS   =
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c7a1d055187358b741a8deef6b2e1f56a8e5713c..d44a260e1e44992488dedc5359dd2f95d3dcf55c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o fpga.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3f92a9dc438ea241e4920f2a31f0e15ddd044583..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-/* XXX ?
-    . = env_offset;
-*/
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -86,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -128,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 9f34ad1c08466fdf3107d51b13e3e0cc70daf121..4072ef72b02285aab10163355c7e698c46c45d6d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o pcmcia.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3cf0ba4bff8b276b15adb5d47b576f988a0bf4ae..a18c515e54e3215bce6cfb8b70f9cccb65a5515c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/cpu_init.o (.text)
-    arch/powerpc/cpu/mpc8xx/interrupts.o       (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-/***
-    . = env_offset;
-    common/env_embedded.o      (.text)
-***/
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -83,23 +49,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -125,9 +87,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index dc40d9b94a6dd89e249b38cbfa6e5b830fc11afd..9079aad8566d16e67b56e0a6b800bdb8a1a9c8c5 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 2182bc9769803fec9e8894abaaefe40ad463f35c..72bbc2f85f1f5b7a74aa1b5c4ef46b28cb90b549 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o kbd.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f188b979a3c5ee1350d7949222836a349e0331f9..77f592e0a5f145309f0eff3cf6895e3aaf3983e3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+
+    lib/libgeneric.o                   (.text*)
+    net/libnet.o                       (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    arch/powerpc/lib/libpowerpc.o      (.text*)
 
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +58,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -126,9 +95,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 661b59d005047dbec090b5a4af8a8c4be7ac89eb..3529810d9724e968ec4c16dff5bd34981884555d 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := migo_r.o
 SOBJS  := lowlevel_init.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 21f3e6e29c08ecbabf5ccecfaba6e98eb26ba009..5a2a0f33c7f33fb25e7a87fb7928d854a2785989 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := ap325rxa.o cpld-ap325rxa.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e96a8aa9866e035f966da84385f5cbefa98b0a1c..7d92354d4fd5a836aab02c845e3ad02b9cb0848d 100644 (file)
@@ -19,7 +19,7 @@
 #
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := r2dplus.o
 SOBJS  := lowlevel_init.o
@@ -29,7 +29,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c100e7e2ade847b941a133f0596de2a16cecc26c..14c5e427b9c4668fb402e050005448a76f7e73d4 100644 (file)
@@ -20,7 +20,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := r7780mp.o
 SOBJS  := lowlevel_init.o
@@ -30,7 +30,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5412010ae6af488c967a30ea85b111f203f96bcc..f908ba07612bf7c658438934dab6ad3442a9b401 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = lib$(BOARD).a
+LIB    = lib$(BOARD).o
 
 OBJS   := rsk7203.o
 SOBJS  := lowlevel_init.o
@@ -31,7 +31,7 @@ OBJS  := $(addprefix $(obj),$(OBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 62a683d57f5f5653c7f9bf754dbe8562178c0451..5f3770044a3944e3563a0c8c58306979707e0d3e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sh7763rdp.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b8e43f7d6dbb6470a94cf9ccb14e7d6e447f7758..b5c496f763b9f3be20398aac539361faac8625ef 100644 (file)
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sh7785lcr.o selfcheck.o rtl8169_mac.o
 SOBJS  := lowlevel_init.o
 
 $(LIB):        $(obj).depend $(COBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(COBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(COBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3f92a9dc438ea241e4920f2a31f0e15ddd044583..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-/* XXX ?
-    . = env_offset;
-*/
-    common/env_embedded.o(.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -86,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -128,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 2e065a2bc9055547daa580970206efd4dcf31866..4b4980867b7553b61dca9dcf7d8c71aeef135a5a 100644 (file)
@@ -28,7 +28,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-y += led.o
@@ -39,7 +39,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y) $(SOBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index ebc2adfa3dcee3d7bf54ca554bce051961c52b7d..2fc9fb4d1f1a43efdbe60ce938ef9dcd679d0639 100644 (file)
@@ -28,7 +28,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += pm9263.o
 COBJS-y += led.o
@@ -39,7 +39,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y) $(SOBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dd5b02ecdaa3919fe85abe1e40cf1a68a8a9c85e..cb0126288b4fb50a477eb4d1589212d4e19f6a96 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += pm9g45.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index a749e26cce6ccf440941c586650e8ebb13c8791e..73450acf6917b84f67357ba874299630316654ea 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := rpxsuper.o flash.o mii_phy.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5c9c33c9fb26f4f1349322872408c2b0d36d0714..d297622fe8b6276fe10c13587b757f322d520e9b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := rsdproto.o flash.o
 SOBJS  := flash_asm.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index de8a5b2a0de67d08327122c72a5f46afb25245be..eae0f02fe703ab6ab95f7abc71b38811a7a6da87 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sacsng.o flash.o clkinit.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 9b4c886597c6c4e6b93763a0de64c875ed12a608..edc4665bd29b3769bbda438abdaed6de8e367c38 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := goni.o onenand.o
 SOBJS  := lowlevel_init.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(SOBJS) $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(SOBJS) $(OBJS)
+       $(call cmd_link_o_target, $(SOBJS) $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0b09ebaf898b90db4f6c302d155626ef96efe689..581935d0547689d623e0ec3ff5e78f4bc31e82c3 100644 (file)
@@ -42,6 +42,14 @@ int board_init(void)
 }
 
 int dram_init(void)
+{
+       gd->ram_size = PHYS_SDRAM_1_SIZE + PHYS_SDRAM_2_SIZE +
+                       PHYS_SDRAM_3_SIZE;
+
+       return 0;
+}
+
+void dram_init_banksize(void)
 {
        gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
        gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
@@ -49,8 +57,6 @@ int dram_init(void)
        gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
        gd->bd->bi_dram[2].start = PHYS_SDRAM_3;
        gd->bd->bi_dram[2].size = PHYS_SDRAM_3_SIZE;
-
-       return 0;
 }
 
 #ifdef CONFIG_DISPLAY_BOARDINFO
index 90cb2b8f60210f960d71e5020d3291d18fbdd3a0..0c45d02a65620196b42ba6d852d7c7966cd1d67b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := smdk2400.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5d0cd722d031f209556a697be16b5b86080cd4d6..bda8898115a561c1b5bdef85616696d0aae85998 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := smdk2410.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 71302205ebca8cc6144be9e5f7895518c34767dd..40bf57e91f5eed281d60687e43f5e2f848fbd855 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := smdk6400.o
 SOBJS  := lowlevel_init.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(SOBJS) $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(SOBJS) $(OBJS)
+       $(call cmd_link_o_target, $(SOBJS) $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 808d0dd0c6da757a32b834095afc3e8b580b7df9..61d4b2579cd0fcdf74d0f8357c5e1905da0ea657 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := smdkc100.o
 COBJS-$(CONFIG_SAMSUNG_ONENAND)        += onenand.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(SOBJS) $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(SOBJS) $(OBJS)
+       $(call cmd_link_o_target, $(SOBJS) $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 31e8d9e0ec32d7617c40fa7cdfe14f00ce7c3374..d3189f6b780109ef942715c0918ab835a668a668 100644 (file)
@@ -65,13 +65,17 @@ int board_init(void)
 
 int dram_init(void)
 {
-       gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-       gd->bd->bi_dram[0].size = get_ram_size((long *)PHYS_SDRAM_1,
-                                               PHYS_SDRAM_1_SIZE);
+       gd->ram_size = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
 
        return 0;
 }
 
+void dram_init_banksize(void)
+{
+       gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+       gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+}
+
 #ifdef CONFIG_DISPLAY_BOARDINFO
 int checkboard(void)
 {
index 49d240c4cac13f426061efe21c1312867aaa7933..d44714018c3653df6e66e24743f702e39568904d 100644 (file)
@@ -38,7 +38,7 @@ CFLAGS += -DBUILDUSER='"$(BUILDUSER)"'
 # TBS: end debugging
 
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/flash.o ../common/ppc440gx_i2c.o \
        ../common/sb_common.o
@@ -50,7 +50,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index eb149108ac5f43d1420b795045947e5bef951768..e98c9895ef7078a524500bff040239819a88d234 100644 (file)
@@ -37,7 +37,7 @@ CFLAGS += -DBUILDUSER='"$(BUILDUSER)"'
 # TBS: end debugging
 
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../common/flash.o ../common/ppc440gx_i2c.o \
        ../common/sb_common.o
@@ -48,7 +48,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
similarity index 54%
rename from board/manroland/uc100/u-boot.lds.debug
rename to board/sandpoint/u-boot.lds
index a7caa8d90aa01f08836860982453b5a25e41aba8..59c86278d98e3990312d1635a4e2e6f50da693f7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2001-2007
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -27,56 +27,21 @@ OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
+    arch/powerpc/cpu/mpc824x/start.o   (.text*)
+    *(.text.v*printf)
 
-    common/env_embedded.o(.text)
+    . = DEFINED(env_offset) ? env_offset : .;
+    common/env_embedded.o      (.ppcenv*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
+    . = ALIGN(16);
+    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  _etext = .;
-  PROVIDE (etext = .);
-  .rodata    :
-  {
-    *(.rodata)
-    *(.rodata1)
-    *(.rodata.str1.4)
-    *(.eh_frame)
-  }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -84,32 +49,30 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
-  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
-  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
+  __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
 
+  . = .;
   __u_boot_cmd_start = .;
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
 
+  . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
   __stop___ex_table = .;
@@ -122,12 +85,12 @@ SECTIONS
   __init_end = .;
 
   __bss_start = .;
-  .bss       :
+  .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
+   . = ALIGN(4);
   }
   _end = . ;
   PROVIDE (end = .);
index 95f2ad120d215038e2864e1ac071f6e6ff34f145..2b3b781eea84fdc3828afb4aadae6e2c54ff56f9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sbc2410x.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1c60447e85483ac51c5d52c111cc9804538f0649..0f53340312aa390964fff395062deb239e4538bc 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o strataflash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 33b4d11058a7cca9780da8efda9e082723fc39a0..4efc410da5aa715b898fcdaf0954c9c8ddc57987 100644 (file)
@@ -96,13 +96,6 @@ int checkboard (void)
 
 /* ------------------------------------------------------------------------- */
 
-phys_size_t initdram (int board_type)
-{
-       return  spd_sdram ();
-}
-
-/* ------------------------------------------------------------------------- */
-
 int testdram (void)
 {
        /* TODO: XXX XXX XXX */
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 034a55169c16480a85b3d9e122ed7cd40f28e572..f1d86fc173db5acef5417156e7107ba1cee4be66 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sbc8260.o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 454c226a53ef81eaa16e6a70d00767867c56a97e..24c7b9807ddb4bf1e2af5707ed13f3e802c81d4e 100644 (file)
@@ -22,7 +22,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 09e5c2e18bd99c035bb7713ed1b7130fcf247749..f68ec8dc3506b31265d2d49cbabafdb14be1930c 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 63997349f27fe5523dd9afad38daab62f9c5a331..a402ee4d4b10ea8d780c5f4bb35f23182f01e823 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index c78b0a8280b4271518475cc29d866a232ba8445f..433c132fab676d46572acc2642671a98c8060e71 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 88989bd1c36b3d6248d17a3978127c8ccb33e959..48f5cf69c96523e3b325395d7b0b37f58e6b68ab 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o sc3nand.o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 3bac4776d7f7a75e790f8e10624af90770ecc38a..a980f7687ca3e96101c5376315af23d3443d7edd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := scb9328.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 16ed4cf4138ccbdbb7c09c673ed5bbf9021ad188..23ac9871c7a85b8b38f669c5992905eee51eeba3 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := shannon.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7c34c5e1641a64fd69a670837c85a3f9cd430959..f18aded2ce5110b97887f0d36eb13c879514b6bd 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o sdram.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index aa1510e1cc9c40667ae43261cf27786f99e528eb..bb815078159d7310d332cf23af675616563cf1c8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o atm.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index a9b00cafae086c58c73c0f64e79b1b9467e1840e..0514f5a5119cb0ef8459c19d1d41aa477b6f844f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000, 2001, 2002
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    arch/powerpc/cpu/mpc8xx/interrupts.o (.text)
-    arch/powerpc/lib/time.o            (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    net/libnet.o                       (.text*)
+    drivers/rtc/librtc.o               (.text*)
+
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -83,23 +56,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -125,9 +94,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 6ef49c2ce92ddb44d4b365b44271a7c53444a4ac..387107992ce4cfd9c9876f52caad7ea869aa67ff 100644 (file)
@@ -28,7 +28,7 @@ $(shell mkdir -p $(obj)../common)
 $(shell mkdir -p $(obj)../../tqc/tqm8xx)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = scm.o flash.o fpga_scm.o ../common/fpga.o \
          ../../tqc/tqm8xx/load_sernum_ethaddr.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4e75b6f7a3b11002afe9b54b02efdb19a3726147..c054a3eb076d7231530eed93822039b65bfa499f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := flash.o smn42.o
 SOBJTS := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJTS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 43a8e20f0454a6fcb73b606ca3158df39d2e7869..b4c7a0ed6e225f343b7fc53d2d20986cfcd53301 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/env_embedded.o(.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -74,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 1c008959fde660460e061062df996b1d67ee7f7d..f8c50cba7267e2665015207263bca39a0def3caa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-       arch/powerpc/cpu/mpc8xx/start.o         (.text)
-       arch/powerpc/cpu/mpc8xx/traps.o         (.text)
-       common/dlmalloc.o               (.text)
-       arch/powerpc/lib/ppcstring.o            (.text)
-       lib/vsprintf.o  (.text)
-       lib/crc32.o             (.text)
-       lib/zlib.o              (.text)
-       arch/powerpc/lib/cache.o                (.text)
-       arch/powerpc/lib/time.o         (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-       common/env_embedded.o   (.ppcenv)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +50,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +88,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 1c008959fde660460e061062df996b1d67ee7f7d..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-       arch/powerpc/cpu/mpc8xx/start.o         (.text)
-       arch/powerpc/cpu/mpc8xx/traps.o         (.text)
-       common/dlmalloc.o               (.text)
-       arch/powerpc/lib/ppcstring.o            (.text)
-       lib/vsprintf.o  (.text)
-       lib/crc32.o             (.text)
-       lib/zlib.o              (.text)
-       arch/powerpc/lib/cache.o                (.text)
-       arch/powerpc/lib/time.o         (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-       common/env_embedded.o   (.ppcenv)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 6fae6014073eae9bffcd3ef92e8029ef24b99eed..1ca6377addf58593cd981f5e0859b5aa0a619c27 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 #
 
 COBJS-y        += $(BOARD).o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 434d3489801f08a4e55d8d958d822f7fd6616e9e..ec5cf530300797b68aa9be10147260cb94324398 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0c48c3aeeccd231704a097d5b930512389fa48ac..d783179fae25607f88de64407af067917701cbe8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o hpi.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3631018116348a2a325c96e5a502497fbdf692d6..fbd901a3c309020d3432a1c19e8fda6d3cb96b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.ppcenv)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -130,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 866777428394f4ee42b683717db7cfd2103ebb8c..b9dd8b719a859d5ba5e477b737a7391600f67331 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/env_embedded.o(.text)
-    *(.text)
-    *(.got1)
+    /* WARNING - the following is hand-optimized to fit within */
+    /* the sector layout of our flash chips!   XXX FIXME XXX   */
+
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    net/libnet.o                       (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    board/spd8xx/libspd8xx.o           (.text*)
+    *(.text.v*printf)
+
+    . = DEFINED(env_offset) ? env_offset : .;
+    common/env_embedded.o      (.ppcenv*)
+
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FF) & 0xFFFFFF00;
@@ -74,23 +57,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -116,9 +95,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 4f8959f529222c7069285ef7c5e178f358b1d62b..e0df6c1fe677c4da4d786a122db42437246f2697 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)board/$(VENDOR)/common)
 endif
 
-LIB    = $(obj)lib$(VENDOR).a
+LIB    = $(obj)lib$(VENDOR).o
 
 COBJS  := spr_misc.o
 SOBJS  := spr_lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b5168ffe8839d7e06a77aa328a4c8aa380f96e95..b9b0fed8af4f8adbefeabe005dc089d574af92a8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := spear300.o
 SOBJS  :=
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e67e941cf90da50d2b131bdd71132a01a6a70ee6..6dce0936a80e3a20292d2fb0c1e727a8b7a686c8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := spear310.o
 SOBJS  :=
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1b80586ff13716e2585b2b458704bf9354c06b34..f6bd7dd4c25cab3ce2af8100ed78816cfe1fc385 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := spear320.o
 SOBJS  :=
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1978002fc505b06774171b96df0199387d06d2b2..6b643bfc25c7b6815fb533d954b9fd23063062f7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := spear600.o
 SOBJS  :=
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b37fe534acc11dce7c04f7b6fc95754a009d79af..3f360dcf29ada5f7c2b1fd17ec413788876a0461 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := nhk8815.o
 SOBJS  := platform.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB): $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 5a68f11e7d0506bdcebbbddfa3a4c9cd95b07820..5eccfab69ee0d98e40a3f1cf11c00a789a242305 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 9ab41ecd3591198eba27d6dcba40255bffdccd9d..6b47ceb933bb052420061c3f6333ba20a62bbace 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += law.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 424ab1cf9e3251575e95a3faf767cfc87b765cf2..ac860c1348f6ba2e8d6ce881e99d95599b203ef9 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9001767ef7ce93664763596d8360fff065b072fc..684ab81c4a2a1d4144f775fc6f59448634a5b467 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp      : { *(.interp)          }
-  .hash         : { *(.hash)           }
-  .dynsym       : { *(.dynsym)         }
-  .dynstr       : { *(.dynstr)         }
-  .rel.text     : { *(.rel.text)       }
-  .rela.text    : { *(.rela.text)      }
-  .rel.data     : { *(.rel.data)       }
-  .rela.data    : { *(.rela.data)      }
-  .rel.rodata   : { *(.rel.rodata)     }
-  .rela.rodata  : { *(.rela.rodata)    }
-  .rel.got      : { *(.rel.got)                }
-  .rela.got     : { *(.rela.got)       }
-  .rel.ctors    : { *(.rel.ctors)      }
-  .rela.ctors   : { *(.rela.ctors)     }
-  .rel.dtors    : { *(.rel.dtors)      }
-  .rela.dtors   : { *(.rela.dtors)     }
-  .rel.bss      : { *(.rel.bss)                }
-  .rela.bss     : { *(.rela.bss)       }
-  .rel.plt      : { *(.rel.plt)                }
-  .rela.plt     : { *(.rela.plt)       }
-  .init         : { *(.init)           }
-  .plt         : { *(.plt)             }
   .text        :
   {
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-    . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index cf07cf40fdb9485240118667e0b22074acd7516d..6dc495c3619cabc3ecc9eabf3c7c696a9580379f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 59f1844885d1c1fb862c79925026ae95fadf09c0..6ff4d8c012f96f2011578b34e6ab3865fa8788c4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    lib/libgeneric.o                   (.text*)
+    net/libnet.o                       (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o        (.text*)
+    arch/powerpc/lib/libpowerpc.o      (.text*)
+    board/svm_sc8xx/libsvm_sc8xx.o     (.text*)
+    *(.text.*printf)
+    *(.text.do_mem_*)
+    *(.text.flash*)
+    *(.text.run_command)
+    *(.text.main_loop)
+    *(.text.srec_decode)
 
     . = env_offset;
-    common/env_embedded.o      (.ppcenv)
+    common/env_embedded.o              (.ppcenv*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -88,23 +63,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -131,9 +102,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 4c11030ed6aae1a2b3caa9ab1aba3d4aa7437e3a..27d85b028de5776851a0708fc08b574b9b2f5198 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sx1.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 87d2234ca3885edf9e18b5b4eeaf375926e325f7..30818d25f1527af9c6b9585545f51bcf28e0c294 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += jadecpu.o
 SOBJS  := lowlevel_init.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e2bb54673e8b18323bbaa764fbdab51db060e84e..4211b7b53f517a1838bec1b43cda76c2f1362044 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
@@ -34,8 +34,10 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
-$(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+all:   $(LIB) $(SOBJS)
+
+$(LIB):        $(OBJS)
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1f6f517260a628cd53f72ba682cd1fae0c3a1a6e..76f1664facee5727096a7aeae8542f658461c28c 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o vr4131-pci.o
 SOBJS  = lowlevel_init.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 #########################################################################
 
index f2bd2c247d4ab5ca14d7101a238c5d17fee8988b..cde8168ccf2dc086c02f8494931480e35f5c7fc9 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index bad018aa34d6a4a17abbf33cb5a0ecc6b70591bc..4d7bf14f8b194f7e170c881578fcc09241cea9bc 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        := $(BOARD).o gpio_cfi_flash.o
 
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f7971127c826d943e10437e1cc454de844ed04c6..3b4aaace231bc802a673fa82c4ea3441ff2024f1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := beagle.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index c5d6679f482493a48417cc53f54416a3168b30b7..d9b6f01163b609cfdbc4f6340574b04718a6566c 100644 (file)
 #include <asm/mach-types.h>
 #include "beagle.h"
 
+#define TWL4030_I2C_BUS                        0
+#define EXPANSION_EEPROM_I2C_BUS       1
+#define EXPANSION_EEPROM_I2C_ADDRESS   0x50
+
+#define TINCANTOOLS_ZIPPY              0x01000100
+#define TINCANTOOLS_ZIPPY2             0x02000100
+#define TINCANTOOLS_TRAINER            0x04000100
+#define TINCANTOOLS_SHOWDOG            0x03000100
+#define KBADC_BEAGLEFPGA               0x01000600
+
+#define BEAGLE_NO_EEPROM               0xffffffff
+
+static struct {
+       unsigned int device_vendor;
+       unsigned char revision;
+       unsigned char content;
+       char fab_revision[8];
+       char env_var[16];
+       char env_setting[64];
+} expansion_config;
+
 /*
  * Routine: board_init
  * Description: Early hardware init.
@@ -94,6 +115,31 @@ int get_board_revision(void)
        return revision;
 }
 
+/*
+ * Routine: get_expansion_id
+ * Description: This function checks for expansion board by checking I2C
+ *             bus 1 for the availability of an AT24C01B serial EEPROM.
+ *             returns the device_vendor field from the EEPROM
+ */
+unsigned int get_expansion_id(void)
+{
+       i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS);
+
+       /* return BEAGLE_NO_EEPROM if eeprom doesn't respond */
+       if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) {
+               i2c_set_bus_num(TWL4030_I2C_BUS);
+               return BEAGLE_NO_EEPROM;
+       }
+
+       /* read configuration data */
+       i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config,
+                sizeof(expansion_config));
+
+       i2c_set_bus_num(TWL4030_I2C_BUS);
+
+       return expansion_config.device_vendor;
+}
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
@@ -141,6 +187,55 @@ int misc_init_r(void)
                printf("Beagle unknown 0x%02x\n", get_board_revision());
        }
 
+       switch (get_expansion_id()) {
+       case TINCANTOOLS_ZIPPY:
+               printf("Recognized Tincantools Zippy board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               MUX_TINCANTOOLS_ZIPPY();
+               setenv("buddy", "zippy");
+               break;
+       case TINCANTOOLS_ZIPPY2:
+               printf("Recognized Tincantools Zippy2 board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               MUX_TINCANTOOLS_ZIPPY();
+               setenv("buddy", "zippy2");
+               break;
+       case TINCANTOOLS_TRAINER:
+               printf("Recognized Tincantools Trainer board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               MUX_TINCANTOOLS_ZIPPY();
+               MUX_TINCANTOOLS_TRAINER();
+               setenv("buddy", "trainer");
+               break;
+       case TINCANTOOLS_SHOWDOG:
+               printf("Recognized Tincantools Showdow board (rev %d %s)\n",
+                       expansion_config.revision,
+                       expansion_config.fab_revision);
+               /* Place holder for DSS2 definition for showdog lcd */
+               setenv("defaultdisplay", "showdoglcd");
+               setenv("buddy", "showdog");
+               break;
+       case KBADC_BEAGLEFPGA:
+               printf("Recognized KBADC Beagle FPGA board\n");
+               MUX_KBADC_BEAGLEFPGA();
+               setenv("buddy", "beaglefpga");
+               break;
+       case BEAGLE_NO_EEPROM:
+               printf("No EEPROM on expansion board\n");
+               setenv("buddy", "none");
+               break;
+       default:
+               printf("Unrecognized expansion board: %x\n",
+                       expansion_config.device_vendor);
+               setenv("buddy", "unknown");
+       }
+
+       if (expansion_config.content == 1)
+               setenv(expansion_config.env_var, expansion_config.env_setting);
+
        twl4030_power_init();
        twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
 
index ec0da6d745477437c1c776db7929690e1e568437..b22b65337da5ecaecca101e31c5efb42233f2261 100644 (file)
@@ -259,8 +259,8 @@ const omap3_sysinfo sysinfo = {
        MUX_VAL(CP(HSUSB0_DATA7),       (IEN  | PTD | DIS | M0)) /*HSUSB0_DATA7*/\
        MUX_VAL(CP(I2C1_SCL),           (IEN  | PTU | EN  | M0)) /*I2C1_SCL*/\
        MUX_VAL(CP(I2C1_SDA),           (IEN  | PTU | EN  | M0)) /*I2C1_SDA*/\
-       MUX_VAL(CP(I2C2_SCL),           (IEN  | PTU | EN  | M4)) /*GPIO_168*/\
-       MUX_VAL(CP(I2C2_SDA),           (IEN  | PTU | EN  | M4)) /*GPIO_183*/\
+       MUX_VAL(CP(I2C2_SCL),           (IEN  | PTU | EN  | M0)) /*I2C2_SCL*/\
+       MUX_VAL(CP(I2C2_SDA),           (IEN  | PTU | EN  | M0)) /*I2C2_SDA*/\
        MUX_VAL(CP(I2C3_SCL),           (IEN  | PTU | EN  | M0)) /*I2C3_SCL*/\
        MUX_VAL(CP(I2C3_SDA),           (IEN  | PTU | EN  | M0)) /*I2C3_SDA*/\
        MUX_VAL(CP(I2C4_SCL),           (IEN  | PTU | EN  | M0)) /*I2C4_SCL*/\
@@ -415,4 +415,46 @@ const omap3_sysinfo sysinfo = {
        MUX_VAL(CP(SYS_BOOT5),          (IDIS | PTD | DIS | M3)) /*DSS_DATA22*/\
        MUX_VAL(CP(SYS_BOOT6),          (IDIS | PTD | DIS | M3)) /*DSS_DATA23*/
 
+#define MUX_TINCANTOOLS_ZIPPY() \
+       MUX_VAL(CP(MMC2_CLK),       (IEN  | PTU | EN  | M0)) /*MMC2_CLK*/\
+       MUX_VAL(CP(MMC2_CMD),       (IEN  | PTU | EN  | M0)) /*MMC2_CMD*/\
+       MUX_VAL(CP(MMC2_DAT0),      (IEN  | PTU | EN  | M0)) /*MMC2_DAT0*/\
+       MUX_VAL(CP(MMC2_DAT1),      (IEN  | PTU | EN  | M0)) /*MMC2_DAT1*/\
+       MUX_VAL(CP(MMC2_DAT2),      (IEN  | PTU | EN  | M0)) /*MMC2_DAT2*/\
+       MUX_VAL(CP(MMC2_DAT3),      (IEN  | PTU | EN  | M0)) /*MMC2_DAT3*/\
+       MUX_VAL(CP(MMC2_DAT4),      (IEN  | PTU | EN  | M1)) /*MMC2_DIR_DAT0*/\
+       MUX_VAL(CP(MMC2_DAT5),      (IEN  | PTU | EN  | M1)) /*MMC2_DIR_DAT1*/\
+       MUX_VAL(CP(MMC2_DAT6),      (IEN  | PTU | EN  | M1)) /*MMC2_DIR_CMD*/\
+       MUX_VAL(CP(MMC2_DAT7),      (IEN  | PTU | EN  | M1)) /*MMC2_CLKIN*/\
+       MUX_VAL(CP(MCBSP1_CLKR),    (IEN  | PTU | EN  | M1)) /*MCSPI4_CLK*/\
+       MUX_VAL(CP(MCBSP1_FSR),     (IEN  | PTU | EN  | M4)) /*GPIO_157*/\
+       MUX_VAL(CP(MCBSP1_DX),      (IEN  | PTD | EN  | M1)) /*MCSPI4_SIMO*/\
+       MUX_VAL(CP(MCBSP1_DR),      (IEN  | PTD | DIS | M1)) /*MCSPI4_SOMI*/\
+       MUX_VAL(CP(MCBSP1_FSX),     (IEN  | PTD | EN  | M1)) /*MCSPI4_CS0*/\
+       MUX_VAL(CP(MCBSP1_CLKX),    (IEN  | PTD | DIS | M4)) /*GPIO_162*/\
+       MUX_VAL(CP(MCBSP3_DX),      (IEN  | PTD | DIS | M4)) /*GPIO_140*/\
+       MUX_VAL(CP(MCBSP3_DR),      (IEN  | PTD | DIS | M4)) /*GPIO_142*/\
+       MUX_VAL(CP(MCBSP3_CLKX),    (IEN  | PTD | DIS | M4)) /*GPIO_141*/
+
+#define MUX_TINCANTOOLS_TRAINER() \
+       MUX_VAL(CP(MMC2_CLK),       (IEN  | PTU | EN  | M4)) /*GPIO_130*/\
+       MUX_VAL(CP(MMC2_CMD),       (IEN  | PTU | EN  | M4)) /*GPIO_131*/\
+       MUX_VAL(CP(MMC2_DAT0),      (IEN  | PTU | EN  | M4)) /*GPIO_132*/\
+       MUX_VAL(CP(MMC2_DAT1),      (IEN  | PTU | EN  | M4)) /*GPIO_133*/\
+       MUX_VAL(CP(MMC2_DAT2),      (IEN  | PTU | EN  | M4)) /*GPIO_134*/\
+       MUX_VAL(CP(MMC2_DAT3),      (IEN  | PTU | EN  | M4)) /*GPIO_135*/\
+       MUX_VAL(CP(MMC2_DAT4),      (IEN  | PTU | EN  | M4)) /*GPIO_136*/\
+       MUX_VAL(CP(MMC2_DAT5),      (IEN  | PTU | EN  | M4)) /*GPIO_137*/\
+       MUX_VAL(CP(MMC2_DAT6),      (IEN  | PTU | EN  | M4)) /*GPIO_138*/\
+       MUX_VAL(CP(MMC2_DAT7),      (IEN  | PTU | EN  | M4)) /*GPIO_139*/\
+       MUX_VAL(CP(MCBSP3_DX),      (IEN  | PTU | EN  | M4)) /*GPIO_140*/\
+       MUX_VAL(CP(MCBSP3_CLKX),    (IEN  | PTU | EN  | M4)) /*GPIO_141*/\
+       MUX_VAL(CP(MCBSP1_CLKX),    (IEN  | PTU | EN  | M4)) /*GPIO_162*/
+
+#define MUX_KBADC_BEAGLEFPGA() \
+       MUX_VAL(CP(MCBSP1_CLKR),    (IEN  | PTU | DIS | M1)) /*MCSPI4_CLK*/\
+       MUX_VAL(CP(MCBSP1_DX),      (IDIS | PTU | DIS | M1)) /*MCSPI4_SIMO*/\
+       MUX_VAL(CP(MCBSP1_DR),      (IEN  | PTU | EN  | M1)) /*MCSPI4_SOMI*/\
+       MUX_VAL(CP(MCBSP1_FSX),     (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/
+
 #endif
index b951bb4ed7fc062b109dfde01507d6b4c07516b1..2ff83567ce57a026f3b80b18755b3e2dfe01fa4a 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := evm.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index b92d3b0544b90552015e5ab6d5809a71fa3d1c37..d173eef094f5e5b8657a99e5b5d1320660b13b70 100644 (file)
@@ -30,4 +30,4 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
+CONFIG_SYS_TEXT_BASE = 0x80008000
index 9948b9cd30e7742354f31a829ddd6c8c7da25e5e..09d14f7a56a7f4f7723dcde55d9488827f438a3b 100644 (file)
@@ -46,6 +46,11 @@ u8 get_omap3_evm_rev(void)
 
 static void omap3_evm_get_revision(void)
 {
+#if defined(CONFIG_CMD_NET)
+       /*
+        * Board revision can be ascertained only by identifying
+        * the Ethernet chipset.
+        */
        unsigned int smsc_id;
 
        /* Ethernet PHY ID is stored at ID_REV register */
@@ -62,8 +67,22 @@ static void omap3_evm_get_revision(void)
        default:
                omap3_evm_version = OMAP3EVM_BOARD_GEN_2;
        }
+#else
+#if defined(CONFIG_STATIC_BOARD_REV)
+       /*
+        * Look for static defintion of the board revision
+        */
+       omap3_evm_version = CONFIG_STATIC_BOARD_REV;
+#else
+       /*
+        * Fallback to the default above.
+        */
+       omap3_evm_version = OMAP3EVM_BOARD_GEN_2;
+#endif
+#endif /* CONFIG_CMD_NET */
 }
 
+#ifdef CONFIG_USB_OMAP3
 /*
  * MUSB port on OMAP3EVM Rev >= E requires extvbus programming.
  */
@@ -76,6 +95,7 @@ u8 omap3_evm_need_extvbus(void)
 
        return retval;
 }
+#endif
 
 /*
  * Routine: board_init
@@ -108,6 +128,7 @@ int misc_init_r(void)
 #if defined(CONFIG_CMD_NET)
        setup_net_chip();
 #endif
+       omap3_evm_get_revision();
 
        dieid_num_r();
 
@@ -161,9 +182,6 @@ static void setup_net_chip(void)
        writel(GPIO0, &gpio3_base->cleardataout);
        udelay(1);
        writel(GPIO0, &gpio3_base->setdataout);
-
-       /* determine omap3evm revision */
-       omap3_evm_get_revision();
 }
 
 int board_eth_init(bd_t *bis)
index e2581f6bf10de7ec5f9ac892a59db044514cfd77..a76deb838c05796869d1a64f6714d283363d5980 100644 (file)
@@ -47,7 +47,9 @@ enum {
 
 u8 get_omap3_evm_rev(void);
 
+#if defined(CONFIG_CMD_NET)
 static void setup_net_chip(void);
+#endif
 
 /*
  * IEN  - Input Enable
index cd222dbc16454940c910c53a18d2f67d1f8ca6a0..9281fc2f49beab8cf3c3df58a793354ad35bbf15 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := omap1510innovator.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 1adcad64e08733dfbb49d9bb3e78a9f0d7b8aff0..4e21a3724ff5fe8d743e0a4d9ecb9a2454b24e64 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := omap1610innovator.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index f39eef0adb1642ab9df715de6e4f971c5a2f988b..5174d8959b24797a12d59db945b7ab9772fbdaed 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := omap2420h4.o mem.o sys_info.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index e9bb0ecd724630b7b63ac3fa0f9c3eae2f40ab5d..e2de898501b6802b35e1a4623fef4678edfdcbf4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := omap5912osk.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0d7ae6145cc2e048d5117e91272eafb24e0885a6..a04f7aa7c25e6aa2bc1c19b2d2853b3104c9c17d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := omap730p2.o flash.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 81e54692bb3bf70f4b6b7874e9c9921c0da7560f..21864037327a5674f80ad093a60dc1f46e41e89b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := panda.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 2554c7b0813d26fea8b4e3424ad198146d55eae9..bce85342a80cb20aaff0542361036205e82c7896 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sdp.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 2ca03dd81fe2d4219581c839df075a46d5ddad03..be4629897a2c31d5a54f59f3ba4e97a078fda7b0 100644 (file)
@@ -30,4 +30,4 @@
 # (mem base + reserved)
 
 # For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
+CONFIG_SYS_TEXT_BASE = 0x80008000
index 2554c7b0813d26fea8b4e3424ad198146d55eae9..bce85342a80cb20aaff0542361036205e82c7896 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := sdp.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 2446c2ae12ef522797580e6c42a7d7a97b0640b3..03238f0afb308c3055ee488cbd5f68aac2c3be36 100644 (file)
@@ -19,7 +19,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS          += sdb_board.o
 
@@ -32,7 +32,7 @@ SOBJS := $(addprefix $(obj),$(SOBJS))
 all: $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 38600c4e51965fe6ba3b5816a6f8b5ff57af3fc8..3f160b208daf0a313a426dff715032f0a1e087f9 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := devkit8000.o
 
@@ -34,7 +34,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
diff --git a/board/timll/devkit8000/config.mk b/board/timll/devkit8000/config.mk
deleted file mode 100644 (file)
index cb2cf8f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# (C) Copyright 2006
-# Texas Instruments, <www.ti.com>
-#
-# (C) Copyright 2009
-# Frederik Kriewitz <frederik@kriewitz.eu>
-#
-# DevKit8000 uses OMAP3 (ARM-CortexA8) cpu
-# see http://www.ti.com/ for more information on Texas Instruments
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-# Physical Address:
-# 8000'0000 (bank0)
-# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
-# (mem base + reserved)
-
-# For use with external or internal boots.
-CONFIG_SYS_TEXT_BASE = 0x80e80000
index a8abd7d7811da984b79fdff51b8a7746aeacbe7e..066d9caab478714831ded8c7c8e06297cb9a3d05 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o sdram.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 55c4d99a8f3330fb204f2acb5646fa385e71bfd1..d0e68c31a241b735ea82d21bfe96ff32d36a9813 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o cmd_stk52xx.o cmd_tb5200.o cam5200_flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 124b47d22848d9c2b08b133a85c8d77b39831147..4c8922f35f5c69a5203ab0c67487db2a7ab93034 100644 (file)
@@ -440,7 +440,9 @@ static int write_word(flash_info_t * info, ulong dest, ulong data)
 {
        volatile CONFIG_SYS_FLASH_WORD_SIZE *addr2 = (CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[0]);
        volatile CONFIG_SYS_FLASH_WORD_SIZE *dest2 = (CONFIG_SYS_FLASH_WORD_SIZE *) dest;
-       volatile CONFIG_SYS_FLASH_WORD_SIZE *data2 = (CONFIG_SYS_FLASH_WORD_SIZE *) & data;
+       ulong *datap = &data;
+       volatile CONFIG_SYS_FLASH_WORD_SIZE *data2 =
+                       (volatile CONFIG_SYS_FLASH_WORD_SIZE *)datap;
        ulong start;
        int i, flag;
 
@@ -681,7 +683,9 @@ static int write_word_16(flash_info_t * info, ulong dest, ulong data)
 {
        volatile CONFIG_SYS_FLASH_WORD_SIZE *addr2 = (CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[0]);
        volatile CONFIG_SYS_FLASH_WORD_SIZE *dest2 = (CONFIG_SYS_FLASH_WORD_SIZE *) dest;
-       volatile CONFIG_SYS_FLASH_WORD_SIZE *data2 = (CONFIG_SYS_FLASH_WORD_SIZE *) & data;
+       ulong *datap = &data;
+       volatile CONFIG_SYS_FLASH_WORD_SIZE *data2 =
+                       (volatile CONFIG_SYS_FLASH_WORD_SIZE *)datap;
        ulong start;
        int i;
 
index 94ba1e94e922544ec42f2b116a2accc644a77fc2..d5b6df6868fa15fb423fa89d1ae968e04edc0703 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../tqm8xx/)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../tqm8xx/load_sernum_ethaddr.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index c97fe1496d06daa12edc77272c76758874822134..d2a90d538b33e634a291ac3eb4c183f32265bc33 100644 (file)
@@ -26,7 +26,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)../tqm8xx/)
 endif
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o ../tqm8xx/load_sernum_ethaddr.o nand.o
 
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 011e63136bca78d645ef74e166656b652ba66670..bce53a49e255963522b3b81e390eee40ef58a9c8 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y += $(BOARD).o
 COBJS-$(CONFIG_PCI) += pci.o
@@ -36,7 +36,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index adda9d45b793ccca3e2cb7b3fba63ad5adb301e9..a40a89575b29090f238e7059b94427e28561898b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += sdram.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 280982dd412aacc56dc7c71739858c22f21c0cf2..888cf248105920eae5e4d51a0dfb90d5bf04ccb1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o load_sernum_ethaddr.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 32a3e2bf02a5d5412011983adff8cc97f6b3ca9d..209d1e00414190e10b08df6cb54ed7bf80e24e6f 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/libmpc8xx.o (.text*)
+    arch/powerpc/lib/libpowerpc.o      (.text*)
+    board/tqc/tqm8xx/libtqm8xx.o       (.text*)
+    disk/libdisk.o                     (.text*)
+    drivers/net/libnet.o               (.text*)
+    drivers/pcmcia/libpcmcia.o         (.text*)
+    drivers/rtc/librtc.o               (.text*)
+    drivers/misc/libmisc.o             (.text*)
+    *(.text.print_buffer)
+    *(.text.print_size)
 
     . = DEFINED(env_offset) ? env_offset : .;
-    common/env_embedded.o      (.ppcenv)
+    common/env_embedded.o      (.ppcenv*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -87,23 +63,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -129,9 +101,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 0b13dc475ee42417317491d29ae4c180b145de55..82da40c9af3f4af095db969f4ba49b393352bfc1 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := trab.o flash.o vfd.o cmd_trab.o memory.o tsc2000.o auto_update.o
 SOBJS  := lowlevel_init.o
@@ -43,7 +43,7 @@ LOAD_ADDR = 0xc100000
 all:   $(LIB) $(obj)trab_fkt.srec $(obj)trab_fkt.bin
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 $(obj)trab_fkt.srec:   $(OBJS_FKT) $(LIB)
        $(LD) -g -Ttext $(LOAD_ADDR) -o $(<:.o=) -e trab_fkt $^ $(LIB) \
index 060ac890f7c4ab92ca0d56d7bc4ec234d7cd49e7..eac00aede6530d69c5a5d52e15bf7801ed172c57 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := conxs.o eeprom.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 309e3a3df6b927798f85ca4fc0ee1d9787fef446..9ed8246e5b76811bcb40484eca339c96427de1b1 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := vision2.o
 
@@ -30,7 +30,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 7ad768bc430823c6817676183684135d06e329cb..33c1dcd4dc15240ca80607b68a6597af0485a401 100644 (file)
@@ -28,7 +28,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 109cec264056bdd5b0e25d4a5f4601151bfc00ac..9b00eb0994ceac5e4f1b4c9c179f2ec6c8754c74 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9bdc97fe4eb155e0e8aa59fe89ec5fddfcb7e34d..9f36f53e6514fa3f2172e20de0df80f4588924d8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2003
+ * (C) Copyright 2003-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          }
-  .plt : { *(.plt) }
   .text      :
   {
-    /* WARNING - the following is hand-optimized to fit within */
-    /* the sector layout of our flash chips!   XXX FIXME XXX   */
-
-    arch/powerpc/cpu/mpc8xx/start.o            (.text)
-    arch/powerpc/cpu/mpc8xx/traps.o            (.text)
-    common/dlmalloc.o          (.text)
-    arch/powerpc/lib/ppcstring.o               (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
-    arch/powerpc/lib/cache.o           (.text)
-    arch/powerpc/lib/time.o            (.text)
-
-/*
-    . = env_offset;
-*/
-    common/env_embedded.o      (.ppcenv)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -90,23 +47,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -132,9 +85,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 0b227dac0f294ab4eedcdfe5c58b0544fcdf8470..d463db4d8a9fc0e341ef081961852a3eae51d7a7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o ethaddr.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index c95f90eaab82d6797b6c797d1f00ed7a50687b14..4a1b249b4c5bf31c2e8d23b42ea4c6a51e362ce2 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 0067f056376f18fb43950a93c9db97aa49540890..e16b195c3c8cc9a1e6480ad1232727a58027bafc 100644 (file)
@@ -24,7 +24,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := voiceblue.o
 SOBJS  := setup.o
@@ -40,7 +40,7 @@ LOAD_ADDR = 0x10400000
 all:   $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 $(obj)eeprom_start.o:
        echo "b eeprom" | $(CC) $(AFLAGS) -c -x assembler -o $@ -
index c3599178da7b98a38658d90ae089b2802dc8a1be..f9acf63e9b2507a1d25caba8ec275d1b8a3b1e16 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := vpac270.o
 
@@ -29,7 +29,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index e481bb2880c61a9997e57d3aea25d2e66c2c4cbd..5c94870018eac5e8245a046f0cdd0d96a8143f7e 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o fpga.o fsboot.o post2.o vpd.o cmd_vpd.o \
          watchdog.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index dcb1907032b5df8d2f89bdcb23506a49bb1446c7..12e4aa6880eed591aade2b9cfdf2d64611b3a39f 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o flash.o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 36dd55dee45b561869345e0f2c6d373d13974114..206ec7054a0cd59ab7fc2df68a417d470a8c6fee 100644 (file)
  */
 
 OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
+
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
     /* WARNING - the following is hand-optimized to fit within */
     /* the sector layout of our flash chips!   XXX FIXME XXX   */
 
-    arch/powerpc/cpu/mpc8xx/start.o    (.text)
-    common/dlmalloc.o  (.text)
-    arch/powerpc/lib/ppcstring.o       (.text)
-    lib/vsprintf.o     (.text)
-    lib/crc32.o                (.text)
-    lib/zlib.o         (.text)
+    arch/powerpc/cpu/mpc8xx/start.o    (.text*)
+    arch/powerpc/cpu/mpc8xx/traps.o    (.text*)
+    net/libnet.o                       (.text*)
+    board/westel/amx860/libamx860.o    (.text*)
+    *(.text.*printf)
 
     . = env_offset;
-    common/env_embedded.o(.text)
+    common/env_embedded.o              (.text*)
 
-    *(.text)
-    *(.got1)
+    *(.text*)
   }
   _etext = .;
   PROVIDE (etext = .);
   .rodata    :
   {
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x00FF) & 0xFFFFFF00;
@@ -85,23 +56,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
   __fixup_entries = (. - _FIXUP_TABLE_)>>2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -127,9 +94,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index 554915a6f98d0ac7329e8c28a0d86bcccb92ae54..0a2fe96ff32c7cbd819445c8248cc63f1087c37d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := xaeniax.o flash.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 16e0b66218a446a684245b3392ab7835d0e4726c..7604f626bbc98f668c5f9eb4117dd76fb2bbca4f 100644 (file)
@@ -27,7 +27,7 @@ ifneq ($(OBJTREE),$(SRCTREE))
 $(shell mkdir -p $(obj)board/$(VENDOR)/common)
 endif
 
-LIB    = $(obj)lib$(VENDOR).a
+LIB    = $(obj)lib$(VENDOR).o
 
 COBJS-$(CONFIG_FSL_PCI_INIT)   += fsl_8xxx_pci.o
 COBJS-$(CONFIG_MPC8572)                += fsl_8xxx_clk.o
@@ -44,7 +44,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index b93f2c3890ef77b66ed5f5a3afa2365c1501963b..5b0ffc29209a37d33567d66b67750008bba7309d 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 SOBJS  = init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index fea6686e699d6bbd1fb1243bf5c72178e263d3cc..cac32e93d208ede87ae2411493b58da40fec77dc 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 02fe8fcd2d31267c8c078b95ad688aefc8d619e6..a774816189fd5bfc2cd187f19a459ee0c6e361e6 100644 (file)
@@ -25,7 +25,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 919397c40d5148bc3debcc3e2485c932ad3a066b..86138f99e91aa56d4a241aa84744a0b8780d40ae 100644 (file)
@@ -15,7 +15,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -27,7 +27,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 8980a4b3f6aae87a08873aee5243009492aa9123..7bc224c4495a8b6fc14534aa22e2ad180c1cefca 100644 (file)
@@ -9,7 +9,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS-y        += $(BOARD).o
 COBJS-y        += ddr.o
@@ -21,7 +21,7 @@ OBJS  := $(addprefix $(obj),$(COBJS-y))
 SOBJS  := $(addprefix $(obj),$(SOBJS-y))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS) $(SOBJS)
index 10b47b2ae54cb1436c8b68960685912695055e84..efe64d8e49d654f0c4ed4fa1748515e6c6613769 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 4e87e4b5cea68e2cb545aa4e3e60b10db6f6b957..4b8e4f422f2b3c5b5f705aeea4a45ac3fa6405aa 100644 (file)
@@ -33,7 +33,7 @@ INCS          :=
 CFLAGS         += $(INCS)
 HOSTCFLAGS     += $(INCS)
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  += ../../xilinx/ppc405-generic/xilinx_ppc405_generic.o
 
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 11a8f69343c54dd348b8fffe4d5597f905a0e6d2..d84cf69ab9c35c8344b56d3ea6a367f62320c10c 100644 (file)
@@ -33,7 +33,7 @@ INCS          :=
 CFLAGS         += $(INCS)
 HOSTCFLAGS     += $(INCS)
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  += ../../xilinx/ppc440-generic/xilinx_ppc440_generic.o
 
@@ -44,7 +44,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $^
+       $(call cmd_link_o_target, $^)
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 11e2b304c28208970622f8f27b178c8479e2995e..4e86cc26f944dd6716705e12e9532a21c57620f7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := xm250.o flash.o
 
@@ -31,7 +31,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index 55fb4c4343f0279dbeeea84ed053844c2c178a17..1ed026523c86fdbeff6fb3c723413704ce048aab 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  = $(BOARD).o update.o
 SOBJS   =
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 8d452de63cb8d00e12208261274e3a739ca8ccaa..16eea07de03206681a061ee0b50332ac896f8914 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := zipitz2.o
 
@@ -34,7 +34,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(OBJS)
index dc40d9b94a6dd89e249b38cbfa6e5b830fc11afd..9079aad8566d16e67b56e0a6b800bdb8a1a9c8c5 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := $(BOARD).o
 
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 89542356b7c2dd4b439e0989248bb36b71d82f61..3e57e49ba81ba535d7dca73d041869fc7626e971 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).a
+LIB    = $(obj)lib$(BOARD).o
 
 COBJS  := zylonite.o nand.o
 SOBJS  := lowlevel_init.o
@@ -33,7 +33,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 SOBJS  := $(addprefix $(obj),$(SOBJS))
 
 $(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
 
 clean:
        rm -f $(SOBJS) $(OBJS)
index 08e531e79a29b80dd6051e6ba53c149180d65d97..dcd5a12347917a43c6ba933e11cd60cc70ab3428 100644 (file)
 #              #define CONFIG_HAS_BAR  1
 #              #define CONFIG_BAZ      64
 #
+# The list should be ordered according to the following fields,
+# from most to least significant:
+#
+#      ARCH, CPU, SoC, Vendor, Target
+#
 # To keep the list sorted, use something like
+#      :.,$! sort -bdf -k2,2 -k3,3 -k6,6 -k5,5 -k1,1
 #
-#      :.,$! sort -f -k2,2 -k3,3 -k6,6 -k5,5 -k1,1
+# To reformat the list, use something like
+#      :.,$! column -t
 #
-# Target       ARCH    CPU             Board name      Vendor          SoC             Options
-###############################################################################################
+# Target                     ARCH        CPU         Board name          Vendor                SoC         Options
+###########################################################################################################
 
-qong           arm     arm1136         -               davedenx        mx31
-mx31ads                arm     arm1136         -               freescale       mx31
-ep7312         arm     arm720t
-impa7          arm     arm720t
-SMN42          arm     arm720t         -               siemens         lpc2292
-evb4510                arm     arm720t         -               -               s3c4510b
-a320evb                arm     arm920t         -               faraday         a320
-cmc_pu2                arm     arm920t         -               -               at91rm9200
-csb637         arm     arm920t         -               -               at91rm9200
-kb9202         arm     arm920t         -               -               at91rm9200
-m501sk         arm     arm920t         -               -               at91rm9200
-mp2usb         arm     arm920t         -               -               at91rm9200
-mx1ads         arm     arm920t         -               -               imx
-mx1fs2         arm     arm920t         -               -               imx
-scb9328                arm     arm920t         -               -               imx
-cm4008         arm     arm920t         -               -               ks8695
-cm41xx         arm     arm920t         -               -               ks8695
-VCMA9          arm     arm920t         vcma9           mpl             s3c24x0
-netstar                arm     arm925t
-meesc          arm     arm926ejs       -               esd             at91
-otc570         arm     arm926ejs       -               esd             at91
-pm9261         arm     arm926ejs       -               ronetix         at91
-pm9263         arm     arm926ejs       -               ronetix         at91
-suen3          arm     arm926ejs       km_arm          keymile         kirkwood
-rd6281a                arm     arm926ejs       -               Marvell         kirkwood
-jadecpu                arm     arm926ejs       jadecpu         syteco          mb86r0x
-mx51evk                arm     armv7           mx51evk         freescale       mx5
-vision2                arm     armv7           vision2         ttcontrol       mx5
-actux1         arm     ixp
-actux2         arm     ixp
-actux3         arm     ixp
-actux4         arm     ixp
-ixdp425                arm     ixp
-balloon3       arm     pxa
-cerf250                arm     pxa
-cradle         arm     pxa
-csb226         arm     pxa
-innokom                arm     pxa
-lubbock                arm     pxa
-palmld         arm     pxa
-palmtc         arm     pxa
-pleb2          arm     pxa
-polaris                arm     pxa             trizepsiv       -               -               trizepsiv:POLARIS
-trizepsiv      arm     pxa
-vpac270_nor_128        arm     pxa             vpac270         -               -               vpac270:NOR,RAM_128M
-vpac270_nor_256        arm     pxa             vpac270         -               -               vpac270:NOR,RAM_256M
-vpac270_ond_256        arm     pxa             vpac270         -               -               vpac270:ONENAND,RAM_256M
-xaeniax                arm     pxa
-xm250          arm     pxa
-zipitz2                arm     pxa
-B2             arm     s3c44b0         -               dave
-assabet                arm     sa1100
-dnp1110                arm     sa1100
-gcplus         arm     sa1100
-lart           arm     sa1100
-shannon                arm     sa1100
-jornada                arm     sa1100
-mimc200                avr32   at32ap          -               mimc            at32ap700x
-ip04           blackfin        blackfin
-eNET           i386    i386            -               -               sc520
-idmr           m68k    mcf52x2
-TASREG         m68k    mcf52x2         tasreg          esd
-M5272C3                m68k    mcf52x2         m5272c3         freescale
-EP2500         m68k    mcf52x2         ep2500          Mercury
-purple         mips    mips
-tb0229         mips    mips
-PCI5441                nios2   nios2           pci5441         psyent
-PK1C20         nios2   nios2           pk1c20          psyent
-P3G4           powerpc 74xx_7xx        evb64260
-PCIPPC2                powerpc 74xx_7xx        pcippc2
-PCIPPC6                powerpc 74xx_7xx        pcippc2
-ppmc7xx                powerpc 74xx_7xx
-ZUMA           powerpc 74xx_7xx        evb64260
-BAB7xx         powerpc 74xx_7xx        bab7xx          eltec
-ELPPC          powerpc 74xx_7xx        elppc           eltec
-CPCI750                powerpc 74xx_7xx        cpci750         esd
-DB64360                powerpc 74xx_7xx        db64360         Marvell
-DB64460                powerpc 74xx_7xx        db64460         Marvell
-p3m7448                powerpc 74xx_7xx        p3mx            prodrive        -       p3mx:P3M7448
-p3m750         powerpc 74xx_7xx        p3mx            prodrive        -       p3mx:P3M750
-aria           powerpc mpc512x         -               davedenx
-PATI           powerpc mpc5xx          pati            mpl
-a4m072         powerpc mpc5xxx         a4m072
-BC3450         powerpc mpc5xxx         bc3450
-canmb          powerpc mpc5xxx
-cm5200         powerpc mpc5xxx
-inka4x0                powerpc mpc5xxx
-ipek01         powerpc mpc5xxx
-jupiter                powerpc mpc5xxx
-munices                powerpc mpc5xxx
-o2dnt          powerpc mpc5xxx
-PM520          powerpc mpc5xxx         pm520
-v38b           powerpc mpc5xxx
-pf5200         powerpc mpc5xxx         -               esd
-hmi1001                powerpc mpc5xxx         -               manroland
-mucmc52                powerpc mpc5xxx         -               manroland
-uc101          powerpc mpc5xxx         -               manroland
-MVSMR          powerpc mpc5xxx         mvsmr           matrix_vision
-aev            powerpc mpc5xxx         tqm5200         tqc
-TB5200         powerpc mpc5xxx         tqm5200         tqc
-lite5200b              powerpc mpc5xxx icecube         -               -       IceCube:MPC5200_DDR,LITE5200B
-lite5200b_PM           powerpc mpc5xxx icecube         -               -       IceCube:MPC5200_DDR,LITE5200B,LITE5200B_PM
-mcc200         powerpc mpc5xxx         mcc200          -               -       mcc200
-mcc200_COM12           powerpc mpc5xxx mcc200          -               -       mcc200:CONSOLE_COM12
-mcc200_highboot                powerpc mpc5xxx mcc200          -               -       mcc200:SYS_TEXT_BASE=0xFFF00000
-mcc200_SDRAM           powerpc mpc5xxx mcc200          -               -       mcc200:MCC200_SDRAM
-prs200         powerpc mpc5xxx         mcc200          -               -       mcc200:PRS200,MCC200_SDRAM
-prs200_DDR             powerpc mpc5xxx mcc200          -               -       mcc200:PRS200
-prs200_highboot                powerpc mpc5xxx mcc200          -               -       mcc200:PRS200,SYS_TEXT_BASE=0xFFF00000,MCC200_SDRAM
-TOP5200                powerpc mpc5xxx         top5200         emk             -       TOP5200:TOP5200
-pcm030         powerpc mpc5xxx         pcm030          phytec          -       pcm030
-cam5200                powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:CAM5200,TQM5200S,TQM5200_B
-fo300          powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:FO300
-MiniFAP                powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:MINIFAP
-TQM5200                powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:
-MVBC_P         powerpc mpc5xxx         mvbc_p          matrix_vision   -       MVBC_P:MVBC_P
-sorcery                powerpc mpc8220
-A3000          powerpc mpc824x         a3000
-barco          powerpc mpc824x
-BMW            powerpc mpc824x         bmw
-CU824          powerpc mpc824x         cu824
-eXalion                powerpc mpc824x         eXalion
-MOUSSE         powerpc mpc824x         mousse
-MUSENKI                powerpc mpc824x         musenki
-MVBLUE         powerpc mpc824x         mvblue
-OXC            powerpc mpc824x         oxc
-PN62           powerpc mpc824x         pn62
-sbc8240                powerpc mpc824x
-utx8245                powerpc mpc824x
-debris         powerpc mpc824x         -               etin
-kvme080                powerpc mpc824x         -               etin
-CPC45          powerpc mpc824x         cpc45           -               -       CPC45
-atc            powerpc mpc8260
-ep8248         powerpc mpc8260         ep8248
-ep8260         powerpc mpc8260
-ep82xxm                powerpc mpc8260
-gw8260         powerpc mpc8260
-hymod          powerpc mpc8260
-IDS8247                powerpc mpc8260         ids8247
-ISPAN          powerpc mpc8260         ispan
-sacsng         powerpc mpc8260
-sbc8260                powerpc mpc8260
-ZPC1900                powerpc mpc8260         zpc1900
-mgcoge         powerpc mpc8260         -               keymile
-SCM            powerpc mpc8260         -               siemens
-TQM8272                powerpc mpc8260         tqm8272         tqc
-CPU86          powerpc mpc8260         cpu86           -               -       CPU86
-CPU87          powerpc mpc8260         cpu87           -               -       CPU87
-PM825          powerpc mpc8260         pm826           -               -       PM826:PCI,SYS_TEXT_BASE=0xFF000000
-PM826          powerpc mpc8260         pm826           -               -       PM826:SYS_TEXT_BASE=0xFF000000
-PM828          powerpc mpc8260         pm828           -               -       PM828
-ep8248E                powerpc mpc8260         ep8248          -       -       ep8248
-Rattler                powerpc mpc8260         rattler         -       -       Rattler
-PQ2FADS                powerpc mpc8260         mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS
-ve8313         powerpc mpc83xx         ve8313
-kmeter1                powerpc mpc83xx         kmeter1         keymile
-MVBLM7         powerpc mpc83xx         mvblm7          matrix_vision
-TQM834x                powerpc mpc83xx         tqm834x         tqc
-sbc8349                powerpc mpc83xx         sbc8349         -               -       sbc8349
-caddy2         powerpc mpc83xx         vme8349         esd             -       vme8349:CADDY2
-vme8349                powerpc mpc83xx         vme8349         esd             -       vme8349
-PM854          powerpc mpc85xx         pm854
-PM856          powerpc mpc85xx         pm856
-P1022DS                powerpc mpc85xx         p1022ds         freescale
-P2020DS                powerpc mpc85xx         p2020ds         freescale
-stxgp3         powerpc mpc85xx         stxgp3          stx
-P4080DS                powerpc mpc85xx         corenet_ds      freescale
-sbc8540                powerpc mpc85xx         sbc8560         -               -       SBC8540
-sbc8548                powerpc mpc85xx         sbc8548         -               -       sbc8548
-sbc8560                powerpc mpc85xx         sbc8560         -               -       sbc8560
-stxssa         powerpc mpc85xx         stxssa          stx             -       stxssa
-TQM8540                powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8540,TQM8540=y,HOSTNAME=tqm8540,BOARDNAME="TQM8540"
-TQM8541                powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8541,TQM8541=y,HOSTNAME=tqm8541,BOARDNAME="TQM8541"
-TQM8548                powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8548,TQM8548=y,HOSTNAME=tqm8548,BOARDNAME="TQM8548"
-TQM8555                powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8555,TQM8555=y,HOSTNAME=tqm8555,BOARDNAME="TQM8555"
-TQM8560                powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8560,TQM8560=y,HOSTNAME=tqm8560,BOARDNAME="TQM8560"
-Adder          powerpc mpc8xx          adder
-ADS860         powerpc mpc8xx          fads
-c2mon          powerpc mpc8xx
-EP88x          powerpc mpc8xx          ep88x
-ETX094         powerpc mpc8xx          etx094
-FADS823                powerpc mpc8xx          fads
-FLAGADM                powerpc mpc8xx          flagadm
-GEN860T                powerpc mpc8xx          gen860t
-GENIETV                powerpc mpc8xx          genietv
-hermes         powerpc mpc8xx
-ICU862         powerpc mpc8xx          icu862
-IP860          powerpc mpc8xx          ip860
-LANTEC         powerpc mpc8xx          lantec
-lwmon          powerpc mpc8xx
-MBX            powerpc mpc8xx          mbx8xx
-MBX860T                powerpc mpc8xx          mbx8xx
-NX823          powerpc mpc8xx          nx823
-quantum                powerpc mpc8xx
-R360MPI                powerpc mpc8xx          r360mpi
-RBC823         powerpc mpc8xx          rbc823
-rmu            powerpc mpc8xx
-RPXlite                powerpc mpc8xx
-spc1920                powerpc mpc8xx
-v37            powerpc mpc8xx
-MHPC           powerpc mpc8xx          mhpc            eltec
-TOP860         powerpc mpc8xx          top860          emk
-kmsupx4                powerpc mpc8xx          km8xx           keymile
-mgsuvd         powerpc mpc8xx          km8xx           keymile
-KUP4K          powerpc mpc8xx          kup4k           kup
-KUP4X          powerpc mpc8xx          kup4x           kup
-ELPT860                powerpc mpc8xx          elpt860         LEOX
-uc100          powerpc mpc8xx          -               manroland
-IAD210         powerpc mpc8xx          -               siemens
-QS823          powerpc mpc8xx          qs850           snmc
-QS850          powerpc mpc8xx          qs850           snmc
-QS860T         powerpc mpc8xx          qs860t          snmc
-stxxtc         powerpc mpc8xx          stxxtc          stx
-FPS850L                powerpc mpc8xx          tqm8xx          tqc
-FPS860L                powerpc mpc8xx          tqm8xx          tqc
-NSCU           powerpc mpc8xx          tqm8xx          tqc
-SM850          powerpc mpc8xx          tqm8xx          tqc
-TK885D         powerpc mpc8xx          tqm8xx          tqc
-TQM823L                powerpc mpc8xx          tqm8xx          tqc
-TQM823M                powerpc mpc8xx          tqm8xx          tqc
-TQM850L                powerpc mpc8xx          tqm8xx          tqc
-TQM850M                powerpc mpc8xx          tqm8xx          tqc
-TQM855L                powerpc mpc8xx          tqm8xx          tqc
-TQM855M                powerpc mpc8xx          tqm8xx          tqc
-TQM860L                powerpc mpc8xx          tqm8xx          tqc
-TQM860M                powerpc mpc8xx          tqm8xx          tqc
-TQM862L                powerpc mpc8xx          tqm8xx          tqc
-TQM862M                powerpc mpc8xx          tqm8xx          tqc
-TQM866M                powerpc mpc8xx          tqm8xx          tqc
-TQM885D                powerpc mpc8xx          tqm8xx          tqc
-AMX860         powerpc mpc8xx          amx860          westel
-AdderII                powerpc mpc8xx          adder           -               -       Adder:MPC852T
-IVML24         powerpc mpc8xx          ivm             -               -       IVML24:IVML24_16M
-IVMS8          powerpc mpc8xx          ivm             -               -       IVMS8:IVMS8_16M
-NETTA          powerpc mpc8xx          netta           -               -       NETTA
-NETTA2         powerpc mpc8xx          netta2          -               -       NETTA2:NETTA2_VERSION=1
-NETVIA         powerpc mpc8xx          netvia          -               -       NETVIA:NETVIA_VERSION=1
-TTTech         powerpc mpc8xx          tqm8xx          tqc             -       TQM823L:LCD,SHARP_LQ104V7DS01
-wtk            powerpc mpc8xx          tqm8xx          tqc             -       TQM823L:LCD,SHARP_LQ065T9DR51U
-csb272         powerpc ppc4xx
-csb472         powerpc ppc4xx
-ERIC           powerpc ppc4xx          eric
-G2000          powerpc ppc4xx          g2000
-JSE            powerpc ppc4xx          jse
-korat          powerpc ppc4xx
-lwmon5         powerpc ppc4xx
-ML2            powerpc ppc4xx          ml2
-sbc405         powerpc ppc4xx
-sc3            powerpc ppc4xx
-t3corp         powerpc ppc4xx
-W7OLMC         powerpc ppc4xx          w7o
-W7OLMG         powerpc ppc4xx          w7o
-zeus           powerpc ppc4xx
-acadia         powerpc ppc4xx          -               amcc
-bamboo         powerpc ppc4xx          -               amcc
-bubinga                powerpc ppc4xx          -               amcc
-ebony          powerpc ppc4xx          -               amcc
-katmai         powerpc ppc4xx          -               amcc
-luan           powerpc ppc4xx          -               amcc
-makalu         powerpc ppc4xx          -               amcc
-ocotea         powerpc ppc4xx          -               amcc
-redwood                powerpc ppc4xx          -               amcc
-taihu          powerpc ppc4xx          -               amcc
-taishan                powerpc ppc4xx          -               amcc
-walnut         powerpc ppc4xx          walnut          amcc
-yucca          powerpc ppc4xx          -               amcc
-AP1000         powerpc ppc4xx          ap1000          amirix
-CRAYL1         powerpc ppc4xx          L1              cray
-ADCIOP         powerpc ppc4xx          adciop          esd
-APC405         powerpc ppc4xx          apc405          esd
-AR405          powerpc ppc4xx          ar405           esd
-ASH405         powerpc ppc4xx          ash405          esd
-CANBT          powerpc ppc4xx          canbt           esd
-CMS700         powerpc ppc4xx          cms700          esd
-CPCI2DP                powerpc ppc4xx          cpci2dp         esd
-CPCI405                powerpc ppc4xx          cpci405         esd
-DP405          powerpc ppc4xx          dp405           esd
-DU405          powerpc ppc4xx          du405           esd
-DU440          powerpc ppc4xx          du440           esd
-HH405          powerpc ppc4xx          hh405           esd
-HUB405         powerpc ppc4xx          hub405          esd
-OCRTC          powerpc ppc4xx          ocrtc           esd
-PCI405         powerpc ppc4xx          pci405          esd
-PLU405         powerpc ppc4xx          plu405          esd
-PMC405         powerpc ppc4xx          pmc405          esd
-PMC440         powerpc ppc4xx          pmc440          esd
-VOH405         powerpc ppc4xx          voh405          esd
-VOM405         powerpc ppc4xx          vom405          esd
-WUH405         powerpc ppc4xx          wuh405          esd
-neo            powerpc ppc4xx          -               gdsys
-icon           powerpc ppc4xx          -               mosaixtech
-MIP405         powerpc ppc4xx          mip405          mpl
-PIP405         powerpc ppc4xx          pip405          mpl
-hcu4           powerpc ppc4xx          hcu4            netstal
-hcu5           powerpc ppc4xx          hcu5            netstal
-mcu25          powerpc ppc4xx          mcu25           netstal
-alpr           powerpc ppc4xx          -               prodrive
-p3p440         powerpc ppc4xx          -               prodrive
-KAREF          powerpc ppc4xx          karef           sandburst
-acadia_nand            powerpc ppc4xx  acadia          amcc            -       acadia:NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-bamboo_nand            powerpc ppc4xx  bamboo          amcc            -       bamboo:NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-haleakala_nand         powerpc ppc4xx  kilauea         amcc            -       kilauea:NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-kilauea                powerpc ppc4xx          kilauea         amcc            -       kilauea:KILAUEA
-kilauea_nand           powerpc ppc4xx  kilauea         amcc            -       kilauea:NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-rainier                powerpc ppc4xx          sequoia         amcc            -       sequoia:RAINIER
-rainier_nand           powerpc ppc4xx  sequoia         amcc            -       sequoia:RAINIER,NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-rainier_ramboot                powerpc ppc4xx  sequoia         amcc            -       sequoia:RAINIER,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds
-sequoia                powerpc ppc4xx          sequoia         amcc            -       sequoia:SEQUOIA
-sequoia_nand           powerpc ppc4xx  sequoia         amcc            -       sequoia:SEQUOIA,NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-sequoia_ramboot                powerpc ppc4xx  sequoia         amcc            -       sequoia:SEQUOIA,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds
-fx12mm         powerpc ppc4xx          fx12mm          avnet           -       fx12mm:SYS_TEXT_BASE=0x03000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds
-fx12mm_flash           powerpc ppc4xx  fx12mm          avnet           -       fx12mm:SYS_TEXT_BASE=0xFFCB0000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds
-intip          powerpc ppc4xx          intip           gdsys           -       intip:INTIB
-MIP405T                powerpc ppc4xx          mip405          mpl             -       MIP405:MIP405T
-ml507          powerpc ppc4xx          ml507           xilinx          -       ml507:SYS_TEXT_BASE=0x04000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds
-ml507_flash            powerpc ppc4xx  ml507           xilinx          -       ml507:SYS_TEXT_BASE=0xFE360000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds
-arches         powerpc ppc4xx          canyonlands     amcc            -       canyonlands:ARCHES
-glacier                powerpc ppc4xx          canyonlands     amcc            -       canyonlands:GLACIER
-glacier_nand           powerpc ppc4xx  canyonlands     amcc            -       canyonlands:GLACIER,NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-v5fx30teval            powerpc ppc4xx  v5fx30teval     avnet           -       v5fx30teval:SYS_TEXT_BASE=0x03000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds
-grsim          sparc   leon3           -               gaisler
-PM825_ROMBOOT_BIGFLASH   powerpc  mpc8260  pm826       -               -       PM826:PCI,BOOT_ROM,FLASH_32MB,SYS_TEXT_BASE=0xFF800000
-PM826_ROMBOOT_BIGFLASH   powerpc  mpc8260  pm826       -               -       PM826:BOOT_ROM,FLASH_32MB,SYS_TEXT_BASE=0xFF800000
-imx31_litekit  arm     arm1136         -               logicpd         mx31
-omap2420h4     arm     arm1136         -               ti              omap24xx
-tnetv107x_evm  arm     arm1176         tnetv107xevm    ti              tnetv107x
-armadillo      arm     arm720t
-modnet50       arm     arm720t
-lpc2292sodimm  arm     arm720t         -               -               lpc2292
-eb_cpux9k2     arm     arm920t         -               BuS             at91
-at91rm9200dk   arm     arm920t         -               atmel           at91rm9200
-at91rm9200ek   arm     arm920t         -               atmel           at91
-sbc2410x       arm     arm920t         -               -               s3c24x0
-smdk2400       arm     arm920t         -               samsung         s3c24x0
-smdk2410       arm     arm920t         -               samsung         s3c24x0
-voiceblue      arm     arm925t
-omap1510inn    arm     arm925t         -               ti
-afeb9260       arm     arm926ejs       -               -               at91
-at91cap9adk    arm     arm926ejs       -               atmel           at91
-davinci_dvevm  arm     arm926ejs       dvevm           davinci         davinci
-davinci_sffsdr arm     arm926ejs       sffsdr          davinci         davinci
-davinci_sonata arm     arm926ejs       sonata          davinci         davinci
-da830evm       arm     arm926ejs       da8xxevm        davinci         davinci
-da850evm       arm     arm926ejs       da8xxevm        davinci         davinci
-guruplug       arm     arm926ejs       -               Marvell         kirkwood
-mv88f6281gtw_ge        arm     arm926ejs       -               Marvell         kirkwood
-openrd_base    arm     arm926ejs       -               Marvell         kirkwood
-sheevaplug     arm     arm926ejs       -               Marvell         kirkwood
-imx27lite      arm     arm926ejs       imx27lite       logicpd         mx27
-magnesium      arm     arm926ejs       imx27lite       logicpd         mx27
-omap5912osk    arm     arm926ejs       -               ti              omap
-edminiv2       arm     arm926ejs       -               LaCie           orion5x
-ca9x4_ct_vxp   arm     armv7           vexpress        armltd
-omap3_overo    arm     armv7           overo           -               omap3
-omap3_pandora  arm     armv7           pandora         -               omap3
-omap3_zoom1    arm     armv7           zoom1           logicpd         omap3
-omap3_zoom2    arm     armv7           zoom2           logicpd         omap3
-omap3_beagle   arm     armv7           beagle          ti              omap3
-omap3_evm      arm     armv7           evm             ti              omap3
-omap3_sdp3430  arm     armv7           sdp3430         ti              omap3
-igep0020       arm     armv7           igep0020        isee            omap3
-igep0030       arm     armv7           igep0030        isee            omap3
-am3517_evm     arm     armv7           am3517evm       logicpd         omap3
-devkit8000     arm     armv7           devkit8000      timll           omap3
-omap4_panda    arm     armv7           panda           ti              omap4
-omap4_sdp4430  arm     armv7           sdp4430         ti              omap4
-s5p_goni       arm     armv7           goni            samsung         s5pc1xx
-smdkc100       arm     armv7           smdkc100        samsung         s5pc1xx
-ixdpg425       arm     ixp
-lpd7a400       arm     lh7a40x         lpd7a40x
-lpd7a404       arm     lh7a40x         lpd7a40x
-colibri_pxa270 arm     pxa
-pxa255_idp     arm     pxa
-zylonite       arm     pxa
-atngw100       avr32   at32ap          -               atmel           at32ap700x
-atstk1002      avr32   at32ap          atstk1000       atmel           at32ap700x
-atstk1003      avr32   at32ap          atstk1000       atmel           at32ap700x
-atstk1004      avr32   at32ap          atstk1000       atmel           at32ap700x
-atstk1006      avr32   at32ap          atstk1000       atmel           at32ap700x
-favr-32-ezkit  avr32   at32ap          -               earthlcd        at32ap700x
-hammerhead     avr32   at32ap          -               miromico        at32ap700x
-bct-brettl2    blackfin        blackfin
-bf518f-ezbrd   blackfin        blackfin
-bf526-ezbrd    blackfin        blackfin
-bf527-ezkit    blackfin        blackfin
-bf527-ezkit-v2 blackfin        blackfin        bf527-ezkit     -       -       bf527-ezkit:BF527_EZKIT_REV_2_1
-bf527-sdp      blackfin        blackfin
-bf533-ezkit    blackfin        blackfin
-bf533-stamp    blackfin        blackfin
-bf537-minotaur blackfin        blackfin
-bf537-pnav     blackfin        blackfin
-bf537-srv1     blackfin        blackfin
-bf537-stamp    blackfin        blackfin
-bf538f-ezkit   blackfin        blackfin
-bf548-ezkit    blackfin        blackfin
-bf561-acvilon  blackfin        blackfin
-bf561-ezkit    blackfin        blackfin
-blackstamp     blackfin        blackfin
-blackvme       blackfin        blackfin
-cm-bf527       blackfin        blackfin
-cm-bf533       blackfin        blackfin
-cm-bf537e      blackfin        blackfin
-cm-bf537u      blackfin        blackfin
-cm-bf548       blackfin        blackfin
-cm-bf561       blackfin        blackfin
-ibf-dsp561     blackfin        blackfin
-tcm-bf518      blackfin        blackfin
-tcm-bf537      blackfin        blackfin
-M5208EVBE      m68k    mcf52x2         m5208evbe       freescale
-M5249EVB       m68k    mcf52x2         m5249evb        freescale
-M5253DEMO      m68k    mcf52x2         m5253demo       freescale
-M5253EVBE      m68k    mcf52x2         m5253evbe       freescale
-M5271EVB       m68k    mcf52x2         m5271evb        freescale
-M5275EVB       m68k    mcf52x2         m5275evb        freescale
-M5282EVB       m68k    mcf52x2         m5282evb        freescale
-M53017EVB      m68k    mcf52x2         m53017evb       freescale
-mpc7448hpc2    powerpc 74xx_7xx        mpc7448hpc2     freescale
-EVB64260       powerpc 74xx_7xx        evb64260        -               -       EVB64260
-EVB64260_750CX powerpc 74xx_7xx        evb64260        -               -       EVB64260
-pdm360ng       powerpc mpc512x
-mecp5123       powerpc mpc512x         -               esd
-mpc5121ads     powerpc mpc512x         mpc5121ads      freescale
-mpc5121ads_rev2        powerpc mpc512x         mpc5121ads      freescale       -       mpc5121ads:MPC5121ADS_REV2
-cmi_mpc5xx     powerpc mpc5xx          cmi
-digsy_mtc      powerpc mpc5xxx         digsy_mtc
-motionpro      powerpc mpc5xxx
-cpci5200       powerpc mpc5xxx         -               esd
-mecp5200       powerpc mpc5xxx         -               esd
-icecube_5200   powerpc mpc5xxx         icecube         -               -       IceCube
-icecube_5200_DDR       powerpc mpc5xxx icecube         -               -       IceCube:MPC5200_DDR
-icecube_5200_LOWBOOT   powerpc mpc5xxx icecube         -               -       IceCube:SYS_TEXT_BASE=0xFF000000
-icecube_5200_LOWBOOT08 powerpc mpc5xxx icecube         -               -       IceCube:SYS_TEXT_BASE=0xFF800000
-Lite5200       powerpc mpc5xxx         icecube         -               -       IceCube
-lite5200b_LOWBOOT      powerpc mpc5xxx icecube         -               -       IceCube:MPC5200_DDR,LITE5200B,SYS_TEXT_BASE=0xFF000000
-Lite5200_LOWBOOT       powerpc mpc5xxx icecube         -               -       IceCube:SYS_TEXT_BASE=0xFF000000
-Lite5200_LOWBOOT08     powerpc mpc5xxx icecube         -               -       IceCube:SYS_TEXT_BASE=0xFF800000
-mcc200_COM12_highboot  powerpc mpc5xxx mcc200          -               -       mcc200:CONSOLE_COM12,SYS_TEXT_BASE=0xFFF00000
-mcc200_COM12_SDRAM     powerpc mpc5xxx mcc200          -               -       mcc200:CONSOLE_COM12,MCC200_SDRAM
-mcc200_highboot_SDRAM  powerpc mpc5xxx mcc200          -               -       mcc200:SYS_TEXT_BASE=0xFFF00000,MCC200_SDRAM
-PM520_DDR      powerpc mpc5xxx         pm520           -               -       PM520:MPC5200_DDR
-PM520_ROMBOOT  powerpc mpc5xxx         pm520           -               -       PM520:BOOT_ROM
-prs200_highboot_DDR    powerpc mpc5xxx mcc200          -               -       mcc200:PRS200,SYS_TEXT_BASE=0xFFF00000
-EVAL5200       powerpc mpc5xxx         top5200         emk             -       TOP5200:EVAL5200
-MINI5200       powerpc mpc5xxx         top5200         emk             -       TOP5200:MINI5200
-pcm030_LOWBOOT powerpc mpc5xxx         pcm030          phytec          -       pcm030:SYS_TEXT_BASE=0xFF000000
-cam5200_niosflash      powerpc mpc5xxx tqm5200         tqc             -       TQM5200:CAM5200,TQM5200S,TQM5200_B,CAM5200_NIOSFLASH
-TB5200_B       powerpc mpc5xxx         tqm5200         tqc             -       TB5200:TQM5200_B
-TQM5200S       powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:TQM5200_B,TQM5200S
-TQM5200S_HIGHBOOT      powerpc mpc5xxx tqm5200         tqc             -       TQM5200:TQM5200_B,TQM5200S,SYS_TEXT_BASE=0xFFF00000
-TQM5200_B      powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:TQM5200_B
-TQM5200_B_HIGHBOOT     powerpc mpc5xxx tqm5200         tqc             -       TQM5200:TQM5200_B,SYS_TEXT_BASE=0xFFF00000
-TQM5200_STK100 powerpc mpc5xxx         tqm5200         tqc             -       TQM5200:STK52XX_REV100
-galaxy5200     powerpc mpc5xxx         galaxy5200      -               -       galaxy5200:galaxy5200
-Total5200      powerpc mpc5xxx         total5200       -               -       Total5200:TOTAL5200_REV=1
-Total5200_lowboot      powerpc mpc5xxx total5200       -               -       Total5200:TOTAL5200_REV=1,SYS_TEXT_BASE=0xFE000000
-Total5200_Rev2 powerpc mpc5xxx         total5200       -               -       Total5200:TOTAL5200_REV=2
-Total5200_Rev2_lowboot powerpc mpc5xxx total5200       -               -       Total5200:TOTAL5200_REV=2,SYS_TEXT_BASE=0xFE000000
-Alaska8220     powerpc mpc8220         alaska
-Yukon8220      powerpc mpc8220         alaska
-HIDDEN_DRAGON  powerpc mpc824x         hidden_dragon
-Sandpoint8240  powerpc mpc824x         sandpoint
-Sandpoint8245  powerpc mpc824x         sandpoint
-CPC45_ROMBOOT  powerpc mpc824x         cpc45           -               -       CPC45:BOOT_ROM
-cogent_mpc8260 powerpc mpc8260         cogent
-IPHASE4539     powerpc mpc8260         iphase4539
-muas3001       powerpc mpc8260         muas3001
-ppmc8260       powerpc mpc8260
-RPXsuper       powerpc mpc8260         rpxsuper
-rsdproto       powerpc mpc8260
-MPC8266ADS     powerpc mpc8260         mpc8266ads      freescale
-CPU86_ROMBOOT  powerpc mpc8260         cpu86           -               -       CPU86:BOOT_ROM
-CPU87_ROMBOOT  powerpc mpc8260         cpu87           -               -       CPU87:BOOT_ROM
-ISPAN_REVB     powerpc mpc8260         ispan           -               -       ISPAN:SYS_REV_B
-PM825_BIGFLASH powerpc mpc8260         pm826           -               -       PM826:PCI,FLASH_32MB,SYS_TEXT_BASE=0x40000000
-PM825_ROMBOOT  powerpc mpc8260         pm826           -               -       PM826:PCI,BOOT_ROM,SYS_TEXT_BASE=0xFF800000
-PM826_BIGFLASH powerpc mpc8260         pm826           -               -       PM826:FLASH_32MB,SYS_TEXT_BASE=0x40000000
-PM826_ROMBOOT  powerpc mpc8260         pm826           -               -       PM826:BOOT_ROM,SYS_TEXT_BASE=0xFF800000
-PM828_PCI      powerpc mpc8260         pm828           -               -       PM828:PCI
-PM828_ROMBOOT  powerpc mpc8260         pm828           -               -       PM828:BOOT_ROM,SYS_TEXT_BASE=0xFF800000
-Rattler8248    powerpc mpc8260         rattler         -               -       Rattler:MPC8248
-TQM8255_AA     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8255,300MHz
-TQM8260_AA     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,200MHz
-TQM8260_AB     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,200MHz,L2_CACHE,BUSMODE_60x
-TQM8260_AC     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,200MHz,L2_CACHE,BUSMODE_60x
-TQM8260_AD     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,300MHz,BUSMODE_60x
-TQM8260_AE     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,266MHz
-TQM8260_AF     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,300MHz,BUSMODE_60x
-TQM8260_AG     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,300MHz
-TQM8260_AH     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,300MHz,L2_CACHE,BUSMODE_60x
-TQM8260_AI     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8260,300MHz,BUSMODE_60x
-TQM8265_AA     powerpc mpc8260         tqm8260         tqc             -       TQM8260:MPC8265,300MHz,BUSMODE_60x
-muas3001_dev   powerpc mpc8260         muas3001        -               -       muas3001:MUAS_DEV_BOARD
-MPC8260ADS     powerpc mpc8260         mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS
-MPC8272ADS     powerpc mpc8260         mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8272ADS
-PQ2FADS-VR     powerpc mpc8260         mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000
-PQ2FADS-ZU     powerpc mpc8260         mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS
-PQ2FADS_lowboot        powerpc mpc8260         mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,SYS_TEXT_BASE=0xFF800000
-VoVPN-GW_66MHz powerpc mpc8260         vovpn-gw        funkwerk        -       VoVPN-GW:CLKIN_66MHz
-MPC8308RDB     powerpc mpc83xx         mpc8308rdb      freescale
-MPC8323ERDB    powerpc mpc83xx         mpc8323erdb     freescale
-MPC8349EMDS    powerpc mpc83xx         mpc8349emds     freescale
-MPC837XERDB    powerpc mpc83xx         mpc837xerdb     freescale
-sbc8349_PCI_33 powerpc mpc83xx         sbc8349         -               -       sbc8349:PCI,PCI_33M
-sbc8349_PCI_66 powerpc mpc83xx         sbc8349         -               -       sbc8349:PCI,PCI_66M
-SIMPC8313_LP   powerpc mpc83xx         simpc8313       sheldon         -       SIMPC8313:NAND_LP
-SIMPC8313_SP   powerpc mpc83xx         simpc8313       sheldon         -       SIMPC8313:NAND_SP
-MPC8313ERDB_33 powerpc mpc83xx         mpc8313erdb     freescale       -       MPC8313ERDB:SYS_33MHZ
-MPC8313ERDB_66 powerpc mpc83xx         mpc8313erdb     freescale       -       MPC8313ERDB:SYS_66MHZ
-MPC8315ERDB    powerpc mpc83xx         mpc8315erdb     freescale       -       MPC8315ERDB
-MPC832XEMDS    powerpc mpc83xx         mpc832xemds     freescale       -       MPC832XEMDS:
-MPC832XEMDS_ATM        powerpc mpc83xx         mpc832xemds     freescale       -       MPC832XEMDS:PQ_MDS_PIB=1,PQ_MDS_PIB_ATM=1
-MPC8349ITX     powerpc mpc83xx         mpc8349itx      freescale       -       MPC8349ITX:MPC8349ITX
-MPC8349ITXGP   powerpc mpc83xx         mpc8349itx      freescale       -       MPC8349ITX:MPC8349ITXGP,SYS_TEXT_BASE=0xFE000000
-MPC8360EMDS    powerpc mpc83xx         mpc8360emds     freescale       -       MPC8360EMDS:
-MPC8360EMDS_ATM        powerpc mpc83xx         mpc8360emds     freescale       -       MPC8360EMDS:PQ_MDS_PIB=1,PQ_MDS_PIB_ATM=1
-MPC8360ERDK    powerpc mpc83xx         mpc8360erdk     freescale       -       MPC8360ERDK
-MPC8360ERDK_33 powerpc mpc83xx         mpc8360erdk     freescale       -       MPC8360ERDK:CLKIN_33MHZ
-MPC8360ERDK_66 powerpc mpc83xx         mpc8360erdk     freescale       -       MPC8360ERDK
-MPC837XEMDS    powerpc mpc83xx         mpc837xemds     freescale       -       MPC837XEMDS
-ATUM8548       powerpc mpc85xx         atum8548
-socrates       powerpc mpc85xx         socrates
-MPC8540ADS     powerpc mpc85xx         mpc8540ads      freescale
-MPC8544DS      powerpc mpc85xx         mpc8544ds       freescale
-MPC8560ADS     powerpc mpc85xx         mpc8560ads      freescale
-MPC8568MDS     powerpc mpc85xx         mpc8568mds      freescale
-xpedite520x    powerpc mpc85xx         -               xes
-xpedite537x    powerpc mpc85xx         -               xes
-xpedite550x    powerpc mpc85xx         -               xes
-sbc8540_33     powerpc mpc85xx         sbc8560         -               -       SBC8540
-sbc8540_66     powerpc mpc85xx         sbc8560         -               -       SBC8540
-sbc8548_PCI_33 powerpc mpc85xx         sbc8548         -               -       sbc8548:PCI,33
-sbc8548_PCI_66 powerpc mpc85xx         sbc8548         -               -       sbc8548:PCI,66
-sbc8560_33     powerpc mpc85xx         sbc8560         -               -       sbc8560
-sbc8560_66     powerpc mpc85xx         sbc8560         -               -       sbc8560
-stxssa_4M      powerpc mpc85xx         stxssa          stx             -       stxssa:STXSSA_4M
-TQM8548_AG     powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8548,TQM8548_AG=y,HOSTNAME=tqm8485,BOARDNAME="TQM8548_AG"
-TQM8548_BE     powerpc mpc85xx         tqm85xx         tqc             -       TQM85xx:MPC8548,TQM8548_BE=y,HOSTNAME=tqm8548,BOARDNAME="TQM8548_BE"
-MPC8540EVAL    powerpc mpc85xx         mpc8540eval     -               -       MPC8540EVAL:SYSCLK_66M
-MPC8540EVAL_33 powerpc mpc85xx         mpc8540eval     -               -       MPC8540EVAL
-MPC8540EVAL_66 powerpc mpc85xx         mpc8540eval     -               -       MPC8540EVAL:SYSCLK_66M
-P2020DS_36BIT  powerpc mpc85xx         p2020ds         freescale       -       P2020DS:36BIT
-P2020DS_DDR2   powerpc mpc85xx         p2020ds         freescale       -       P2020DS:DDR2
-MPC8536DS      powerpc mpc85xx         mpc8536ds       freescale       -       MPC8536DS
-MPC8536DS_36BIT        powerpc mpc85xx         mpc8536ds       freescale       -       MPC8536DS:36BIT
-MPC8536DS_NAND powerpc mpc85xx         mpc8536ds       freescale       -       MPC8536DS:NAND
-MPC8541CDS     powerpc mpc85xx         mpc8541cds      freescale       -       MPC8541CDS
-MPC8548CDS     powerpc mpc85xx         mpc8548cds      freescale       -       MPC8548CDS
-MPC8555CDS     powerpc mpc85xx         mpc8555cds      freescale       -       MPC8555CDS
-MPC8569MDS     powerpc mpc85xx         mpc8569mds      freescale       -       MPC8569MDS
-MPC8569MDS_ATM powerpc mpc85xx         mpc8569mds      freescale       -       MPC8569MDS:ATM
-MPC8569MDS_NAND        powerpc mpc85xx         mpc8569mds      freescale       -       MPC8569MDS:NAND
-MPC8572DS      powerpc mpc85xx         mpc8572ds       freescale       -       MPC8572DS
-MPC8572DS_36BIT        powerpc mpc85xx         mpc8572ds       freescale       -       MPC8572DS:36BIT
-P1011RDB       powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P1011
-P1011RDB_NAND  powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P1011,NAND
-P1011RDB_SDCARD        powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P1011,SDCARD
-P1020RDB       powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P1020RDB
-P1020RDB_NAND  powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P1020RDB,NAND
-P1020RDB_SDCARD        powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P1020RDB,SDCARD
-P2010RDB       powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P2010
-P2010RDB_NAND  powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P2010,NAND
-P2010RDB_SDCARD        powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P2010,SDCARD
-P2020RDB       powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P2020
-P2020RDB_NAND  powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P2020,NAND
-P2020RDB_SDCARD        powerpc mpc85xx         p1_p2_rdb       freescale       -       P1_P2_RDB:P2020,SDCARD
-sbc8641d       powerpc mpc86xx
-MPC8610HPCD    powerpc mpc86xx         mpc8610hpcd     freescale
-xpedite517x    powerpc mpc86xx         -               xes
-MPC8641HPCN    powerpc mpc86xx         mpc8641hpcn     freescale       -       MPC8641HPCN
-cogent_mpc8xx  powerpc mpc8xx          cogent
-ESTEEM192E     powerpc mpc8xx          esteem192e
-FADS850SAR     powerpc mpc8xx          fads
-FADS860T       powerpc mpc8xx          fads
-MPC86xADS      powerpc mpc8xx          fads
-MPC885ADS      powerpc mpc8xx          fads
-RPXClassic     powerpc mpc8xx
-RRvision       powerpc mpc8xx
-SPD823TS       powerpc mpc8xx          spd8xx
-svm_sc8xx      powerpc mpc8xx
-SXNI855T       powerpc mpc8xx          sixnet
-virtlab2       powerpc mpc8xx          tqm8xx          tqc
-Adder87x       powerpc mpc8xx          adder           -               -       Adder
-AdderUSB       powerpc mpc8xx          adder           -               -       Adder
-GEN860T_SC     powerpc mpc8xx          gen860t         -               -       GEN860T:SC
-ICU862_100MHz  powerpc mpc8xx          icu862          -               -       ICU862:100MHz
-IVML24_128     powerpc mpc8xx          ivm             -               -       IVML24:IVML24_32M
-IVML24_256     powerpc mpc8xx          ivm             -               -       IVML24:IVML24_64M
-IVMS8_128      powerpc mpc8xx          ivm             -               -       IVMS8:IVMS8_32M
-IVMS8_256      powerpc mpc8xx          ivm             -               -       IVMS8:IVMS8_64M
-NETTA2_V2      powerpc mpc8xx          netta2          -               -       NETTA2:NETTA2_VERSION=2
-NETTA_6412     powerpc mpc8xx          netta           -               -       NETTA:NETTA_6412=1
-NETTA_ISDN     powerpc mpc8xx          netta           -               -       NETTA:NETTA_ISDN=1
-NETTA_ISDN_6412        powerpc mpc8xx          netta           -               -       NETTA:NETTA_ISDN=1,NETTA_6412=1
-NETTA_SWAPHOOK powerpc mpc8xx          netta           -               -       NETTA:NETTA_SWAPHOOK=1
-NETVIA_V2      powerpc mpc8xx          netvia          -               -       NETVIA:NETVIA_VERSION=2
-TQM823L_LCD    powerpc mpc8xx          tqm8xx          tqc             -       TQM823L:LCD,NEC_NL6448BC20
-NETPHONE       powerpc mpc8xx          netphone        -               -       NETPHONE:NETPHONE_VERSION=1
-NETPHONE_V2    powerpc mpc8xx          netphone        -               -       NETPHONE:NETPHONE_VERSION=2
-RPXlite_DW     powerpc mpc8xx          RPXlite_dw      -               -       RPXlite_DW
-RPXlite_DW_64  powerpc mpc8xx          RPXlite_dw      -               -       RPXlite_DW:RPXlite_64MHz
-RPXlite_DW_64_LCD      powerpc mpc8xx  RPXlite_dw      -               -       RPXlite_DW:RPXlite_64MHz,LCD,NEC_NL6448BC20
-RPXlite_DW_LCD powerpc mpc8xx          RPXlite_dw      -               -       RPXlite_DW:LCD,NEC_NL6448BC20
-RPXlite_DW_NVRAM       powerpc mpc8xx  RPXlite_dw      -               -       RPXlite_DW:ENV_IS_IN_NVRAM
-RPXlite_DW_NVRAM_64    powerpc mpc8xx  RPXlite_dw      -               -       RPXlite_DW:RPXlite_64MHz,ENV_IS_IN_NVRAM
-RPXlite_DW_NVRAM_64_LCD        powerpc mpc8xx  RPXlite_dw      -               -       RPXlite_DW:RPXlite_64MHz,LCD,NEC_NL6448BC20,ENV_IS_IN_NVRAM
-RPXlite_DW_NVRAM_LCD   powerpc mpc8xx  RPXlite_dw      -               -       RPXlite_DW:LCD,NEC_NL6448BC20,ENV_IS_IN_NVRAM
-RRvision_LCD   powerpc mpc8xx          RRvision        -               -       RRvision:LCD,SHARP_LQ104V7DS01
-pcs440ep       powerpc ppc4xx
-quad100hd      powerpc ppc4xx
-CPCI4052       powerpc ppc4xx          cpci405         esd
-CPCI405AB      powerpc ppc4xx          cpci405         esd
-CPCI405DT      powerpc ppc4xx          cpci405         esd
-dlvision       powerpc ppc4xx          -               gdsys
-gdppc440etx    powerpc ppc4xx          -               gdsys
-io             powerpc ppc4xx          405ep           gdsys
-iocon          powerpc ppc4xx          405ep           gdsys
-CPCIISER4      powerpc ppc4xx          cpciiser4       esd
-DASA_SIM       powerpc ppc4xx          dasa_sim        esd
-PMC405DE       powerpc ppc4xx          pmc405de        esd
-METROBOX       powerpc ppc4xx          metrobox        sandburst
-xpedite1000    powerpc ppc4xx          -               xes
-korat_perm     powerpc ppc4xx          korat           -               -       korat:KORAT_PERMANENT
-haleakala      powerpc ppc4xx          kilauea         amcc            -       kilauea:HALEAKALA
-sycamore       powerpc ppc4xx          walnut          amcc            -       walnut
-devconcenter   powerpc ppc4xx          intip           gdsys           -       intip:DEVCONCENTER
-canyonlands    powerpc ppc4xx          canyonlands     amcc            -       canyonlands:CANYONLANDS
-yellowstone    powerpc ppc4xx          yosemite        amcc            -       yosemite:YELLOWSTONE
-yosemite       powerpc ppc4xx          yosemite        amcc            -       yosemite:YOSEMITE
-CATcenter      powerpc ppc4xx          PPChameleonEVB  dave            -       CATcenter:PPCHAMELEON_MODULE_MODEL=1
-CATcenter_25   powerpc ppc4xx          PPChameleonEVB  dave            -       CATcenter:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_25
-CATcenter_33   powerpc ppc4xx          PPChameleonEVB  dave            -       CATcenter:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_33
-xilinx-ppc405-generic  powerpc ppc4xx  ppc405-generic  xilinx          -       xilinx-ppc405-generic:SYS_TEXT_BASE=0x04000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds
-xilinx-ppc440-generic  powerpc ppc4xx  ppc440-generic  xilinx          -       xilinx-ppc440-generic:SYS_TEXT_BASE=0x04000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds
-mpc8308_p1m    powerpc mpc83xx
-bluestone      powerpc ppc4xx          -               amcc
-grsim_leon2    sparc   leon2           -               gaisler
-gr_cpci_ax2000 sparc   leon3           -               gaisler
-gr_ep2s60      sparc   leon3           -               gaisler
-gr_xc3s_1500   sparc   leon3           -               gaisler
-icecube_5200_DDR_LOWBOOT    powerpc  mpc5xxx   icecube -               -       IceCube:SYS_TEXT_BASE=0xFF800000,MPC5200_DDR
-MPC832XEMDS_SLAVE    powerpc  mpc83xx  mpc832xemds     freescale       -       MPC832XEMDS:PCI,PCISLAVE
-MPC8360EMDS_SLAVE    powerpc  mpc83xx  mpc8360emds     freescale       -       MPC8360EMDS:PCI,PCISLAVE
-microblaze-generic  microblaze  microblaze  microblaze-generic  xilinx
-digsy_mtc_LOWBOOT  powerpc     mpc5xxx digsy_mtc       -               -       digsy_mtc:SYS_TEXT_BASE=0xFF000000
-digsy_mtc_RAMBOOT  powerpc     mpc5xxx digsy_mtc       -               -       digsy_mtc:SYS_TEXT_BASE=0x00100000
-PPChameleonEVB  powerpc        ppc4xx          PPChameleonEVB  dave
-PM520_ROMBOOT_DDR  powerpc  mpc5xxx    pm520           -               -       PM520:MPC5200_DDR,BOOT_ROM
-galaxy5200_LOWBOOT  powerpc  mpc5xxx   galaxy5200      -               -       galaxy5200:galaxy5200_LOWBOOT
-icecube_5200_DDR_LOWBOOT08  powerpc  mpc5xxx   icecube -               -       IceCube:SYS_TEXT_BASE=0xFF800000,MPC5200_DDR
-mcc200_COM12_highboot_SDRAM  powerpc  mpc5xxx  mcc200  -               -       mcc200:CONSOLE_COM12,SYS_TEXT_BASE=0xFFF00000,MCC200_SDRAM
-linkstation_HGLAN  powerpc  mpc824x    linkstation     -               -       linkstation:HGLAN=1
-PM828_ROMBOOT_PCI  powerpc  mpc8260    pm828           -               -       PM828:PCI,BOOT_ROM,SYS_TEXT_BASE=0xFF800000
-MPC8260ADS_33MHz  powerpc  mpc8260     mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=33000000
-MPC8260ADS_33MHz_lowboot  powerpc  mpc8260  mpc8260ads freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=33000000,SYS_TEXT_BASE=0xFF800000
-MPC8260ADS_40MHz  powerpc  mpc8260     mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=40000000
-MPC8260ADS_40MHz_lowboot  powerpc  mpc8260  mpc8260ads freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=40000000,SYS_TEXT_BASE=0xFF800000
-MPC8260ADS_lowboot  powerpc  mpc8260   mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,SYS_TEXT_BASE=0xFF800000
-MPC8272ADS_lowboot  powerpc  mpc8260   mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_8272ADS,SYS_TEXT_BASE=0xFF800000
-PQ2FADS-VR_lowboot  powerpc  mpc8260   mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000,SYS_TEXT_BASE=0xFF800000
-PQ2FADS-ZU_66MHz  powerpc  mpc8260     mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000
-PQ2FADS-ZU_66MHz_lowboot  powerpc  mpc8260  mpc8260ads freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000,SYS_TEXT_BASE=0xFF800000
-PQ2FADS-ZU_lowboot  powerpc  mpc8260   mpc8260ads      freescale       -       MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,SYS_TEXT_BASE=0xFF800000
-MPC8313ERDB_NAND_33  powerpc  mpc83xx  mpc8313erdb     freescale       -       MPC8313ERDB:SYS_33MHZ,NAND_U_BOOT=y,SYS_TEXT_BASE=0x00100000
-MPC8313ERDB_NAND_66  powerpc  mpc83xx  mpc8313erdb     freescale       -       MPC8313ERDB:SYS_66MHZ,NAND_U_BOOT=y,SYS_TEXT_BASE=0x00100000
-MPC8315ERDB_NAND  powerpc  mpc83xx     mpc8315erdb     freescale       -       MPC8315ERDB:NAND
-MPC832XEMDS_HOST_33  powerpc  mpc83xx  mpc832xemds     freescale       -       MPC832XEMDS:PCI,PCI_33M,PQ_MDS_PIB=1
-MPC832XEMDS_HOST_66  powerpc  mpc83xx  mpc832xemds     freescale       -       MPC832XEMDS:PCI,PCI_66M,PQ_MDS_PIB=1
-MPC8349ITX_LOWBOOT  powerpc  mpc83xx   mpc8349itx      freescale       -       MPC8349ITX:MPC8349ITX,SYS_TEXT_BASE=0xFE000000
-MPC8360EMDS_HOST_33  powerpc  mpc83xx  mpc8360emds     freescale       -       MPC8360EMDS:PCI,PCI_33M,PQ_MDS_PIB=1
-MPC8360EMDS_HOST_66  powerpc  mpc83xx  mpc8360emds     freescale       -       MPC8360EMDS:PCI,PCI_66M,PQ_MDS_PIB=1
-MPC837XEMDS_HOST  powerpc  mpc83xx     mpc837xemds     freescale       -       MPC837XEMDS:PCI
-sbc8548_PCI_33_PCIE  powerpc  mpc85xx  sbc8548         -               -       sbc8548:PCI,33,PCIE
-sbc8548_PCI_66_PCIE  powerpc  mpc85xx  sbc8548         -               -       sbc8548:PCI,66,PCIE
-MPC8540EVAL_33_slave  powerpc  mpc85xx mpc8540eval     -               -       MPC8540EVAL:PCI_SLAVE
-MPC8540EVAL_66_slave  powerpc  mpc85xx mpc8540eval     -               -       MPC8540EVAL:SYSCLK_66M,PCI_SLAVE
-MPC8536DS_SDCARD  powerpc  mpc85xx     mpc8536ds       freescale       -       MPC8536DS:SDCARD
-MPC8536DS_SPIFLASH  powerpc  mpc85xx   mpc8536ds       freescale       -       MPC8536DS:SPIFLASH
-MPC8541CDS_legacy  powerpc  mpc85xx    mpc8541cds      freescale       -       MPC8541CDS:LEGACY
-MPC8548CDS_legacy  powerpc  mpc85xx    mpc8548cds      freescale       -       MPC8548CDS:LEGACY
-MPC8555CDS_legacy  powerpc  mpc85xx    mpc8555cds      freescale       -       MPC8555CDS:LEGACY
-P1011RDB_SPIFLASH  powerpc  mpc85xx    p1_p2_rdb       freescale       -       P1_P2_RDB:P1011,SPIFLASH
-P1020RDB_SPIFLASH  powerpc  mpc85xx    p1_p2_rdb       freescale       -       P1_P2_RDB:P1020,SPIFLASH
-P2010RDB_SPIFLASH  powerpc  mpc85xx    p1_p2_rdb       freescale       -       P1_P2_RDB:P2010,SPIFLASH
-P2020RDB_SPIFLASH  powerpc  mpc85xx    p1_p2_rdb       freescale       -       P1_P2_RDB:P2020,SPIFLASH
-MPC8641HPCN_36BIT  powerpc  mpc86xx    mpc8641hpcn     freescale       -       MPC8641HPCN:PHYS_64BIT
-NETTA_6412_SWAPHOOK  powerpc  mpc8xx   netta           -               -       NETTA:NETTA_6412=1,NETTA_SWAPHOOK=1
-NETTA_ISDN_SWAPHOOK  powerpc  mpc8xx   netta           -               -       NETTA:NETTA_ISDN=1,NETTA_SWAPHOOK=1
-NETTA_ISDN_6412_SWAPHOOK  powerpc  mpc8xx  netta       -               -       NETTA:NETTA_ISDN=1,NETTA_6412=1,NETTA_SWAPHOOK=1
-canyonlands_nand  powerpc  ppc4xx      canyonlands     amcc            -       canyonlands:CANYONLANDS,NAND_U_BOOT=y,SYS_TEXT_BASE=0x01000000
-v5fx30teval_flash  powerpc  ppc4xx     v5fx30teval     avnet           -       v5fx30teval:SYS_TEXT_BASE=0xFF1C0000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds
-PPChameleonEVB_BA_25  powerpc  ppc4xx  PPChameleonEVB  dave            -       PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=0,PPCHAMELEON_CLK_25
-PPChameleonEVB_BA_33  powerpc  ppc4xx  PPChameleonEVB  dave            -       PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=0,PPCHAMELEON_CLK_33
-PPChameleonEVB_HI_25  powerpc  ppc4xx  PPChameleonEVB  dave            -       PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=2,PPCHAMELEON_CLK_25
-PPChameleonEVB_HI_33  powerpc  ppc4xx  PPChameleonEVB  dave            -       PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=2,PPCHAMELEON_CLK_33
-PPChameleonEVB_ME_25  powerpc  ppc4xx  PPChameleonEVB  dave            -       PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_25
-PPChameleonEVB_ME_33  powerpc  ppc4xx  PPChameleonEVB  dave            -       PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_33
-xilinx-ppc405-generic_flash  powerpc  ppc4xx  ppc405-generic  xilinx   -       xilinx-ppc405-generic:SYS_TEXT_BASE=0xFE360000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds
-xilinx-ppc440-generic_flash  powerpc  ppc4xx  ppc440-generic  xilinx   -       xilinx-ppc440-generic:SYS_TEXT_BASE=0xFE360000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds
-davinci_dm355evm arm   arm926ejs       dm355evm        davinci         davinci
-davinci_dm365evm arm   arm926ejs       dm365evm        davinci         davinci
-davinci_dm6467evm arm  arm926ejs       dm6467evm       davinci         davinci
-davinci_schmoogie arm  arm926ejs       schmoogie       davinci         davinci
-davinci_dm355leopard arm arm926ejs     dm355leopard    davinci         davinci
-bf527-ad7160-eval blackfin     blackfin
-rsk7203        sh      sh2             rsk7203         renesas         -
-mpr2   sh      sh3             mpr2    -       -
-ms7720se       sh      sh3     ms7720se        -       -
-MigoRsh        sh4     MigoR   renesas -   
-ms7750se       sh      sh4     ms7750se        -       -   
-ms7722se       sh      sh4     ms7722se        -       -   
-r2dplus        sh      sh4     r2dplus renesas -   
-r7780mp        sh      sh4     r7780mp renesas -   
-sh7763rdp      sh      sh4     sh7763rdp       renesas -   
-sh7785lcr      sh      sh4     sh7785lcr       renesas -   
-sh7785lcr_32bit        sh  sh4 sh7785lcr       renesas -       sh7785lcr:SH_32BIT=1
-ap325rxa       sh      sh4     ap325rxa        renesas -   
-espt   sh      sh4     espt    -       -
-# Target       ARCH    CPU             Board name      Vendor          SoC             Options
-###############################################################################################
+qong                         arm         arm1136     -                   davedenx       mx31
+mx31ads                      arm         arm1136     -                   freescale      mx31
+imx31_litekit                arm         arm1136     -                   logicpd        mx31
+omap2420h4                   arm         arm1136     -                   ti             omap24xx
+tnetv107x_evm                arm         arm1176     tnetv107xevm        ti             tnetv107x
+armadillo                    arm         arm720t
+ep7312                       arm         arm720t
+impa7                        arm         arm720t
+modnet50                     arm         arm720t
+lpc2292sodimm                arm         arm720t     -                   -              lpc2292
+SMN42                        arm         arm720t     -                   siemens        lpc2292
+evb4510                      arm         arm720t     -                   -              s3c4510b
+a320evb                      arm         arm920t     -                   faraday        a320
+at91rm9200ek                 arm         arm920t     at91rm9200ek        atmel          at91        at91rm9200ek
+at91rm9200ek_ram             arm         arm920t     at91rm9200ek        atmel          at91        at91rm9200ek:RAMBOOT
+eb_cpux9k2                   arm         arm920t     -                   BuS            at91
+cmc_pu2                      arm         arm920t     -                   -              at91rm9200
+csb637                       arm         arm920t     -                   -              at91rm9200
+kb9202                       arm         arm920t     -                   -              at91rm9200
+m501sk                       arm         arm920t     -                   -              at91rm9200
+mp2usb                       arm         arm920t     -                   -              at91rm9200
+at91rm9200dk                 arm         arm920t     -                   atmel          at91rm9200
+mx1ads                       arm         arm920t     -                   -              imx
+mx1fs2                       arm         arm920t     -                   -              imx
+scb9328                      arm         arm920t     -                   -              imx
+cm4008                       arm         arm920t     -                   -              ks8695
+cm41xx                       arm         arm920t     -                   -              ks8695
+sbc2410x                     arm         arm920t     -                   -              s3c24x0
+VCMA9                        arm         arm920t     vcma9               mpl            s3c24x0
+smdk2400                     arm         arm920t     -                   samsung        s3c24x0
+smdk2410                     arm         arm920t     -                   samsung        s3c24x0
+netstar                      arm         arm925t
+voiceblue                    arm         arm925t
+omap1510inn                  arm         arm925t     -                   ti
+afeb9260                     arm         arm926ejs   -                   -              at91
+at91cap9adk                  arm         arm926ejs   -                   atmel          at91
+top9000eval_xe               arm         arm926ejs   top9000             emk            at91        top9000:EVAL9000
+top9000su_xe                 arm         arm926ejs   top9000             emk            at91        top9000:SU9000
+meesc                        arm         arm926ejs   -                   esd            at91
+otc570                       arm         arm926ejs   -                   esd            at91
+pm9261                       arm         arm926ejs   -                   ronetix        at91
+pm9263                       arm         arm926ejs   -                   ronetix        at91
+da830evm                     arm         arm926ejs   da8xxevm            davinci        davinci
+da850evm                     arm         arm926ejs   da8xxevm            davinci        davinci
+davinci_dm355evm             arm         arm926ejs   dm355evm            davinci        davinci
+davinci_dm355leopard         arm         arm926ejs   dm355leopard        davinci        davinci
+davinci_dm365evm             arm         arm926ejs   dm365evm            davinci        davinci
+davinci_dm6467evm            arm         arm926ejs   dm6467evm           davinci        davinci
+davinci_dvevm                arm         arm926ejs   dvevm               davinci        davinci
+davinci_schmoogie            arm         arm926ejs   schmoogie           davinci        davinci
+davinci_sffsdr               arm         arm926ejs   sffsdr              davinci        davinci
+davinci_sonata               arm         arm926ejs   sonata              davinci        davinci
+suen3                        arm         arm926ejs   km_arm              keymile        kirkwood
+guruplug                     arm         arm926ejs   -                   Marvell        kirkwood
+mv88f6281gtw_ge              arm         arm926ejs   -                   Marvell        kirkwood
+openrd_base                  arm         arm926ejs   -                   Marvell        kirkwood
+rd6281a                      arm         arm926ejs   -                   Marvell        kirkwood
+sheevaplug                   arm         arm926ejs   -                   Marvell        kirkwood
+dockstar                     arm         arm926ejs   -                   Seagate        kirkwood
+jadecpu                      arm         arm926ejs   jadecpu             syteco         mb86r0x
+imx27lite                    arm         arm926ejs   imx27lite           logicpd        mx27
+magnesium                    arm         arm926ejs   imx27lite           logicpd        mx27
+omap5912osk                  arm         arm926ejs   -                   ti             omap
+edminiv2                     arm         arm926ejs   -                   LaCie          orion5x
+ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
+mx51evk                      arm         armv7       mx51evk             freescale      mx5
+vision2                      arm         armv7       vision2             ttcontrol      mx5
+omap3_overo                  arm         armv7       overo               -              omap3
+omap3_pandora                arm         armv7       pandora             -              omap3
+igep0020                     arm         armv7       igep0020            isee           omap3
+igep0030                     arm         armv7       igep0030            isee           omap3
+am3517_evm                   arm         armv7       am3517evm           logicpd        omap3
+omap3_zoom1                  arm         armv7       zoom1               logicpd        omap3
+omap3_zoom2                  arm         armv7       zoom2               logicpd        omap3
+omap3_beagle                 arm         armv7       beagle              ti             omap3
+omap3_evm                    arm         armv7       evm                 ti             omap3
+omap3_sdp3430                arm         armv7       sdp3430             ti             omap3
+devkit8000                   arm         armv7       devkit8000          timll          omap3
+omap4_panda                  arm         armv7       panda               ti             omap4
+omap4_sdp4430                arm         armv7       sdp4430             ti             omap4
+s5p_goni                     arm         armv7       goni                samsung        s5pc1xx
+smdkc100                     arm         armv7       smdkc100            samsung        s5pc1xx
+actux1                       arm         ixp
+actux2                       arm         ixp
+actux3                       arm         ixp
+actux4                       arm         ixp
+ixdp425                      arm         ixp
+ixdpg425                     arm         ixp
+lpd7a400                     arm         lh7a40x     lpd7a40x
+lpd7a404                     arm         lh7a40x     lpd7a40x
+balloon3                     arm         pxa
+cerf250                      arm         pxa
+colibri_pxa270               arm         pxa
+cradle                       arm         pxa
+csb226                       arm         pxa
+innokom                      arm         pxa
+lubbock                      arm         pxa
+palmld                       arm         pxa
+palmtc                       arm         pxa
+pleb2                        arm         pxa
+polaris                      arm         pxa         trizepsiv           -              -           trizepsiv:POLARIS
+pxa255_idp                   arm         pxa
+trizepsiv                    arm         pxa
+vpac270_nor_128              arm         pxa         vpac270             -              -           vpac270:NOR,RAM_128M
+vpac270_nor_256              arm         pxa         vpac270             -              -           vpac270:NOR,RAM_256M
+vpac270_ond_256              arm         pxa         vpac270             -              -           vpac270:ONENAND,RAM_256M
+xaeniax                      arm         pxa
+xm250                        arm         pxa
+zipitz2                      arm         pxa
+zylonite                     arm         pxa
+B2                           arm         s3c44b0     -                   dave
+assabet                      arm         sa1100
+dnp1110                      arm         sa1100
+gcplus                       arm         sa1100
+jornada                      arm         sa1100
+lart                         arm         sa1100
+shannon                      arm         sa1100
+atngw100                     avr32       at32ap      -                   atmel          at32ap700x
+atstk1002                    avr32       at32ap      atstk1000           atmel          at32ap700x
+atstk1003                    avr32       at32ap      atstk1000           atmel          at32ap700x
+atstk1004                    avr32       at32ap      atstk1000           atmel          at32ap700x
+atstk1006                    avr32       at32ap      atstk1000           atmel          at32ap700x
+favr-32-ezkit                avr32       at32ap      -                   earthlcd       at32ap700x
+mimc200                      avr32       at32ap      -                   mimc           at32ap700x
+hammerhead                   avr32       at32ap      -                   miromico       at32ap700x
+bct-brettl2                  blackfin    blackfin
+bf518f-ezbrd                 blackfin    blackfin
+bf526-ezbrd                  blackfin    blackfin
+bf527-ad7160-eval            blackfin    blackfin
+bf527-ezkit                  blackfin    blackfin
+bf527-ezkit-v2               blackfin    blackfin    bf527-ezkit         -              -           bf527-ezkit:BF527_EZKIT_REV_2_1
+bf527-sdp                    blackfin    blackfin
+bf533-ezkit                  blackfin    blackfin
+bf533-stamp                  blackfin    blackfin
+bf537-minotaur               blackfin    blackfin
+bf537-pnav                   blackfin    blackfin
+bf537-srv1                   blackfin    blackfin
+bf537-stamp                  blackfin    blackfin
+bf538f-ezkit                 blackfin    blackfin
+bf548-ezkit                  blackfin    blackfin
+bf561-acvilon                blackfin    blackfin
+bf561-ezkit                  blackfin    blackfin
+blackstamp                   blackfin    blackfin
+blackvme                     blackfin    blackfin
+cm-bf527                     blackfin    blackfin
+cm-bf533                     blackfin    blackfin
+cm-bf537e                    blackfin    blackfin
+cm-bf537u                    blackfin    blackfin
+cm-bf548                     blackfin    blackfin
+cm-bf561                     blackfin    blackfin
+ibf-dsp561                   blackfin    blackfin
+ip04                         blackfin    blackfin
+tcm-bf518                    blackfin    blackfin
+tcm-bf537                    blackfin    blackfin
+eNET                         i386        i386        -                   -              sc520
+idmr                         m68k        mcf52x2
+TASREG                       m68k        mcf52x2     tasreg              esd
+M5208EVBE                    m68k        mcf52x2     m5208evbe           freescale
+M5249EVB                     m68k        mcf52x2     m5249evb            freescale
+M5253DEMO                    m68k        mcf52x2     m5253demo           freescale
+M5253EVBE                    m68k        mcf52x2     m5253evbe           freescale
+M5271EVB                     m68k        mcf52x2     m5271evb            freescale
+M5272C3                      m68k        mcf52x2     m5272c3             freescale
+M5275EVB                     m68k        mcf52x2     m5275evb            freescale
+M5282EVB                     m68k        mcf52x2     m5282evb            freescale
+M53017EVB                    m68k        mcf52x2     m53017evb           freescale
+EP2500                       m68k        mcf52x2     ep2500              Mercury
+microblaze-generic           microblaze  microblaze  microblaze-generic  xilinx
+purple                       mips        mips
+tb0229                       mips        mips
+PCI5441                      nios2       nios2       pci5441             psyent
+PK1C20                       nios2       nios2       pk1c20              psyent
+EVB64260                     powerpc     74xx_7xx    evb64260            -              -           EVB64260
+EVB64260_750CX               powerpc     74xx_7xx    evb64260            -              -           EVB64260
+P3G4                         powerpc     74xx_7xx    evb64260
+PCIPPC2                      powerpc     74xx_7xx    pcippc2
+PCIPPC6                      powerpc     74xx_7xx    pcippc2
+ppmc7xx                      powerpc     74xx_7xx
+ZUMA                         powerpc     74xx_7xx    evb64260
+BAB7xx                       powerpc     74xx_7xx    bab7xx              eltec
+ELPPC                        powerpc     74xx_7xx    elppc               eltec
+CPCI750                      powerpc     74xx_7xx    cpci750             esd
+mpc7448hpc2                  powerpc     74xx_7xx    mpc7448hpc2         freescale
+DB64360                      powerpc     74xx_7xx    db64360             Marvell
+DB64460                      powerpc     74xx_7xx    db64460             Marvell
+p3m7448                      powerpc     74xx_7xx    p3mx                prodrive       -           p3mx:P3M7448
+p3m750                       powerpc     74xx_7xx    p3mx                prodrive       -           p3mx:P3M750
+pdm360ng                     powerpc     mpc512x
+aria                         powerpc     mpc512x     -                   davedenx
+mecp5123                     powerpc     mpc512x     -                   esd
+mpc5121ads                   powerpc     mpc512x     mpc5121ads          freescale
+mpc5121ads_rev2              powerpc     mpc512x     mpc5121ads          freescale      -           mpc5121ads:MPC5121ADS_REV2
+cmi_mpc5xx                   powerpc     mpc5xx      cmi
+PATI                         powerpc     mpc5xx      pati                mpl
+a4m072                       powerpc     mpc5xxx     a4m072
+BC3450                       powerpc     mpc5xxx     bc3450
+canmb                        powerpc     mpc5xxx
+cm5200                       powerpc     mpc5xxx
+digsy_mtc                    powerpc     mpc5xxx     digsy_mtc
+digsy_mtc_LOWBOOT            powerpc     mpc5xxx     digsy_mtc           -              -           digsy_mtc:SYS_TEXT_BASE=0xFF000000
+digsy_mtc_RAMBOOT            powerpc     mpc5xxx     digsy_mtc           -              -           digsy_mtc:SYS_TEXT_BASE=0x00100000
+galaxy5200                   powerpc     mpc5xxx     galaxy5200          -              -           galaxy5200:galaxy5200
+galaxy5200_LOWBOOT           powerpc     mpc5xxx     galaxy5200          -              -           galaxy5200:galaxy5200_LOWBOOT
+icecube_5200                 powerpc     mpc5xxx     icecube             -              -           IceCube
+icecube_5200_DDR             powerpc     mpc5xxx     icecube             -              -           IceCube:MPC5200_DDR
+icecube_5200_DDR_LOWBOOT     powerpc     mpc5xxx     icecube             -              -           IceCube:SYS_TEXT_BASE=0xFF800000,MPC5200_DDR
+icecube_5200_DDR_LOWBOOT08   powerpc     mpc5xxx     icecube             -              -           IceCube:SYS_TEXT_BASE=0xFF800000,MPC5200_DDR
+icecube_5200_LOWBOOT         powerpc     mpc5xxx     icecube             -              -           IceCube:SYS_TEXT_BASE=0xFF000000
+icecube_5200_LOWBOOT08       powerpc     mpc5xxx     icecube             -              -           IceCube:SYS_TEXT_BASE=0xFF800000
+inka4x0                      powerpc     mpc5xxx
+ipek01                       powerpc     mpc5xxx
+jupiter                      powerpc     mpc5xxx
+Lite5200                     powerpc     mpc5xxx     icecube             -              -           IceCube
+lite5200b                    powerpc     mpc5xxx     icecube             -              -           IceCube:MPC5200_DDR,LITE5200B
+lite5200b_LOWBOOT            powerpc     mpc5xxx     icecube             -              -           IceCube:MPC5200_DDR,LITE5200B,SYS_TEXT_BASE=0xFF000000
+lite5200b_PM                 powerpc     mpc5xxx     icecube             -              -           IceCube:MPC5200_DDR,LITE5200B,LITE5200B_PM
+Lite5200_LOWBOOT             powerpc     mpc5xxx     icecube             -              -           IceCube:SYS_TEXT_BASE=0xFF000000
+Lite5200_LOWBOOT08           powerpc     mpc5xxx     icecube             -              -           IceCube:SYS_TEXT_BASE=0xFF800000
+mcc200                       powerpc     mpc5xxx     mcc200              -              -           mcc200
+mcc200_COM12                 powerpc     mpc5xxx     mcc200              -              -           mcc200:CONSOLE_COM12
+mcc200_COM12_highboot        powerpc     mpc5xxx     mcc200              -              -           mcc200:CONSOLE_COM12,SYS_TEXT_BASE=0xFFF00000
+mcc200_COM12_highboot_SDRAM  powerpc     mpc5xxx     mcc200              -              -           mcc200:CONSOLE_COM12,SYS_TEXT_BASE=0xFFF00000,MCC200_SDRAM
+mcc200_COM12_SDRAM           powerpc     mpc5xxx     mcc200              -              -           mcc200:CONSOLE_COM12,MCC200_SDRAM
+mcc200_highboot              powerpc     mpc5xxx     mcc200              -              -           mcc200:SYS_TEXT_BASE=0xFFF00000
+mcc200_highboot_SDRAM        powerpc     mpc5xxx     mcc200              -              -           mcc200:SYS_TEXT_BASE=0xFFF00000,MCC200_SDRAM
+mcc200_SDRAM                 powerpc     mpc5xxx     mcc200              -              -           mcc200:MCC200_SDRAM
+motionpro                    powerpc     mpc5xxx
+munices                      powerpc     mpc5xxx
+o2dnt                        powerpc     mpc5xxx
+PM520                        powerpc     mpc5xxx     pm520
+PM520_DDR                    powerpc     mpc5xxx     pm520               -              -           PM520:MPC5200_DDR
+PM520_ROMBOOT                powerpc     mpc5xxx     pm520               -              -           PM520:BOOT_ROM
+PM520_ROMBOOT_DDR            powerpc     mpc5xxx     pm520               -              -           PM520:MPC5200_DDR,BOOT_ROM
+prs200                       powerpc     mpc5xxx     mcc200              -              -           mcc200:PRS200,MCC200_SDRAM
+prs200_DDR                   powerpc     mpc5xxx     mcc200              -              -           mcc200:PRS200
+prs200_highboot              powerpc     mpc5xxx     mcc200              -              -           mcc200:PRS200,SYS_TEXT_BASE=0xFFF00000,MCC200_SDRAM
+prs200_highboot_DDR          powerpc     mpc5xxx     mcc200              -              -           mcc200:PRS200,SYS_TEXT_BASE=0xFFF00000
+Total5200                    powerpc     mpc5xxx     total5200           -              -           Total5200:TOTAL5200_REV=1
+Total5200_lowboot            powerpc     mpc5xxx     total5200           -              -           Total5200:TOTAL5200_REV=1,SYS_TEXT_BASE=0xFE000000
+Total5200_Rev2               powerpc     mpc5xxx     total5200           -              -           Total5200:TOTAL5200_REV=2
+Total5200_Rev2_lowboot       powerpc     mpc5xxx     total5200           -              -           Total5200:TOTAL5200_REV=2,SYS_TEXT_BASE=0xFE000000
+v38b                         powerpc     mpc5xxx
+EVAL5200                     powerpc     mpc5xxx     top5200             emk            -           TOP5200:EVAL5200
+MINI5200                     powerpc     mpc5xxx     top5200             emk            -           TOP5200:MINI5200
+TOP5200                      powerpc     mpc5xxx     top5200             emk            -           TOP5200:TOP5200
+cpci5200                     powerpc     mpc5xxx     -                   esd
+mecp5200                     powerpc     mpc5xxx     -                   esd
+pf5200                       powerpc     mpc5xxx     -                   esd
+hmi1001                      powerpc     mpc5xxx     -                   manroland
+mucmc52                      powerpc     mpc5xxx     -                   manroland
+uc101                        powerpc     mpc5xxx     -                   manroland
+MVBC_P                       powerpc     mpc5xxx     mvbc_p              matrix_vision  -           MVBC_P:MVBC_P
+MVSMR                        powerpc     mpc5xxx     mvsmr               matrix_vision
+pcm030                       powerpc     mpc5xxx     pcm030              phytec         -           pcm030
+pcm030_LOWBOOT               powerpc     mpc5xxx     pcm030              phytec         -           pcm030:SYS_TEXT_BASE=0xFF000000
+aev                          powerpc     mpc5xxx     tqm5200             tqc
+cam5200                      powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:CAM5200,TQM5200S,TQM5200_B
+cam5200_niosflash            powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:CAM5200,TQM5200S,TQM5200_B,CAM5200_NIOSFLASH
+fo300                        powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:FO300
+MiniFAP                      powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:MINIFAP
+TB5200                       powerpc     mpc5xxx     tqm5200             tqc
+TB5200_B                     powerpc     mpc5xxx     tqm5200             tqc            -           TB5200:TQM5200_B
+TQM5200                      powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:
+TQM5200_B                    powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:TQM5200_B
+TQM5200_B_HIGHBOOT           powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:TQM5200_B,SYS_TEXT_BASE=0xFFF00000
+TQM5200S                     powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:TQM5200_B,TQM5200S
+TQM5200S_HIGHBOOT            powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:TQM5200_B,TQM5200S,SYS_TEXT_BASE=0xFFF00000
+TQM5200_STK100               powerpc     mpc5xxx     tqm5200             tqc            -           TQM5200:STK52XX_REV100
+Alaska8220                   powerpc     mpc8220     alaska
+sorcery                      powerpc     mpc8220
+Yukon8220                    powerpc     mpc8220     alaska
+A3000                        powerpc     mpc824x     a3000
+BMW                          powerpc     mpc824x     bmw
+CPC45                        powerpc     mpc824x     cpc45               -              -           CPC45
+CPC45_ROMBOOT                powerpc     mpc824x     cpc45               -              -           CPC45:BOOT_ROM
+CU824                        powerpc     mpc824x     cu824
+eXalion                      powerpc     mpc824x     eXalion
+HIDDEN_DRAGON                powerpc     mpc824x     hidden_dragon
+linkstation_HGLAN            powerpc     mpc824x     linkstation         -              -           linkstation:HGLAN=1
+MOUSSE                       powerpc     mpc824x     mousse
+MUSENKI                      powerpc     mpc824x     musenki
+MVBLUE                       powerpc     mpc824x     mvblue
+OXC                          powerpc     mpc824x     oxc
+PN62                         powerpc     mpc824x     pn62
+Sandpoint8240                powerpc     mpc824x     sandpoint
+Sandpoint8245                powerpc     mpc824x     sandpoint
+sbc8240                      powerpc     mpc824x
+utx8245                      powerpc     mpc824x
+debris                       powerpc     mpc824x     -                   etin
+kvme080                      powerpc     mpc824x     -                   etin
+atc                          powerpc     mpc8260
+cogent_mpc8260               powerpc     mpc8260     cogent
+CPU86                        powerpc     mpc8260     cpu86               -              -           CPU86
+CPU86_ROMBOOT                powerpc     mpc8260     cpu86               -              -           CPU86:BOOT_ROM
+CPU87                        powerpc     mpc8260     cpu87               -              -           CPU87
+CPU87_ROMBOOT                powerpc     mpc8260     cpu87               -              -           CPU87:BOOT_ROM
+ep8248                       powerpc     mpc8260     ep8248
+ep8248E                      powerpc     mpc8260     ep8248              -              -           ep8248
+ep8260                       powerpc     mpc8260
+ep82xxm                      powerpc     mpc8260
+gw8260                       powerpc     mpc8260
+hymod                        powerpc     mpc8260
+IDS8247                      powerpc     mpc8260     ids8247
+IPHASE4539                   powerpc     mpc8260     iphase4539
+ISPAN                        powerpc     mpc8260     ispan
+ISPAN_REVB                   powerpc     mpc8260     ispan               -              -           ISPAN:SYS_REV_B
+muas3001                     powerpc     mpc8260     muas3001
+muas3001_dev                 powerpc     mpc8260     muas3001            -              -           muas3001:MUAS_DEV_BOARD
+PM825                        powerpc     mpc8260     pm826               -              -           PM826:PCI,SYS_TEXT_BASE=0xFF000000
+PM825_BIGFLASH               powerpc     mpc8260     pm826               -              -           PM826:PCI,FLASH_32MB,SYS_TEXT_BASE=0x40000000
+PM825_ROMBOOT                powerpc     mpc8260     pm826               -              -           PM826:PCI,BOOT_ROM,SYS_TEXT_BASE=0xFF800000
+PM825_ROMBOOT_BIGFLASH       powerpc     mpc8260     pm826               -              -           PM826:PCI,BOOT_ROM,FLASH_32MB,SYS_TEXT_BASE=0xFF800000
+PM826                        powerpc     mpc8260     pm826               -              -           PM826:SYS_TEXT_BASE=0xFF000000
+PM826_BIGFLASH               powerpc     mpc8260     pm826               -              -           PM826:FLASH_32MB,SYS_TEXT_BASE=0x40000000
+PM826_ROMBOOT                powerpc     mpc8260     pm826               -              -           PM826:BOOT_ROM,SYS_TEXT_BASE=0xFF800000
+PM826_ROMBOOT_BIGFLASH       powerpc     mpc8260     pm826               -              -           PM826:BOOT_ROM,FLASH_32MB,SYS_TEXT_BASE=0xFF800000
+PM828                        powerpc     mpc8260     pm828               -              -           PM828
+PM828_PCI                    powerpc     mpc8260     pm828               -              -           PM828:PCI
+PM828_ROMBOOT                powerpc     mpc8260     pm828               -              -           PM828:BOOT_ROM,SYS_TEXT_BASE=0xFF800000
+PM828_ROMBOOT_PCI            powerpc     mpc8260     pm828               -              -           PM828:PCI,BOOT_ROM,SYS_TEXT_BASE=0xFF800000
+ppmc8260                     powerpc     mpc8260
+Rattler                      powerpc     mpc8260     rattler             -              -           Rattler
+Rattler8248                  powerpc     mpc8260     rattler             -              -           Rattler:MPC8248
+RPXsuper                     powerpc     mpc8260     rpxsuper
+rsdproto                     powerpc     mpc8260
+sacsng                       powerpc     mpc8260
+sbc8260                      powerpc     mpc8260
+ZPC1900                      powerpc     mpc8260     zpc1900
+MPC8260ADS                   powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS
+MPC8260ADS_33MHz             powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=33000000
+MPC8260ADS_33MHz_lowboot     powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=33000000,SYS_TEXT_BASE=0xFF800000
+MPC8260ADS_40MHz             powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=40000000
+MPC8260ADS_40MHz_lowboot     powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,8260_CLKIN=40000000,SYS_TEXT_BASE=0xFF800000
+MPC8260ADS_lowboot           powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8260ADS,SYS_TEXT_BASE=0xFF800000
+MPC8266ADS                   powerpc     mpc8260     mpc8266ads          freescale
+MPC8272ADS                   powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8272ADS
+MPC8272ADS_lowboot           powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_8272ADS,SYS_TEXT_BASE=0xFF800000
+PQ2FADS                      powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS
+PQ2FADS_lowboot              powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,SYS_TEXT_BASE=0xFF800000
+PQ2FADS-VR                   powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000
+PQ2FADS-VR_lowboot           powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000,SYS_TEXT_BASE=0xFF800000
+PQ2FADS-ZU                   powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS
+PQ2FADS-ZU_66MHz             powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000
+PQ2FADS-ZU_66MHz_lowboot     powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000,SYS_TEXT_BASE=0xFF800000
+PQ2FADS-ZU_lowboot           powerpc     mpc8260     mpc8260ads          freescale      -           MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,SYS_TEXT_BASE=0xFF800000
+VoVPN-GW_66MHz               powerpc     mpc8260     vovpn-gw            funkwerk       -           VoVPN-GW:CLKIN_66MHz
+mgcoge                       powerpc     mpc8260     -                   keymile
+SCM                          powerpc     mpc8260     -                   siemens
+TQM8255_AA                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8255,300MHz
+TQM8260_AA                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,200MHz
+TQM8260_AB                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,200MHz,L2_CACHE,BUSMODE_60x
+TQM8260_AC                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,200MHz,L2_CACHE,BUSMODE_60x
+TQM8260_AD                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,300MHz,BUSMODE_60x
+TQM8260_AE                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,266MHz
+TQM8260_AF                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,300MHz,BUSMODE_60x
+TQM8260_AG                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,300MHz
+TQM8260_AH                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,300MHz,L2_CACHE,BUSMODE_60x
+TQM8260_AI                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,300MHz,BUSMODE_60x
+TQM8265_AA                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8265,300MHz,BUSMODE_60x
+TQM8272                      powerpc     mpc8260     tqm8272             tqc
+mpc8308_p1m                  powerpc     mpc83xx
+sbc8349                      powerpc     mpc83xx     sbc8349             -              -           sbc8349
+sbc8349_PCI_33               powerpc     mpc83xx     sbc8349             -              -           sbc8349:PCI,PCI_33M
+sbc8349_PCI_66               powerpc     mpc83xx     sbc8349             -              -           sbc8349:PCI,PCI_66M
+ve8313                       powerpc     mpc83xx     ve8313
+caddy2                       powerpc     mpc83xx     vme8349             esd            -           vme8349:CADDY2
+vme8349                      powerpc     mpc83xx     vme8349             esd            -           vme8349
+MPC8308RDB                   powerpc     mpc83xx     mpc8308rdb          freescale
+MPC8313ERDB_33               powerpc     mpc83xx     mpc8313erdb         freescale      -           MPC8313ERDB:SYS_33MHZ
+MPC8313ERDB_66               powerpc     mpc83xx     mpc8313erdb         freescale      -           MPC8313ERDB:SYS_66MHZ
+MPC8313ERDB_NAND_33          powerpc     mpc83xx     mpc8313erdb         freescale      -           MPC8313ERDB:SYS_33MHZ,NAND_U_BOOT
+MPC8313ERDB_NAND_66          powerpc     mpc83xx     mpc8313erdb         freescale      -           MPC8313ERDB:SYS_66MHZ,NAND_U_BOOT
+MPC8315ERDB                  powerpc     mpc83xx     mpc8315erdb         freescale      -           MPC8315ERDB
+MPC8315ERDB_NAND             powerpc     mpc83xx     mpc8315erdb         freescale      -           MPC8315ERDB:NAND_U_BOOT
+MPC8323ERDB                  powerpc     mpc83xx     mpc8323erdb         freescale
+MPC832XEMDS                  powerpc     mpc83xx     mpc832xemds         freescale      -           MPC832XEMDS:
+MPC832XEMDS_ATM              powerpc     mpc83xx     mpc832xemds         freescale      -           MPC832XEMDS:PQ_MDS_PIB=1,PQ_MDS_PIB_ATM=1
+MPC832XEMDS_HOST_33          powerpc     mpc83xx     mpc832xemds         freescale      -           MPC832XEMDS:PCI,PCI_33M,PQ_MDS_PIB=1
+MPC832XEMDS_HOST_66          powerpc     mpc83xx     mpc832xemds         freescale      -           MPC832XEMDS:PCI,PCI_66M,PQ_MDS_PIB=1
+MPC832XEMDS_SLAVE            powerpc     mpc83xx     mpc832xemds         freescale      -           MPC832XEMDS:PCI,PCISLAVE
+MPC8349EMDS                  powerpc     mpc83xx     mpc8349emds         freescale
+MPC8349ITX                   powerpc     mpc83xx     mpc8349itx          freescale      -           MPC8349ITX:MPC8349ITX
+MPC8349ITXGP                 powerpc     mpc83xx     mpc8349itx          freescale      -           MPC8349ITX:MPC8349ITXGP,SYS_TEXT_BASE=0xFE000000
+MPC8349ITX_LOWBOOT           powerpc     mpc83xx     mpc8349itx          freescale      -           MPC8349ITX:MPC8349ITX,SYS_TEXT_BASE=0xFE000000
+MPC8360EMDS                  powerpc     mpc83xx     mpc8360emds         freescale      -           MPC8360EMDS:
+MPC8360EMDS_ATM              powerpc     mpc83xx     mpc8360emds         freescale      -           MPC8360EMDS:PQ_MDS_PIB=1,PQ_MDS_PIB_ATM=1
+MPC8360EMDS_HOST_33          powerpc     mpc83xx     mpc8360emds         freescale      -           MPC8360EMDS:PCI,PCI_33M,PQ_MDS_PIB=1
+MPC8360EMDS_HOST_66          powerpc     mpc83xx     mpc8360emds         freescale      -           MPC8360EMDS:PCI,PCI_66M,PQ_MDS_PIB=1
+MPC8360EMDS_SLAVE            powerpc     mpc83xx     mpc8360emds         freescale      -           MPC8360EMDS:PCI,PCISLAVE
+MPC8360ERDK                  powerpc     mpc83xx     mpc8360erdk         freescale      -           MPC8360ERDK
+MPC8360ERDK_33               powerpc     mpc83xx     mpc8360erdk         freescale      -           MPC8360ERDK:CLKIN_33MHZ
+MPC8360ERDK_66               powerpc     mpc83xx     mpc8360erdk         freescale      -           MPC8360ERDK
+MPC837XEMDS                  powerpc     mpc83xx     mpc837xemds         freescale      -           MPC837XEMDS
+MPC837XEMDS_HOST             powerpc     mpc83xx     mpc837xemds         freescale      -           MPC837XEMDS:PCI
+MPC837XERDB                  powerpc     mpc83xx     mpc837xerdb         freescale
+kmeter1                      powerpc     mpc83xx     kmeter1             keymile
+MVBLM7                       powerpc     mpc83xx     mvblm7              matrix_vision
+SIMPC8313_LP                 powerpc     mpc83xx     simpc8313           sheldon        -           SIMPC8313:NAND_LP
+SIMPC8313_SP                 powerpc     mpc83xx     simpc8313           sheldon        -           SIMPC8313:NAND_SP
+TQM834x                      powerpc     mpc83xx     tqm834x             tqc
+ATUM8548                     powerpc     mpc85xx     atum8548
+MPC8540EVAL                  powerpc     mpc85xx     mpc8540eval         -              -           MPC8540EVAL:SYSCLK_66M
+MPC8540EVAL_33               powerpc     mpc85xx     mpc8540eval         -              -           MPC8540EVAL
+MPC8540EVAL_33_slave         powerpc     mpc85xx     mpc8540eval         -              -           MPC8540EVAL:PCI_SLAVE
+MPC8540EVAL_66               powerpc     mpc85xx     mpc8540eval         -              -           MPC8540EVAL:SYSCLK_66M
+MPC8540EVAL_66_slave         powerpc     mpc85xx     mpc8540eval         -              -           MPC8540EVAL:SYSCLK_66M,PCI_SLAVE
+PM854                        powerpc     mpc85xx     pm854
+PM856                        powerpc     mpc85xx     pm856
+sbc8540                      powerpc     mpc85xx     sbc8560             -              -           SBC8540
+sbc8540_33                   powerpc     mpc85xx     sbc8560             -              -           SBC8540
+sbc8540_66                   powerpc     mpc85xx     sbc8560             -              -           SBC8540
+sbc8548                      powerpc     mpc85xx     sbc8548             -              -           sbc8548
+sbc8548_PCI_33               powerpc     mpc85xx     sbc8548             -              -           sbc8548:PCI,33
+sbc8548_PCI_33_PCIE          powerpc     mpc85xx     sbc8548             -              -           sbc8548:PCI,33,PCIE
+sbc8548_PCI_66               powerpc     mpc85xx     sbc8548             -              -           sbc8548:PCI,66
+sbc8548_PCI_66_PCIE          powerpc     mpc85xx     sbc8548             -              -           sbc8548:PCI,66,PCIE
+sbc8560                      powerpc     mpc85xx     sbc8560             -              -           sbc8560
+sbc8560_33                   powerpc     mpc85xx     sbc8560             -              -           sbc8560
+sbc8560_66                   powerpc     mpc85xx     sbc8560             -              -           sbc8560
+socrates                     powerpc     mpc85xx     socrates
+MPC8536DS                    powerpc     mpc85xx     mpc8536ds           freescale      -           MPC8536DS
+MPC8536DS_36BIT              powerpc     mpc85xx     mpc8536ds           freescale      -           MPC8536DS:36BIT
+MPC8536DS_NAND               powerpc     mpc85xx     mpc8536ds           freescale      -           MPC8536DS:NAND
+MPC8536DS_SDCARD             powerpc     mpc85xx     mpc8536ds           freescale      -           MPC8536DS:SDCARD
+MPC8536DS_SPIFLASH           powerpc     mpc85xx     mpc8536ds           freescale      -           MPC8536DS:SPIFLASH
+MPC8540ADS                   powerpc     mpc85xx     mpc8540ads          freescale
+MPC8541CDS                   powerpc     mpc85xx     mpc8541cds          freescale      -           MPC8541CDS
+MPC8541CDS_legacy            powerpc     mpc85xx     mpc8541cds          freescale      -           MPC8541CDS:LEGACY
+MPC8544DS                    powerpc     mpc85xx     mpc8544ds           freescale
+MPC8548CDS                   powerpc     mpc85xx     mpc8548cds          freescale      -           MPC8548CDS
+MPC8548CDS_legacy            powerpc     mpc85xx     mpc8548cds          freescale      -           MPC8548CDS:LEGACY
+MPC8555CDS                   powerpc     mpc85xx     mpc8555cds          freescale      -           MPC8555CDS
+MPC8555CDS_legacy            powerpc     mpc85xx     mpc8555cds          freescale      -           MPC8555CDS:LEGACY
+MPC8560ADS                   powerpc     mpc85xx     mpc8560ads          freescale
+MPC8568MDS                   powerpc     mpc85xx     mpc8568mds          freescale
+MPC8569MDS                   powerpc     mpc85xx     mpc8569mds          freescale      -           MPC8569MDS
+MPC8569MDS_ATM               powerpc     mpc85xx     mpc8569mds          freescale      -           MPC8569MDS:ATM
+MPC8569MDS_NAND              powerpc     mpc85xx     mpc8569mds          freescale      -           MPC8569MDS:NAND
+MPC8572DS                    powerpc     mpc85xx     mpc8572ds           freescale      -           MPC8572DS
+MPC8572DS_36BIT              powerpc     mpc85xx     mpc8572ds           freescale      -           MPC8572DS:36BIT
+P1011RDB                     powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1011
+P1011RDB_NAND                powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1011,NAND
+P1011RDB_SDCARD              powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1011,SDCARD
+P1011RDB_SPIFLASH            powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1011,SPIFLASH
+P1020RDB                     powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1020RDB
+P1020RDB_NAND                powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1020RDB,NAND
+P1020RDB_SDCARD              powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1020RDB,SDCARD
+P1020RDB_SPIFLASH            powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P1020,SPIFLASH
+P1022DS                      powerpc     mpc85xx     p1022ds             freescale
+P2010RDB                     powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2010
+P2010RDB_NAND                powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2010,NAND
+P2010RDB_SDCARD              powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2010,SDCARD
+P2010RDB_SPIFLASH            powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2010,SPIFLASH
+P2020DS                      powerpc     mpc85xx     p2020ds             freescale
+P2020DS_36BIT                powerpc     mpc85xx     p2020ds             freescale      -           P2020DS:36BIT
+P2020DS_DDR2                 powerpc     mpc85xx     p2020ds             freescale      -           P2020DS:DDR2
+P2020RDB                     powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2020
+P2020RDB_NAND                powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2020,NAND
+P2020RDB_SDCARD              powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2020,SDCARD
+P2020RDB_SPIFLASH            powerpc     mpc85xx     p1_p2_rdb           freescale      -           P1_P2_RDB:P2020,SPIFLASH
+P4080DS                      powerpc     mpc85xx     corenet_ds          freescale
+stxgp3                       powerpc     mpc85xx     stxgp3              stx
+stxssa                       powerpc     mpc85xx     stxssa              stx            -           stxssa
+stxssa_4M                    powerpc     mpc85xx     stxssa              stx            -           stxssa:STXSSA_4M
+TQM8540                      powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8540,TQM8540=y,HOSTNAME=tqm8540,BOARDNAME="TQM8540"
+TQM8541                      powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8541,TQM8541=y,HOSTNAME=tqm8541,BOARDNAME="TQM8541"
+TQM8548                      powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8548,TQM8548=y,HOSTNAME=tqm8548,BOARDNAME="TQM8548"
+TQM8548_AG                   powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8548,TQM8548_AG=y,HOSTNAME=tqm8485,BOARDNAME="TQM8548_AG"
+TQM8548_BE                   powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8548,TQM8548_BE=y,HOSTNAME=tqm8548,BOARDNAME="TQM8548_BE"
+TQM8555                      powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8555,TQM8555=y,HOSTNAME=tqm8555,BOARDNAME="TQM8555"
+TQM8560                      powerpc     mpc85xx     tqm85xx             tqc            -           TQM85xx:MPC8560,TQM8560=y,HOSTNAME=tqm8560,BOARDNAME="TQM8560"
+xpedite520x                  powerpc     mpc85xx     -                   xes
+xpedite537x                  powerpc     mpc85xx     -                   xes
+xpedite550x                  powerpc     mpc85xx     -                   xes
+sbc8641d                     powerpc     mpc86xx
+MPC8610HPCD                  powerpc     mpc86xx     mpc8610hpcd         freescale
+MPC8641HPCN                  powerpc     mpc86xx     mpc8641hpcn         freescale      -           MPC8641HPCN
+MPC8641HPCN_36BIT            powerpc     mpc86xx     mpc8641hpcn         freescale      -           MPC8641HPCN:PHYS_64BIT
+xpedite517x                  powerpc     mpc86xx     -                   xes
+Adder                        powerpc     mpc8xx      adder
+Adder87x                     powerpc     mpc8xx      adder               -              -           Adder
+AdderII                      powerpc     mpc8xx      adder               -              -           Adder:MPC852T
+AdderUSB                     powerpc     mpc8xx      adder               -              -           Adder
+ADS860                       powerpc     mpc8xx      fads
+c2mon                        powerpc     mpc8xx
+cogent_mpc8xx                powerpc     mpc8xx      cogent
+EP88x                        powerpc     mpc8xx      ep88x
+ESTEEM192E                   powerpc     mpc8xx      esteem192e
+ETX094                       powerpc     mpc8xx      etx094
+FADS823                      powerpc     mpc8xx      fads
+FADS850SAR                   powerpc     mpc8xx      fads
+FADS860T                     powerpc     mpc8xx      fads
+FLAGADM                      powerpc     mpc8xx      flagadm
+GEN860T                      powerpc     mpc8xx      gen860t
+GEN860T_SC                   powerpc     mpc8xx      gen860t             -              -           GEN860T:SC
+GENIETV                      powerpc     mpc8xx      genietv
+hermes                       powerpc     mpc8xx
+ICU862                       powerpc     mpc8xx      icu862
+ICU862_100MHz                powerpc     mpc8xx      icu862              -              -           ICU862:100MHz
+IP860                        powerpc     mpc8xx      ip860
+IVML24                       powerpc     mpc8xx      ivm                 -              -           IVML24:IVML24_16M
+IVML24_128                   powerpc     mpc8xx      ivm                 -              -           IVML24:IVML24_32M
+IVML24_256                   powerpc     mpc8xx      ivm                 -              -           IVML24:IVML24_64M
+IVMS8                        powerpc     mpc8xx      ivm                 -              -           IVMS8:IVMS8_16M
+IVMS8_128                    powerpc     mpc8xx      ivm                 -              -           IVMS8:IVMS8_32M
+IVMS8_256                    powerpc     mpc8xx      ivm                 -              -           IVMS8:IVMS8_64M
+LANTEC                       powerpc     mpc8xx      lantec
+lwmon                        powerpc     mpc8xx
+MBX                          powerpc     mpc8xx      mbx8xx
+MBX860T                      powerpc     mpc8xx      mbx8xx
+MPC86xADS                    powerpc     mpc8xx      fads
+MPC885ADS                    powerpc     mpc8xx      fads
+NETPHONE                     powerpc     mpc8xx      netphone            -              -           NETPHONE:NETPHONE_VERSION=1
+NETPHONE_V2                  powerpc     mpc8xx      netphone            -              -           NETPHONE:NETPHONE_VERSION=2
+NETTA                        powerpc     mpc8xx      netta               -              -           NETTA
+NETTA2                       powerpc     mpc8xx      netta2              -              -           NETTA2:NETTA2_VERSION=1
+NETTA2_V2                    powerpc     mpc8xx      netta2              -              -           NETTA2:NETTA2_VERSION=2
+NETTA_6412                   powerpc     mpc8xx      netta               -              -           NETTA:NETTA_6412=1
+NETTA_6412_SWAPHOOK          powerpc     mpc8xx      netta               -              -           NETTA:NETTA_6412=1,NETTA_SWAPHOOK=1
+NETTA_ISDN                   powerpc     mpc8xx      netta               -              -           NETTA:NETTA_ISDN=1
+NETTA_ISDN_6412              powerpc     mpc8xx      netta               -              -           NETTA:NETTA_ISDN=1,NETTA_6412=1
+NETTA_ISDN_6412_SWAPHOOK     powerpc     mpc8xx      netta               -              -           NETTA:NETTA_ISDN=1,NETTA_6412=1,NETTA_SWAPHOOK=1
+NETTA_ISDN_SWAPHOOK          powerpc     mpc8xx      netta               -              -           NETTA:NETTA_ISDN=1,NETTA_SWAPHOOK=1
+NETTA_SWAPHOOK               powerpc     mpc8xx      netta               -              -           NETTA:NETTA_SWAPHOOK=1
+NETVIA                       powerpc     mpc8xx      netvia              -              -           NETVIA:NETVIA_VERSION=1
+NETVIA_V2                    powerpc     mpc8xx      netvia              -              -           NETVIA:NETVIA_VERSION=2
+NX823                        powerpc     mpc8xx      nx823
+quantum                      powerpc     mpc8xx
+R360MPI                      powerpc     mpc8xx      r360mpi
+RBC823                       powerpc     mpc8xx      rbc823
+rmu                          powerpc     mpc8xx
+RPXClassic                   powerpc     mpc8xx
+RPXlite                      powerpc     mpc8xx
+RPXlite_DW                   powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW
+RPXlite_DW_64                powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:RPXlite_64MHz
+RPXlite_DW_64_LCD            powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:RPXlite_64MHz,LCD,NEC_NL6448BC20
+RPXlite_DW_LCD               powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:LCD,NEC_NL6448BC20
+RPXlite_DW_NVRAM             powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:ENV_IS_IN_NVRAM
+RPXlite_DW_NVRAM_64          powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:RPXlite_64MHz,ENV_IS_IN_NVRAM
+RPXlite_DW_NVRAM_64_LCD      powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:RPXlite_64MHz,LCD,NEC_NL6448BC20,ENV_IS_IN_NVRAM
+RPXlite_DW_NVRAM_LCD         powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW:LCD,NEC_NL6448BC20,ENV_IS_IN_NVRAM
+RRvision                     powerpc     mpc8xx
+RRvision_LCD                 powerpc     mpc8xx      RRvision            -              -           RRvision:LCD,SHARP_LQ104V7DS01
+spc1920                      powerpc     mpc8xx
+SPD823TS                     powerpc     mpc8xx      spd8xx
+svm_sc8xx                    powerpc     mpc8xx
+SXNI855T                     powerpc     mpc8xx      sixnet
+v37                          powerpc     mpc8xx
+MHPC                         powerpc     mpc8xx      mhpc                eltec
+TOP860                       powerpc     mpc8xx      top860              emk
+kmsupx4                      powerpc     mpc8xx      km8xx               keymile
+mgsuvd                       powerpc     mpc8xx      km8xx               keymile
+KUP4K                        powerpc     mpc8xx      kup4k               kup
+KUP4X                        powerpc     mpc8xx      kup4x               kup
+ELPT860                      powerpc     mpc8xx      elpt860             LEOX
+uc100                        powerpc     mpc8xx      -                   manroland
+IAD210                       powerpc     mpc8xx      -                   siemens
+QS823                        powerpc     mpc8xx      qs850               snmc
+QS850                        powerpc     mpc8xx      qs850               snmc
+QS860T                       powerpc     mpc8xx      qs860t              snmc
+stxxtc                       powerpc     mpc8xx      stxxtc              stx
+FPS850L                      powerpc     mpc8xx      tqm8xx              tqc
+FPS860L                      powerpc     mpc8xx      tqm8xx              tqc
+NSCU                         powerpc     mpc8xx      tqm8xx              tqc
+SM850                        powerpc     mpc8xx      tqm8xx              tqc
+TK885D                       powerpc     mpc8xx      tqm8xx              tqc
+TQM823L                      powerpc     mpc8xx      tqm8xx              tqc
+TQM823L_LCD                  powerpc     mpc8xx      tqm8xx              tqc            -           TQM823L:LCD,NEC_NL6448BC20
+TQM823M                      powerpc     mpc8xx      tqm8xx              tqc
+TQM850L                      powerpc     mpc8xx      tqm8xx              tqc
+TQM850M                      powerpc     mpc8xx      tqm8xx              tqc
+TQM855L                      powerpc     mpc8xx      tqm8xx              tqc
+TQM855M                      powerpc     mpc8xx      tqm8xx              tqc
+TQM860L                      powerpc     mpc8xx      tqm8xx              tqc
+TQM860M                      powerpc     mpc8xx      tqm8xx              tqc
+TQM862L                      powerpc     mpc8xx      tqm8xx              tqc
+TQM862M                      powerpc     mpc8xx      tqm8xx              tqc
+TQM866M                      powerpc     mpc8xx      tqm8xx              tqc
+TQM885D                      powerpc     mpc8xx      tqm8xx              tqc
+TTTech                       powerpc     mpc8xx      tqm8xx              tqc            -           TQM823L:LCD,SHARP_LQ104V7DS01
+virtlab2                     powerpc     mpc8xx      tqm8xx              tqc
+wtk                          powerpc     mpc8xx      tqm8xx              tqc            -           TQM823L:LCD,SHARP_LQ065T9DR51U
+AMX860                       powerpc     mpc8xx      amx860              westel
+csb272                       powerpc     ppc4xx
+csb472                       powerpc     ppc4xx
+G2000                        powerpc     ppc4xx      g2000
+JSE                          powerpc     ppc4xx      jse
+korat                        powerpc     ppc4xx
+korat_perm                   powerpc     ppc4xx      korat               -              -           korat:KORAT_PERMANENT
+lwmon5                       powerpc     ppc4xx
+ML2                          powerpc     ppc4xx      ml2
+pcs440ep                     powerpc     ppc4xx
+quad100hd                    powerpc     ppc4xx
+sbc405                       powerpc     ppc4xx
+sc3                          powerpc     ppc4xx
+t3corp                       powerpc     ppc4xx
+W7OLMC                       powerpc     ppc4xx      w7o
+W7OLMG                       powerpc     ppc4xx      w7o
+zeus                         powerpc     ppc4xx
+acadia                       powerpc     ppc4xx      -                   amcc
+acadia_nand                  powerpc     ppc4xx      acadia              amcc           -           acadia:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+arches                       powerpc     ppc4xx      canyonlands         amcc           -           canyonlands:ARCHES
+bamboo                       powerpc     ppc4xx      -                   amcc
+bamboo_nand                  powerpc     ppc4xx      bamboo              amcc           -           bamboo:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+bluestone                    powerpc     ppc4xx      -                   amcc
+bubinga                      powerpc     ppc4xx      -                   amcc
+canyonlands                  powerpc     ppc4xx      canyonlands         amcc           -           canyonlands:CANYONLANDS
+canyonlands_nand             powerpc     ppc4xx      canyonlands         amcc           -           canyonlands:CANYONLANDS,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+ebony                        powerpc     ppc4xx      -                   amcc
+glacier                      powerpc     ppc4xx      canyonlands         amcc           -           canyonlands:GLACIER
+glacier_nand                 powerpc     ppc4xx      canyonlands         amcc           -           canyonlands:GLACIER,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+haleakala                    powerpc     ppc4xx      kilauea             amcc           -           kilauea:HALEAKALA
+haleakala_nand               powerpc     ppc4xx      kilauea             amcc           -           kilauea:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+katmai                       powerpc     ppc4xx      -                   amcc
+kilauea                      powerpc     ppc4xx      kilauea             amcc           -           kilauea:KILAUEA
+kilauea_nand                 powerpc     ppc4xx      kilauea             amcc           -           kilauea:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+luan                         powerpc     ppc4xx      -                   amcc
+makalu                       powerpc     ppc4xx      -                   amcc
+ocotea                       powerpc     ppc4xx      -                   amcc
+rainier                      powerpc     ppc4xx      sequoia             amcc           -           sequoia:RAINIER
+rainier_nand                 powerpc     ppc4xx      sequoia             amcc           -           sequoia:RAINIER,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+rainier_ramboot              powerpc     ppc4xx      sequoia             amcc           -           sequoia:RAINIER,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds
+redwood                      powerpc     ppc4xx      -                   amcc
+sequoia                      powerpc     ppc4xx      sequoia             amcc           -           sequoia:SEQUOIA
+sequoia_nand                 powerpc     ppc4xx      sequoia             amcc           -           sequoia:SEQUOIA,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000
+sequoia_ramboot              powerpc     ppc4xx      sequoia             amcc           -           sequoia:SEQUOIA,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds
+sycamore                     powerpc     ppc4xx      walnut              amcc           -           walnut
+taihu                        powerpc     ppc4xx      -                   amcc
+taishan                      powerpc     ppc4xx      -                   amcc
+walnut                       powerpc     ppc4xx      walnut              amcc
+yellowstone                  powerpc     ppc4xx      yosemite            amcc           -           yosemite:YELLOWSTONE
+yosemite                     powerpc     ppc4xx      yosemite            amcc           -           yosemite:YOSEMITE
+yucca                        powerpc     ppc4xx      -                   amcc
+AP1000                       powerpc     ppc4xx      ap1000              amirix
+fx12mm                       powerpc     ppc4xx      fx12mm              avnet          -           fx12mm:SYS_TEXT_BASE=0x03000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds
+fx12mm_flash                 powerpc     ppc4xx      fx12mm              avnet          -           fx12mm:SYS_TEXT_BASE=0xFFCB0000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds
+v5fx30teval                  powerpc     ppc4xx      v5fx30teval         avnet          -           v5fx30teval:SYS_TEXT_BASE=0x03000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds
+v5fx30teval_flash            powerpc     ppc4xx      v5fx30teval         avnet          -           v5fx30teval:SYS_TEXT_BASE=0xFF1C0000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds
+CRAYL1                       powerpc     ppc4xx      L1                  cray
+CATcenter                    powerpc     ppc4xx      PPChameleonEVB      dave           -           CATcenter:PPCHAMELEON_MODULE_MODEL=1
+CATcenter_25                 powerpc     ppc4xx      PPChameleonEVB      dave           -           CATcenter:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_25
+CATcenter_33                 powerpc     ppc4xx      PPChameleonEVB      dave           -           CATcenter:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_33
+PPChameleonEVB               powerpc     ppc4xx      PPChameleonEVB      dave
+PPChameleonEVB_BA_25         powerpc     ppc4xx      PPChameleonEVB      dave           -           PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=0,PPCHAMELEON_CLK_25
+PPChameleonEVB_BA_33         powerpc     ppc4xx      PPChameleonEVB      dave           -           PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=0,PPCHAMELEON_CLK_33
+PPChameleonEVB_HI_25         powerpc     ppc4xx      PPChameleonEVB      dave           -           PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=2,PPCHAMELEON_CLK_25
+PPChameleonEVB_HI_33         powerpc     ppc4xx      PPChameleonEVB      dave           -           PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=2,PPCHAMELEON_CLK_33
+PPChameleonEVB_ME_25         powerpc     ppc4xx      PPChameleonEVB      dave           -           PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_25
+PPChameleonEVB_ME_33         powerpc     ppc4xx      PPChameleonEVB      dave           -           PPChameleonEVB:PPCHAMELEON_MODULE_MODEL=1,PPCHAMELEON_CLK_33
+ADCIOP                       powerpc     ppc4xx      adciop              esd
+APC405                       powerpc     ppc4xx      apc405              esd
+AR405                        powerpc     ppc4xx      ar405               esd
+ASH405                       powerpc     ppc4xx      ash405              esd
+CANBT                        powerpc     ppc4xx      canbt               esd
+CMS700                       powerpc     ppc4xx      cms700              esd
+CPCI2DP                      powerpc     ppc4xx      cpci2dp             esd
+CPCI405                      powerpc     ppc4xx      cpci405             esd
+CPCI4052                     powerpc     ppc4xx      cpci405             esd
+CPCI405AB                    powerpc     ppc4xx      cpci405             esd
+CPCI405DT                    powerpc     ppc4xx      cpci405             esd
+CPCIISER4                    powerpc     ppc4xx      cpciiser4           esd
+DASA_SIM                     powerpc     ppc4xx      dasa_sim            esd
+DP405                        powerpc     ppc4xx      dp405               esd
+DU405                        powerpc     ppc4xx      du405               esd
+DU440                        powerpc     ppc4xx      du440               esd
+HH405                        powerpc     ppc4xx      hh405               esd
+HUB405                       powerpc     ppc4xx      hub405              esd
+OCRTC                        powerpc     ppc4xx      ocrtc               esd
+PCI405                       powerpc     ppc4xx      pci405              esd
+PLU405                       powerpc     ppc4xx      plu405              esd
+PMC405                       powerpc     ppc4xx      pmc405              esd
+PMC405DE                     powerpc     ppc4xx      pmc405de            esd
+PMC440                       powerpc     ppc4xx      pmc440              esd
+VOH405                       powerpc     ppc4xx      voh405              esd
+VOM405                       powerpc     ppc4xx      vom405              esd
+WUH405                       powerpc     ppc4xx      wuh405              esd
+devconcenter                 powerpc     ppc4xx      intip               gdsys          -           intip:DEVCONCENTER
+dlvision                     powerpc     ppc4xx      -                   gdsys
+gdppc440etx                  powerpc     ppc4xx      -                   gdsys
+intip                        powerpc     ppc4xx      intip               gdsys          -           intip:INTIB
+io                           powerpc     ppc4xx      405ep               gdsys
+iocon                        powerpc     ppc4xx      405ep               gdsys
+neo                          powerpc     ppc4xx      -                   gdsys
+icon                         powerpc     ppc4xx      -                   mosaixtech
+MIP405                       powerpc     ppc4xx      mip405              mpl
+MIP405T                      powerpc     ppc4xx      mip405              mpl            -           MIP405:MIP405T
+PIP405                       powerpc     ppc4xx      pip405              mpl
+hcu4                         powerpc     ppc4xx      hcu4                netstal
+hcu5                         powerpc     ppc4xx      hcu5                netstal
+mcu25                        powerpc     ppc4xx      mcu25               netstal
+alpr                         powerpc     ppc4xx      -                   prodrive
+p3p440                       powerpc     ppc4xx      -                   prodrive
+KAREF                        powerpc     ppc4xx      karef               sandburst
+METROBOX                     powerpc     ppc4xx      metrobox            sandburst
+xpedite1000                  powerpc     ppc4xx      -                   xes
+ml507                        powerpc     ppc4xx      ml507               xilinx         -           ml507:SYS_TEXT_BASE=0x04000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds
+ml507_flash                  powerpc     ppc4xx      ml507               xilinx         -           ml507:SYS_TEXT_BASE=0xFE360000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds
+xilinx-ppc405-generic        powerpc     ppc4xx      ppc405-generic      xilinx         -           xilinx-ppc405-generic:SYS_TEXT_BASE=0x04000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds
+xilinx-ppc405-generic_flash  powerpc     ppc4xx      ppc405-generic      xilinx         -           xilinx-ppc405-generic:SYS_TEXT_BASE=0xFE360000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds
+xilinx-ppc440-generic        powerpc     ppc4xx      ppc440-generic      xilinx         -           xilinx-ppc440-generic:SYS_TEXT_BASE=0x04000000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds
+xilinx-ppc440-generic_flash  powerpc     ppc4xx      ppc440-generic      xilinx         -           xilinx-ppc440-generic:SYS_TEXT_BASE=0xFE360000,SYS_LDSCRIPT=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds
+rsk7203                      sh          sh2         rsk7203             renesas        -
+mpr2                         sh          sh3         mpr2                -              -
+ms7720se                     sh          sh3         ms7720se            -              -
+espt                         sh          sh4         espt                -              -
+ms7722se                     sh          sh4         ms7722se            -              -
+ms7750se                     sh          sh4         ms7750se            -              -
+ap325rxa                     sh          sh4         ap325rxa            renesas        -
+r2dplus                      sh          sh4         r2dplus             renesas        -
+r7780mp                      sh          sh4         r7780mp             renesas        -
+sh7763rdp                    sh          sh4         sh7763rdp           renesas        -
+sh7785lcr                    sh          sh4         sh7785lcr           renesas        -
+sh7785lcr_32bit              sh          sh4         sh7785lcr           renesas        -           sh7785lcr:SH_32BIT=1
+MigoRsh                      sh4         MigoR       renesas             -
+grsim_leon2                  sparc       leon2       -                   gaisler
+gr_cpci_ax2000               sparc       leon3       -                   gaisler
+gr_ep2s60                    sparc       leon3       -                   gaisler
+grsim                        sparc       leon3       -                   gaisler
+gr_xc3s_1500                 sparc       leon3       -                   gaisler
+# Target                     ARCH        CPU         Board name          Vendor                SoC         Options
+########################################################################################################################
index 2c3707308be78ea225f12d8cd7af45853497b6bb..abea91cb7775f84ee76abdf08b815722abc5f662 100644 (file)
@@ -23,9 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libcommon.a
-
-AOBJS  =
+LIB    = $(obj)libcommon.o
 
 # core
 COBJS-y += main.o
@@ -52,9 +50,9 @@ COBJS-y += cmd_version.o
 COBJS-y += env_common.o
 COBJS-$(CONFIG_ENV_IS_IN_DATAFLASH) += env_dataflash.o
 COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_eeprom.o
-COBJS-$(CONFIG_ENV_IS_EMBEDDED) += env_embedded.o
+XCOBJS-$(CONFIG_ENV_IS_EMBEDDED) += env_embedded.o
 COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_embedded.o
+XCOBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_embedded.o
 COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_embedded.o
 COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
 COBJS-$(CONFIG_ENV_IS_IN_MG_DISK) += env_mgdisk.o
@@ -169,15 +167,17 @@ COBJS-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
 
 
 COBJS  := $(sort $(COBJS-y))
-SRCS   := $(AOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(AOBJS) $(COBJS))
+XCOBJS := $(sort $(XCOBJS-y))
+SRCS   := $(COBJS:.o=.c) $(XCOBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+XOBJS  := $(addprefix $(obj),$(XCOBJS))
 
 CPPFLAGS += -I..
 
-all:   $(LIB) $(AOBJS)
+all:   $(LIB) $(XOBJS)
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 $(obj)env_embedded.o: $(src)env_embedded.c $(obj)../tools/envcrc
        $(CC) $(AFLAGS) -Wa,--no-warn \
index 3fd8abc157f98f4f67326a90ceea5acbe6a77d25..dcc93c19bd5b7139c4de6181cf2f2a5bba87cc57 100644 (file)
@@ -545,8 +545,7 @@ int envmatch (uchar *s1, int i2)
 static int do_env_default(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
 {
        if ((argc != 2) || (strcmp(argv[1], "-f") != 0)) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
        set_default_env("## Resetting to default environment\n");
        return 0;
@@ -633,15 +632,13 @@ static int do_env_export(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
                                sep = '\n';
                                break;
                        default:
-                               cmd_usage(cmdtp);
-                               return 1;
+                               return cmd_usage(cmdtp);
                        }
                }
        }
 
        if (argc < 1) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
 
        addr = (char *)simple_strtoul(argv[0], NULL, 16);
@@ -744,15 +741,13 @@ static int do_env_import(cmd_tbl_t * cmdtp, int flag, int argc, char * const arg
                                del = 1;
                                break;
                        default:
-                               cmd_usage(cmdtp);
-                               return 1;
+                               return cmd_usage(cmdtp);
                        }
                }
        }
 
        if (argc < 1) {
-               cmd_usage(cmdtp);
-               return 1;
+               return cmd_usage(cmdtp);
        }
 
        if (!fmt)
@@ -848,6 +843,9 @@ static int do_env (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        cmd_tbl_t *cp;
 
+       if (argc < 2)
+               return cmd_usage(cmdtp);
+
        /* drop initial "env" arg */
        argc--;
        argv++;
@@ -857,8 +855,7 @@ static int do_env (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        if (cp)
                return cp->cmd(cmdtp, flag, argc, argv);
 
-       cmd_usage(cmdtp);
-       return 1;
+       return cmd_usage(cmdtp);
 }
 
 U_BOOT_CMD(
index 33108f1b34a833a789cc26f0d95f62bac7b518a7..cb2ba70517d4608feb0fc8fdf835b13dddc8a896 100644 (file)
@@ -293,7 +293,7 @@ static int onenand_dump(struct mtd_info *mtd, ulong off, int only_oob)
        addr = (loff_t) off;
        memset(&ops, 0, sizeof(ops));
        ops.datbuf = datbuf;
-       ops.oobbuf = oobbuf; /* must exist, but oob data will be appended to ops.datbuf */
+       ops.oobbuf = oobbuf;
        ops.len = mtd->writesize;
        ops.ooblen = mtd->oobsize;
        ops.retlen = 0;
@@ -319,6 +319,8 @@ static int onenand_dump(struct mtd_info *mtd, ulong off, int only_oob)
        }
        puts("OOB:\n");
        i = mtd->oobsize >> 3;
+       p = oobbuf;
+
        while (i--) {
                printf("\t%02x %02x %02x %02x %02x %02x %02x %02x\n",
                       p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
index 7692ac7716d2bbcc472892cc9e649c02dd731aae..b486ca8fefa0c625fcfbd545a7c407d5426668b2 100644 (file)
@@ -42,6 +42,11 @@ struct selected_dev {
 
 static struct selected_dev ubi_dev;
 
+#ifdef CONFIG_CMD_UBIFS
+int ubifs_is_mounted(void);
+void cmd_ubifs_umount(void);
+#endif
+
 static void ubi_dump_vol_info(const struct ubi_volume *vol)
 {
        ubi_msg("volume information dump:");
@@ -472,6 +477,16 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
                if (argc < 3)
                        return cmd_usage(cmdtp);
 
+#ifdef CONFIG_CMD_UBIFS
+               /*
+                * Automatically unmount UBIFS partition when user
+                * changes the UBI device. Otherwise the following
+                * UBIFS commands will crash.
+                */
+               if (ubifs_is_mounted())
+                       cmd_ubifs_umount();
+#endif
+
                /* todo: get dev number for NAND... */
                ubi_dev.nr = 0;
 
index a0ec184486dc08a330e063a97b55990fab69f7ae..3cd2d8fa824a074a0b42684cd183818f6000a48f 100644 (file)
 #include <config.h>
 #include <command.h>
 
+#include "../fs/ubifs/ubifs.h"
+
 static int ubifs_initialized;
 static int ubifs_mounted;
 
+extern struct super_block *ubifs_sb;
+
 /* Prototypes */
 int ubifs_init(void);
 int ubifs_mount(char *vol_name);
+void ubifs_umount(struct ubifs_info *c);
 int ubifs_ls(char *dir_name);
 int ubifs_load(char *filename, u32 addr, u32 size);
 
@@ -67,13 +72,47 @@ int do_ubifs_mount(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        return 0;
 }
 
+int ubifs_is_mounted(void)
+{
+       return ubifs_mounted;
+}
+
+void cmd_ubifs_umount(void)
+{
+
+       if (ubifs_sb) {
+               printf("Unmounting UBIFS volume %s!\n",
+                      ((struct ubifs_info *)(ubifs_sb->s_fs_info))->vi.name);
+               ubifs_umount(ubifs_sb->s_fs_info);
+       }
+
+       ubifs_sb = NULL;
+       ubifs_mounted = 0;
+       ubifs_initialized = 0;
+}
+
+int do_ubifs_umount(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+       if (argc != 1)
+               return cmd_usage(cmdtp);
+
+       if (ubifs_initialized == 0) {
+               printf("No UBIFS volume mounted!\n");
+               return -1;
+       }
+
+       cmd_ubifs_umount();
+
+       return 0;
+}
+
 int do_ubifs_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        char *filename = "/";
        int ret;
 
        if (!ubifs_mounted) {
-               printf("UBIFS not mounted, use ubifs mount to mount volume first!\n");
+               printf("UBIFS not mounted, use ubifsmount to mount volume first!\n");
                return -1;
        }
 
@@ -131,6 +170,12 @@ U_BOOT_CMD(
        "    - mount 'volume-name' volume"
 );
 
+U_BOOT_CMD(
+       ubifsumount, 1, 0, do_ubifs_umount,
+       "unmount UBIFS volume",
+       "    - unmount current volume"
+);
+
 U_BOOT_CMD(
        ubifsls, 2, 0, do_ubifs_ls,
        "list files in a directory",
index 0020eacf5c46fe8d8da0617e4c449df03ad9e757..0b1a3fbf9b18a15a8212252a8e0c54254321b027 100644 (file)
@@ -108,6 +108,8 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len)
        int len;
        int n_found = 0;
 
+       if (!cmd)
+               return NULL;
        /*
         * Some commands allow length modifiers (like "cp.b");
         * compare command name only until first dot.
index 4871f4b0990457a47732abe3c51f3f54a132f2e3..e9bab09b8eac7c0ec4900a3685f15a807b448c31 100644 (file)
@@ -1511,6 +1511,13 @@ void *sbrk(ptrdiff_t increment)
        ulong old = mem_malloc_brk;
        ulong new = old + increment;
 
+       /*
+        * if we are giving memory back make sure we clear it out since
+        * we set MORECORE_CLEARS to 1
+        */
+       if (increment < 0)
+               memset((void *)new, 0, -increment);
+
        if ((new < mem_malloc_start) || (new > mem_malloc_end))
                return (void *)MORECORE_FAILURE;
 
index 4e8307aa3332d67cc43dfd178ef5451e3d711377..7f6c91751891de647649460a55cb000a0d103420 100644 (file)
@@ -297,7 +297,7 @@ int readenv(size_t offset, u_char * buf)
                        offset += blocksize;
                } else {
                        char_ptr = &buf[amount_loaded];
-                       if (nand_read(&nand_info[0], offset, &len, char_ptr))
+                       if (nand_read_skip_bad(&nand_info[0], offset, &len, char_ptr))
                                return 1;
                        offset += blocksize;
                        amount_loaded += len;
index 5829afd2ad045ee830341a0b2d4f5c2d3bbe370e..6c98e5b07a47269789935160ff8912da21bd034c 100644 (file)
@@ -954,7 +954,7 @@ static void of_bus_default_count_cells(void *blob, int parentoffset,
        if (addrc) {
                prop = fdt_getprop(blob, parentoffset, "#address-cells", NULL);
                if (prop)
-                       *addrc = be32_to_cpup(prop);
+                       *addrc = be32_to_cpup((u32 *)prop);
                else
                        *addrc = 2;
        }
@@ -962,7 +962,7 @@ static void of_bus_default_count_cells(void *blob, int parentoffset,
        if (sizec) {
                prop = fdt_getprop(blob, parentoffset, "#size-cells", NULL);
                if (prop)
-                       *sizec = be32_to_cpup(prop);
+                       *sizec = be32_to_cpup((u32 *)prop);
                else
                        *sizec = 1;
        }
index 3c9759fc557547fa8a2f0bc16fa87658fa166e23..193863a9701043cc1cc20e95d7bfe37cfb5a4a1f 100644 (file)
@@ -68,14 +68,14 @@ next:
        return NULL;
 }
 
-const char *cpu_hwconfig __attribute__((weak));
-const char *board_hwconfig __attribute__((weak));
+const char cpu_hwconfig[] __attribute__((weak)) = "";
+const char board_hwconfig[] __attribute__((weak)) = "";
 
 #define HWCONFIG_PRE_RELOC_BUF_SIZE    128
 
 static const char *__hwconfig(const char *opt, size_t *arglen)
 {
-       const char *env_hwconfig = NULL;
+       const char *env_hwconfig = NULL, *ret;
        char buf[HWCONFIG_PRE_RELOC_BUF_SIZE];
 
        if (gd->flags & GD_FLG_ENV_READY) {
@@ -92,19 +92,20 @@ static const char *__hwconfig(const char *opt, size_t *arglen)
                        env_hwconfig = buf;
        }
 
-       if (env_hwconfig)
-               return hwconfig_parse(env_hwconfig, strlen(env_hwconfig),
+       if (env_hwconfig) {
+               ret = hwconfig_parse(env_hwconfig, strlen(env_hwconfig),
                                      opt, ";", ':', arglen);
+               if (ret)
+                       return ret;
+       }
 
-       if (board_hwconfig)
-               return hwconfig_parse(board_hwconfig, strlen(board_hwconfig),
-                                     opt, ";", ':', arglen);
+       ret = hwconfig_parse(board_hwconfig, strlen(board_hwconfig),
+                       opt, ";", ':', arglen);
+       if (ret)
+               return ret;
 
-       if (cpu_hwconfig)
-               return hwconfig_parse(cpu_hwconfig, strlen(cpu_hwconfig),
-                                     opt, ";", ':', arglen);
-
-       return NULL;
+       return hwconfig_parse(cpu_hwconfig, strlen(cpu_hwconfig),
+                       opt, ";", ':', arglen);
 }
 
 /*
index ce8e5f2dff510799c2db8c50548a320af8e88c49..c6d6f7b12c61454d18559cf32bda1b5a0c07523e 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -12,7 +12,7 @@
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
@@ -53,7 +53,7 @@ HOSTSTRIP     = strip
 #
 # Mac OS X / Darwin's C preprocessor is Apple specific.  It
 # generates numerous errors and warnings.  We want to bypass it
-# and use GNU C's cpp.  To do this we pass the -traditional-cpp
+# and use GNU C's cpp. To do this we pass the -traditional-cpp
 # option to the compiler.  Note that the -traditional-cpp flag
 # DOES NOT have the same semantics as GNU C's flag, all it does
 # is invoke the GNU preprocessor in stock ANSI/ISO C fashion.
@@ -259,3 +259,10 @@ $(obj)%.s: %.c
                -o $@ $< -c -S
 
 #########################################################################
+
+# If the list of objects to link is empty, just create an empty built-in.o
+cmd_link_o_target = $(if $(strip $1),\
+                     $(LD) -r -o $@ $1 ,\
+                     rm -f $@; $(AR) rcs $@ )
+
+#########################################################################
index 128db77df69ff36a6165365d2b30100a04ff4d64..17266a2eb67a663c42a8989fb693c005f1cbc475 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 #CFLAGS += -DET_DEBUG -DDEBUG
 
-LIB    = $(obj)libdisk.a
+LIB    = $(obj)libdisk.o
 
 COBJS-y += part.o
 COBJS-$(CONFIG_MAC_PARTITION)   += part_mac.o
@@ -41,7 +41,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 506f0d4327283b9c883a13f05f121b65cef33c54..0204372a2f484ebf1d1894b1af31f65461e1d285 100644 (file)
@@ -21,6 +21,8 @@ Currently the following boards are supported:
 
 * TI DA830 EVM
 
+* TI DA850 EVM
+
 * DM355 based Leopard board
 
 * DM644x based schmoogie board
@@ -57,6 +59,11 @@ make
 make da830evm_config
 make
 
+* TI DA850 EVM:
+
+make da850evm_config
+make
+
 * DM355 based Leopard board:
 
 make davinci_dm355leopard_config
@@ -88,6 +95,20 @@ into the RAM.
 The programmers and UBL are always released as part of any standard TI
 software release associated with an SOC.
 
+Environment Variables
+=====================
+
+The DA850 EVM allows the user to specify the maximum cpu clock allowed by the
+silicon, in Hz, via an environment variable "maxcpuclk".
+
+The maximum clock rate allowed depends on the silicon populated on the EVM.
+Please make sure you understand the restrictions placed on this clock in the
+device specific datasheet before setting up this variable. This information is
+passed to the Linux kernel using the ATAG_REVISION atag.
+
+If "maxcpuclk" is not defined, the configuration CONFIG_DA850_EVM_MAX_CPU_CLK
+is used to obtain this information.
+
 Links
 =====
 
@@ -114,3 +135,7 @@ http://www.spectrumdigital.com/product_info.php?cPath=103&products_id=222
 6) TI DA830 EVM
 http://focus.ti.com/apps/docs/gencontent.tsp?appId=1&contentId=52385
 http://www.spectrumdigital.com/product_info.php?cPath=37&products_id=214
+
+7) TI DA850 EVM
+http://focus.ti.com/docs/prod/folders/print/omap-l138.html
+http://www.logicpd.com/products/development-kits/zoom-omap-l138-evm-development-kit
index 42865593bd773a185cf31e33806b6e63f7348880..8f98b60cbbd3c3c3c50467aabb204e7c6de38013 100644 (file)
@@ -11,7 +11,9 @@ easily if here is something they might want to dig for...
 
 Board  Arch    CPU     removed     Commit      last known maintainer/contact
 =============================================================================
-VoVPN-GW_100MHz        powerpc MPC8260 - 2010-10-24    Juergen Selent <j.selent@elmeg.de>
+barco  powerpc MPC8245 -         2010-11-23    Marc Leeman <marc.leeman@barco.com>
+ERIC   powerpc 405GP   d9ba451   2010-11-21    Swen Anderson <sand@peppercon.de>
+VoVPN-GW_100MHz        powerpc MPC8260 26fe3d2 2010-10-24      Juergen Selent <j.selent@elmeg.de>
 NC650  powerpc MPC852  333d86d   2010-10-19    Wolfgang Denk <wd@denx.de>
 CP850  powerpc MPC852  333d86d   2010-10-19    Wolfgang Denk <wd@denx.de>
 logodl ARM     PXA2xx  059e778   2010-10-18    August Hoeraendl <august.hoerandl@gmx.at>
index feba4da758975086a52a1fe2ca317e00f726b80c..d94a144292948e774c3ee0b1549d961efa45cf6c 100644 (file)
@@ -1,6 +1,6 @@
 include $(TOPDIR)/config.mk
 
-LIB := $(obj)libatibiosemu.a
+LIB := $(obj)libatibiosemu.o
 
 X86DIR  = x86emu
 
@@ -28,7 +28,7 @@ CPPFLAGS += $(EXTRA_CFLAGS)
 all:   $(LIB)
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 64dcf4e24549bd6f824dedce80d0f7b821318689..e27175bb4b52630a31beb27fc0c5e95eae8bd6a2 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libblock.a
+LIB    := $(obj)libblock.o
 
 COBJS-$(CONFIG_SCSI_AHCI) += ahci.o
 COBJS-$(CONFIG_ATA_PIIX) += ata_piix.o
@@ -45,7 +45,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 36d99f9b111f8b7561527c12303353c72bd2b815..9d945a042a93e9d09386451576bd8a96d2487825 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libdma.a
+LIB    := $(obj)libdma.o
 
 COBJS-$(CONFIG_FSLDMAFEC) += MCD_tasksInit.o MCD_dmaApi.o MCD_tasks.o
 COBJS-$(CONFIG_FSL_DMA) += fsl_dma.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9ecdc5ef109c4d8a1a9a3f29c0da33a466f5edb2..b48f623c180364f600d45edf5cb584d1f3c32041 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libfpga.a
+LIB    := $(obj)libfpga.o
 
 ifdef CONFIG_FPGA
 COBJS-y += fpga.o
@@ -47,7 +47,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index a0f455223b379aee85410bf6e551fbdcee14e236..398024c7bc3bfceaefe4e0dc31f012aa99ac435e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libgpio.a
+LIB    := $(obj)libgpio.o
 
 COBJS-$(CONFIG_AT91_GPIO)      += at91_gpio.o
 COBJS-$(CONFIG_KIRKWOOD_GPIO)  += kw_gpio.o
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 
 #########################################################################
index 59302fa4d2d10d4c87b5e35dbef6fceabbeaa214..f04cd6983ea233a50a4198dad2fc2feaa7b3aca7 100644 (file)
@@ -28,7 +28,7 @@ include $(TOPDIR)/config.mk
 
 #CFLAGS += -DDEBUG
 
-LIB    = $(obj)libhwmon.a
+LIB    = $(obj)libhwmon.o
 
 COBJS-$(CONFIG_DTT_ADM1021) += adm1021.o
 COBJS-$(CONFIG_DTT_ADT7460) += adt7460.o
@@ -47,7 +47,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8921ff914e1a79e829f75a3576ae73454225f078..052fe360c075a0a8e22ada68951b0b2fe2c0b466 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libi2c.a
+LIB    := $(obj)libi2c.o
 
 COBJS-$(CONFIG_BFIN_TWI_I2C) += bfin-twi_i2c.o
 COBJS-$(CONFIG_DRIVER_DAVINCI_I2C) += davinci_i2c.o
@@ -48,7 +48,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 9a144073999d71ef9b6a16bc9dc969c6bdef27f8..1f4dad35b53dcd26892e5586d62781dc17fb0541 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libinput.a
+LIB    := $(obj)libinput.o
 
 COBJS-$(CONFIG_I8042_KBD) += i8042.o
 ifdef CONFIG_PS2KBD
@@ -38,7 +38,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 5d668f8222b10379a898c911445f6c05f2ca5e4b..a76bd4e58aa7bbdc40384fbe2eb6b940def0ad0b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libmisc.a
+LIB    := $(obj)libmisc.o
 
 COBJS-$(CONFIG_ALI152X) += ali512x.o
 COBJS-$(CONFIG_DS4510)  += ds4510.o
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 2ead6344868483b5123a1bccd3d0a6402c18d1ca..68afd30ef0264c369e1cd0829aef72892aa2850b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libmmc.a
+LIB    := $(obj)libmmc.o
 
 COBJS-$(CONFIG_ATMEL_MCI) += atmel_mci.o
 COBJS-$(CONFIG_BFIN_SDH) += bfin_sdh.o
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index fa4df9943a7906481b94f3d83db199b43791bbe4..2984d645c9ddab0dfba0f9229eecc52f1d3e20bd 100644 (file)
@@ -308,6 +308,7 @@ static int mci_init(struct mmc *mmc)
        writel(MMCI_BIT(SWRST), &mci->cr);      /* soft reset */
        writel(MMCI_BIT(PWSDIS), &mci->cr);     /* disable power save */
        writel(MMCI_BIT(MCIEN), &mci->cr);      /* enable mci */
+       writel(MMCI_BF(SCDSEL, MCI_BUS), &mci->sdcr);   /* select port */
 
        /* Initial Time-outs */
        writel(0x5f, &mci->dtor);
index eb7bfb39e925f45807e8d54eec9933c4f18f665a..6805b33f7a13285256c3a71f363e08fdb03d0199 100644 (file)
@@ -82,12 +82,9 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src)
 {
        struct mmc_cmd cmd;
        struct mmc_data data;
-       int blklen, err;
-
-       blklen = mmc->write_bl_len;
 
        if ((start + blkcnt) > mmc->block_dev.lba) {
-               printf("MMC: block number 0x%lx exceeds max(0x%lx)",
+               printf("MMC: block number 0x%lx exceeds max(0x%lx)\n",
                        start + blkcnt, mmc->block_dev.lba);
                return 0;
        }
@@ -100,21 +97,19 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src)
        if (mmc->high_capacity)
                cmd.cmdarg = start;
        else
-               cmd.cmdarg = start * blklen;
+               cmd.cmdarg = start * mmc->write_bl_len;
 
        cmd.resp_type = MMC_RSP_R1;
        cmd.flags = 0;
 
        data.src = src;
        data.blocks = blkcnt;
-       data.blocksize = blklen;
+       data.blocksize = mmc->write_bl_len;
        data.flags = MMC_DATA_WRITE;
 
-       err = mmc_send_cmd(mmc, &cmd, &data);
-
-       if (err) {
-               printf("mmc write failed\n\r");
-               return err;
+       if (mmc_send_cmd(mmc, &cmd, &data)) {
+               printf("mmc write failed\n");
+               return 0;
        }
 
        if (blkcnt > 1) {
@@ -122,10 +117,9 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src)
                cmd.cmdarg = 0;
                cmd.resp_type = MMC_RSP_R1b;
                cmd.flags = 0;
-               err = mmc_send_cmd(mmc, &cmd, NULL);
-               if (err) {
-                       printf("mmc fail to send stop cmd\n\r");
-                       return err;
+               if (mmc_send_cmd(mmc, &cmd, NULL)) {
+                       printf("mmc fail to send stop cmd\n");
+                       return 0;
                }
        }
 
@@ -135,18 +129,14 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src)
 static ulong
 mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src)
 {
-       int err;
-       struct mmc *mmc = find_mmc_device(dev_num);
        lbaint_t cur, blocks_todo = blkcnt;
 
+       struct mmc *mmc = find_mmc_device(dev_num);
        if (!mmc)
-               return -1;
+               return 0;
 
-       err = mmc_set_blocklen(mmc, mmc->write_bl_len);
-       if (err) {
-               printf("set write bl len failed\n\r");
-               return err;
-       }
+       if (mmc_set_blocklen(mmc, mmc->write_bl_len))
+               return 0;
 
        do {
                /*
@@ -155,7 +145,7 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src)
                 */
                cur = (blocks_todo > 65535) ? 65535 : blocks_todo;
                if(mmc_write_blocks(mmc, start, cur, src) != cur)
-                       return -1;
+                       return 0;
                blocks_todo -= cur;
                start += cur;
                src += cur * mmc->write_bl_len;
@@ -164,110 +154,78 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src)
        return blkcnt;
 }
 
-int mmc_read_block(struct mmc *mmc, void *dst, uint blocknum)
+int mmc_read_blocks(struct mmc *mmc, void *dst, ulong start, lbaint_t blkcnt)
 {
        struct mmc_cmd cmd;
        struct mmc_data data;
 
-       cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK;
+       if (blkcnt > 1)
+               cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK;
+       else
+               cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK;
 
        if (mmc->high_capacity)
-               cmd.cmdarg = blocknum;
+               cmd.cmdarg = start;
        else
-               cmd.cmdarg = blocknum * mmc->read_bl_len;
+               cmd.cmdarg = start * mmc->read_bl_len;
 
        cmd.resp_type = MMC_RSP_R1;
        cmd.flags = 0;
 
        data.dest = dst;
-       data.blocks = 1;
+       data.blocks = blkcnt;
        data.blocksize = mmc->read_bl_len;
        data.flags = MMC_DATA_READ;
 
-       return mmc_send_cmd(mmc, &cmd, &data);
-}
-
-int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size)
-{
-       char *buffer;
-       int i;
-       int blklen = mmc->read_bl_len;
-       int startblock = lldiv(src, mmc->read_bl_len);
-       int endblock = lldiv(src + size - 1, mmc->read_bl_len);
-       int err = 0;
-
-       /* Make a buffer big enough to hold all the blocks we might read */
-       buffer = malloc(blklen);
-
-       if (!buffer) {
-               printf("Could not allocate buffer for MMC read!\n");
-               return -1;
-       }
-
-       /* We always do full block reads from the card */
-       err = mmc_set_blocklen(mmc, mmc->read_bl_len);
-
-       if (err)
-               goto free_buffer;
-
-       for (i = startblock; i <= endblock; i++) {
-               int segment_size;
-               int offset;
-
-               err = mmc_read_block(mmc, buffer, i);
-
-               if (err)
-                       goto free_buffer;
-
-               /*
-                * The first block may not be aligned, so we
-                * copy from the desired point in the block
-                */
-               offset = (src & (blklen - 1));
-               segment_size = MIN(blklen - offset, size);
-
-               memcpy(dst, buffer + offset, segment_size);
+       if (mmc_send_cmd(mmc, &cmd, &data))
+               return 0;
 
-               dst += segment_size;
-               src += segment_size;
-               size -= segment_size;
+       if (blkcnt > 1) {
+               cmd.cmdidx = MMC_CMD_STOP_TRANSMISSION;
+               cmd.cmdarg = 0;
+               cmd.resp_type = MMC_RSP_R1b;
+               cmd.flags = 0;
+               if (mmc_send_cmd(mmc, &cmd, NULL)) {
+                       printf("mmc fail to send stop cmd\n");
+                       return 0;
+               }
        }
 
-free_buffer:
-       free(buffer);
-
-       return err;
+       return blkcnt;
 }
 
 static ulong mmc_bread(int dev_num, ulong start, lbaint_t blkcnt, void *dst)
 {
-       int err;
-       int i;
-       struct mmc *mmc = find_mmc_device(dev_num);
+       lbaint_t cur, blocks_todo = blkcnt;
+
+       if (blkcnt == 0)
+               return 0;
 
+       struct mmc *mmc = find_mmc_device(dev_num);
        if (!mmc)
                return 0;
 
        if ((start + blkcnt) > mmc->block_dev.lba) {
-               printf("MMC: block number 0x%lx exceeds max(0x%lx)",
+               printf("MMC: block number 0x%lx exceeds max(0x%lx)\n",
                        start + blkcnt, mmc->block_dev.lba);
                return 0;
        }
-       /* We always do full block reads from the card */
-       err = mmc_set_blocklen(mmc, mmc->read_bl_len);
 
-       if (err) {
+       if (mmc_set_blocklen(mmc, mmc->read_bl_len))
                return 0;
-       }
-
-       for (i = start; i < start + blkcnt; i++, dst += mmc->read_bl_len) {
-               err = mmc_read_block(mmc, dst, i);
 
-               if (err) {
-                       printf("block read failed: %d\n", err);
-                       return i - start;
-               }
-       }
+       do {
+               /*
+                * The 65535 constraint comes from some hardware has
+                * only 16 bit width block number counter
+                */
+               cur = (blocks_todo > 65535) ? 65535 : blocks_todo;
+               if(mmc_read_blocks(mmc, dst, start, cur) != cur)
+                       return 0;
+               blocks_todo -= cur;
+               start += cur;
+               dst += cur * mmc->read_bl_len;
+       } while (blocks_todo > 0);
 
        return blkcnt;
 }
index c7f76209f33cbe8a6ca23d490bf31958c121ec4c..6f2280abff91af577644e0249a175702d477524e 100644 (file)
@@ -31,6 +31,9 @@
 #include <asm/io.h>
 #include <asm/arch/mmc_host_def.h>
 
+/* If we fail after 1 second wait, something is really bad */
+#define MAX_RETRY_MS   1000
+
 static int mmc_read_data(hsmmc_t *mmc_base, char *buf, unsigned int size);
 static int mmc_write_data(hsmmc_t *mmc_base, const char *buf, unsigned int siz);
 static struct mmc hsmmc_dev[2];
@@ -70,18 +73,29 @@ unsigned char mmc_board_init(hsmmc_t *mmc_base)
 
 void mmc_init_stream(hsmmc_t *mmc_base)
 {
+       ulong start;
 
        writel(readl(&mmc_base->con) | INIT_INITSTREAM, &mmc_base->con);
 
        writel(MMC_CMD0, &mmc_base->cmd);
-       while (!(readl(&mmc_base->stat) & CC_MASK))
-               ;
+       start = get_timer(0);
+       while (!(readl(&mmc_base->stat) & CC_MASK)) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for cc!\n", __func__);
+                       return;
+               }
+       }
        writel(CC_MASK, &mmc_base->stat)
                ;
        writel(MMC_CMD0, &mmc_base->cmd)
                ;
-       while (!(readl(&mmc_base->stat) & CC_MASK))
-               ;
+       start = get_timer(0);
+       while (!(readl(&mmc_base->stat) & CC_MASK)) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for cc2!\n", __func__);
+                       return;
+               }
+       }
        writel(readl(&mmc_base->con) & ~INIT_INITSTREAM, &mmc_base->con);
 }
 
@@ -91,16 +105,28 @@ static int mmc_init_setup(struct mmc *mmc)
        hsmmc_t *mmc_base = (hsmmc_t *)mmc->priv;
        unsigned int reg_val;
        unsigned int dsor;
+       ulong start;
 
        mmc_board_init(mmc_base);
 
        writel(readl(&mmc_base->sysconfig) | MMC_SOFTRESET,
                &mmc_base->sysconfig);
-       while ((readl(&mmc_base->sysstatus) & RESETDONE) == 0)
-               ;
+       start = get_timer(0);
+       while ((readl(&mmc_base->sysstatus) & RESETDONE) == 0) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for cc2!\n", __func__);
+                       return TIMEOUT;
+               }
+       }
        writel(readl(&mmc_base->sysctl) | SOFTRESETALL, &mmc_base->sysctl);
-       while ((readl(&mmc_base->sysctl) & SOFTRESETALL) != 0x0)
-               ;
+       start = get_timer(0);
+       while ((readl(&mmc_base->sysctl) & SOFTRESETALL) != 0x0) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for softresetall!\n",
+                               __func__);
+                       return TIMEOUT;
+               }
+       }
        writel(DTW_1_BITMODE | SDBP_PWROFF | SDVS_3V0, &mmc_base->hctl);
        writel(readl(&mmc_base->capa) | VS30_3V0SUP | VS18_1V8SUP,
                &mmc_base->capa);
@@ -116,8 +142,13 @@ static int mmc_init_setup(struct mmc *mmc)
                (ICE_STOP | DTO_15THDTO | CEN_DISABLE));
        mmc_reg_out(&mmc_base->sysctl, ICE_MASK | CLKD_MASK,
                (dsor << CLKD_OFFSET) | ICE_OSCILLATE);
-       while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY)
-               ;
+       start = get_timer(0);
+       while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for ics!\n", __func__);
+                       return TIMEOUT;
+               }
+       }
        writel(readl(&mmc_base->sysctl) | CEN_ENABLE, &mmc_base->sysctl);
 
        writel(readl(&mmc_base->hctl) | SDBP_PWRON, &mmc_base->hctl);
@@ -137,14 +168,23 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
 {
        hsmmc_t *mmc_base = (hsmmc_t *)mmc->priv;
        unsigned int flags, mmc_stat;
-       unsigned int retry = 0x100000;
+       ulong start;
 
-
-       while ((readl(&mmc_base->pstate) & DATI_MASK) == DATI_CMDDIS)
-               ;
+       start = get_timer(0);
+       while ((readl(&mmc_base->pstate) & DATI_MASK) == DATI_CMDDIS) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for cmddis!\n", __func__);
+                       return TIMEOUT;
+               }
+       }
        writel(0xFFFFFFFF, &mmc_base->stat);
-       while (readl(&mmc_base->stat))
-               ;
+       start = get_timer(0);
+       while (readl(&mmc_base->stat)) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for stat!\n", __func__);
+                       return TIMEOUT;
+               }
+       }
        /*
         * CMDREG
         * CMDIDX[13:8] : Command index
@@ -200,15 +240,14 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
        writel(cmd->cmdarg, &mmc_base->arg);
        writel((cmd->cmdidx << 24) | flags, &mmc_base->cmd);
 
+       start = get_timer(0);
        do {
                mmc_stat = readl(&mmc_base->stat);
-               retry--;
-       } while ((mmc_stat == 0) && (retry > 0));
-
-       if (retry == 0) {
-               printf("%s : timeout: No status update\n", __func__);
-               return TIMEOUT;
-       }
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s : timeout: No status update\n", __func__);
+                       return TIMEOUT;
+               }
+       } while (!mmc_stat);
 
        if ((mmc_stat & IE_CTO) != 0)
                return TIMEOUT;
@@ -253,8 +292,14 @@ static int mmc_read_data(hsmmc_t *mmc_base, char *buf, unsigned int size)
        count /= 4;
 
        while (size) {
+               ulong start = get_timer(0);
                do {
                        mmc_stat = readl(&mmc_base->stat);
+                       if (get_timer(0) - start > MAX_RETRY_MS) {
+                               printf("%s: timedout waiting for status!\n",
+                                               __func__);
+                               return TIMEOUT;
+                       }
                } while (mmc_stat == 0);
 
                if ((mmc_stat & ERRI_MASK) != 0)
@@ -298,8 +343,14 @@ static int mmc_write_data(hsmmc_t *mmc_base, const char *buf, unsigned int size)
        count /= 4;
 
        while (size) {
+               ulong start = get_timer(0);
                do {
                        mmc_stat = readl(&mmc_base->stat);
+                       if (get_timer(0) - start > MAX_RETRY_MS) {
+                               printf("%s: timedout waiting for status!\n",
+                                               __func__);
+                               return TIMEOUT;
+                       }
                } while (mmc_stat == 0);
 
                if ((mmc_stat & ERRI_MASK) != 0)
@@ -334,6 +385,7 @@ static void mmc_set_ios(struct mmc *mmc)
 {
        hsmmc_t *mmc_base = (hsmmc_t *)mmc->priv;
        unsigned int dsor = 0;
+       ulong start;
 
        /* configue bus width */
        switch (mmc->bus_width) {
@@ -372,8 +424,13 @@ static void mmc_set_ios(struct mmc *mmc)
        mmc_reg_out(&mmc_base->sysctl, ICE_MASK | CLKD_MASK,
                                (dsor << CLKD_OFFSET) | ICE_OSCILLATE);
 
-       while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY)
-               ;
+       start = get_timer(0);
+       while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
+                       printf("%s: timedout waiting for ics!\n", __func__);
+                       return;
+               }
+       }
        writel(readl(&mmc_base->sysctl) | CEN_ENABLE, &mmc_base->sysctl);
 }
 
index cbf6f156b459732d0f37429733e207e661ea29c0..999431c3c0df590c7b4dfa6318bdd6b49ffffe88 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libmtd.a
+LIB    := $(obj)libmtd.o
 
 COBJS-$(CONFIG_MTD_DEVICE) += mtdcore.o
 COBJS-$(CONFIG_MTD_PARTITIONS) += mtdpart.o
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index c92c7a7a490cd8c7fa45fec2c7091ecbcdebb010..39c235ebc2641978efa45bc69b28c0d2af63e3c8 100644 (file)
@@ -1837,7 +1837,7 @@ static void flash_fixup_stm(flash_info_t *info, struct cfi_qry *qry)
  * The following code cannot be run from FLASH!
  *
  */
-ulong flash_get_size (phys_addr_t base, int banknum, unsigned long max_size)
+ulong flash_get_size (phys_addr_t base, int banknum)
 {
        flash_info_t *info = &flash_info[banknum];
        int i, j;
@@ -1849,6 +1849,7 @@ ulong flash_get_size (phys_addr_t base, int banknum, unsigned long max_size)
        int erase_region_size;
        int erase_region_count;
        struct cfi_qry qry;
+       unsigned long max_size;
 
        memset(&qry, 0, sizeof(qry));
 
@@ -1929,6 +1930,7 @@ ulong flash_get_size (phys_addr_t base, int banknum, unsigned long max_size)
                info->size = 1 << qry.dev_size;
                /* multiply the size by the number of chips */
                info->size *= size_ratio;
+               max_size = cfi_flash_bank_size(banknum);
                if (max_size && (info->size > max_size)) {
                        debug("[truncated from %ldMiB]", info->size >> 20);
                        info->size = max_size;
@@ -2043,8 +2045,7 @@ unsigned long flash_init (void)
                flash_info[i].flash_id = FLASH_UNKNOWN;
 
                if (!flash_detect_legacy(cfi_flash_bank_addr(i), i))
-                       flash_get_size(cfi_flash_bank_addr(i), i,
-                                       cfi_flash_bank_size(i));
+                       flash_get_size(cfi_flash_bank_addr(i), i);
                size += flash_info[i].size;
                if (flash_info[i].flash_id == FLASH_UNKNOWN) {
 #ifndef CONFIG_SYS_FLASH_QUIET_TEST
index 28f27da7a71aa8e1a2f4883bd8b722ba44c87156..8b598f6bfef8769964fa149fb2526a48d394f613 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libnand.a
+LIB    := $(obj)libnand.o
 
 ifdef CONFIG_CMD_NAND
 COBJS-y += nand.o
@@ -59,7 +59,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 3ca13a979c7e6d7aaa0b80ac12a9a464475b5d25..0729e0c9c02a5d00c250f4fa92f6b1eb8a49a5c4 100644 (file)
@@ -201,6 +201,8 @@ int board_nand_init(struct nand_chip *nand)
 #ifndef CONFIG_NAND_SPL
        nand->write_buf  = ndfc_write_buf;
        nand->verify_buf = ndfc_verify_buf;
+
+       chip++;
 #else
        /*
         * Setup EBC (CS0 only right now)
@@ -211,7 +213,5 @@ int board_nand_init(struct nand_chip *nand)
        mtebc(PB0AP, CONFIG_SYS_EBC_PB0AP);
 #endif
 
-       chip++;
-
        return 0;
 }
index f70daefbfe126c5910dffd444697e79b00312773..27351fb7a05f347c0312e324ca5981ab4e89cb64 100644 (file)
@@ -133,9 +133,15 @@ int board_nand_init(struct nand_chip *nand)
        writel(readl(&clk_power->clkcon) | (1 << 4), &clk_power->clkcon);
 
        /* initialize hardware */
-       twrph0 = 3;
-       twrph1 = 0;
-       tacls = 0;
+#if defined(CONFIG_S3C24XX_CUSTOM_NAND_TIMING)
+       tacls  = CONFIG_S3C24XX_TACLS;
+       twrph0 = CONFIG_S3C24XX_TWRPH0;
+       twrph1 =  CONFIG_S3C24XX_TWRPH1;
+#else
+       tacls = 4;
+       twrph0 = 8;
+       twrph1 = 8;
+#endif
 
        cfg = S3C2410_NFCONF_EN;
        cfg |= S3C2410_NFCONF_TACLS(tacls - 1);
index 2571df016385a440f6d20d442a0d969feabdc292..b984bd4a2beb11eb529c127f62fa7dfe491b209b 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libonenand.a
+LIB    := $(obj)libonenand.o
 
 COBJS-$(CONFIG_CMD_ONENAND)    := onenand_uboot.o onenand_base.o onenand_bbt.o
 COBJS-$(CONFIG_SAMSUNG_ONENAND)        += samsung.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index a082ca7d53a37d4a5f2433e88984a073a5abdcc7..3d607c06d39f5075b62091aa6d8bc4d3dc937ac7 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libspi_flash.a
+LIB    := $(obj)libspi_flash.o
 
 COBJS-$(CONFIG_SPI_FLASH)      += spi_flash.o
 COBJS-$(CONFIG_SPI_FLASH_ATMEL)        += atmel.o
@@ -42,7 +42,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8bd82c353df94d7e5d7c9e9ffea84b72567f78e3..b2e601439d88cb5a543376750ca6293b91cb5cfa 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libubi.a
+LIB    := $(obj)libubi.o
 
 ifdef CONFIG_CMD_UBI
 COBJS-y += build.o vtbl.o vmt.o upd.o kapi.o eba.o io.o wl.o scan.o crc32.o
@@ -39,7 +39,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 79eb66b26748f6b0bdcb51807e978321b6eecf04..b605eea7d2d71e8772932510158bef1ded592b69 100644 (file)
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libnet.a
+LIB    := $(obj)libnet.o
 
 COBJS-$(CONFIG_DRIVER_3C589) += 3c589.o
 COBJS-$(CONFIG_PPC4xx_EMAC) += 4xx_enet.o
 COBJS-$(CONFIG_ALTERA_TSE) += altera_tse.o
 COBJS-$(CONFIG_DRIVER_AT91EMAC) += at91_emac.o
 COBJS-$(CONFIG_DRIVER_AX88180) += ax88180.o
-COBJS-$(CONFIG_BCM570x) += bcm570x.o bcm570x_autoneg.o 5701rls.o
+COBJS-$(CONFIG_BCM570x) += bcm570x.o
+COBJS-$(CONFIG_BCM570x) += bcm570x_autoneg.o
+COBJS-$(CONFIG_BCM570x) += 5701rls.o
 COBJS-$(CONFIG_BFIN_MAC) += bfin_mac.o
 COBJS-$(CONFIG_CS8900) += cs8900.o
 COBJS-$(CONFIG_TULIP) += dc2114x.o
@@ -72,7 +74,9 @@ COBJS-$(CONFIG_DRIVER_S3C4510_ETH) += s3c4510b_eth.o
 COBJS-$(CONFIG_SH_ETHER) += sh_eth.o
 COBJS-$(CONFIG_SMC91111) += smc91111.o
 COBJS-$(CONFIG_SMC911X) += smc911x.o
-COBJS-$(CONFIG_TIGON3) += tigon3.o bcm570x_autoneg.o 5701rls.o
+COBJS-$(CONFIG_TIGON3) += tigon3.o
+COBJS-$(CONFIG_TIGON3) += bcm570x_autoneg.o
+COBJS-$(CONFIG_TIGON3) += 5701rls.o
 COBJS-$(CONFIG_DRIVER_TI_EMAC) += davinci_emac.o
 COBJS-$(CONFIG_TSEC_ENET) += tsec.o
 COBJS-$(CONFIG_TSI108_ETH) += tsi108_eth.o
@@ -80,14 +84,14 @@ COBJS-$(CONFIG_ULI526X) += uli526x.o
 COBJS-$(CONFIG_VSC7385_ENET) += vsc7385.o
 COBJS-$(CONFIG_XILINX_EMACLITE) += xilinx_emaclite.o
 
-COBJS  := $(COBJS-y)
+COBJS  := $(sort $(COBJS-y))
 SRCS   := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 18584efdd53204aede763c8f6efa0acd62c58290..5f390bddbdb481b8bb810bf86ad393a36af94e5b 100644 (file)
@@ -5018,6 +5018,7 @@ TRANSMIT - Transmit a frame
 static int
 e1000_transmit(struct eth_device *nic, volatile void *packet, int length)
 {
+       void * nv_packet = (void *)packet;
        struct e1000_hw *hw = nic->priv;
        struct e1000_tx_desc *txp;
        int i = 0;
@@ -5025,7 +5026,7 @@ e1000_transmit(struct eth_device *nic, volatile void *packet, int length)
        txp = tx_base + tx_tail;
        tx_tail = (tx_tail + 1) % 8;
 
-       txp->buffer_addr = cpu_to_le64(virt_to_bus(hw->pdev, packet));
+       txp->buffer_addr = cpu_to_le64(virt_to_bus(hw->pdev, nv_packet));
        txp->lower.data = cpu_to_le32(hw->txd_cmd | length);
        txp->upper.data = 0;
        E1000_WRITE_REG(hw, TDT, tx_tail);
@@ -5189,7 +5190,7 @@ e1000_initialize(bd_t * bis)
                        return 0;
                }
 
-               memset(nic, 0, sizeof(*dev));
+               memset(nic, 0, sizeof(*nic));
                memset(hw, 0, sizeof(*hw));
 
                hw->pdev = devno;
index 79bc4d9d26b10df0e8cf6f5448d520782ef4c318..6c322269464cf45cd489c0b1bc1b212ea6f29147 100644 (file)
@@ -24,6 +24,8 @@
  * MA 02111-1307 USA
  */
 
+/* #define DEBUG */
+
 #include <common.h>
 #include <command.h>
 #include <net.h>
@@ -33,8 +35,6 @@
 #include <ambapp.h>
 #include <asm/leon.h>
 
-/* #define DEBUG */
-
 #include "greth.h"
 
 /* Default to 3s timeout on autonegotiation */
 #define GRETH_PHY_TIMEOUT_MS 3000
 #endif
 
+/* Default to PHY adrress 0 not not specified */
+#ifdef CONFIG_SYS_GRLIB_GRETH_PHYADDR
+#define GRETH_PHY_ADR_DEFAULT CONFIG_SYS_GRLIB_GRETH_PHYADDR
+#else
+#define GRETH_PHY_ADR_DEFAULT 0
+#endif
+
 /* ByPass Cache when reading regs */
 #define GRETH_REGLOAD(addr)            SPARC_NOCACHE_READ(addr)
 /* Write-through cache ==> no bypassing needed on writes */
-#define GRETH_REGSAVE(addr,data)       (*(unsigned int *)(addr) = (data))
+#define GRETH_REGSAVE(addr,data) (*(volatile unsigned int *)(addr) = (data))
 #define GRETH_REGORIN(addr,data) GRETH_REGSAVE(addr,GRETH_REGLOAD(addr)|data)
 #define GRETH_REGANDIN(addr,data) GRETH_REGSAVE(addr,GRETH_REGLOAD(addr)&data)
 
@@ -102,12 +109,12 @@ typedef struct {
 } greth_priv;
 
 /* Read MII register 'addr' from core 'regs' */
-static int read_mii(int addr, volatile greth_regs * regs)
+static int read_mii(int phyaddr, int regaddr, volatile greth_regs * regs)
 {
        while (GRETH_REGLOAD(&regs->mdio) & GRETH_MII_BUSY) {
        }
 
-       GRETH_REGSAVE(&regs->mdio, (0 << 11) | ((addr & 0x1F) << 6) | 2);
+       GRETH_REGSAVE(&regs->mdio, ((phyaddr & 0x1F) << 11) | ((regaddr & 0x1F) << 6) | 2);
 
        while (GRETH_REGLOAD(&regs->mdio) & GRETH_MII_BUSY) {
        }
@@ -119,14 +126,14 @@ static int read_mii(int addr, volatile greth_regs * regs)
        }
 }
 
-static void write_mii(int addr, int data, volatile greth_regs * regs)
+static void write_mii(int phyaddr, int regaddr, int data, volatile greth_regs * regs)
 {
        while (GRETH_REGLOAD(&regs->mdio) & GRETH_MII_BUSY) {
        }
 
        GRETH_REGSAVE(&regs->mdio,
-                     ((data & 0xFFFF) << 16) | (0 << 11) | ((addr & 0x1F) << 6)
-                     | 1);
+                     ((data & 0xFFFF) << 16) | ((phyaddr & 0x1F) << 11) |
+                     ((regaddr & 0x1F) << 6) | 1);
 
        while (GRETH_REGLOAD(&regs->mdio) & GRETH_MII_BUSY) {
        }
@@ -142,11 +149,18 @@ int greth_init(struct eth_device *dev, bd_t * bis)
 
        greth_priv *greth = dev->priv;
        greth_regs *regs = greth->regs;
-#ifdef DEBUG
-       printf("greth_init\n");
-#endif
 
-       GRETH_REGSAVE(&regs->control, 0);
+       debug("greth_init\n");
+
+       /* Reset core */
+       GRETH_REGSAVE(&regs->control, (GRETH_RESET | (greth->gb << 8) |
+               (greth->sp << 7) | (greth->fd << 4)));
+
+       /* Wait for Reset to complete */
+       while ( GRETH_REGLOAD(&regs->control) & GRETH_RESET) ;
+
+       GRETH_REGSAVE(&regs->control,
+               ((greth->gb << 8) | (greth->sp << 7) | (greth->fd << 4)));
 
        if (!greth->rxbd_base) {
 
@@ -154,7 +168,7 @@ int greth_init(struct eth_device *dev, bd_t * bis)
                greth->rxbd_base = (greth_bd *)
                    memalign(0x1000, GRETH_RXBD_CNT * sizeof(greth_bd));
                greth->txbd_base = (greth_bd *)
-                   memalign(0x1000, GRETH_RXBD_CNT * sizeof(greth_bd));
+                   memalign(0x1000, GRETH_TXBD_CNT * sizeof(greth_bd));
 
                /* allocate buffers to all descriptors  */
                greth->rxbuf_base =
@@ -186,7 +200,7 @@ int greth_init(struct eth_device *dev, bd_t * bis)
        for (i = 0; i < GRETH_TXBD_CNT; i++) {
                greth->txbd_base[i].addr = 0;
                /* enable desciptor & set wrap bit if last descriptor */
-               if (i >= (GRETH_RXBD_CNT - 1)) {
+               if (i >= (GRETH_TXBD_CNT - 1)) {
                        greth->txbd_base[i].stat = GRETH_BD_WR;
                } else {
                        greth->txbd_base[i].stat = 0;
@@ -201,9 +215,7 @@ int greth_init(struct eth_device *dev, bd_t * bis)
 
        /* Enable Transmitter, GRETH will now scan descriptors for packets
         * to transmitt */
-#ifdef DEBUG
-       printf("greth_init: enabling receiver\n");
-#endif
+       debug("greth_init: enabling receiver\n");
        GRETH_REGORIN(&regs->control, GRETH_RXEN);
 
        return 0;
@@ -219,6 +231,26 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
        greth_regs *regs = dev->regs;
        int tmp, tmp1, tmp2, i;
        unsigned int start, timeout;
+       int phyaddr = GRETH_PHY_ADR_DEFAULT;
+
+#ifndef CONFIG_SYS_GRLIB_GRETH_PHYADDR
+       /* If BSP doesn't provide a hardcoded PHY address the driver will
+        * try to autodetect PHY address by stopping the search on the first
+        * PHY address which has REG0 implemented.
+        */
+       for (i=0; i<32; i++) {
+               tmp = read_mii(i, 0, regs);
+               if ( (tmp != 0) && (tmp != 0xffff) ) {
+                       phyaddr = i;
+                       break;
+               }
+       }
+#endif
+
+       /* Save PHY Address */
+       dev->phyaddr = phyaddr;
+
+       debug("GRETH PHY ADDRESS: %d\n", phyaddr);
 
        /* X msecs to ticks */
        timeout = usec2ticks(GRETH_PHY_TIMEOUT_MS * 1000);
@@ -230,17 +262,21 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
 
        /* get phy control register default values */
 
-       while ((tmp = read_mii(0, regs)) & 0x8000) {
-               if (get_timer(start) > timeout)
+       while ((tmp = read_mii(phyaddr, 0, regs)) & 0x8000) {
+               if (get_timer(start) > timeout) {
+                       debug("greth_init_phy: PHY read 1 failed\n");
                        return 1;       /* Fail */
+               }
        }
 
        /* reset PHY and wait for completion */
-       write_mii(0, 0x8000 | tmp, regs);
+       write_mii(phyaddr, 0, 0x8000 | tmp, regs);
 
-       while (((tmp = read_mii(0, regs))) & 0x8000) {
-               if (get_timer(start) > timeout)
+       while (((tmp = read_mii(phyaddr, 0, regs))) & 0x8000) {
+               if (get_timer(start) > timeout) {
+                       debug("greth_init_phy: PHY read 2 failed\n");
                        return 1;       /* Fail */
+               }
        }
 
        /* Check if PHY is autoneg capable and then determine operating
@@ -251,16 +287,16 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
        dev->sp = 0;
        dev->auto_neg = 0;
        if (!((tmp >> 12) & 1)) {
-               write_mii(0, 0, regs);
+               write_mii(phyaddr, 0, 0, regs);
        } else {
                /* wait for auto negotiation to complete and then check operating mode */
                dev->auto_neg = 1;
                i = 0;
-               while (!(((tmp = read_mii(1, regs)) >> 5) & 1)) {
+               while (!(((tmp = read_mii(phyaddr, 1, regs)) >> 5) & 1)) {
                        if (get_timer(start) > timeout) {
                                printf("Auto negotiation timed out. "
                                       "Selecting default config\n");
-                               tmp = read_mii(0, regs);
+                               tmp = read_mii(phyaddr, 0, regs);
                                dev->gb = ((tmp >> 6) & 1)
                                    && !((tmp >> 13) & 1);
                                dev->sp = !((tmp >> 6) & 1)
@@ -270,8 +306,8 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
                        }
                }
                if ((tmp >> 8) & 1) {
-                       tmp1 = read_mii(9, regs);
-                       tmp2 = read_mii(10, regs);
+                       tmp1 = read_mii(phyaddr, 9, regs);
+                       tmp2 = read_mii(phyaddr, 10, regs);
                        if ((tmp1 & GRETH_MII_EXTADV_1000FD) &&
                            (tmp2 & GRETH_MII_EXTPRT_1000FD)) {
                                dev->gb = 1;
@@ -284,8 +320,8 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
                        }
                }
                if ((dev->gb == 0) || ((dev->gb == 1) && (dev->gbit_mac == 0))) {
-                       tmp1 = read_mii(4, regs);
-                       tmp2 = read_mii(5, regs);
+                       tmp1 = read_mii(phyaddr, 4, regs);
+                       tmp2 = read_mii(phyaddr, 5, regs);
                        if ((tmp1 & GRETH_MII_100TXFD) &&
                            (tmp2 & GRETH_MII_100TXFD)) {
                                dev->sp = 1;
@@ -302,28 +338,24 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
                        if ((dev->gb == 1) && (dev->gbit_mac == 0)) {
                                dev->gb = 0;
                                dev->fd = 0;
-                               write_mii(0, dev->sp << 13, regs);
+                               write_mii(phyaddr, 0, dev->sp << 13, regs);
                        }
                }
 
        }
       auto_neg_done:
-#ifdef DEBUG
-       printf("%s GRETH Ethermac at [0x%x] irq %d. Running \
+       debug("%s GRETH Ethermac at [0x%x] irq %d. Running \
                %d Mbps %s duplex\n", dev->gbit_mac ? "10/100/1000" : "10/100", (unsigned int)(regs), (unsigned int)(dev->irq), dev->gb ? 1000 : (dev->sp ? 100 : 10), dev->fd ? "full" : "half");
-#endif
        /* Read out PHY info if extended registers are available */
        if (tmp & 1) {
-               tmp1 = read_mii(2, regs);
-               tmp2 = read_mii(3, regs);
+               tmp1 = read_mii(phyaddr, 2, regs);
+               tmp2 = read_mii(phyaddr, 3, regs);
                tmp1 = (tmp1 << 6) | ((tmp2 >> 10) & 0x3F);
                tmp = tmp2 & 0xF;
 
                tmp2 = (tmp2 >> 4) & 0x3F;
-#ifdef DEBUG
-               printf("PHY: Vendor %x   Device %x    Revision %d\n", tmp1,
+               debug("PHY: Vendor %x   Device %x    Revision %d\n", tmp1,
                       tmp2, tmp);
-#endif
        } else {
                printf("PHY info not available\n");
        }
@@ -340,9 +372,9 @@ void greth_halt(struct eth_device *dev)
        greth_priv *greth;
        greth_regs *regs;
        int i;
-#ifdef DEBUG
-       printf("greth_halt\n");
-#endif
+
+       debug("greth_halt\n");
+
        if (!dev || !dev->priv)
                return;
 
@@ -378,9 +410,9 @@ int greth_send(struct eth_device *dev, volatile void *eth_data, int data_length)
        greth_bd *txbd;
        void *txbuf;
        unsigned int status;
-#ifdef DEBUG
-       printf("greth_send\n");
-#endif
+
+       debug("greth_send\n");
+
        /* send data, wait for data to be sent, then return */
        if (((unsigned int)eth_data & (GRETH_BUF_ALIGN - 1))
            && !greth->gbit_mac) {
@@ -389,9 +421,6 @@ int greth_send(struct eth_device *dev, volatile void *eth_data, int data_length)
                 */
                if (!greth->txbuf) {
                        greth->txbuf = malloc(GRETH_RXBUF_SIZE);
-#ifdef DEBUG
-                       printf("GRETH: allocated aligned tx-buf\n");
-#endif
                }
 
                txbuf = greth->txbuf;
@@ -457,9 +486,7 @@ int greth_recv(struct eth_device *dev)
        unsigned char *d;
        int enable = 0;
        int i;
-#ifdef DEBUG
-/*     printf("greth_recv\n"); */
-#endif
+
        /* Receive One packet only, but clear as many error packets as there are
         * available.
         */
@@ -476,10 +503,9 @@ int greth_recv(struct eth_device *dev)
                if (status & GRETH_BD_EN) {
                        goto done;
                }
-#ifdef DEBUG
-               printf("greth_recv: packet 0x%lx, 0x%lx, len: %d\n",
+
+               debug("greth_recv: packet 0x%lx, 0x%lx, len: %d\n",
                       (unsigned int)rxbd, status, status & GRETH_BD_LEN);
-#endif
 
                /* Check status for errors.
                 */
@@ -507,19 +533,18 @@ int greth_recv(struct eth_device *dev)
                        for (i = 0; i < GRETH_RXBD_CNT; i++) {
                                printf("[%d]: Stat=0x%lx, Addr=0x%lx\n", i,
                                       GRETH_REGLOAD(&greth->rxbd_base[i].stat),
-                                      GRETH_REGLOAD(&greth->rxbd_base[i].
-                                                    addr));
+                                      GRETH_REGLOAD(&greth->rxbd_base[i].addr));
                        }
                } else {
                        /* Process the incoming packet. */
                        len = status & GRETH_BD_LEN;
                        d = (char *)rxbd->addr;
-#ifdef DEBUG
-                       printf
+
+                       debug
                            ("greth_recv: new packet, length: %d. data: %x %x %x %x %x %x %x %x\n",
                             len, d[0], d[1], d[2], d[3], d[4], d[5], d[6],
                             d[7]);
-#endif
+
                        /* flush all data cache to make sure we're not reading old packet data */
                        sparc_dcache_flush_all();
 
@@ -545,7 +570,7 @@ int greth_recv(struct eth_device *dev)
                     (unsigned int)greth->rxbd_max) ? greth->
                    rxbd_base : (greth->rxbd_curr + 1);
 
-       };
+       }
 
        if (enable) {
                GRETH_REGORIN(&regs->control, GRETH_RXEN);
@@ -567,10 +592,9 @@ void greth_set_hwaddr(greth_priv * greth, unsigned char *mac)
        greth->regs->esa_msb = (mac[0] << 8) | mac[1];
        greth->regs->esa_lsb =
            (mac[2] << 24) | (mac[3] << 16) | (mac[4] << 8) | mac[5];
-#ifdef DEBUG
-       printf("GRETH: New MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n",
+
+       debug("GRETH: New MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n",
               mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
-#endif
 }
 
 int greth_initialize(bd_t * bis)
@@ -581,9 +605,9 @@ int greth_initialize(bd_t * bis)
        int i;
        char *addr_str, *end;
        unsigned char addr[6];
-#ifdef DEBUG
-       printf("Scanning for GRETH\n");
-#endif
+
+       debug("Scanning for GRETH\n");
+
        /* Find Device & IRQ via AMBA Plug&Play information */
        if (ambapp_apb_first(VENDOR_GAISLER, GAISLER_ETHMAC, &apbdev) != 1) {
                return -1;      /* GRETH not found */
@@ -596,9 +620,7 @@ int greth_initialize(bd_t * bis)
 
        greth->regs = (greth_regs *) apbdev.address;
        greth->irq = apbdev.irq;
-#ifdef DEBUG
-       printf("Found GRETH at 0x%lx, irq %d\n", greth->regs, greth->irq);
-#endif
+       debug("Found GRETH at 0x%lx, irq %d\n", greth->regs, greth->irq);
        dev->priv = (void *)greth;
        dev->iobase = (unsigned int)greth->regs;
        dev->init = greth_init;
@@ -622,14 +644,15 @@ int greth_initialize(bd_t * bis)
 
        /* Make descriptor string */
        if (greth->gbit_mac) {
-               sprintf(dev->name, "GRETH 10/100/GB");
+               sprintf(dev->name, "GRETH_10/100/GB");
        } else {
-               sprintf(dev->name, "GRETH 10/100");
+               sprintf(dev->name, "GRETH_10/100");
        }
 
        /* initiate PHY, select speed/duplex depending on connected PHY */
        if (greth_init_phy(greth, bis)) {
                /* Failed to init PHY (timedout) */
+               debug("GRETH[0x%08x]: Failed to init PHY\n", greth->regs);
                return -1;
        }
 
@@ -658,5 +681,6 @@ int greth_initialize(bd_t * bis)
        /* set and remember MAC address */
        greth_set_hwaddr(greth, addr);
 
+       debug("GRETH[0x%08x]: Initialized successfully\n", greth->regs);
        return 0;
 }
index 3b92614ac74436e4162c14597e45074dd14b9c4a..bba890189a2c7bfdc1ba8afcfc104f3c99b1a5f2 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libphy.a
+LIB    := $(obj)libphy.o
 
 COBJS-$(CONFIG_BITBANGMII) += miiphybb.o
 COBJS-$(CONFIG_MV88E61XX_SWITCH) += mv88e61xx.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0c4fa802a3bfb60acad2330205d037b2b599cb58..ee0c64d1354bcb771e184d87712fab8875853234 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libpci.a
+LIB    := $(obj)libpci.o
 
 COBJS-$(CONFIG_FSL_PCI_INIT) += fsl_pci_init.o
 COBJS-$(CONFIG_PCI) += pci.o pci_auto.o pci_indirect.o
@@ -41,7 +41,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 627e8a07929c7bf2ff3ec26a5036068cf79d8d2b..c568bf9bc7d8aad02d3c387db55fa371219612d6 100644 (file)
@@ -94,7 +94,8 @@ unsigned int __get_pci_config_dword (u32 addr)
                             ".section __ex_table,\"a\"\n"
                             "       .align 2\n"
                             "       .long 1b,3b\n"
-                            ".text":"=r"(retval):"r"(addr));
+                            ".section .text.__get_pci_config_dword"
+                               : "=r"(retval) : "r"(addr));
 
        return (retval);
 }
index babe3ecad767e52ed9fe9a1c09c0fc0a0cfe7f87..03495087dc96815c5039fd37404a78e17c740ee4 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libpcmcia.a
+LIB    := $(obj)libpcmcia.o
 
 COBJS-$(CONFIG_I82365) += i82365.o
 COBJS-$(CONFIG_8xx) += mpc8xx_pcmcia.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index db5317383790f393337ad999b3ef0a58e801db46..c9ba1aef86c9578a80946697baf0181e26c3d8eb 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libpower.a
+LIB    := $(obj)libpower.o
 
 COBJS-$(CONFIG_TWL4030_POWER)  += twl4030.o
 COBJS-$(CONFIG_TWL6030_POWER)  += twl6030.o
@@ -35,7 +35,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 
 #########################################################################
index 18fe9ce614a64fcf5f69025f5e191a46b2255ac4..ef4bdf8b24e7c7435ba722eedcbf265133fd3bfd 100644 (file)
@@ -22,9 +22,9 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)qe.a
+LIB    := $(obj)libqe.o
 
-COBJS-$(CONFIG_OF_LIBFDT) += fdt.o
+COBJS-$(and $(CONFIG_QE),$(CONFIG_OF_LIBFDT)) += fdt.o
 COBJS-$(CONFIG_QE) += qe.o uccf.o uec.o uec_phy.o
 
 COBJS  := $(COBJS-y)
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d7c7d13cab535ccfbf6785352c2312ad00c9fcea..73e9060d572d64be28a474ddb5214bd61aa117ce 100644 (file)
@@ -74,7 +74,6 @@ error:
 
 void ft_qe_setup(void *blob)
 {
-#ifdef CONFIG_QE
        do_fixup_by_prop_u32(blob, "device_type", "qe", 4,
                "bus-frequency", gd->qe_clk, 1);
        do_fixup_by_prop_u32(blob, "device_type", "qe", 4,
@@ -88,5 +87,4 @@ void ft_qe_setup(void *blob)
        do_fixup_by_compat_u32(blob, "fsl,qe-gtm",
                "clock-frequency", gd->qe_clk / 2, 1);
        fdt_fixup_qe_firmware(blob);
-#endif
 }
index 98734db77f6f93cdfe015f8cdeef7bf42e638200..f810fca0907b33bc40846dff5bb7ae60fc556366 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 #CFLAGS += -DDEBUG
 
-LIB    = $(obj)librtc.a
+LIB    = $(obj)librtc.o
 
 COBJS-$(CONFIG_RTC_AT91SAM9_RTT) += at91sam9_rtt.o
 COBJS-$(CONFIG_RTC_BFIN) += bfin_rtc.o
@@ -71,7 +71,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 6d45a8ef5540591f94ce45fb61d7ea417889bec4..7d221fc40d970b9b3fd2d34cf06b6c89973b8af0 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libserial.a
+LIB    := $(obj)libserial.o
 
 COBJS-$(CONFIG_ALTERA_UART) += altera_uart.o
 COBJS-$(CONFIG_ALTERA_JTAG_UART) += altera_jtag_uart.o
@@ -64,7 +64,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index dfcbb8b46f48ca93e97088bfdccb6bc56b0fe3c8..117ab1988d264f166732601c4cf0474273a127ed 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libspi.a
+LIB    := $(obj)libspi.o
 
 COBJS-$(CONFIG_ALTERA_SPI) += altera_spi.o
 COBJS-$(CONFIG_ATMEL_DATAFLASH_SPI) += atmel_dataflash_spi.o
@@ -44,7 +44,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0b059f312bd355221b265a31f33a388c385b8360..6c9a987e8f620d5c1d6a9d418aaa61bb4eda5346 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libtws.a
+LIB    := $(obj)libtws.o
 
 COBJS-$(CONFIG_SOFT_TWS) += soft_tws.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8e6b26e2610d986f83e898cb07432d3ddd82b4b7..f1378173910e31f1335f9127dd479510f826955c 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libusb_gadget.a
+LIB    := $(obj)libusb_gadget.o
 
 # new USB gadget layer dependencies
 ifdef CONFIG_USB_ETHER
@@ -48,7 +48,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 0e7c9db9dcb7d132ebc469ee45f27888d98fa250..51b2494328241167be357fe7c9335d6917a6fc84 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libusb_host.a
+LIB    := $(obj)libusb_host.o
 
 # ohci
 COBJS-$(CONFIG_USB_OHCI_NEW) += ohci-hcd.o
@@ -54,7 +54,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 982f96e8b8ff242d7617389f5181abab4238b3fe..6eb38a4131f0ed83c905f21af4237b3bfbb2b5a8 100644 (file)
@@ -25,6 +25,7 @@
 #include <usb.h>
 #include <asm/io.h>
 #include <malloc.h>
+#include <watchdog.h>
 
 #include "ehci.h"
 
@@ -229,7 +230,7 @@ static int ehci_reset(void)
        int ret = 0;
 
        cmd = ehci_readl(&hcor->or_usbcmd);
-       cmd |= CMD_RESET;
+       cmd = (cmd & ~CMD_RUN) | CMD_RESET;
        ehci_writel(&hcor->or_usbcmd, cmd);
        ret = handshake((uint32_t *)&hcor->or_usbcmd, CMD_RESET, 0, 250 * 1000);
        if (ret < 0) {
@@ -452,6 +453,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
                token = hc32_to_cpu(vtd->qt_token);
                if (!(token & 0x80))
                        break;
+               WATCHDOG_RESET();
        } while (get_timer(ts) < CONFIG_SYS_HZ);
 
        /* Disable async schedule. */
@@ -491,6 +493,8 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
                        break;
                default:
                        dev->status = USB_ST_CRC_ERR;
+                       if ((token & 0x40) == 0x40)
+                               dev->status |= USB_ST_STALLED;
                        break;
                }
                dev->act_len = length - ((token >> 16) & 0x7fff);
index 946a0a07efa7ba69e796d680897bbfa4fb2981bf..11799199871ed8ab9e794f9badcc5da7912f67eb 100644 (file)
@@ -34,7 +34,6 @@ int ehci_hcd_init(void)
        hccr = (struct ehci_hccr *)(CONFIG_SYS_PPC4XX_USB_ADDR);
        hcor = (struct ehci_hcor *)((uint32_t) hccr +
                HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
-       usb_dev_init();
        return 0;
 }
 
index 7d23e06a58c24eecff08ee2783554282277e31ef..20b5503c901978cf681d26d15dbac62257ce9276 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libusb_musb.a
+LIB    := $(obj)libusb_musb.o
 
 COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o
 COBJS-$(CONFIG_MUSB_UDC) += musb_udc.o musb_core.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index f09e55fd4c30b3b38d9a2f78a40347e46fa7d8bb..55475709f5ddc456a7d3d490154dcb206c9d87a6 100644 (file)
@@ -20,7 +20,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libusb_phy.a
+LIB    := $(obj)libusb_phy.o
 
 COBJS-$(CONFIG_TWL4030_USB) += twl4030.o
 
@@ -31,7 +31,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 5b7b2612686393eda7b3cc6bcdd2bbc19e90cccb..2c53a6f3e33f2248be94041f1c8d56c19a53d848 100644 (file)
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libvideo.a
+LIB    := $(obj)libvideo.o
 
 COBJS-$(CONFIG_ATI_RADEON_FB) += ati_radeon_fb.o videomodes.o
 COBJS-$(CONFIG_ATMEL_LCD) += atmel_lcdfb.o
 COBJS-$(CONFIG_CFB_CONSOLE) += cfb_console.o
+COBJS-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_VIDEO_AMBA) += amba.o
 COBJS-$(CONFIG_VIDEO_CT69000) += ct69000.o videomodes.o
@@ -48,7 +49,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 200968de4e251d1c5399761b670fc25e657257d0..6ab4d52d9c652372215ff31a6ab2b6e93bbe12df 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    := $(obj)libwatchdog.a
+LIB    := $(obj)libwatchdog.o
 
 COBJS-$(CONFIG_AT91SAM9_WATCHDOG) += at91sam9_wdt.o
 
@@ -34,7 +34,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index c2dd514d9391cc9d65a3b74a679b54bdc1375569..c1dfdce581d8f1823754ab8089ac1b304c52eb58 100644 (file)
@@ -50,7 +50,7 @@ BIN  = $(addsuffix .bin,$(ELF))
 
 COBJS  := $(ELF:=.o)
 
-LIB    = $(obj)libstubs.a
+LIB    = $(obj)libstubs.o
 
 LIBAOBJS-$(ARCH)     :=
 LIBAOBJS-$(CPU)      :=
@@ -91,7 +91,7 @@ all:  $(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF)
 
 #########################################################################
 $(LIB):        $(obj).depend $(LIBOBJS)
-               $(AR) $(ARFLAGS) $@ $(LIBOBJS)
+       $(call cmd_link_o_target, $(LIBOBJS))
 
 $(ELF):
 $(obj)%:       $(obj)%.o $(LIB)
index 7b6cc0ad3e50a69f090db72616f9aa7ef36d700d..5f419329a595e644435435c1d62525169b3542c8 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libcramfs.a
+LIB    = $(obj)libcramfs.o
 
 AOBJS  =
 COBJS-$(CONFIG_CMD_CRAMFS) := cramfs.o
@@ -37,7 +37,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 
 #########################################################################
index 712e348395bed3108fbc75cdff78e04b169b842b..3c65d252f582cb597754e7dfd5e6032a65453236 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libext2fs.a
+LIB    = $(obj)libext2fs.o
 
 AOBJS  =
 COBJS-$(CONFIG_CMD_EXT2) := ext2fs.o dev.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b711460f3a83b9ff0846c4dd599ea9ac1cc35d22..bc459662ea3268b2d0d599a0fb7cccefa61e74d6 100644 (file)
@@ -21,7 +21,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libfat.a
+LIB    = $(obj)libfat.o
 
 AOBJS  =
 COBJS-$(CONFIG_CMD_FAT)        := fat.o file.o
@@ -32,7 +32,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 
 #########################################################################
index fce2032bddc1b1bc09bffb66e021a957ee702d13..9cd4d91742a08f52b3b5eae4e532fb1f8e63806f 100644 (file)
@@ -28,7 +28,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libfdos.a
+LIB    = $(obj)libfdos.o
 
 AOBJS  =
 COBJS-$(CONFIG_CMD_FDOS) := fat.o vfat.o dev.o fdos.o fs.o subdir.o
@@ -41,7 +41,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 
 #########################################################################
index 7c9fb41b8d64c2698eca4c5dd683cb5eebdf6a65..6db6145d2dd1bc497a46536a0f6f39970249e7c3 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libjffs2.a
+LIB    = $(obj)libjffs2.o
 
 AOBJS  =
 ifdef CONFIG_CMD_JFFS2
@@ -44,7 +44,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 
 #########################################################################
index 9cef8ee91076723a71b86089a4c60c40fb031952..495759c8ca04ccbfef1ed8fece3b7b95c9921da2 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libreiserfs.a
+LIB    = $(obj)libreiserfs.o
 
 AOBJS  =
 COBJS-$(CONFIG_CMD_REISER) := reiserfs.o dev.o mode_string.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 8328843fe12a0a52cc6246d1ca5bfa31a0ce48e2..ccffe85ee1fc4edde080a8d577780446ae31865c 100644 (file)
@@ -27,7 +27,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libubifs.a
+LIB    = $(obj)libubifs.o
 
 COBJS-$(CONFIG_CMD_UBIFS) := ubifs.o io.o super.o sb.o master.o lpt.o
 COBJS-$(CONFIG_CMD_UBIFS) += lpt_commit.o scan.o lprops.o
@@ -40,7 +40,7 @@ OBJS  := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
 all:   $(LIB) $(AOBJS)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 39e3efec802d6929ac914ec88d10afa720e74d47..63b2164d30484072a1ff010ea046acf38d9d020f 100644 (file)
@@ -824,7 +824,7 @@ out_free:
  * through mounting (error path cleanup function). So it has to make sure the
  * resource was actually allocated before freeing it.
  */
-static void ubifs_umount(struct ubifs_info *c)
+void ubifs_umount(struct ubifs_info *c)
 {
        dbg_gen("un-mounting UBI device %d, volume %d", c->vi.ubi_num,
                c->vi.vol_id);
index 1cc31a968dd92b40d737e465c0b5113942020962..5a5c739b53f5caccf1936efa7bbe93178f11494e 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 2006-2008 Nokia Corporation.
  *
- * (C) Copyright 2008-2009
+ * (C) Copyright 2008-2010
  * Stefan Roese, DENX Software Engineering, sr@denx.de.
  *
  * This program is free software; you can redistribute it and/or modify it
@@ -384,6 +384,7 @@ static unsigned long ubifs_findfile(struct super_block *sb, char *filename)
        unsigned long root_inum = 1;
        unsigned long inum;
        int symlink_count = 0; /* Don't allow symlink recursion */
+       char link_name[64];
 
        strcpy(fpath, filename);
 
@@ -420,7 +421,6 @@ static unsigned long ubifs_findfile(struct super_block *sb, char *filename)
                ui = ubifs_inode(inode);
 
                if ((inode->i_mode & S_IFMT) == S_IFLNK) {
-                       char link_name[64];
                        char buf[128];
 
                        /* We have some sort of symlink recursion, bail out */
@@ -567,7 +567,8 @@ dump:
        return -EINVAL;
 }
 
-static int do_readpage(struct ubifs_info *c, struct inode *inode, struct page *page)
+static int do_readpage(struct ubifs_info *c, struct inode *inode,
+                      struct page *page, int last_block_size)
 {
        void *addr;
        int err = 0, i;
@@ -601,17 +602,54 @@ static int do_readpage(struct ubifs_info *c, struct inode *inode, struct page *p
                        err = -ENOENT;
                        memset(addr, 0, UBIFS_BLOCK_SIZE);
                } else {
-                       ret = read_block(inode, addr, block, dn);
-                       if (ret) {
-                               err = ret;
-                               if (err != -ENOENT)
+                       /*
+                        * Reading last block? Make sure to not write beyond
+                        * the requested size in the destination buffer.
+                        */
+                       if (((block + 1) == beyond) || last_block_size) {
+                               void *buff;
+                               int dlen;
+
+                               /*
+                                * We need to buffer the data locally for the
+                                * last block. This is to not pad the
+                                * destination area to a multiple of
+                                * UBIFS_BLOCK_SIZE.
+                                */
+                               buff = malloc(UBIFS_BLOCK_SIZE);
+                               if (!buff) {
+                                       printf("%s: Error, malloc fails!\n",
+                                              __func__);
+                                       err = -ENOMEM;
                                        break;
-                       } else if (block + 1 == beyond) {
-                               int dlen = le32_to_cpu(dn->size);
-                               int ilen = i_size & (UBIFS_BLOCK_SIZE - 1);
-
-                               if (ilen && ilen < dlen)
-                                       memset(addr + ilen, 0, dlen - ilen);
+                               }
+
+                               /* Read block-size into temp buffer */
+                               ret = read_block(inode, buff, block, dn);
+                               if (ret) {
+                                       err = ret;
+                                       if (err != -ENOENT) {
+                                               free(buff);
+                                               break;
+                                       }
+                               }
+
+                               if (last_block_size)
+                                       dlen = last_block_size;
+                               else
+                                       dlen = le32_to_cpu(dn->size);
+
+                               /* Now copy required size back to dest */
+                               memcpy(addr, buff, dlen);
+
+                               free(buff);
+                       } else {
+                               ret = read_block(inode, addr, block, dn);
+                               if (ret) {
+                                       err = ret;
+                                       if (err != -ENOENT)
+                                               break;
+                               }
                        }
                }
                if (++i >= UBIFS_BLOCKS_PER_PAGE)
@@ -649,6 +687,7 @@ int ubifs_load(char *filename, u32 addr, u32 size)
        int err = 0;
        int i;
        int count;
+       int last_block_size = 0;
 
        c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY);
        /* ubifs_findfile will resolve symlinks, so we know that we get
@@ -684,7 +723,13 @@ int ubifs_load(char *filename, u32 addr, u32 size)
        page.index = 0;
        page.inode = inode;
        for (i = 0; i < count; i++) {
-               err = do_readpage(c, inode, &page);
+               /*
+                * Make sure to not read beyond the requested size
+                */
+               if (((i + 1) == count) && (size < inode->i_size))
+                       last_block_size = size - (i * PAGE_SIZE);
+
+               err = do_readpage(c, inode, &page, last_block_size);
                if (err)
                        break;
 
index a2ef5e22f67b6eade8ed593a26a53eff4b2913fa..7753cfcf3737d9bc95758bcd6592f076591ffc4b 100644 (file)
@@ -19,7 +19,7 @@
 #EXTRA_COMPILE_FLAGS = -DYAFFS_IGNORE_TAGS_ECC
 include $(TOPDIR)/config.mk
 
-LIB = $(obj)libyaffs2.a
+LIB = $(obj)libyaffs2.o
 
 COBJS-$(CONFIG_YAFFS2) := \
        yaffscfg.o yaffs_ecc.o yaffsfs.o yaffs_guts.o yaffs_packedtags1.o \
@@ -36,7 +36,7 @@ CFLAGS +=    -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_SHORT_NAMES_IN_RAM -DCONFIG_YA
 all:  $(LIB)
 
 $(LIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 .PHONY: clean distclean
 clean:
index 9e5490d1df436c9cb60131bff995bd672b1577b0..ffaab796186b4ac939a0e177e94da39f83afc098 100644 (file)
 
 #define CONFIG_SPD_EEPROM      1       /* use SPD EEPROM for setup    */
 
+/*
+ * I2C
+ */
+#define CONFIG_HARD_I2C                        /* I2C with hardware support    */
+#define CONFIG_PPC4XX_I2C              /* use PPC4xx driver            */
+#define CONFIG_SYS_I2C_SLAVE   0x7F
+#define CONFIG_SYS_I2C_SPEED   400000
+
 /*
  * Miscellaneous configurable options
  */
index b27ef64fbe4cc3db19b0da03f9347a521d269f18..be9238e5201ad4c32678b3fc0c624487ecd8d947 100644 (file)
@@ -77,7 +77,7 @@
 #define CONFIG_CMD_EEPROM
 
 #undef CONFIG_CMD_NET
-
+#undef CONFIG_CMD_NFS
 
 #undef CONFIG_WATCHDOG                 /* watchdog disabled            */
 
index ac70d158e7eb4a03887b639138ec279803e68ede..0b75a4ed2f1fae2066ca60020dde16f9d4676325 100644 (file)
@@ -76,6 +76,7 @@
 #define CONFIG_PPCHAMELEONEVB  1       /* ...on a PPChameleonEVB board */
 
 #define        CONFIG_SYS_TEXT_BASE    0xFFFB0000      /* Reserve 320 kB for Monitor */
+#define CONFIG_SYS_LDSCRIPT    "board/dave/PPChameleonEVB/u-boot.lds"
 
 #define CONFIG_BOARD_EARLY_INIT_F 1    /* call board_early_init_f()    */
 #define CONFIG_MISC_INIT_R     1       /* call misc_init_r()           */
index 99ace67a2f3fa07957aa462f6efbee435c3abc1e..afe8d6ef2c74702ee58c7f5e232ce243b256ce0d 100644 (file)
@@ -78,7 +78,7 @@
 #define CONFIG_CMD_EEPROM
 
 #undef CONFIG_CMD_NET
-
+#undef CONFIG_CMD_NFS
 
 #undef CONFIG_WATCHDOG                 /* watchdog disabled            */
 
index ecdf93ffc0742d2d411f403ccdcdedb4bc300f4a..f6e265281e6e2e4ea6bb42991819d0d738e2f298 100644 (file)
@@ -65,6 +65,7 @@
 #define CONFIG_CMD_EEPROM
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 
 #undef CONFIG_WATCHDOG                 /* watchdog disabled            */
 
diff --git a/include/configs/ERIC.h b/include/configs/ERIC.h
deleted file mode 100644 (file)
index 8a0f850..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * (C) Copyright 2001
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * board/config.h - configuration options, board specific
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/*
- * High Level Configuration Options
- * (easy to change)
- */
-
-#define CONFIG_405GP           1       /* This is a PPC405 CPU         */
-#define CONFIG_4xx             1       /* ...member of PPC4xx family   */
-#define CONFIG_ERIC            1       /* ...on a ERIC board   */
-
-#define        CONFIG_SYS_TEXT_BASE    0xFFFC0000
-
-#define        CONFIG_BOARD_EARLY_INIT_F 1     /* run board_early_init_f() */
-
-#define CONFIG_SYS_CLK_FREQ    33333333 /* external frequency to pll   */
-
-#if 1
-#define CONFIG_ENV_IS_IN_FLASH 1       /* use FLASH for environment vars       */
-#endif
-#if 0
-#define CONFIG_ENV_IS_IN_NVRAM 1       /* use NVRAM for environment vars       */
-#endif
-#if 0
-#define CONFIG_ENV_IS_IN_EEPROM        1       /* use I2C RTC X1240 for environment vars */
-#define CONFIG_ENV_OFFSET              0x000   /* environment starts at the beginning of the EEPROM */
-#define CONFIG_ENV_SIZE                0x800   /* 2048 bytes may be used for env vars */
-#endif                                 /* total size of a X1240 is 2048 bytes */
-
-#define CONFIG_HARD_I2C                1       /* I2C with hardware support */
-#define CONFIG_PPC4XX_I2C              /* use PPC4xx driver            */
-#define CONFIG_SYS_I2C_SPEED           400000  /* I2C speed and slave address */
-#define CONFIG_SYS_I2C_SLAVE           0x7F
-
-#define CONFIG_SYS_I2C_EEPROM_ADDR     0x57    /* X1240 has two I2C slave addresses, one for EEPROM */
-#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2       /* address length for the eeprom */
-#define CONFIG_I2C_RTC         1       /* we have a Xicor X1240 RTC */
-#define CONFIG_SYS_I2C_RTC_ADDR        0x6F    /*                                and one for RTC */
-
-#ifdef CONFIG_ENV_IS_IN_FLASH
-#undef CONFIG_ENV_IS_IN_NVRAM
-#undef CONFIG_ENV_IS_IN_EEPROM
-#else
-#ifdef CONFIG_ENV_IS_IN_NVRAM
-#undef CONFIG_ENV_IS_IN_FLASH
-#undef CONFIG_ENV_IS_IN_EEPROM
-#else
-#ifdef CONFIG_ENV_IS_IN_EEPROM
-#undef CONFIG_ENV_IS_IN_NVRAM
-#undef CONFIG_ENV_IS_IN_FLASH
-#endif
-#endif
-#endif
-
-#define CONFIG_BAUDRATE                115200
-#define CONFIG_BOOTDELAY       3       /* autoboot after 3 seconds     */
-
-#if 1
-#define CONFIG_BOOTCOMMAND     "bootm ffc00000" /* autoboot command    */
-#else
-#define CONFIG_BOOTCOMMAND     "bootp" /* autoboot command             */
-#endif
-
-#define CONFIG_BOOTARGS                "console=ttyS0,115200 root=/dev/nfs "   \
-                               "nfsroot=192.168.1.2:/eric_root_devel " \
-                               "ip=192.168.1.22:192.168.1.2"
-
-#define CONFIG_LOADS_ECHO      1       /* echo on for serial download  */
-#define CONFIG_SYS_LOADS_BAUD_CHANGE   1       /* allow baudrate change        */
-
-#define CONFIG_PPC4xx_EMAC
-#define CONFIG_MII             1       /* MII PHY management           */
-#define CONFIG_PHY_ADDR                1       /* PHY address                  */
-#define CONFIG_NET_MULTI
-
-
-/*
- * BOOTP options
- */
-#define CONFIG_BOOTP_BOOTFILESIZE
-#define CONFIG_BOOTP_BOOTPATH
-#define CONFIG_BOOTP_GATEWAY
-#define CONFIG_BOOTP_HOSTNAME
-
-
-/*
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-
-#define CONFIG_CMD_PCI
-#define CONFIG_CMD_IRQ
-#define CONFIG_CMD_SAVEENV
-#define CONFIG_CMD_FLASH
-
-
-#undef CONFIG_WATCHDOG                 /* watchdog disabled            */
-
-/*
- * Miscellaneous configurable options
- */
-#undef CONFIG_SYS_LONGHELP                     /* undef to save memory         */
-#define CONFIG_SYS_PROMPT      "=> "           /* Monitor Command Prompt       */
-#if defined(CONFIG_CMD_KGDB)
-#define CONFIG_SYS_CBSIZE      1024            /* Console I/O Buffer Size      */
-#else
-#define CONFIG_SYS_CBSIZE      256             /* Console I/O Buffer Size      */
-#endif
-#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
-#define CONFIG_SYS_MAXARGS     16              /* max number of command args   */
-#define CONFIG_SYS_BARGSIZE    CONFIG_SYS_CBSIZE       /* Boot Argument Buffer Size    */
-
-#define CONFIG_SYS_MEMTEST_START       0x0400000       /* memtest works on     */
-#define CONFIG_SYS_MEMTEST_END         0x0C00000       /* 4 ... 12 MB in DRAM  */
-
-#define CONFIG_CONS_INDEX      1
-#define CONFIG_SYS_NS16550
-#define CONFIG_SYS_NS16550_SERIAL
-#define CONFIG_SYS_NS16550_REG_SIZE    1
-#define CONFIG_SYS_NS16550_CLK         get_serial_clock()
-
-#define         CONFIG_SYS_EXT_SERIAL_CLOCK     14318180
-
-/* The following table includes the supported baudrates */
-#define CONFIG_SYS_BAUDRATE_TABLE      \
-       { 300, 600, 1200, 2400, 4800, 9600, 19200, 38400,     \
-        57600, 115200, 230400, 460800, 921600 }
-
-#define CONFIG_SYS_LOAD_ADDR           0x100000        /* default load address */
-#define CONFIG_SYS_EXTBDINFO           1       /* To use extended board_into (bd_t) */
-
-#define CONFIG_SYS_HZ          1000            /* decrementer freq: 1 ms ticks */
-
-/*-----------------------------------------------------------------------
- * PCI stuff
- *-----------------------------------------------------------------------
- */
-#define PCI_HOST_ADAPTER 0              /* configure ar pci adapter     */
-#define PCI_HOST_FORCE  1               /* configure as pci host        */
-#define PCI_HOST_AUTO   2               /* detected via arbiter enable  */
-
-#define CONFIG_PCI                     /* include pci support          */
-#define CONFIG_PCI_HOST        PCI_HOST_FORCE  /* select pci host function     */
-#undef  CONFIG_PCI_PNP                 /* no pci plug-and-play         */
-                                       /* resource configuration       */
-
-#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1743  /* PCI Vendor ID: Peppercon AG  */
-#define CONFIG_SYS_PCI_SUBSYS_DEVICEID 0x0405  /* PCI Device ID: 405GP         */
-#define CONFIG_SYS_PCI_PTM1LA  0xFFFC0000      /* point to flash               */
-#define CONFIG_SYS_PCI_PTM1MS  0xFFFFF001      /* 4kB, enable hard-wired to 1  */
-#define CONFIG_SYS_PCI_PTM1PCI 0x00000000      /* Host: use this pci address   */
-#define CONFIG_SYS_PCI_PTM2LA  0x00000000      /* disabled                     */
-#define CONFIG_SYS_PCI_PTM2MS  0x00000000      /* disabled                     */
-#define CONFIG_SYS_PCI_PTM2PCI 0x04000000      /* Host: use this pci address   */
-
-/*-----------------------------------------------------------------------
- * External peripheral base address
- *-----------------------------------------------------------------------
- */
-/*     Bank 0 - Flash/SRAM            0xFF000000 16MB  16 Bit */
-/*     Bank 1 - NVRAM/RTC             0xF0000000  1MB   8 Bit */
-/*     Bank 2 - A/D converter         0xF0100000  1MB   8 Bit */
-/*     Bank 3 - Ethernet PHY Reset    0xF0200000  1MB   8 Bit */
-/*     Bank 4 - PC-MIP PRSNT1#        0xF0300000  1MB   8 Bit */
-/*     Bank 5 - PC-MIP PRSNT2#        0xF0400000  1MB   8 Bit */
-/*     Bank 6 - CPU LED0              0xF0500000  1MB   8 Bit */
-/*     Bank 7 - CPU LED1              0xF0600000  1MB   8 Bit */
-
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 0 (Flash) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS0_AP 0x9B015480
-#define CS0_CR 0xFF87A000 /*  BAS=0xFF8,BS=(8MB),BU=0x3(R/W), BW=(16 bits) */
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 1 (NVRAM/RTC) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS1_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS1_CR 0xF0018000 /* BAS=0xF00,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
- /* ----------------------------------------------------------------------- */
- /*  Memory Bank 2 (A/D converter) initialization */
- /* ----------------------------------------------------------------------- */
-#define CS2_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS2_CR 0xF0118000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 3 (Ethernet PHY Reset) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS3_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS3_CR 0xF0218000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 4 (PC-MIP PRSNT1#) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS4_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS4_CR 0xF0318000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 5 (PC-MIP PRSNT2#) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS5_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS5_CR 0xF0418000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 6 (CPU LED0) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS6_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS6_CR 0xF0518000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
-/* ----------------------------------------------------------------------- */
-/*  Memory Bank 7 (CPU LED1) initialization */
-/* ----------------------------------------------------------------------- */
-#define CS7_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
-#define CS7_CR 0xF0618000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
-
-#define CONFIG_SYS_NVRAM_REG_BASE_ADDR  0xF0000000
-#define CONFIG_SYS_RTC_REG_BASE_ADDR    (0xF0000000 + 0x7F8)
-#define CONFIG_SYS_ADC_REG_BASE_ADDR    0xF0100000
-#define CONFIG_SYS_PHYRES_REG_BASE_ADDR 0xF0200000
-#define CONFIG_SYS_PRSNT1_REG_BASE_ADDR 0xF0300000
-#define CONFIG_SYS_PRSNT2_REG_BASE_ADDR 0xF0400000
-#define CONFIG_SYS_LED0_REG_BASE_ADDR   0xF0500000
-#define CONFIG_SYS_LED1_REG_BASE_ADDR   0xF0600000
-
-
-/*  SDRAM CONFIG */
-#define CONFIG_SYS_SDRAM_MANUALLY    1
-#define CONFIG_SYS_SDRAM_SINGLE_BANK 1
-
-#ifdef CONFIG_SYS_SDRAM_MANUALLY
-/*-----------------------------------------------------------------------
- * Set MB0CF for bank 0. (0-32MB) Address Mode 4 since 12x8(2)
- *----------------------------------------------------------------------*/
-#define MB0CF  0x00062001 /*  32MB @ 0 */
-/*-----------------------------------------------------------------------
- * Set MB1CF for bank 1. (32MB-64MB) Address Mode 4 since 12x8(2)
- *----------------------------------------------------------------------*/
-#ifdef CONFIG_SYS_SDRAM_SINGLE_BANK
-#define MB1CF  0x0 /*  0MB @ 32MB */
-#else
-#define MB1CF  0x02062001 /*  32MB @ 32MB */
-#endif
-/*-----------------------------------------------------------------------
- * Set MB2CF for bank 2. off
- *----------------------------------------------------------------------*/
-#define MB2CF  0x0 /*  0MB */
-/*-----------------------------------------------------------------------
- * Set MB3CF for bank 3. off
- *----------------------------------------------------------------------*/
-#define MB3CF  0x0 /*  0MB */
-
-#define SDTR_100    0x0086400D
-#define RTR_100     0x05F0
-#define SDTR_66     0x00854006 /* orig U-Boot-wallnut says 0x00854006 */
-#define RTR_66      0x03f8
-
-#endif   /* CONFIG_SYS_SDRAM_MANUALLY */
-
-
-/*-----------------------------------------------------------------------
- * Start addresses for the final memory configuration
- * (Set up by the startup code)
- * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0
- */
-#define CONFIG_SYS_SDRAM_BASE          0x00000000
-#define CONFIG_SYS_SDRAM_SIZE          32
-#define CONFIG_SYS_FLASH_BASE          0xFF800000      /* 8 MByte Flash */
-#define CONFIG_SYS_MONITOR_BASE        0xFFFE0000      /* last 128kByte within Flash */
-/*#define CONFIG_SYS_MONITOR_LEN               (192 * 1024)*/  /* Reserve 196 kB for Monitor   */
-#define CONFIG_SYS_MONITOR_LEN         (128 * 1024)    /* Reserve 128 kB for Monitor   */
-#define CONFIG_SYS_MALLOC_LEN          (128 * 1024)    /* Reserve 128 kB for malloc()  */
-
-/*
- * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
- * the maximum mapped by the Linux kernel during initialization.
- */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)       /* Initial Memory map for Linux */
-/*-----------------------------------------------------------------------
- * FLASH organization
- */
-#define CONFIG_SYS_MAX_FLASH_BANKS     1       /* max number of memory banks           */
-#define CONFIG_SYS_MAX_FLASH_SECT      64      /* max number of sectors on one chip    */
-#define CONFIG_SYS_FLASH_16BIT         1       /* Rom 16 bit data bus                  */
-
-#define CONFIG_SYS_FLASH_ERASE_TOUT    120000  /* Timeout for Flash Erase (in ms)      */
-#define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Timeout for Flash Write (in ms)      */
-
-/* BEG ENVIRONNEMENT FLASH */
-#ifdef CONFIG_ENV_IS_IN_FLASH
-#define CONFIG_ENV_SECT_SIZE       (128*1024)
-
-#if 0  /* force ENV to be NOT embedded */
-#define CONFIG_ENV_ADDR            0xfffa0000
-#else  /* force ENV to be embedded */
-#define        CONFIG_ENV_SIZE         (2 * 1024) /* Total Size of Environment Sector 2k */
-#define CONFIG_ENV_ADDR            (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN - CONFIG_ENV_SIZE - 0x10) /* let space for reset vector */
-/* #define CONFIG_ENV_ADDR            (CONFIG_SYS_MONITOR_BASE)*/
-#define CONFIG_ENV_OFFSET          (CONFIG_ENV_ADDR - CONFIG_SYS_FLASH_BASE)
-#endif
-
-#endif
-/* END ENVIRONNEMENT FLASH */
-/*-----------------------------------------------------------------------
- * NVRAM organization
- */
-#define CONFIG_SYS_NVRAM_BASE_ADDR     CONFIG_SYS_NVRAM_REG_BASE_ADDR  /* NVRAM base address   */
-#define CONFIG_SYS_NVRAM_SIZE          0x7F8           /* NVRAM size 2kByte - 8 Byte for RTC */
-
-#ifdef CONFIG_ENV_IS_IN_NVRAM
-#define CONFIG_ENV_SIZE                0x7F8           /* Size of Environment vars     */
-#define CONFIG_ENV_ADDR                \
-       (CONFIG_SYS_NVRAM_BASE_ADDR+CONFIG_SYS_NVRAM_SIZE-CONFIG_ENV_SIZE)      /* Env  */
-#endif
-
-/*
- * Init Memory Controller:
- *
- * BR0/1 and OR0/1 (FLASH)
- */
-
-#define FLASH_BASE0_PRELIM     0xFF800000      /* FLASH bank #0 8MB    */
-#define FLASH_BASE1_PRELIM     0               /* FLASH bank #1        */
-
-
-/* Configuration Port location */
-/*  #define CONFIG_PORT_ADDR   0xF0000500 */
-
-/*-----------------------------------------------------------------------
- * Definitions for initial stack pointer and data area (in DPRAM)
- */
-#define CONFIG_SYS_INIT_RAM_ADDR       0x00df0000  /* inside of SDRAM                 */
-#define CONFIG_SYS_INIT_RAM_SIZE       0x0f00  /* Size of used area in RAM            */
-#define CONFIG_SYS_GBL_DATA_OFFSET     (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
-#define CONFIG_SYS_INIT_SP_OFFSET      CONFIG_SYS_GBL_DATA_OFFSET
-
-/*-----------------------------------------------------------------------
- * Definitions for Serial Presence Detect EEPROM address
- * (to get SDRAM settings)
- */
-#define SPD_EEPROM_ADDRESS      0x50
-
-#if defined(CONFIG_CMD_KGDB)
-#define CONFIG_KGDB_BAUDRATE   230400  /* speed to run kgdb serial port */
-#define CONFIG_KGDB_SER_INDEX  2       /* which serial port to use */
-#endif
-#endif /* __CONFIG_H */
index 3fda551a0bd9ed35c43f8572f250612150116982..9a68b1ca46f7996a46eeccdafb80de33eaa4e9a9 100644 (file)
@@ -43,6 +43,7 @@
 #define CONFIG_SYS_GT_6426x        GT_64260 /* with a 64260 system controller */
 
 #define        CONFIG_SYS_TEXT_BASE    0xfff00000
+#define        CONFIG_SYS_LDSCRIPT     "board/evb64260/u-boot.lds"
 
 #define CONFIG_BAUDRATE                38400   /* console baudrate = 38400     */
 
index c684cb847886f6736a76a36a2f85310459c53895..44ae48d60befe5be0d3d26131c6413419c6f8b36 100644 (file)
  */
 
 
-#define CONFIG_WINBOND_83C553  1       /*has a winbond bridge                  */
+/* #define CONFIG_WINBOND_83C553       1       / *has a winbond bridge                 */
 #define CONFIG_SYS_USE_WINBOND_IDE     0       /*use winbond 83c553 internal IDE ctrlr */
 #define CONFIG_SYS_WINBOND_ISA_CFG_ADDR    0x80005800  /*pci-isa bridge config addr    */
 #define CONFIG_SYS_WINBOND_IDE_CFG_ADDR    0x80005900  /*ide config addr               */
index ed783876efbbefc6fed17a1815475222634cbf86..1e96b9e10e2ece436df65e758d7b8626d3f21164 100644 (file)
@@ -88,6 +88,7 @@
 #define CONFIG_CMD_JFFS2
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #undef CONFIG_CMD_RTC
 #undef CONFIG_CMD_PCI
 #undef CONFIG_CMD_I2C
 
 #define CONFIG_SPD_EEPROM      1       /* use SPD EEPROM for setup    */
 
+/*
+ * I2C
+ */
+#define CONFIG_HARD_I2C                        /* I2C with hardware support    */
+#define CONFIG_PPC4XX_I2C              /* use PPC4xx driver            */
+#define CONFIG_SYS_I2C_SLAVE   0x7F
+#define CONFIG_SYS_I2C_SPEED   400000
+
 /*
  * Miscellaneous configurable options
  */
index 1201133e2b0bf06a8c03d5702799c739d7a406d4..92c54d0ec1e0400924b121026a70a57d54187524 100644 (file)
 #define CONFIG_MPC8313         1
 #define CONFIG_MPC8313ERDB     1
 
+#define CONFIG_SYS_NAND_U_BOOT_SIZE  (512 << 10)
+#define CONFIG_SYS_NAND_U_BOOT_DST   0x00100000
+#define CONFIG_SYS_NAND_U_BOOT_START 0x00100100
+#define CONFIG_SYS_NAND_U_BOOT_OFFS  16384
+#define CONFIG_SYS_NAND_U_BOOT_RELOC 0x00010000
+#define CONFIG_SYS_NAND_U_BOOT_RELOC_SP (CONFIG_SYS_NAND_U_BOOT_RELOC + 0x10000)
+
+#ifdef CONFIG_NAND_U_BOOT
+#define CONFIG_SYS_TEXT_BASE   0x00100000 /* CONFIG_SYS_NAND_U_BOOT_DST */
+#define CONFIG_SYS_TEXT_BASE_SPL 0xfff00000
+#ifdef CONFIG_NAND_SPL
+#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE_SPL /* start of monitor */
+#endif /* CONFIG_NAND_SPL */
+#endif /* CONFIG_NAND_U_BOOT */
+
 #ifndef CONFIG_SYS_TEXT_BASE
 #define CONFIG_SYS_TEXT_BASE   0xFE000000
 #endif
 
+#ifndef CONFIG_SYS_MONITOR_BASE
+#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE    /* start of monitor */
+#endif
+
 #define CONFIG_PCI
 #define CONFIG_FSL_ELBC 1
 
 #define CONFIG_SYS_FLASH_ERASE_TOUT    60000   /* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Flash Write Timeout (ms) */
 
-#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE    /* start of monitor */
-
 #if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE) && !defined(CONFIG_NAND_SPL)
 #define CONFIG_SYS_RAMBOOT
 #endif
 #define CONFIG_NAND_FSL_ELBC 1
 #define CONFIG_SYS_NAND_BLOCK_SIZE 16384
 
-#define CONFIG_SYS_NAND_U_BOOT_SIZE  (512 << 10)
-#define CONFIG_SYS_NAND_U_BOOT_DST   0x00100000
-#define CONFIG_SYS_NAND_U_BOOT_START 0x00100100
-#define CONFIG_SYS_NAND_U_BOOT_OFFS  16384
-#define CONFIG_SYS_NAND_U_BOOT_RELOC 0x00010000
-#define CONFIG_SYS_NAND_U_BOOT_RELOC_SP (CONFIG_SYS_NAND_U_BOOT_RELOC + 0x10000)
 
 #define CONFIG_SYS_NAND_BR_PRELIM      ( CONFIG_SYS_NAND_BASE \
                                | (2<<BR_DECC_SHIFT)    /* Use HW ECC */ \
index 6476c4c430459a9b6980751be2024d2481415d6c..a0cfd000f23727f649f8f7b405bae28f4d34ff36 100644 (file)
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#ifdef CONFIG_NAND
-#define CONFIG_NAND_U_BOOT             1
-#define CONFIG_SYS_TEXT_BASE   0x00100000
-#endif
+#define CONFIG_SYS_NAND_U_BOOT_SIZE  (512 << 10)
+#define CONFIG_SYS_NAND_U_BOOT_DST   0x00100000
+#define CONFIG_SYS_NAND_U_BOOT_START 0x00100100
+#define CONFIG_SYS_NAND_U_BOOT_OFFS  16384
+#define CONFIG_SYS_NAND_U_BOOT_RELOC 0x00010000
+
+#ifdef CONFIG_NAND_U_BOOT
+#define CONFIG_SYS_TEXT_BASE   0x00100000 /* CONFIG_SYS_NAND_U_BOOT_DST */
+#define CONFIG_SYS_TEXT_BASE_SPL 0xfff00000
+#ifdef CONFIG_NAND_SPL
+#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE_SPL /* start of monitor */
+#endif /* CONFIG_NAND_SPL */
+#endif /* CONFIG_NAND_U_BOOT */
 
 #ifndef CONFIG_SYS_TEXT_BASE
 #define CONFIG_SYS_TEXT_BASE   0xFE000000
 #endif
 
+#ifndef CONFIG_SYS_MONITOR_BASE
+#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE    /* start of monitor */
+#endif
+
 /*
  * High Level Configuration Options
  */
 /*
  * The reserved memory
  */
-#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE /* start of monitor */
-
 #define CONFIG_SYS_MONITOR_LEN         (384 * 1024) /* Reserve 384 kB for Mon */
 #define CONFIG_SYS_MALLOC_LEN          (512 * 1024) /* Reserved for malloc */
 
index 7b82c43dd287eb0ca91a6ac0bd93840b55c019e9..a9599405dd2e51260230f32dd06aa4d5b110b56f 100644 (file)
 /*
  * CS4 on Local Bus, to PIB
  */
-#define CONFIG_SYS_BR4_PRELIM  0xf8010801 /* CS4 base address at 0xf8010000 */
+#define CONFIG_SYS_BR4_PRELIM  0xf8008801 /* CS4 base address at 0xf8008000 */
 #define CONFIG_SYS_OR4_PRELIM  0xffffe9f7 /* size 32KB, port size 8bit, GPCM */
 
 /*
  * CS5 on Local Bus, to PIB
  */
-#define CONFIG_SYS_BR5_PRELIM  0xf8008801 /* CS5 base address at 0xf8008000 */
+#define CONFIG_SYS_BR5_PRELIM  0xf8010801 /* CS5 base address at 0xf8010000 */
 #define CONFIG_SYS_OR5_PRELIM  0xffffe9f7 /* size 32KB, port size 8bit, GPCM */
 
 /*
index 850665a041f984ca859b22ce849e79551b6253ae..5c5be0ce919e72f51811d3ef10de7c1efaac3ea6 100644 (file)
 #define CONFIG_SYS_FLASH_ERASE_TOUT    60000   /* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Flash Write Timeout (ms) */
 
-#if defined(CONFIG_SYS_SPL) || defined(CONFIG_RAMBOOT_NAND) \
-       || defined(CONFIG_RAMBOOT_SDCARD) || defined(CONFIG_RAMBOOT_SPIFLASH)
+#if defined(CONFIG_RAMBOOT_NAND) || defined(CONFIG_RAMBOOT_SDCARD) || \
+    defined(CONFIG_RAMBOOT_SPIFLASH)
 #define CONFIG_SYS_RAMBOOT
+#define CONFIG_SYS_EXTRA_ENV_RELOC
 #else
 #undef CONFIG_SYS_RAMBOOT
 #endif
index c7973b46a258a5236c443a2f5813a3083f17a743..9620fd0012d01d76764c25c872a1c59bb05a8eeb 100644 (file)
@@ -203,8 +203,9 @@ extern unsigned long get_clock_freq(void);
 #define CONFIG_SYS_FLASH_ERASE_TOUT    60000   /* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Flash Write Timeout (ms) */
 
-#if defined(CONFIG_SYS_SPL) || defined(CONFIG_RAMBOOT_NAND)
+#if defined(CONFIG_RAMBOOT_NAND)
 #define CONFIG_SYS_RAMBOOT
+#define CONFIG_SYS_EXTRA_ENV_RELOC
 #else
 #undef CONFIG_SYS_RAMBOOT
 #endif
index 692c8115e18a9453a507becef832277cf73631cc..1ee95aed289d5add41d3aef13947b54ff4266a18 100644 (file)
 
 #define CONFIG_BOARD_EARLY_INIT_R      /* call board_early_init_r function */
 
+#define CONFIG_HWCONFIG                        /* enable hwconfig */
 #define CONFIG_FSL_PIXIS       1       /* use common PIXIS code */
 #define PIXIS_BASE     0xffdf0000      /* PIXIS registers */
 #ifdef CONFIG_PHYS_64BIT
index 3aed447e17aa10c13527efddd5d073cae5fd73a9..5674636a3aa8706ed63e1a48890092dcfe0666f8 100644 (file)
@@ -44,6 +44,7 @@
 #define MVBLUE_BOARD_LYNX      2
 
 #define        CONFIG_SYS_TEXT_BASE    0xFFF00000
+#define CONFIG_SYS_LDSCRIPT    "board/mvblue/u-boot.lds"
 
 #if 0
 #define ERR_LED(code)  do { if (code) \
index 04f0f0bc53e4b43ef7fbf234b4aff5cd15235d64..88339ac0a890dcc55e6757d5b0b7f6b4b3cef723 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
 #define CONFIG_ENV_SECT_SIZE   0x10000
 
 #define        CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + 0x60000)
-#define CONFIG_ENV_OFFSET              0
 #define        CONFIG_ENV_SIZE         0x4000
 
 #define CONFIG_ENV_ADDR_REDUND (CONFIG_SYS_FLASH_BASE + 0x70000)
-#define CONFIG_ENV_OFFSET_REDUND       0
 #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
 
 /*-----------------------------------------------------------------------
index 795c0f61fe6dadf95eabbc728b588f2d93d5d879..bdc93b6f11b104688cdb6fefb04a9f5c46d27f4a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2004
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
 #define CONFIG_ENV_SECT_SIZE   0x10000
 
 #define        CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + 0x60000)
-#define CONFIG_ENV_OFFSET              0
 #define        CONFIG_ENV_SIZE         0x4000
 
 #define CONFIG_ENV_ADDR_REDUND (CONFIG_SYS_FLASH_BASE + 0x70000)
-#define CONFIG_ENV_OFFSET_REDUND       0
 #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
 
 /*-----------------------------------------------------------------------
index a92e3a6261ad091b06ffc7dbb4f02e7278edb6c4..3494b7acdfe938e8b2cb2407a1b0665ffdf373b9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
 #define CONFIG_ENV_SECT_SIZE   0x10000
 
 #define        CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + 0x60000)
-#define CONFIG_ENV_OFFSET              0
 #define        CONFIG_ENV_SIZE         0x4000
 
 #define CONFIG_ENV_ADDR_REDUND (CONFIG_SYS_FLASH_BASE + 0x70000)
-#define CONFIG_ENV_OFFSET_REDUND       0
 #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
 
 /*-----------------------------------------------------------------------
index 610f3ed299845c11b5ad3b7b52f3bd6dcf295061..a21afb7ac76973d49568716fe5f3fce7812cf457 100644 (file)
@@ -201,9 +201,10 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
 #define CONFIG_SYS_FLASH_ERASE_TOUT    60000   /* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Flash Write Timeout (ms) */
 
-#if defined(CONFIG_SYS_SPL) || defined(CONFIG_RAMBOOT_NAND) \
-       || defined(CONFIG_RAMBOOT_SDCARD) || defined(CONFIG_RAMBOOT_SPIFLASH)
+#if defined(CONFIG_RAMBOOT_NAND) || defined(CONFIG_RAMBOOT_SDCARD) || \
+    defined(CONFIG_RAMBOOT_SPIFLASH)
 #define CONFIG_SYS_RAMBOOT
+#define CONFIG_SYS_EXTRA_ENV_RELOC
 #else
 #undef CONFIG_SYS_RAMBOOT
 #endif
index a14bd0e65d322296c035e4889aa4cef22dd7007e..195925ac5cfd127158199520d8fcbbea5af02e72 100644 (file)
@@ -76,6 +76,7 @@
 #define CONFIG_PPCHAMELEONEVB  1       /* ...on a PPChameleonEVB board */
 
 #define        CONFIG_SYS_TEXT_BASE    0xFFFB0000      /* Reserve 320 kB for Monitor */
+#define CONFIG_SYS_LDSCRIPT    "board/dave/PPChameleonEVB/u-boot.lds"
 
 #define CONFIG_BOARD_EARLY_INIT_F 1    /* call board_early_init_f()    */
 #define CONFIG_MISC_INIT_R     1       /* call misc_init_r()           */
index 30a8e41e62a1ba539c1e9fa77cdd0dca497afd4e..339e02b5ee365055b68926f3eae5b53a2c5c07f2 100644 (file)
 #define CONFIG_MPC831x                 1
 #define CONFIG_MPC8313                 1
 
-#ifndef CONFIG_SYS_TEXT_BASE
-#define CONFIG_SYS_TEXT_BASE   0x00100000
+#define CONFIG_SYS_NAND_U_BOOT_SIZE    (512 << 10)
+#define CONFIG_SYS_NAND_U_BOOT_DST     0x00100000
+#define CONFIG_SYS_NAND_U_BOOT_START   0x00100100
+#define CONFIG_SYS_NAND_U_BOOT_RELOC   0x00010000
+#define CONFIG_SYS_NAND_U_BOOT_RELOC_SP (CONFIG_SYS_NAND_U_BOOT_RELOC + 0x10000)
+
+#define CONFIG_SYS_TEXT_BASE   0x00100000 /* CONFIG_SYS_NAND_U_BOOT_DST */
+#define CONFIG_SYS_TEXT_BASE_SPL 0xfff00000
+
+#ifdef CONFIG_NAND_SPL
+#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE_SPL /* start of monitor */
+#else
+#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE    /* start of monitor */
 #endif
 
 #define CONFIG_PCI
  */
 #define CONFIG_SYS_NO_FLASH
 
-#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE    /* start of monitor */
-
 #if !defined(CONFIG_NAND_SPL)
 #define CONFIG_SYS_RAMBOOT
 #endif
 #define CONFIG_CMD_NAND                1
 #define CONFIG_NAND_FSL_ELBC           1
 
-#define CONFIG_SYS_NAND_U_BOOT_SIZE    (512 << 10)
-#define CONFIG_SYS_NAND_U_BOOT_DST     0x00100000
-#define CONFIG_SYS_NAND_U_BOOT_START   0x00100100
-#define CONFIG_SYS_NAND_U_BOOT_RELOC   0x00010000
-#define CONFIG_SYS_NAND_U_BOOT_RELOC_SP (CONFIG_SYS_NAND_U_BOOT_RELOC + 0x10000)
-
 #define CONFIG_SYS_NAND_BR_PRELIM      ( CONFIG_SYS_NAND_BASE \
                                        | (2<<BR_DECC_SHIFT)    /* Use HW ECC */ \
                                        | BR_PS_8               /* Port Size = 8 bit */ \
index f98414160db5e2a483538a83e9916dada74b17ea..524a3e0690c1ff6c9fdfdb1d9f76d9e79ed941d6 100644 (file)
@@ -40,6 +40,7 @@
 #define CONFIG_SANDPOINT       1
 
 #define        CONFIG_SYS_TEXT_BASE    0xFFF00000
+#define CONFIG_SYS_LDSCRIPT    "board/sandpoint/u-boot.lds"
 
 #if 0
 #define USE_DINK32             1
  */
 
 
-#define CONFIG_WINBOND_83C553  1       /*has a winbond bridge                  */
+/* #define CONFIG_WINBOND_83C553       1       / *has a winbond bridge                 */
 #define CONFIG_SYS_USE_WINBOND_IDE     0       /*use winbond 83c553 internal IDE ctrlr */
 #define CONFIG_SYS_WINBOND_ISA_CFG_ADDR    0x80005800  /*pci-isa bridge config addr    */
 #define CONFIG_SYS_WINBOND_IDE_CFG_ADDR    0x80005900  /*ide config addr               */
index b47adcc3a9d54968787248403d5c9918b3d0a970..87aa4fdac392229599669e900c43742675f5983f 100644 (file)
@@ -40,6 +40,7 @@
 #define CONFIG_SANDPOINT       1
 
 #define        CONFIG_SYS_TEXT_BASE    0xFFF00000
+#define CONFIG_SYS_LDSCRIPT    "board/sandpoint/u-boot.lds"
 
 #if 0
 #define USE_DINK32             1
  */
 
 
-#define CONFIG_WINBOND_83C553  1       /*has a winbond bridge                  */
+/* #define CONFIG_WINBOND_83C553       1       / *has a winbond bridge                 */
 #define CONFIG_SYS_USE_WINBOND_IDE     0       /*use winbond 83c553 internal IDE ctrlr */
 #define CONFIG_SYS_WINBOND_ISA_CFG_ADDR    0x80005800  /*pci-isa bridge config addr    */
 #define CONFIG_SYS_WINBOND_IDE_CFG_ADDR    0x80005900  /*ide config addr               */
index c11fe8a3557658d3216fbd728c6aa95b1b39bc8e..c2f6b8a7b391d7e0e19563dcbc8355df4da47e08 100644 (file)
 /* use CFI flash driver */
 #define CONFIG_SYS_FLASH_CFI           1       /* Flash is CFI conformant */
 #define CONFIG_FLASH_CFI_DRIVER        1       /* Use the common driver */
+#define CONFIG_FLASH_CFI_MTD           /* with MTD support */
 #define CONFIG_SYS_FLASH_BANKS_LIST    { CONFIG_SYS_BOOTCS_START }
 #define CONFIG_SYS_MAX_FLASH_BANKS     1       /* max num of flash banks
                                           (= chip selects) */
 /* Dynamic MTD partition support */
 #define CONFIG_CMD_MTDPARTS
 #define CONFIG_MTD_DEVICE              /* needed for mtdparts commands */
-#define CONFIG_FLASH_CFI_MTD
 #define MTDIDS_DEFAULT         "nor0=TQM5200-0"
 
 #ifdef CONFIG_STK52XX
index 9a9ba8890771410f12c5e45911d362f29ee6ea70..70e8f07ba79280f561e066056e826ddb5d5fd630 100644 (file)
 #define CONFIG_DRIVER_OMAP34XX_I2C     1
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 /*
  * Board NAND Info.
  */
@@ -330,4 +331,10 @@ extern unsigned int boot_flash_sec;
 extern unsigned int boot_flash_type;
 #endif
 
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 #endif /* __CONFIG_H */
index b3ca8d23f8c715ab74ee32093e6a5f27b0526f22..3a60de0d4701b75e4cc516df9a564fdb07bdcffc 100644 (file)
@@ -49,7 +49,6 @@
 #define CONFIG_E300            1       /* E300 Family */
 #define CONFIG_MPC512X         1       /* MPC512X family */
 #define CONFIG_FSL_DIU_FB      1       /* FSL DIU */
-#define CONFIG_FSL_DIU_LOGO_BMP        1       /* Don't include FSL DIU binary bmp */
 
 #define        CONFIG_SYS_TEXT_BASE    0xFFF00000
 
index 14559f5ccca093389ccae5d8982b3958afa4da72..810023a49449b2203b1c0ff1cc0119f0be7f7963 100644 (file)
 
 #include <asm/sizes.h>
 
+/*
+ * set some initial configurations depending on configure target
+ *
+ * at91rm9200ek_config     -> boot from 0x0 in NOR Flash at CS0
+ * at91rm9200ek_ram_config -> continue booting from 0x20100000 in RAM; lowlevel
+ *                            initialisation was done by some preloader
+ */
+#ifdef CONFIG_RAMBOOT
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SYS_TEXT_BASE 0x20100000
+#else
+#define CONFIG_SYS_TEXT_BASE 0x10000000
+#endif
+
 /*
  * AT91C_XTAL_CLOCK is the frequency of external xtal in hertz
  * AT91C_MAIN_CLOCK is the frequency of PLLA output
@@ -57,6 +71,8 @@
 #define CONFIG_SETUP_MEMORY_TAGS
 #define CONFIG_INITRD_TAG
 
+#define CONFIG_AT91FAMILY
+
 /*
  * Memory Configuration
  */
 #define CONFIG_SYS_EBI_CSA_VAL 0x00000002 /* CS1=CONFIG_SYS_SDRAM */
 #define CONFIG_SYS_SDRC_CR_VAL 0x2188c155 /* set up the CONFIG_SYS_SDRAM */
 #define CONFIG_SYS_SDRAM       CONFIG_SYS_SDRAM_BASE /* address of the SDRAM */
-#define CONFIG_SYS_SDRAM1      CONFIG_SYS_SDRAM_BASE /* address of the SDRAM */
+#define CONFIG_SYS_SDRAM1      (CONFIG_SYS_SDRAM_BASE+0x80)
 #define CONFIG_SYS_SDRAM_VAL   0x00000000 /* value written to CONFIG_SYS_SDRAM */
 #define CONFIG_SYS_SDRC_MR_VAL 0x00000002 /* Precharge All */
 #define CONFIG_SYS_SDRC_MR_VAL1        0x00000004 /* refresh */
index 83056b6fd0cc5c2b626ee0cb18cfc04e8f4a615e..92491ca09d15f376d4305b7bb4c8978a28f2be22 100644 (file)
 #define CONFIG_BOOTP_SUBNETMASK
 #define CONFIG_BOOTP_GATEWAY
 
-#define CONFIG_DOS_PARTITION           1
-
 /*
  * Command line configuration.
  */
index 63e6d6e5834dbeb1b5dca713c21f9419da0bbc7b..b604b52023d07850ad627c34e8311c6dbb4a7896 100644 (file)
@@ -62,6 +62,7 @@
 #include <config_cmd_default.h>
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #undef CONFIG_CMD_ENV
 #undef CONFIG_CMD_IMLS
 #define        CONFIG_CMD_USB
diff --git a/include/configs/barco.h b/include/configs/barco.h
deleted file mode 100644 (file)
index dcba0cb..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-/********************************************************************
- *
- * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms
- *
- * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/include/configs/barco.h,v $
- * $Revision: 1.2 $
- * $Author: mleeman $
- * $Date: 2005/02/21 12:48:58 $
- *
- * Last ChangeLog Entry
- * $Log: barco.h,v $
- * Revision 1.2  2005/02/21 12:48:58  mleeman
- * update of copyright years (feedback wd)
- *
- * Revision 1.1  2005/02/14 09:29:25  mleeman
- * moved barcohydra.h to barco.h
- *
- * Revision 1.4  2005/02/09 12:56:23  mleeman
- * add generic header to track changes in sources
- *
- *
- *******************************************************************/
-
-/*
- * (C) Copyright 2001, 2002
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/* ------------------------------------------------------------------------- */
-
-/*
- * board/config.h - configuration options, board specific
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/*
- * High Level Configuration Options
- * (easy to change)
- */
-
-#define CONFIG_MPC824X         1
-#define CONFIG_MPC8245         1
-#define CONFIG_BARCOBCD_STREAMING      1
-
-#define        CONFIG_SYS_TEXT_BASE    0xFFF00000
-
-#undef USE_DINK32
-
-#define CONFIG_CONS_INDEX     3               /* set to '3' for on-chip DUART */
-#define CONFIG_BAUDRATE                9600
-#define CONFIG_DRAM_SPEED      100             /* MHz                          */
-
-#define CONFIG_BOOTARGS "mem=32M"
-
-
-/*
- * BOOTP options
- */
-#define CONFIG_BOOTP_SUBNETMASK
-#define CONFIG_BOOTP_GATEWAY
-#define CONFIG_BOOTP_HOSTNAME
-#define CONFIG_BOOTP_BOOTPATH
-#define CONFIG_BOOTP_BOOTFILESIZE
-#define CONFIG_BOOTP_DNS
-
-
-/*
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-
-#define CONFIG_CMD_ELF
-#define CONFIG_CMD_I2C
-#define CONFIG_CMD_EEPROM
-#define CONFIG_CMD_PCI
-
-#undef CONFIG_CMD_NET
-
-
-#define CONFIG_HUSH_PARSER     1 /* use "hush" command parser */
-#define CONFIG_BOOTDELAY       1
-#define CONFIG_BOOTCOMMAND     "boot_default"
-
-/*
- * Miscellaneous configurable options
- */
-#define CONFIG_SYS_LONGHELP            1               /* undef to save memory         */
-#define CONFIG_SYS_PROMPT              "=> "           /* Monitor Command Prompt       */
-#define CONFIG_SYS_CBSIZE              256             /* Console I/O Buffer Size      */
-#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)     /* Print Buffer Size    */
-#define CONFIG_SYS_MAXARGS             16              /* max number of command args   */
-#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE       /* Boot Argument Buffer Size    */
-#define CONFIG_SYS_LOAD_ADDR           0x00100000      /* default load address         */
-#define CONFIG_SYS_HZ                  1000            /* decrementer freq: 1 ms ticks */
-
-
-/*-----------------------------------------------------------------------
- * PCI stuff
- *-----------------------------------------------------------------------
- */
-#define CONFIG_PCI                             /* include pci support          */
-#undef CONFIG_PCI_PNP
-
-#define PCI_ENET0_IOADDR       0x80000000
-#define PCI_ENET0_MEMADDR      0x80000000
-#define        PCI_ENET1_IOADDR        0x81000000
-#define        PCI_ENET1_MEMADDR       0x81000000
-
-
-/*-----------------------------------------------------------------------
- * Start addresses for the final memory configuration
- * (Set up by the startup code)
- * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0
- */
-#define CONFIG_SYS_SDRAM_BASE          0x00000000
-#define CONFIG_SYS_MAX_RAM_SIZE        0x02000000
-
-#define CONFIG_LOGBUFFER
-#ifdef CONFIG_LOGBUFFER
-#define CONFIG_SYS_STDOUT_ADDR         0x1FFC000
-#define CONFIG_SYS_POST_WORD_ADDR      \
-               (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_MAX_RAM_SIZE - 4)
-#else
-#define CONFIG_SYS_STDOUT_ADDR         0x2B9000
-#endif
-
-#define CONFIG_SYS_RESET_ADDRESS       0xFFF00100
-
-#if defined (USE_DINK32)
-#define CONFIG_SYS_MONITOR_LEN         0x00030000
-#define CONFIG_SYS_MONITOR_BASE        0x00090000
-#define CONFIG_SYS_RAMBOOT             1
-#define CONFIG_SYS_INIT_RAM_ADDR       (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
-#define CONFIG_SYS_INIT_RAM_SIZE       0x10000
-#define CONFIG_SYS_GBL_DATA_OFFSET     (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
-#define CONFIG_SYS_INIT_SP_OFFSET      CONFIG_SYS_GBL_DATA_OFFSET
-#else
-#undef CONFIG_SYS_RAMBOOT
-#define CONFIG_SYS_MONITOR_LEN         0x00030000
-#define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_TEXT_BASE
-
-
-#define CONFIG_SYS_INIT_RAM_ADDR       0x40000000
-#define CONFIG_SYS_INIT_RAM_SIZE       0x1000
-#define CONFIG_SYS_GBL_DATA_OFFSET     (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
-
-#endif
-
-#define CONFIG_SYS_FLASH_BASE          0xFFF00000
-#define CONFIG_SYS_FLASH_SIZE          (8 * 1024 * 1024)       /* Unity has onboard 1MByte flash */
-#define CONFIG_ENV_IS_IN_FLASH 1
-#define CONFIG_ENV_OFFSET              0x000047A4      /* Offset of Environment Sector */
-#define CONFIG_ENV_SIZE                0x00002000      /* Total Size of Environment Sector */
-/* #define ENV_CRC             0x8BF6F24B      XXX - FIXME: gets defined automatically */
-
-#define CONFIG_SYS_MALLOC_LEN          (512 << 10)     /* Reserve 512 kB for malloc()  */
-
-#define CONFIG_SYS_MEMTEST_START       0x00000000      /* memtest works on             */
-#define CONFIG_SYS_MEMTEST_END         0x04000000      /* 0 ... 32 MB in DRAM          */
-
-#define CONFIG_SYS_EUMB_ADDR           0xFDF00000
-
-#define CONFIG_SYS_FLASH_RANGE_BASE    0xFFC00000      /* flash memory address range   */
-#define CONFIG_SYS_FLASH_RANGE_SIZE    0x00400000
-#define FLASH_BASE0_PRELIM     0xFFF00000      /* sandpoint flash              */
-#define FLASH_BASE1_PRELIM     0xFF000000      /* PMC onboard flash            */
-
-/*
- * select i2c support configuration
- *
- * Supported configurations are {none, software, hardware} drivers.
- * If the software driver is chosen, there are some additional
- * configuration items that the driver uses to drive the port pins.
- */
-#define CONFIG_HARD_I2C                1               /* To enable I2C support        */
-#undef  CONFIG_SOFT_I2C                                /* I2C bit-banged               */
-#define CONFIG_SYS_I2C_SPEED           400000          /* I2C speed and slave address  */
-#define CONFIG_SYS_I2C_SLAVE           0x7F
-
-#ifdef CONFIG_SOFT_I2C
-#error "Soft I2C is not configured properly.  Please review!"
-#define I2C_PORT               3               /* Port A=0, B=1, C=2, D=3 */
-#define I2C_ACTIVE             (iop->pdir |=  0x00010000)
-#define I2C_TRISTATE           (iop->pdir &= ~0x00010000)
-#define I2C_READ               ((iop->pdat & 0x00010000) != 0)
-#define I2C_SDA(bit)           if(bit) iop->pdat |=  0x00010000; \
-                               else    iop->pdat &= ~0x00010000
-#define I2C_SCL(bit)           if(bit) iop->pdat |=  0x00020000; \
-                               else    iop->pdat &= ~0x00020000
-#define I2C_DELAY              udelay(5)       /* 1/4 I2C clock duration */
-#endif /* CONFIG_SOFT_I2C */
-
-#define CONFIG_SYS_I2C_EEPROM_ADDR     0x57            /* EEPROM IS24C02               */
-#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1               /* Bytes of address             */
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS      3
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS  10      /* and takes up to 10 msec */
-
-#define CONFIG_SYS_BAUDRATE_TABLE      { 9600, 19200, 38400, 57600, 115200 }
-#define CONFIG_SYS_FLASH_BANKS         { FLASH_BASE0_PRELIM , FLASH_BASE1_PRELIM }
-#define CONFIG_SYS_DBUS_SIZE2          1
-
-/*-----------------------------------------------------------------------
- * Definitions for initial stack pointer and data area (in DPRAM)
- */
-
-
- /*
- * NS16550 Configuration (internal DUART)
- */
- /*
- * Low Level Configuration Settings
- * (address mappings, register initial values, etc.)
- * You should know what you are doing if you make changes here.
- */
-
-#define CONFIG_SYS_CLK_FREQ  33333333  /* external frequency to pll */
-
-#define CONFIG_SYS_ROMNAL              0x0F    /*rom/flash next access time            */
-#define CONFIG_SYS_ROMFAL              0x1E    /*rom/flash access time                 */
-
-#define CONFIG_SYS_REFINT      0x8F    /* no of clock cycles between CBR refresh cycles */
-
-/* the following are for SDRAM only*/
-#define CONFIG_SYS_BSTOPRE     0x25C   /* Burst To Precharge, sets open page interval */
-#define CONFIG_SYS_REFREC              8       /* Refresh to activate interval         */
-#define CONFIG_SYS_RDLAT               4       /* data latency from read command       */
-#define CONFIG_SYS_PRETOACT            3       /* Precharge to activate interval       */
-#define CONFIG_SYS_ACTTOPRE            5       /* Activate to Precharge interval       */
-#define CONFIG_SYS_ACTORW              2       /* Activate to R/W                      */
-#define CONFIG_SYS_SDMODE_CAS_LAT      3       /* SDMODE CAS latency                   */
-#define CONFIG_SYS_SDMODE_WRAP         0       /* SDMODE wrap type                     */
-
-#define CONFIG_SYS_REGISTERD_TYPE_BUFFER   1
-#define CONFIG_SYS_EXTROM 0
-#define CONFIG_SYS_REGDIMM 0
-
-
-/* memory bank settings*/
-/*
- * only bits 20-29 are actually used from these vales to set the
- * start/end address the upper two bits will be 0, and the lower 20
- * bits will be set to 0x00000 for a start address, or 0xfffff for an
- * end address
- */
-#define CONFIG_SYS_BANK0_START         0x00000000
-#define CONFIG_SYS_BANK0_END           0x01FFFFFF
-#define CONFIG_SYS_BANK0_ENABLE        1
-#define CONFIG_SYS_BANK1_START         0x02000000
-#define CONFIG_SYS_BANK1_END           0x02ffffff
-#define CONFIG_SYS_BANK1_ENABLE        0
-#define CONFIG_SYS_BANK2_START         0x03f00000
-#define CONFIG_SYS_BANK2_END           0x03ffffff
-#define CONFIG_SYS_BANK2_ENABLE        0
-#define CONFIG_SYS_BANK3_START         0x04000000
-#define CONFIG_SYS_BANK3_END           0x04ffffff
-#define CONFIG_SYS_BANK3_ENABLE        0
-#define CONFIG_SYS_BANK4_START         0x05000000
-#define CONFIG_SYS_BANK4_END           0x05FFFFFF
-#define CONFIG_SYS_BANK4_ENABLE        0
-#define CONFIG_SYS_BANK5_START         0x06000000
-#define CONFIG_SYS_BANK5_END           0x06FFFFFF
-#define CONFIG_SYS_BANK5_ENABLE        0
-#define CONFIG_SYS_BANK6_START         0x07000000
-#define CONFIG_SYS_BANK6_END           0x07FFFFFF
-#define CONFIG_SYS_BANK6_ENABLE        0
-#define CONFIG_SYS_BANK7_START         0x08000000
-#define CONFIG_SYS_BANK7_END           0x08FFFFFF
-#define CONFIG_SYS_BANK7_ENABLE        0
-/*
- * Memory bank enable bitmask, specifying which of the banks defined above
- are actually present. MSB is for bank #7, LSB is for bank #0.
- */
-#define CONFIG_SYS_BANK_ENABLE         0x01
-
-#define CONFIG_SYS_ODCR                0xff    /* configures line driver impedances,   */
-                                       /* see 8240 book for bit definitions    */
-#define CONFIG_SYS_PGMAX               0x32    /* how long the 8240 retains the        */
-                                       /* currently accessed page in memory    */
-                                       /* see 8240 book for details            */
-
-/* SDRAM 0 - 256MB */
-#define CONFIG_SYS_IBAT0L      (CONFIG_SYS_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
-#define CONFIG_SYS_IBAT0U      (CONFIG_SYS_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
-
-/* stack in DCACHE @ 1GB (no backing mem) */
-#if defined(USE_DINK32)
-#define CONFIG_SYS_IBAT1L      (0x40000000 | BATL_PP_00 )
-#define CONFIG_SYS_IBAT1U      (0x40000000 | BATU_BL_128K )
-#else
-#define CONFIG_SYS_IBAT1L      (CONFIG_SYS_INIT_RAM_ADDR | BATL_PP_10 | BATL_MEMCOHERENCE)
-#define CONFIG_SYS_IBAT1U      (CONFIG_SYS_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP)
-#endif
-
-/* PCI memory */
-#define CONFIG_SYS_IBAT2L      (0x80000000 | BATL_PP_10 | BATL_CACHEINHIBIT)
-#define CONFIG_SYS_IBAT2U      (0x80000000 | BATU_BL_256M | BATU_VS | BATU_VP)
-
-/* Flash, config addrs, etc */
-#define CONFIG_SYS_IBAT3L      (0xF0000000 | BATL_PP_10 | BATL_CACHEINHIBIT)
-#define CONFIG_SYS_IBAT3U      (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
-
-#define CONFIG_SYS_DBAT0L      CONFIG_SYS_IBAT0L
-#define CONFIG_SYS_DBAT0U      CONFIG_SYS_IBAT0U
-#define CONFIG_SYS_DBAT1L      CONFIG_SYS_IBAT1L
-#define CONFIG_SYS_DBAT1U      CONFIG_SYS_IBAT1U
-#define CONFIG_SYS_DBAT2L      CONFIG_SYS_IBAT2L
-#define CONFIG_SYS_DBAT2U      CONFIG_SYS_IBAT2U
-#define CONFIG_SYS_DBAT3L      CONFIG_SYS_IBAT3L
-#define CONFIG_SYS_DBAT3U      CONFIG_SYS_IBAT3U
-
-/*
- * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
- * the maximum mapped by the Linux kernel during initialization.
- */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)       /* Initial Memory map for Linux */
-/*-----------------------------------------------------------------------
- * FLASH organization
- */
-#define CONFIG_SYS_MAX_FLASH_BANKS     1       /* max number of memory banks           */
-#define CONFIG_SYS_MAX_FLASH_SECT      20      /* max number of sectors on one chip    */
-
-#define CONFIG_SYS_FLASH_ERASE_TOUT    120000  /* Timeout for Flash Erase (in ms)      */
-#define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Timeout for Flash Write (in ms)      */
-
-#define CONFIG_SYS_FLASH_CHECKSUM
-
-/*-----------------------------------------------------------------------
- * Cache Configuration
- */
-#define CONFIG_SYS_CACHELINE_SIZE      32      /* For MPC8240 CPU                      */
-#if defined(CONFIG_CMD_KGDB)
-#  define CONFIG_SYS_CACHELINE_SHIFT   5       /* log base 2 of the above value */
-#endif
-
-/* values according to the manual */
-
-#define CONFIG_DRAM_50MHZ      1
-#define CONFIG_SDRAM_50MHZ
-
-#define CONFIG_DISK_SPINUP_TIME 1000000
-
-
-#endif /* __CONFIG_H */
index 608ab9f41a4dfe8047b0cf9963b986a13301cdb5..fa72c7f10f3fcb72affbd7997a16bd3ce2dc091d 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o            (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o        (.text .text.*); \
-       arch/blackfin/cpu/serial.o           (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 03bc811036fa1eb3a56c6fb4cd4063e7aa0b7fb6..bf0f063dc010bd29ff9a1ca90a6212de7f56b865 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 730ae279b6c183e6565a32afe1259dca03ee4d4c..da4f2f2f52ef3c0eb2534845d657ab87e211d429 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 22d31508eb98a380b738fdf8ad47a31ff2b8ddb9..2d1930c3665e367a996ba1521b905ac4ab0ad030 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 04ba2101716e13d53b6b80a35c7106e0d4d3bca1..2469c6a0f2228a4e38e988c21614134200ff5765 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 1557e14f5237a219091c262507353a842044f54c..7b020e67fec91b5a38d6b796745e4b9975a36499 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
-       lib/zlib.o              (.text .text.*); \
-       board/bf561-ezkit/bf561-ezkit.o (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index df3fe48f65585102484207fbc7a7708853ee76a7..c3de96a38065807e3af86e280bc571fb8613985e 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index e5b0ecfc5e9c5c2ad1bcf5a95a7ff31a127dbe0e..e60ebf20f0a18de3849836f13ed7ca240fa3f446 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 198f3423e8ddca0a9599ff0b4ac8259d39be52f8..329e4e36012e4403f3cc69b6b92c0ba20dbb1dd9 100644 (file)
@@ -62,6 +62,7 @@
 #include <config_cmd_default.h>
 
 #undef CONFIG_CMD_NET          /* disabeled - causes compile errors */
+#undef CONFIG_CMD_NFS
 
 #define CONFIG_CMD_MEMORY
 #define CONFIG_CMD_LOADB
index d77af0defdff24fe8618d67251aa7cfbc1946f4d..2997f52a7522a72703519c4cec0a962e4e188778 100644 (file)
 #define CONFIG_CMD_KGDB
 
 #undef CONFIG_CMD_NET
-
+#undef CONFIG_CMD_NFS
 
 #ifdef DEBUG
 #define CONFIG_BOOTDELAY       -1      /* autoboot disabled            */
index 3ee4a40a3eadb61a5b8791164bc0b381b58ade48..58aa88b7b0ddf83e34b92ed69615f3e272cafff5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2010
  * Murray Jensen <Murray.Jensen@cmst.csiro.au>
  *
  * See file CREDITS for list of people who contributed to this
@@ -80,7 +80,7 @@
 #define CONFIG_CMD_I2C
 
 #undef CONFIG_CMD_NET
-
+#undef CONFIG_CMD_NFS
 
 #if 0
 #define CONFIG_BOOTDELAY       -1      /* autoboot disabled            */
index 1feada926321272f1206cf40dba86496ff147b79..bcf8ee04da17cd203606ae8c7ce9319290f4c771 100644 (file)
@@ -47,8 +47,7 @@
  * Memory Info
  */
 #define CONFIG_SYS_MALLOC_LEN  (0x10000 + 1*1024*1024) /* malloc() len */
-#define PHYS_SDRAM_1           DAVINCI_DDR_EMIF_DATA_BASE /* DDR Start */
-#define PHYS_SDRAM_1_SIZE      (64 << 20) /* SDRAM size 64MB */
+#define PHYS_SDRAM_1                   0xc0000000 /* SDRAM Start */
 #define CONFIG_SYS_MEMTEST_START       PHYS_SDRAM_1 /* memtest start addr */
 #define CONFIG_SYS_MEMTEST_END         (PHYS_SDRAM_1 + 16*1024*1024) /* 16MB test */
 #define CONFIG_NR_DRAM_BANKS   1 /* we have 1 bank of DRAM */
 #define CONFIG_SYS_ALE_MASK            0x8
 #define CONFIG_SYS_MAX_NAND_DEVICE     1 /* Max number of NAND devices */
 #define NAND_MAX_CHIPS                 1
-#define DEF_BOOTM                      ""
 #endif
 
 #ifdef CONFIG_USE_NOR
        "mtdparts=davinci_nand.1:" PART_BOOT PART_PARAMS PART_KERNEL PART_REST
 #endif
 
+#define CONFIG_MAX_RAM_BANK_SIZE (512 << 20) /* max size from SPRS586*/
+
+/* additions for new relocation code, must be added to all boards */
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_SP_ADDR                \
+       (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE)
+
 #endif /* __CONFIG_H */
index 7b04be05b9be408af3991fb99a47db2b738b7c5f..4224258a9a47b54f234f40557cabe6a9f525bf7e 100644 (file)
@@ -99,7 +99,6 @@
 #undef CONFIG_SYS_NAND_HW_ECC
 #define CONFIG_SYS_MAX_NAND_DEVICE     1 /* Max number of NAND devices */
 #define NAND_MAX_CHIPS                 1
-#define DEF_BOOTM                      ""
 #endif
 
 /*
  */
 #define LINUX_BOOT_PARAM_ADDR  (PHYS_SDRAM_1 + 0x100)
 #define CONFIG_CMDLINE_TAG
+#define CONFIG_REVISION_TAG
 #define CONFIG_SETUP_MEMORY_TAGS
 #define CONFIG_BOOTARGS                \
        "mem=32M console=ttyS2,115200n8 root=/dev/mtdblock2 rw noinitrd ip=dhcp"
index 8a6905241c74d1979ecde5448f0227998d774bfb..90f8e7ce6a3acaaf828d36b4c0f8b1fd963cc888 100644 (file)
 #define MTDPARTS_DEFAULT       \
        "mtdparts=davinci_nand.0:" PART_BOOT PART_KERNEL PART_REST
 
+#define CONFIG_MAX_RAM_BANK_SIZE       (256 << 20)     /* 256 MB */
+
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_SP_ADDR                \
+       (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE)
+
 #endif /* __CONFIG_H */
index c9530327c65f9b7d22818f8ab1edbddbb0f7411f..b44b2ea7ac618e57bc04b7c73ce8763888ab5cc2 100644 (file)
 #define MTDPARTS_DEFAULT       \
        "mtdparts=davinci_nand.0:" PART_BOOT PART_KERNEL PART_REST
 
+#define CONFIG_MAX_RAM_BANK_SIZE       (256 << 20)     /* 256 MB */
+
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_SP_ADDR                \
+       (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE)
+
 #endif /* __CONFIG_H */
index b78fe83867182a8e68fbe21fee10965b54467e7a..a36e13823d156dcc1bf1be1478059ee4f3e1e08e 100644 (file)
 #define MTDPARTS_DEFAULT       \
        "mtdparts=davinci_nand.0:" PART_BOOT PART_KERNEL PART_REST
 
+#define CONFIG_MAX_RAM_BANK_SIZE       (256 << 20)     /* 256 MB */
+
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_SP_ADDR                \
+       (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE)
+
 #endif /* __CONFIG_H */
index 186726d3a6759944e790d1ced74a95a52c416ae9..e1b1db16e19052a4e3869c0be3d17499d2c3d541 100644 (file)
 #define CONFIG_SYS_NAND_HW_ECC
 #define CONFIG_SYS_MAX_NAND_DEVICE     1       /* Max number of NAND devices */
 #define CONFIG_ENV_OFFSET              0x0     /* Block 0--not used by bootcode */
-#define DEF_BOOTM              ""
 #elif defined(CONFIG_SYS_USE_NOR)
 #ifdef CONFIG_NOR_UART_BOOT
 #define CONFIG_SKIP_LOWLEVEL_INIT      /* U-Boot is loaded by a bootloader */
index 0dc89ef41e2c2b329105c255a323ced809380843..f0eeb90e9df1cc7d585d55aeb8e5bea408a57375 100644 (file)
 #define CONFIG_SYS_NAND_HW_ECC
 #define CONFIG_SYS_MAX_NAND_DEVICE     1       /* Max number of NAND devices */
 #define CONFIG_ENV_OFFSET              0x0     /* Block 0--not used by bootcode */
-#define DEF_BOOTM              ""
 #elif defined(CONFIG_SYS_USE_NOR)
 #ifdef CONFIG_NOR_UART_BOOT
 #define CONFIG_SKIP_LOWLEVEL_INIT      /* U-Boot is loaded by a bootloader */
index fb81c64715dfc3019abda9ab0adba64013295026..d898b777a76ef920a0f9e854663305e8bbb94b3a 100644 (file)
@@ -38,6 +38,8 @@
 #define CONFIG_OMAP3430                1       /* which is in a 3430 */
 #define CONFIG_OMAP3_DEVKIT8000        1       /* working with DevKit8000 */
 
+#define        CONFIG_SYS_TEXT_BASE    0x80008000
+
 #define CONFIG_SDRC    /* The chip has SDRC controller */
 
 #include <asm/arch/cpu.h>              /* get chip and board defs */
@@ -305,4 +307,11 @@ extern unsigned int boot_flash_sec;
 extern unsigned int boot_flash_type;
 #endif
 
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR        0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE        0x800
+#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_INIT_RAM_ADDR + \
+                                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                                        GENERATED_GBL_DATA_SIZE)
+
 #endif /* __CONFIG_H */
diff --git a/include/configs/dockstar.h b/include/configs/dockstar.h
new file mode 100644 (file)
index 0000000..249f93b
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2010  Eric C. Cooper <ecc@cmu.edu>
+ *
+ * Based on sheevaplug.h originally written by
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef _CONFIG_DOCKSTAR_H
+#define _CONFIG_DOCKSTAR_H
+
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING    "\nSeagate FreeAgent DockStar"
+
+/*
+ * High Level Configuration Options (easy to change)
+ */
+#define CONFIG_FEROCEON_88FR131        1       /* CPU Core subversion */
+#define CONFIG_KIRKWOOD                1       /* SOC Family Name */
+#define CONFIG_KW88F6281       1       /* SOC Name */
+#define CONFIG_MACH_DOCKSTAR   /* Machine type */
+#define CONFIG_SKIP_LOWLEVEL_INIT      /* disable board lowlevel_init */
+
+/*
+ * Commands configuration
+ */
+#define CONFIG_SYS_NO_FLASH            /* Declare no flash (NOR/SPI) */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_NAND
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_USB
+/*
+ * mv-common.h should be defined after CMD configs since it used them
+ * to enable certain macros
+ */
+#include "mv-common.h"
+
+#undef CONFIG_SYS_PROMPT       /* previously defined in mv-common.h */
+#define CONFIG_SYS_PROMPT      "DockStar> "    /* Command Prompt */
+
+/*
+ *  Environment variables configurations
+ */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_ENV_IS_IN_NAND          1
+#define CONFIG_ENV_SECT_SIZE           0x20000 /* 128K */
+#else
+#define CONFIG_ENV_IS_NOWHERE          1       /* if env in SDRAM */
+#endif
+/*
+ * max 4k env size is enough, but in case of nand
+ * it has to be rounded to sector size
+ */
+#define CONFIG_ENV_SIZE                        0x20000 /* 128k */
+#define CONFIG_ENV_ADDR                        0x60000
+#define CONFIG_ENV_OFFSET              0x60000 /* env starts here */
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_BOOTCOMMAND \
+       "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; "     \
+       "ubi part root; " \
+       "ubifsmount root; " \
+       "ubifsload 0x800000 ${kernel}; " \
+       "ubifsload 0x1100000 ${initrd}; " \
+       "bootm 0x800000 0x1100000"
+
+#define CONFIG_MTDPARTS                "mtdparts=orion_nand:1m(uboot),-(root)\0"
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+       "console=console=ttyS0,115200\0" \
+       "mtdids=nand0=orion_nand\0" \
+       "mtdparts="CONFIG_MTDPARTS \
+       "kernel=/boot/uImage\0" \
+       "initrd=/boot/uInitrd\0" \
+       "bootargs_root=ubi.mtd=1 root=ubi0:root rootfstype=ubifs ro\0"
+
+/*
+ * Ethernet Driver configuration
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_MVGBE_PORTS     {1, 0}  /* enable port 0 only */
+#define CONFIG_PHY_BASE_ADR    0
+#endif /* CONFIG_CMD_NET */
+
+/*
+ * File system
+ */
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_JFFS2
+#define CONFIG_CMD_UBI
+#define CONFIG_CMD_UBIFS
+#define CONFIG_RBTREE
+#define CONFIG_MTD_DEVICE               /* needed for mtdparts commands */
+#define CONFIG_MTD_PARTITIONS
+#define CONFIG_CMD_MTDPARTS
+#define CONFIG_LZO
+
+#endif /* _CONFIG_DOCKSTAR_H */
index cd856ac79c3870c3c6b8d239f9372c127e012078..e2dbbb151b8ef4f8711462ae2887b9c83deb71b0 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
-       lib/zlib.o              (.text .text.*); \
-       board/ibf-dsp561/ibf-dsp561.o   (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 16d92793afbc88504f806371fd3f068ab45ce92c..c19ecc0e4b298571318689b230a5626a967538dc 100644 (file)
@@ -73,8 +73,9 @@
 #define CONFIG_ENV_OVERWRITE
 #define CONFIG_BAUDRATE                        115200
 #define CONFIG_SYS_BAUDRATE_TABLE      {4800, 9600, 19200, 38400, 57600, 115200}
+#define CONFIG_GENERIC_MMC             1
 #define CONFIG_MMC                     1
-#define CONFIG_OMAP3_MMC               1
+#define CONFIG_OMAP_HSMMC              1
 #define CONFIG_DOS_PARTITION           1
 
 /* DDR  */
 #endif /* (CONFIG_CMD_NET) */
 
 #define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
-#define CONFIG_SYS_INIT_SP_ADDR                (LOW_LEVEL_SRAM_STACK - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 
 #endif /* __CONFIG_H */
index d6fbec7b1f18abbdee05570985e59357b39131c9..1325bfa0177147cdaa2252ee4163f767fce37e74 100644 (file)
@@ -73,8 +73,9 @@
 #define CONFIG_ENV_OVERWRITE
 #define CONFIG_BAUDRATE                        115200
 #define CONFIG_SYS_BAUDRATE_TABLE      {4800, 9600, 19200, 38400, 57600, 115200}
+#define CONFIG_GENERIC_MMC             1
 #define CONFIG_MMC                     1
-#define CONFIG_OMAP3_MMC               1
+#define CONFIG_OMAP_HSMMC              1
 #define CONFIG_DOS_PARTITION           1
 
 /* DDR  */
 #define CONFIG_MTD_DEVICE
 
 #undef CONFIG_CMD_NET          /* bootp, tftpboot, rarpboot    */
+#undef CONFIG_CMD_NFS          /* nfs                          */
 #undef CONFIG_CMD_FLASH                /* flinfo, erase, protect       */
 #undef CONFIG_CMD_IMLS         /* List all found images        */
 
 #define CONFIG_SYS_MALLOC_LEN          (CONFIG_ENV_SIZE + (128 << 10))
 
 #define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
-#define CONFIG_SYS_INIT_SP_ADDR                (LOW_LEVEL_SRAM_STACK - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 
 #endif /* __CONFIG_H */
index ccc71c96c0a076a9795df5e3c5c5aba12b9ac1bc..e3bd264a80bab29e20264d2a64f93cf267890bab 100644 (file)
  * CONFIG_SYS_KWD_CONFIG should be defined in board specific header file
  */
 #ifndef CONFIG_SYS_KWD_CONFIG
-#define        CONFIG_SYS_KWD_CONFIG   $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.cfg 
+#define        CONFIG_SYS_KWD_CONFIG   $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.cfg
 #endif /* CONFIG_SYS_KWD_CONFIG */
 
-/* 
+/*
  * CONFIG_SYS_TEXT_BASE can be defined in board specific header file, if needed
  */
 #ifndef CONFIG_SYS_TEXT_BASE
index f1cdc4019eb7bfeffbaf4485ff46c5687891c6cf..b56b273875499d4332230756d147ccbde0a935db 100644 (file)
 #define CONFIG_CMD_USB
 
 #undef CONFIG_CMD_NET
-
+#undef CONFIG_CMD_NFS
 
 /*
  * Autobooting
index 6ed9e75bb467f4d5d981ca963f5836713225622b..16e2ec62ee24789904df9a7be7479e1b32640847 100644 (file)
 #define CONFIG_BOOTP_SUBNETMASK
 #define CONFIG_BOOTP_GATEWAY
 
-#define CONFIG_DOS_PARTITION           1
-
 /*
  * Command line configuration.
  */
index de0121e3e6557b0d2e3a1f7a92abdc7715d72919..0a761639ddd3803b386c66509492f360bc8109fa 100644 (file)
 #define CONFIG_KIRKWOOD_RGMII_PAD_1V8  /* Set RGMII Pad voltage to 1.8V */
 #define CONFIG_KIRKWOOD_PCIE_INIT       /* Enable PCIE Port0 for kernel */
 
-/* 
+/*
  * By default kwbimage.cfg from board specific folder is used
  * If for some board, different configuration file need to be used,
  * CONFIG_SYS_KWD_CONFIG should be defined in board specific header file
  */
 #ifndef CONFIG_SYS_KWD_CONFIG
-#define        CONFIG_SYS_KWD_CONFIG   $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.cfg 
+#define        CONFIG_SYS_KWD_CONFIG   $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.cfg
 #endif /* CONFIG_SYS_KWD_CONFIG */
 
-/* 
+/*
  * CONFIG_SYS_TEXT_BASE can be defined in board specific header file, if needed
  */
 #ifndef CONFIG_SYS_TEXT_BASE
 #define CONFIG_CONSOLE_INFO_QUIET      /* some code reduction */
 #define CONFIG_ARCH_CPU_INIT   /* call arch_cpu_init() */
 #define CONFIG_ARCH_MISC_INIT  /* call arch_misc_init() */
-#define CONFIG_BOARD_EARLY_INIT_F /* call board_init_f for early inits */ 
+#define CONFIG_BOARD_EARLY_INIT_F /* call board_init_f for early inits */
 #define CONFIG_DISPLAY_CPUINFO /* Display cpu info */
 #define CONFIG_NR_DRAM_BANKS   4
 #define CONFIG_STACKSIZE       0x00100000      /* regular stack- 1M */
index 1c9a0075b829b049ee5319998e677bfb0d44b846..56363f762b040e84864585fe7a761d3d4a120464 100644 (file)
 #define CONFIG_SYS_I2C_SLAVE           1
 #define CONFIG_SYS_I2C_BUS             0
 #define CONFIG_SYS_I2C_BUS_SELECT      1
+#define CONFIG_I2C_MULTI_BUS           1
 #define CONFIG_DRIVER_OMAP34XX_I2C     1
 
 /*
 #define PISMO1_NAND_SIZE               GPMC_SIZE_128M
 #define PISMO1_ONEN_SIZE               GPMC_SIZE_128M
 
-#define CONFIG_SYS_MAX_FLASH_SECT      520     /* max number of sectors on */
-                                               /* one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* Reserve 2 sectors */
 
 #define CONFIG_SYS_FLASH_BASE          boot_flash_base
 #define CONFIG_ENV_OFFSET              boot_flash_off
 #define CONFIG_ENV_ADDR                        SMNAND_ENV_OFFSET
 
-/*-----------------------------------------------------------------------
- * CFI FLASH driver setup
- */
-/* timeout values are in ticks */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
-/* Flash banks JFFS2 should use */
-#define CONFIG_SYS_MAX_MTD_BANKS       (CONFIG_SYS_MAX_FLASH_BANKS + \
-                                       CONFIG_SYS_MAX_NAND_DEVICE)
-#define CONFIG_SYS_JFFS2_MEM_NAND
-/* use flash_info[2] */
-#define CONFIG_SYS_JFFS2_FIRST_BANK    CONFIG_SYS_MAX_FLASH_BANKS
-#define CONFIG_SYS_JFFS2_NUM_BANKS     1
-
 #ifndef __ASSEMBLY__
 extern unsigned int boot_flash_base;
 extern volatile unsigned int boot_flash_env_addr;
@@ -345,8 +328,11 @@ extern unsigned int boot_flash_sec;
 extern unsigned int boot_flash_type;
 #endif
 
-/* additions for new relocation code, must be added to all boards */
 #define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
-#define CONFIG_SYS_INIT_SP_ADDR                (LOW_LEVEL_SRAM_STACK - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 
 #endif /* __CONFIG_H */
index e925f3bd2d63bafb4027f76c99c361a398b73e0d..5bdb3fd9ed9efa61d6339b649f8fffd061d55b97 100644 (file)
 #define PISMO1_NAND_SIZE               GPMC_SIZE_128M
 #define PISMO1_ONEN_SIZE               GPMC_SIZE_128M
 
-#define CONFIG_SYS_MAX_FLASH_SECT      520     /* max number of sectors */
-                                               /* on one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* Reserve 2 sectors */
 
 #define CONFIG_SYS_FLASH_BASE          boot_flash_base
 #define CONFIG_ENV_OFFSET              boot_flash_off
 #define CONFIG_ENV_ADDR                        boot_flash_env_addr
 
-/*-----------------------------------------------------------------------
- * CFI FLASH driver setup
- */
-/* timeout values are in ticks */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
-/* Flash banks JFFS2 should use */
-#define CONFIG_SYS_MAX_MTD_BANKS       (CONFIG_SYS_MAX_FLASH_BANKS + \
-                                       CONFIG_SYS_MAX_NAND_DEVICE)
-#define CONFIG_SYS_JFFS2_MEM_NAND
-/* use flash_info[2] */
-#define CONFIG_SYS_JFFS2_FIRST_BANK    CONFIG_SYS_MAX_FLASH_BANKS
-#define CONFIG_SYS_JFFS2_NUM_BANKS     1
-
 #ifndef __ASSEMBLY__
 extern unsigned int boot_flash_base;
 extern volatile unsigned int boot_flash_env_addr;
@@ -344,6 +326,21 @@ extern unsigned int boot_flash_sec;
 extern unsigned int boot_flash_type;
 #endif
 
+/*
+ * Support for relocation
+ */
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
+
+/*
+ * Define the board revision statically
+ */
+/* #define CONFIG_STATIC_BOARD_REV     OMAP3EVM_BOARD_GEN_2 */
+
 /*----------------------------------------------------------------------------
  * SMSC9115 Ethernet from SMSC9118 family
  *----------------------------------------------------------------------------
index 02920787458f6d59d61db3db16dbb19c34118cad..1b3d43979d9c987bfc6c9aa6f58aa13ff1513553 100644 (file)
 #define CONFIG_SYS_I2C_SLAVE           1
 #define CONFIG_SYS_I2C_BUS             0
 #define CONFIG_SYS_I2C_BUS_SELECT      1
+#define CONFIG_I2C_MULTI_BUS           1
 #define CONFIG_DRIVER_OMAP34XX_I2C     1
 
 /*
 #define PISMO1_NAND_SIZE               GPMC_SIZE_128M
 #define PISMO1_ONEN_SIZE               GPMC_SIZE_128M
 
-#define CONFIG_SYS_MAX_FLASH_SECT      520     /* max number of sectors on */
-                                               /* one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* Reserve 2 sectors */
 
 #define CONFIG_SYS_FLASH_BASE          boot_flash_base
 #define CONFIG_ENV_OFFSET              boot_flash_off
 #define CONFIG_ENV_ADDR                        SMNAND_ENV_OFFSET
 
-/*-----------------------------------------------------------------------
- * CFI FLASH driver setup
- */
-/* timeout values are in ticks */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
-/* Flash banks JFFS2 should use */
-#define CONFIG_SYS_MAX_MTD_BANKS       (CONFIG_SYS_MAX_FLASH_BANKS + \
-                                       CONFIG_SYS_MAX_NAND_DEVICE)
-#define CONFIG_SYS_JFFS2_MEM_NAND
-/* use flash_info[2] */
-#define CONFIG_SYS_JFFS2_FIRST_BANK    CONFIG_SYS_MAX_FLASH_BANKS
-#define CONFIG_SYS_JFFS2_NUM_BANKS     1
-
 #ifndef __ASSEMBLY__
 extern unsigned int boot_flash_base;
 extern volatile unsigned int boot_flash_env_addr;
@@ -324,6 +307,10 @@ extern unsigned int boot_flash_type;
 #endif /* (CONFIG_CMD_NET) */
 
 #define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
-#define CONFIG_SYS_INIT_SP_ADDR                (LOW_LEVEL_SRAM_STACK - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 
 #endif                         /* __CONFIG_H */
index b78aacfa088dcc79a4733765491efec05c91771f..72b0cc223b47c72fe4496cd23678d2e599d28ea6 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * (C) Copyright 2008
- * Grazvydas Ignotas <notasas@gmail.com>
+ * (C) Copyright 2008-2010
+ * Gražvydas Ignotas <notasas@gmail.com>
  *
  * Configuration settings for the OMAP3 Pandora.
  *
  * Size of malloc() pool
  */
 #define CONFIG_ENV_SIZE                        (128 << 10)     /* 128 KiB */
-                                               /* Sector */
-#define CONFIG_SYS_MALLOC_LEN          (CONFIG_ENV_SIZE + (128 << 10))
-                                               /* initial data */
+#define CONFIG_SYS_MALLOC_LEN          (1024 * 1024 + CONFIG_ENV_SIZE)
 
 /*
  * Hardware drivers
  */
 
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV   1
+#define CONFIG_SYS_DEVICE_NULLDEV      1
+
+/* USB */
+#define CONFIG_MUSB_UDC                        1
+#define CONFIG_USB_OMAP3               1
+#define CONFIG_TWL4030_USB             1
+
+/* USB device configuration */
+#define CONFIG_USB_DEVICE              1
+#define CONFIG_USB_TTY                 1
+
 /*
  * NS16550 Configuration
  */
 
 #define CONFIG_CMD_EXT2                /* EXT2 Support                 */
 #define CONFIG_CMD_FAT         /* FAT support                  */
-#define CONFIG_CMD_JFFS2       /* JFFS2 Support                */
 
 #define CONFIG_CMD_I2C         /* I2C serial bus support       */
 #define CONFIG_CMD_MMC         /* MMC support                  */
 #define CONFIG_CMD_NAND                /* NAND support                 */
+#define CONFIG_CMD_CACHE       /* Cache control                */
 
 #undef CONFIG_CMD_FLASH                /* flinfo, erase, protect       */
 #undef CONFIG_CMD_FPGA         /* FPGA configuration Support   */
 
 #define CONFIG_SYS_MAX_NAND_DEVICE     1       /* Max number of NAND */
                                                /* devices */
-#define CONFIG_JFFS2_NAND
-/* nand device jffs2 lives on */
-#define CONFIG_JFFS2_DEV               "nand0"
-/* start of jffs2 partition */
-#define CONFIG_JFFS2_PART_OFFSET       0x680000
-#define CONFIG_JFFS2_PART_SIZE         0xf980000       /* size of jffs2 */
-                                                       /* partition */
+
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_CMD_MTDPARTS
+#define CONFIG_MTD_PARTITIONS
+#define CONFIG_MTD_DEVICE
+#define CONFIG_CMD_UBI
+#define CONFIG_CMD_UBIFS
+#define CONFIG_RBTREE
+#define CONFIG_LZO
+
+#define MTDIDS_DEFAULT                 "nand0=nand"
+#define MTDPARTS_DEFAULT               "mtdparts=nand:512k(xloader),"\
+                                       "1920k(uboot),128k(uboot-env),"\
+                                       "10m(boot),-(rootfs)"
+#else
+#define MTDPARTS_DEFAULT
+#endif
 
 /* Environment information */
 #define CONFIG_BOOTDELAY               1
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
+       "usbtty=cdc_acm\0" \
        "loadaddr=0x82000000\0" \
-       "console=ttyS0,115200n8\0" \
-       "videospec=omapfb:vram:2M,vram:4M\0" \
-       "mmcargs=setenv bootargs console=${console} " \
-               "video=${videospec} " \
-               "root=/dev/mmcblk0p2 rw " \
-               "rootfstype=ext3 rootwait\0" \
-       "nandargs=setenv bootargs console=${console} " \
-               "video=${videospec} " \
-               "root=/dev/mtdblock4 rw " \
-               "rootfstype=jffs2\0" \
-       "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
-       "bootscript=echo Running bootscript from mmc ...; " \
-               "source ${loadaddr}\0" \
-       "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
-       "mmcboot=echo Booting from mmc ...; " \
-               "run mmcargs; " \
-               "bootm ${loadaddr}\0" \
-       "nandboot=echo Booting from nand ...; " \
-               "run nandargs; " \
-               "nand read ${loadaddr} 280000 400000; " \
-               "bootm ${loadaddr}\0" \
+       "bootargs=ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs " \
+       "rw rootflags=bulk_read console=ttyS0,115200n8 " \
+       "vram=6272K omapfb.vram=0:3000K\0" \
+       "mtdparts=" MTDPARTS_DEFAULT "\0" \
 
 #define CONFIG_BOOTCOMMAND \
-       "if mmc init; then " \
-               "if run loadbootscript; then " \
-                       "run bootscript; " \
-               "else " \
-                       "if run loaduimage; then " \
-                               "run mmcboot; " \
-                       "else run nandboot; " \
-                       "fi; " \
-               "fi; " \
-       "else run nandboot; fi"
+       "if mmc init && fatload mmc1 0 ${loadaddr} autoboot.scr || " \
+                       "ext2load mmc1 0 ${loadaddr} autoboot.scr; then " \
+               "source ${loadaddr}; " \
+       "fi; " \
+       "ubi part boot && ubifsmount boot && ubifsload ${loadaddr} uImage && bootm ${loadaddr}"
 
 #define CONFIG_AUTO_COMPLETE   1
 /*
 /* SDRAM Bank Allocation method */
 #define SDRC_R_B_C             1
 
+#define CONFIG_SYS_TEXT_BASE           0x80008000
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                       CONFIG_SYS_INIT_RAM_SIZE - \
+                                       GENERATED_GBL_DATA_SIZE)
+
 /*-----------------------------------------------------------------------
  * FLASH and environment organization
  */
 #define PISMO1_NAND_SIZE               GPMC_SIZE_128M
 #define PISMO1_ONEN_SIZE               GPMC_SIZE_128M
 
-#define CONFIG_SYS_MAX_FLASH_SECT      520     /* max number of sectors on */
-                                               /* one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* Reserve 2 sectors */
 
 #define CONFIG_SYS_FLASH_BASE          boot_flash_base
 
 /* Monitor at start of flash */
 #define CONFIG_SYS_MONITOR_BASE                CONFIG_SYS_FLASH_BASE
-#define CONFIG_SYS_ONENAND_BASE                ONENAND_MAP
 
 #define CONFIG_ENV_IS_IN_NAND          1
-#define ONENAND_ENV_OFFSET             0x240000 /* environment starts here */
-#define SMNAND_ENV_OFFSET              0x240000 /* environment starts here */
+#define SMNAND_ENV_OFFSET              0x260000 /* environment starts here */
 
 #define CONFIG_SYS_ENV_SECT_SIZE       boot_flash_sec
 #define CONFIG_ENV_OFFSET              boot_flash_off
 #define CONFIG_ENV_ADDR                        SMNAND_ENV_OFFSET
 
-/*-----------------------------------------------------------------------
- * CFI FLASH driver setup
- */
-/* timeout values are in ticks */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
-/* Flash banks JFFS2 should use */
-#define CONFIG_SYS_MAX_MTD_BANKS       (CONFIG_SYS_MAX_FLASH_BANKS + \
-                                       CONFIG_SYS_MAX_NAND_DEVICE)
-#define CONFIG_SYS_JFFS2_MEM_NAND
-/* use flash_info[2] */
-#define CONFIG_SYS_JFFS2_FIRST_BANK    CONFIG_SYS_MAX_FLASH_BANKS
-#define CONFIG_SYS_JFFS2_NUM_BANKS     1
-
 #ifndef __ASSEMBLY__
 extern unsigned int boot_flash_base;
 extern volatile unsigned int boot_flash_env_addr;
index fab263d6cbd992b0728cb0215e5a2f4fabcc2c1a..470898152e6bced67d017e2ed7cd8459630d73e5 100644 (file)
 #define PHYS_FLASH_SIZE                        (128 << 20)
 #define CONFIG_SYS_MAX_FLASH_SECT      512     /* max sectors on one chip */
 
-/* timeout values are in milliseconds */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
 /* OMITTED:  single 2 Gbit KFM2G16 OneNAND flash */
 
 #define CONFIG_ENV_IS_IN_FLASH         1
 #define CONFIG_STACKSIZE_FIQ   (4 << 10) /* FIQ stack */
 #endif
 
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 /*
  * SDRAM Memory Map
  */
 #define CONFIG_SYS_MONITOR_BASE                CONFIG_SYS_FLASH_BASE
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)
 
-#define CONFIG_SYS_JFFS2_FIRST_BANK    CONFIG_SYS_MAX_FLASH_BANKS
-#define CONFIG_SYS_JFFS2_NUM_BANKS     1
-
 /*
  * NAND FLASH usage ... default nCS1:
  *  - four 128KB sectors for X-Loader
index 10b248ad865ef17f914f0fb7064a73ad532991f8..f7d06521e39fe4b50a605eafcfb9b8ad75e1ffed 100644 (file)
 #define CONFIG_SYS_LOAD_ADDR           (OMAP34XX_SDRC_CS0)     /* default */
                                                        /* load address */
 
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 /*
  * OMAP3 has 12 GP timers, they can be driven by the system clock
  * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
 #define PISMO1_NAND_SIZE               GPMC_SIZE_128M
 #define PISMO1_ONEN_SIZE               GPMC_SIZE_128M
 
-#define CONFIG_SYS_MAX_FLASH_SECT      520     /* max number of sectors on */
-                                               /* one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* Reserve 2 sectors */
 
 #define CONFIG_SYS_FLASH_BASE          boot_flash_base
 #define CONFIG_ENV_OFFSET              boot_flash_off
 #define CONFIG_ENV_ADDR                        SMNAND_ENV_OFFSET
 
-/*-----------------------------------------------------------------------
- * CFI FLASH driver setup
- */
-/* timeout values are in ticks */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
-/* Flash banks JFFS2 should use */
-#define CONFIG_SYS_MAX_MTD_BANKS       (CONFIG_SYS_MAX_FLASH_BANKS + \
-                                       CONFIG_SYS_MAX_NAND_DEVICE)
-#define CONFIG_SYS_JFFS2_MEM_NAND
-/* use flash_info[2] */
-#define CONFIG_SYS_JFFS2_FIRST_BANK    CONFIG_SYS_MAX_FLASH_BANKS
-#define CONFIG_SYS_JFFS2_NUM_BANKS     1
-
 #ifndef __ASSEMBLY__
 extern unsigned int boot_flash_base;
 extern volatile unsigned int boot_flash_env_addr;
index b7c301f8ed7eb9b21ffb3a9cd64c1e785b9b8de1..73779331ce98def3e53b5c9c7f96a0a5acdbf43a 100644 (file)
 #define CONFIG_EXTRA_ENV_SETTINGS \
        "usbtty=cdc_acm\0" \
 
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4020f800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 /*
  * Miscellaneous configurable options
  */
 #define PISMO1_NAND_SIZE               GPMC_SIZE_128M
 #define PISMO1_ONEN_SIZE               GPMC_SIZE_128M
 
-#define CONFIG_SYS_MAX_FLASH_SECT      520     /* max number of sectors on */
-                                               /* one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN         (256 << 10)     /* Reserve 2 sectors */
 
 #define CONFIG_SYS_FLASH_BASE          boot_flash_base
 #define CONFIG_ENV_OFFSET              boot_flash_off
 #define CONFIG_ENV_ADDR                        SMNAND_ENV_OFFSET
 
-/*-----------------------------------------------------------------------
- * CFI FLASH driver setup
- */
-/* timeout values are in ticks */
-#define CONFIG_SYS_FLASH_ERASE_TOUT    (100 * CONFIG_SYS_HZ)
-#define CONFIG_SYS_FLASH_WRITE_TOUT    (100 * CONFIG_SYS_HZ)
-
 #ifndef __ASSEMBLY__
 extern unsigned int boot_flash_base;
 extern volatile unsigned int boot_flash_env_addr;
index 74defabbf896ef27c204d54eb5103ca3529f4768..2b03b0f2b629b7b1a300eab2c4919514c0f0831b 100644 (file)
 
 /* Disabled commands */
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #undef CONFIG_CMD_FPGA         /* FPGA configuration Support   */
 #undef CONFIG_CMD_IMLS         /* List all found images        */
 
 #define CONFIG_NR_DRAM_BANKS   1
 
 #define CONFIG_SYS_SDRAM_BASE          0x80000000
-#define CONFIG_SYS_INIT_SP_ADDR                (LOW_LEVEL_SRAM_STACK - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4030D800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 
 #endif /* __CONFIG_H */
index 26c380d3e7eed95ff74ea6a8a475958fb64fe167..d2883336b9ac66c860d795d490978b26091f4f4e 100644 (file)
 
 /* Disabled commands */
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #undef CONFIG_CMD_FPGA         /* FPGA configuration Support   */
 #undef CONFIG_CMD_IMLS         /* List all found images        */
 
 #define CONFIG_NR_DRAM_BANKS   1
 
 #define CONFIG_SYS_SDRAM_BASE          0x80000000
-#define CONFIG_SYS_INIT_SP_ADDR                (LOW_LEVEL_SRAM_STACK - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_ADDR       0x4030D800
+#define CONFIG_SYS_INIT_RAM_SIZE       0x800
+#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_INIT_RAM_ADDR + \
+                                        CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 
 #endif /* __CONFIG_H */
index 65f1306f5cf4444010be8655e94ba7d420839bc3..514bcaa58eaed70af5fc19617730b46ea270f176 100644 (file)
@@ -63,6 +63,7 @@
 #include <config_cmd_default.h>
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #define        CONFIG_CMD_ENV
 #undef CONFIG_CMD_IMLS
 #define        CONFIG_CMD_MMC
index 3f6c2f1108644bbd2421a82216ebf64606e37f59..bdb5f57e429d9084b1697feeddc2dd865e9901cd 100644 (file)
@@ -67,6 +67,7 @@
 #include <config_cmd_default.h>
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #define        CONFIG_CMD_ENV
 #define        CONFIG_CMD_MMC
 #define        CONFIG_LCD
index 64654f825e309f548a9f424e79e38a7ed857c92f..9dbb4062ba0cc1421f4456ab1a7adf305c74ece1 100644 (file)
@@ -88,6 +88,7 @@
 #include <config_cmd_default.h>
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 
 
 #define CONFIG_BOOTDELAY       3
index 0ebb0940826e2e7926ebfafb35dfa2c0a70271b7..3ff80d2868e7e34a934ccf0c922d1203531c58fb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2003-2005
+ * (C) Copyright 2003-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
 #define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Timeout for Flash Write (in ms)      */
 
 #define CONFIG_ENV_IS_IN_FLASH 1
-#define CONFIG_ENV_OFFSET          0x00F40000  /*   Offset   of Environment Sector     absolute address 0xfff40000*/
+#define CONFIG_ENV_OFFSET          0x00040000  /*   Offset   of Environment Sector     absolute address 0xfff40000*/
 #define CONFIG_ENV_SECT_SIZE   0x40000 /* Total Size of Environment Sector     */
 #define CONFIG_ENV_SIZE                CONFIG_ENV_SECT_SIZE
 #define CONFIG_ENV_ADDR                (CONFIG_SYS_FLASH_BASE + CONFIG_ENV_OFFSET)
index 3416cb897e11c5c1ad46ca62b003f1c295f37d8d..802416f3e00eedab2ce0665df01624cf2a960493 100644 (file)
 #define CONFIG_RTL8169
 */
 /* AX88796L Support(NE2000 base chip) */
-#define CONFIG_DRIVER_NE2000
 #define CONFIG_DRIVER_AX88796L
 #define CONFIG_DRIVER_NE2000_BASE      0xA4100000
 #endif
index 541aec05ff18d0b5ff71a19fbc16b771c0cb6c98..f53e79810b256ddc435f09a16cd7d8e11939d81d 100644 (file)
 
 #define CONFIG_DOS_PARTITION           1
 
+#define CONFIG_SYS_INIT_SP_ADDR        (CONFIG_SYS_LOAD_ADDR - 0x1000000)
+
 #endif /* __CONFIG_H */
index 04511057efdbee8bafd7fb5ef5d2174e1d9f33dd..873d3b4df0a398bcb4d2ea5abc2021165e7b10fb 100644 (file)
 
 #define CONFIG_SYS_EBC_CFG    0xb84ef000
 
-#define CONFIG_SDRAM_BANK0     /* use the standard SDRAM initialization */
+#undef CONFIG_SDRAM_BANK0      /* use private SDRAM initialization */
 #undef CONFIG_SPD_EEPROM
 
 /*
index e36b262a8ec56b8471f3e13e0ba5691b9773d5cd..fb8b43c06dc4db937a27a5383b7db7cb181c4c2c 100644 (file)
 
 #define CONFIG_DOS_PARTITION           1
 
+#define CONFIG_SYS_INIT_SP_ADDR        (CONFIG_SYS_LOAD_ADDR - 0x1000000)
+
 /*
  * Ethernet Contoller driver
  */
index dceff308b8b387bf601a8ac395f7434d43140183..9036ce34186ea0219f45bf416100dd1cd28668bf 100644 (file)
  * it linked after the configuration sector.
  */
 # define LDS_BOARD_TEXT \
-       arch/blackfin/cpu/traps.o               (.text .text.*); \
-       arch/blackfin/cpu/interrupt.o   (.text .text.*); \
-       arch/blackfin/cpu/serial.o              (.text .text.*); \
-       common/dlmalloc.o               (.text .text.*); \
-       lib/crc32.o             (.text .text.*); \
+       arch/blackfin/lib/libblackfin.o (.text*); \
+       arch/blackfin/cpu/libblackfin.o (.text*); \
        . = DEFINED(env_offset) ? env_offset : .; \
-       common/env_embedded.o           (.text .text.*);
+       common/env_embedded.o (.text*);
 #endif
 
 
index 68290efca5624bd41cd8d7870b6c759590c86ae9..3627ce7d3a0c9cac6834101c68b606f261316cd5 100644 (file)
@@ -86,7 +86,6 @@
 #define CONFIG_JFFS2_NAND
 #define NAND_MAX_CHIPS                 1
 #define CONFIG_ENV_OFFSET              0x180000
-#define DEF_BOOTM                      ""
 
 /*
  * davinci_nand is a bit of a misnomer since this particular EMIF block is
diff --git a/include/configs/top9000.h b/include/configs/top9000.h
new file mode 100644 (file)
index 0000000..ff3933b
--- /dev/null
@@ -0,0 +1,314 @@
+/*
+ * (C) Copyright 2010
+ * Reinhard Meyer, EMK Elektronik, reinhard.meyer@emk-elektronik.de
+ *
+ * Configuation settings for the TOP9000 CPU module with AT91SAM9XE.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+/*
+ * top9000 with at91sam9xe256 or at91sam9xe512
+ *
+ * Initial Bootloader is in embedded flash.
+ * Vital Product Data, U-Boot Environment are in I2C-EEPROM.
+ * U-Boot is in embedded flash, a backup U-Boot can be in NAND flash.
+ * kernel and file system are either in NAND flash or on a micro SD card.
+ * NAND flash is optional.
+ * I2C EEPROM is never optional.
+ * SPI FRAM is optional.
+ * SPI ENC28J60 is optional.
+ * 16 or 32 bit wide SDRAM.
+ */
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * Warning: changing CONFIG_SYS_TEXT_BASE requires
+ * adapting the initial boot program
+ */
+#define CONFIG_SYS_TEXT_BASE           0x21f00000      /* 31 MB into RAM */
+
+/* Command line configuration */
+#include <config_cmd_default.h>
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_SETGETDCR
+#undef CONFIG_CMD_XIMG
+#define CONFIG_CMD_ASKENV
+#define CONFIG_SYS_CBSIZE              256
+#define CONFIG_SYS_MAXARGS             16
+#define CONFIG_SYS_PBSIZE \
+       (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_PROMPT              "TOP9000> "
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_CMD_BDI
+#define CONFIG_CMD_CACHE
+
+/* ARM asynchronous clock */
+#define CONFIG_SYS_AT91_MAIN_CLOCK     18432000        /* 18.432 MHz xtal */
+#define CONFIG_SYS_HZ                  1000
+
+/* SoC */
+#define CONFIG_ARM926EJS               /* ARM926EJS Core */
+#define CONFIG_AT91FAMILY              /* it's a member of AT91 */
+#define CONFIG_AT91SAM9260             /* Atmel AT91SAM9260 based SoC */
+#define CONFIG_AT91SAM9XE
+
+/* Misc CPU related */
+#define CONFIG_AT91_LEGACY
+#define CONFIG_ARCH_CPU_INIT
+#undef CONFIG_USE_IRQ                  /* we don't need IRQ/FIQ stuff  */
+#define CONFIG_CMDLINE_TAG             /* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_INITRD_TAG
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_AT91RESET_EXTRST                /* assert external reset */
+
+/* general purpose I/O */
+#define CONFIG_AT91_GPIO
+#define CONFIG_AT91_GPIO_PULLUP        1       /* keep pullups on peripheral pins */
+
+/* serial console */
+#define CONFIG_ATMEL_USART
+#define CONFIG_USART3                  /* USART 3 is DBGU !!! */
+#define CONFIG_BAUDRATE                        115200
+#define CONFIG_SYS_BAUDRATE_TABLE      {115200 , 19200, 38400, 57600, 9600 }
+
+/* SD/MMC card */
+#define CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_GENERIC_ATMEL_MCI
+#define CONFIG_SYS_MMC_CD_PIN          AT91_PIN_PC9
+#define CONFIG_CMD_MMC
+
+/* Ethernet */
+#define CONFIG_MACB
+#define CONFIG_SYS_PHY_ID      1
+#define CONFIG_RMII
+#define CONFIG_NET_MULTI
+#define CONFIG_NET_RETRY_COUNT 20
+
+/* real time clock */
+#define CONFIG_RTC_AT91SAM9_RTT
+#define CONFIG_CMD_DATE
+
+#if defined(CONFIG_AT91SAM9XE)
+/*
+ * NOR flash - use embedded flash of SAM9XE256/512
+ * U-Boot will not fit into 128K !
+ * 2010.09 will not fit into 256K with all options enabled !
+ *
+ * Layout:
+ * 16kB        1st Bootloader
+ * Rest U-Boot
+ * the first sector (16kB) of EFLASH cannot be unprotected
+ * with u-boot commands
+ */
+# define CONFIG_AT91_EFLASH
+# define CONFIG_SYS_FLASH_BASE         0x200000
+# define CONFIG_SYS_MAX_FLASH_SECT     32
+# define CONFIG_SYS_MAX_FLASH_BANKS    1
+# define CONFIG_SYS_FLASH_PROTECTION
+# define CONFIG_EFLASH_PROTSECTORS     1       /* protect first sector */
+#endif
+
+/* SPI */
+#define CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SPI
+
+/* RAMTRON FRAM */
+#define CONFIG_CMD_SF
+#define CONFIG_ATMEL_SPI0              /* SPI used for FRAM is SPI0 */
+#define FRAM_SPI_BUS           0
+#define FRAM_CS_NUM            0
+#define CONFIG_SPI_FLASH               /* RAMTRON FRAM on SPI bus */
+#define CONFIG_SPI_FRAM_RAMTRON
+#define CONFIG_SF_DEFAULT_SPEED        1000000 /* be conservative here... */
+#define CONFIG_SF_DEFAULT_MODE SPI_MODE_0
+#define CONFIG_SPI_FRAM_RAMTRON_NON_JEDEC      "FM25H20"
+
+/* Microchip ENC28J60 (second LAN) */
+#if defined(CONFIG_EVAL9000)
+# define CONFIG_ENC28J60
+# define CONFIG_ATMEL_SPI1             /* SPI used for ENC28J60 is SPI1 */
+# define ENC_SPI_BUS           1
+# define ENC_CS_NUM            0
+# define ENC_SPI_CLOCK 1000000
+#endif /* CONFIG_EVAL9000 */
+
+/*
+ * SDRAM: 1 bank, min 32, max 128 MB
+ * Initialized before u-boot gets started.
+ */
+#define CONFIG_NR_DRAM_BANKS           1
+#define CONFIG_SYS_SDRAM_BASE          0x20000000
+#define CONFIG_SYS_SDRAM_SIZE          0x08000000
+#define CONFIG_SYS_MEMTEST_START       CONFIG_SYS_SDRAM_BASE
+#define CONFIG_SYS_MEMTEST_END         0x21e00000
+#define CONFIG_SYS_LOAD_ADDR \
+       (CONFIG_SYS_SDRAM_BASE + 0x01000000)
+/*
+ * Initial stack pointer: 16k - GENERATED_GBL_DATA_SIZE in internal SRAM,
+ * leaving the correct space for initial global data structure above
+ * that address while providing maximum stack area below.
+ */
+#define CONFIG_SYS_INIT_SP_ADDR \
+       (0x00300000 + 0x4000 - GENERATED_GBL_DATA_SIZE)
+
+/*
+ * NAND flash: 256 MB (optional)
+ *
+ * Layout:
+ * 640kB: u-boot (includes space for spare sectors, handled by
+ * initial loader)
+ * 2MB: kernel
+ * rest: file system
+ */
+#define CONFIG_NAND_ATMEL
+#define CONFIG_SYS_MAX_NAND_DEVICE     1
+#define CONFIG_SYS_NAND_BASE           0x40000000
+#define CONFIG_SYS_NAND_DBW_8
+#define CONFIG_SYS_NAND_MASK_ALE       (1 << 21)
+#define CONFIG_SYS_NAND_MASK_CLE       (1 << 22)
+#define CONFIG_SYS_NAND_ENABLE_PIN     AT91_PIN_PC14
+#define CONFIG_SYS_NAND_READY_PIN      AT91_PIN_PC13
+#define CONFIG_CMD_NAND
+
+/* USB */
+#define CONFIG_USB_ATMEL
+#define CONFIG_USB_OHCI_NEW
+#define CONFIG_DOS_PARTITION
+#define CONFIG_SYS_USB_OHCI_CPU_INIT
+#define CONFIG_SYS_USB_OHCI_REGS_BASE  0x00500000
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME  "top9000"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS     2
+#define CONFIG_USB_STORAGE
+#define CONFIG_CMD_USB
+
+/* I2C support must always be enabled */
+#define CONFIG_SOFT_I2C
+#define CONFIG_CMD_I2C
+#define CONFIG_SYS_I2C_SPEED           400000
+#define CONFIG_SYS_I2C_SLAVE           0x7F
+#define CONFIG_I2C_MULTI_BUS
+#define I2C0_PORT                      AT91_PIO_PORTA
+#define SDA0_PIN                       23
+#define SCL0_PIN                       24
+#define I2C1_PORT                      AT91_PIO_PORTB
+#define SDA1_PIN                       12
+#define SCL1_PIN                       13
+#define I2C_SOFT_DECLARATIONS          void iic_init(void);\
+                                       int iic_read(void);\
+                                       void iic_sda(int);\
+                                       void iic_scl(int);
+#define I2C_ACTIVE
+#define I2C_TRISTATE
+#define I2C_INIT                       iic_init()
+#define I2C_READ                       iic_read()
+#define I2C_SDA(bit)                   iic_sda(bit)
+#define I2C_SCL(bit)                   iic_scl(bit)
+#define I2C_DELAY                      udelay(3)
+/* EEPROM configuration */
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS      5
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS  5
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
+#define CONFIG_SYS_EEPROM_SIZE         0x2000
+#define CONFIG_SYS_I2C_EEPROM_ADDR     0x57
+/* later: #define CONFIG_I2C_ENV_EEPROM_BUS    0 */
+/* ENV is always in I2C-EEPROM */
+#define CONFIG_ENV_IS_IN_EEPROM
+#define CONFIG_ENV_OFFSET              0x1000
+#define CONFIG_ENV_SIZE                        0x0f00
+/* VPD settings */
+#define CONFIG_SYS_I2C_FACT_ADDR       0x57
+#define CONFIG_SYS_FACT_OFFSET         0x1F00
+#define CONFIG_SYS_FACT_SIZE           0x0100
+/* later: #define CONFIG_MISC_INIT_R */
+/* define the next only if you want to allow users to enter VPD data */
+#define CONFIG_SYS_FACT_ENTRY
+#ifndef __ASSEMBLY__
+extern void read_factory_r(void);
+#endif
+
+/*
+ * Only interrupt autoboot if <space> is pressed. Otherwise, garbage
+ * data on the serial line may interrupt the boot sequence.
+ */
+#define CONFIG_BOOTDELAY               1
+#define CONFIG_AUTOBOOT
+#define CONFIG_AUTOBOOT_KEYED
+#define CONFIG_AUTOBOOT_PROMPT \
+       "Press SPACE to abort autoboot in %d seconds\n", bootdelay
+#define CONFIG_AUTOBOOT_DELAY_STR      "d"
+#define CONFIG_AUTOBOOT_STOP_STR       " "
+
+/*
+ * add filesystem commands if we have at least 1 storage
+ * media with filesystem
+ */
+#if defined(CONFIG_NAND_ATMEL) \
+       || defined(CONFIG_USB_ATMEL) \
+       || defined(CONFIG_MMC)
+# define CONFIG_DOS_PARTITION
+# define CONFIG_CMD_FAT
+# define CONFIG_CMD_EXT2
+/* later: #define CONFIG_CMD_JFFS2 */
+#endif
+
+/* add NET commands if we have at least 1 LAN */
+#if defined(CONFIG_MACB) || defined(CONFIG_ENC28J60)
+# define CONFIG_CMD_PING
+# define CONFIG_CMD_DHCP
+# define CONFIG_CMD_MII
+/* is this really needed ? */
+# define CONFIG_RESET_PHY_R
+/* BOOTP options */
+# define CONFIG_BOOTP_BOOTFILESIZE
+# define CONFIG_BOOTP_BOOTPATH
+# define CONFIG_BOOTP_GATEWAY
+# define CONFIG_BOOTP_HOSTNAME
+#endif
+
+/* linux in NAND flash */
+#define CONFIG_BOOTCOUNT_LIMIT 1
+#define CONFIG_BOOTCOMMAND \
+       "nand read 0x21000000 0xA0000 0x200000; bootm"
+#define CONFIG_BOOTARGS \
+       "console=ttyS0,115200 " \
+       "root=/dev/mtdblock2 " \
+       "mtdparts=atmel_nand:" \
+               "640k(uboot)ro," \
+               "2M(linux)," \
+               "16M(root)," \
+               "-(rest) " \
+       "rw "\
+       "rootfstype=jffs2"
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN \
+       ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CONFIG_STACKSIZE               (32*1024)
+#ifdef CONFIG_USE_IRQ
+#error CONFIG_USE_IRQ not supported
+#endif
+
+#endif
+
index 615d5c1f75cf9076c87fb1e2ee9c83e0785d383e..ade40b54e8ad1f0faa3483b9a164139c2cbe1919 100644 (file)
@@ -74,6 +74,7 @@
 #include <config_cmd_default.h>
 
 #undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
 #define        CONFIG_CMD_ENV
 #undef CONFIG_CMD_IMLS
 #define        CONFIG_CMD_MMC
index 7c63095fd4331e66107b5ea1b3c835c213df1ec1..6e7ffab3012aabc9ea0ec1dfcedb74e34ac22769 100644 (file)
 
 /* Generic MII registers. */
 
-#define MII_BMCR           0x00        /* Basic mode control register */
-#define MII_BMSR           0x01        /* Basic mode status register  */
-#define MII_PHYSID1        0x02        /* PHYS ID 1                   */
-#define MII_PHYSID2        0x03        /* PHYS ID 2                   */
-#define MII_ADVERTISE      0x04        /* Advertisement control reg   */
-#define MII_LPA                    0x05        /* Link partner ability reg    */
-#define MII_EXPANSION      0x06        /* Expansion register          */
-#define MII_DCOUNTER       0x12        /* Disconnect counter          */
-#define MII_FCSCOUNTER     0x13        /* False carrier counter       */
-#define MII_NWAYTEST       0x14        /* N-way auto-neg test reg     */
-#define MII_RERRCOUNTER     0x15       /* Receive error counter       */
-#define MII_SREVISION      0x16        /* Silicon revision            */
-#define MII_RESV1          0x17        /* Reserved...                 */
-#define MII_LBRERROR       0x18        /* Lpback, rx, bypass error    */
-#define MII_PHYADDR        0x19        /* PHY address                 */
-#define MII_RESV2          0x1a        /* Reserved...                 */
-#define MII_TPISTATUS      0x1b        /* TPI status for 10mbps       */
-#define MII_NCONFIG        0x1c        /* Network interface config    */
+#define MII_BMCR            0x00        /* Basic mode control register */
+#define MII_BMSR            0x01        /* Basic mode status register  */
+#define MII_PHYSID1         0x02        /* PHYS ID 1                   */
+#define MII_PHYSID2         0x03        /* PHYS ID 2                   */
+#define MII_ADVERTISE       0x04        /* Advertisement control reg   */
+#define MII_LPA             0x05        /* Link partner ability reg    */
+#define MII_EXPANSION       0x06        /* Expansion register          */
+#define MII_CTRL1000        0x09        /* 1000BASE-T control          */
+#define MII_STAT1000        0x0a        /* 1000BASE-T status           */
+#define MII_ESTATUS        0x0f        /* Extended Status */
+#define MII_DCOUNTER        0x12        /* Disconnect counter          */
+#define MII_FCSCOUNTER      0x13        /* False carrier counter       */
+#define MII_NWAYTEST        0x14        /* N-way auto-neg test reg     */
+#define MII_RERRCOUNTER     0x15        /* Receive error counter       */
+#define MII_SREVISION       0x16        /* Silicon revision            */
+#define MII_RESV1           0x17        /* Reserved...                 */
+#define MII_LBRERROR        0x18        /* Lpback, rx, bypass error    */
+#define MII_PHYADDR         0x19        /* PHY address                 */
+#define MII_RESV2           0x1a        /* Reserved...                 */
+#define MII_TPISTATUS       0x1b        /* TPI status for 10mbps       */
+#define MII_NCONFIG         0x1c        /* Network interface config    */
 
 /* Basic mode control register. */
-#define BMCR_RESV              0x003f  /* Unused...                   */
-#define BMCR_SPEED1000         0x0040  /* MSB of Speed (1000)         */
-#define BMCR_CTST              0x0080  /* Collision test              */
-#define BMCR_FULLDPLX          0x0100  /* Full duplex                 */
-#define BMCR_ANRESTART         0x0200  /* Auto negotiation restart    */
-#define BMCR_ISOLATE           0x0400  /* Disconnect DP83840 from MII */
-#define BMCR_PDOWN             0x0800  /* Powerdown the DP83840       */
-#define BMCR_ANENABLE          0x1000  /* Enable auto negotiation     */
-#define BMCR_SPEED100          0x2000  /* Select 100Mbps              */
-#define BMCR_LOOPBACK          0x4000  /* TXD loopback bits           */
-#define BMCR_RESET             0x8000  /* Reset the DP83840           */
+#define BMCR_RESV               0x003f  /* Unused...                   */
+#define BMCR_SPEED1000         0x0040  /* MSB of Speed (1000)         */
+#define BMCR_CTST               0x0080  /* Collision test              */
+#define BMCR_FULLDPLX           0x0100  /* Full duplex                 */
+#define BMCR_ANRESTART          0x0200  /* Auto negotiation restart    */
+#define BMCR_ISOLATE            0x0400  /* Disconnect DP83840 from MII */
+#define BMCR_PDOWN              0x0800  /* Powerdown the DP83840       */
+#define BMCR_ANENABLE           0x1000  /* Enable auto negotiation     */
+#define BMCR_SPEED100           0x2000  /* Select 100Mbps              */
+#define BMCR_LOOPBACK           0x4000  /* TXD loopback bits           */
+#define BMCR_RESET              0x8000  /* Reset the DP83840           */
 
 /* Basic mode status register. */
-#define BMSR_ERCAP             0x0001  /* Ext-reg capability          */
-#define BMSR_JCD               0x0002  /* Jabber detected             */
-#define BMSR_LSTATUS           0x0004  /* Link status                 */
-#define BMSR_ANEGCAPABLE       0x0008  /* Able to do auto-negotiation */
-#define BMSR_RFAULT            0x0010  /* Remote fault detected       */
-#define BMSR_ANEGCOMPLETE      0x0020  /* Auto-negotiation complete   */
-#define BMSR_RESV              0x07c0  /* Unused...                   */
-#define BMSR_10HALF            0x0800  /* Can do 10mbps, half-duplex  */
-#define BMSR_10FULL            0x1000  /* Can do 10mbps, full-duplex  */
-#define BMSR_100HALF           0x2000  /* Can do 100mbps, half-duplex */
-#define BMSR_100FULL           0x4000  /* Can do 100mbps, full-duplex */
-#define BMSR_100BASE4          0x8000  /* Can do 100mbps, 4k packets  */
+#define BMSR_ERCAP              0x0001  /* Ext-reg capability          */
+#define BMSR_JCD                0x0002  /* Jabber detected             */
+#define BMSR_LSTATUS            0x0004  /* Link status                 */
+#define BMSR_ANEGCAPABLE        0x0008  /* Able to do auto-negotiation */
+#define BMSR_RFAULT             0x0010  /* Remote fault detected       */
+#define BMSR_ANEGCOMPLETE       0x0020  /* Auto-negotiation complete   */
+#define BMSR_RESV               0x00c0  /* Unused...                   */
+#define BMSR_ESTATEN           0x0100  /* Extended Status in R15 */
+#define BMSR_100HALF2           0x0200  /* Can do 100BASE-T2 HDX */
+#define BMSR_100FULL2           0x0400  /* Can do 100BASE-T2 FDX */
+#define BMSR_10HALF             0x0800  /* Can do 10mbps, half-duplex  */
+#define BMSR_10FULL             0x1000  /* Can do 10mbps, full-duplex  */
+#define BMSR_100HALF            0x2000  /* Can do 100mbps, half-duplex */
+#define BMSR_100FULL            0x4000  /* Can do 100mbps, full-duplex */
+#define BMSR_100BASE4           0x8000  /* Can do 100mbps, 4k packets  */
 
 /* Advertisement control register. */
-#define ADVERTISE_SLCT         0x001f  /* Selector bits               */
-#define ADVERTISE_CSMA         0x0001  /* Only selector supported     */
-#define ADVERTISE_10HALF       0x0020  /* Try for 10mbps half-duplex  */
-#define ADVERTISE_10FULL       0x0040  /* Try for 10mbps full-duplex  */
-#define ADVERTISE_100HALF      0x0080  /* Try for 100mbps half-duplex */
-#define ADVERTISE_100FULL      0x0100  /* Try for 100mbps full-duplex */
-#define ADVERTISE_100BASE4     0x0200  /* Try for 100mbps 4k packets  */
-#define ADVERTISE_RESV         0x1c00  /* Unused...                   */
-#define ADVERTISE_RFAULT       0x2000  /* Say we can detect faults    */
-#define ADVERTISE_LPACK                0x4000  /* Ack link partners response  */
-#define ADVERTISE_NPAGE                0x8000  /* Next page bit               */
+#define ADVERTISE_SLCT          0x001f  /* Selector bits               */
+#define ADVERTISE_CSMA          0x0001  /* Only selector supported     */
+#define ADVERTISE_10HALF        0x0020  /* Try for 10mbps half-duplex  */
+#define ADVERTISE_1000XFULL     0x0020  /* Try for 1000BASE-X full-duplex */
+#define ADVERTISE_10FULL        0x0040  /* Try for 10mbps full-duplex  */
+#define ADVERTISE_1000XHALF     0x0040  /* Try for 1000BASE-X half-duplex */
+#define ADVERTISE_100HALF       0x0080  /* Try for 100mbps half-duplex */
+#define ADVERTISE_1000XPAUSE    0x0080  /* Try for 1000BASE-X pause    */
+#define ADVERTISE_100FULL       0x0100  /* Try for 100mbps full-duplex */
+#define ADVERTISE_1000XPSE_ASYM 0x0100  /* Try for 1000BASE-X asym pause */
+#define ADVERTISE_100BASE4      0x0200  /* Try for 100mbps 4k packets  */
+#define ADVERTISE_PAUSE_CAP     0x0400  /* Try for pause               */
+#define ADVERTISE_PAUSE_ASYM    0x0800  /* Try for asymetric pause     */
+#define ADVERTISE_RESV          0x1000  /* Unused...                   */
+#define ADVERTISE_RFAULT        0x2000  /* Say we can detect faults    */
+#define ADVERTISE_LPACK         0x4000  /* Ack link partners response  */
+#define ADVERTISE_NPAGE         0x8000  /* Next page bit               */
 
 #define ADVERTISE_FULL (ADVERTISE_100FULL | ADVERTISE_10FULL | \
                        ADVERTISE_CSMA)
 #define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \
-                      ADVERTISE_100HALF | ADVERTISE_100FULL)
+                       ADVERTISE_100HALF | ADVERTISE_100FULL)
 
 /* Link partner ability register. */
-#define LPA_SLCT               0x001f  /* Same as advertise selector  */
-#define LPA_10HALF             0x0020  /* Can do 10mbps half-duplex   */
-#define LPA_10FULL             0x0040  /* Can do 10mbps full-duplex   */
-#define LPA_100HALF            0x0080  /* Can do 100mbps half-duplex  */
-#define LPA_100FULL            0x0100  /* Can do 100mbps full-duplex  */
-#define LPA_100BASE4           0x0200  /* Can do 100mbps 4k packets   */
-#define LPA_RESV               0x1c00  /* Unused...                   */
-#define LPA_RFAULT             0x2000  /* Link partner faulted        */
-#define LPA_LPACK              0x4000  /* Link partner acked us       */
-#define LPA_NPAGE              0x8000  /* Next page bit               */
+#define LPA_SLCT                0x001f  /* Same as advertise selector  */
+#define LPA_10HALF              0x0020  /* Can do 10mbps half-duplex   */
+#define LPA_1000XFULL           0x0020  /* Can do 1000BASE-X full-duplex */
+#define LPA_10FULL              0x0040  /* Can do 10mbps full-duplex   */
+#define LPA_1000XHALF           0x0040  /* Can do 1000BASE-X half-duplex */
+#define LPA_100HALF             0x0080  /* Can do 100mbps half-duplex  */
+#define LPA_1000XPAUSE          0x0080  /* Can do 1000BASE-X pause     */
+#define LPA_100FULL             0x0100  /* Can do 100mbps full-duplex  */
+#define LPA_1000XPAUSE_ASYM     0x0100  /* Can do 1000BASE-X pause asym*/
+#define LPA_100BASE4            0x0200  /* Can do 100mbps 4k packets   */
+#define LPA_PAUSE_CAP           0x0400  /* Can pause                   */
+#define LPA_PAUSE_ASYM          0x0800  /* Can pause asymetrically     */
+#define LPA_RESV                0x1000  /* Unused...                   */
+#define LPA_RFAULT              0x2000  /* Link partner faulted        */
+#define LPA_LPACK               0x4000  /* Link partner acked us       */
+#define LPA_NPAGE               0x8000  /* Next page bit               */
 
 #define LPA_DUPLEX             (LPA_10FULL | LPA_100FULL)
 #define LPA_100                        (LPA_100FULL | LPA_100HALF | LPA_100BASE4)
 
 /* Expansion register for auto-negotiation. */
-#define EXPANSION_NWAY         0x0001  /* Can do N-way auto-nego      */
-#define EXPANSION_LCWP         0x0002  /* Got new RX page code word   */
-#define EXPANSION_ENABLENPAGE  0x0004  /* This enables npage words    */
-#define EXPANSION_NPCAPABLE    0x0008  /* Link partner supports npage */
-#define EXPANSION_MFAULTS      0x0010  /* Multiple faults detected    */
-#define EXPANSION_RESV         0xffe0  /* Unused...                   */
+#define EXPANSION_NWAY          0x0001  /* Can do N-way auto-nego      */
+#define EXPANSION_LCWP          0x0002  /* Got new RX page code word   */
+#define EXPANSION_ENABLENPAGE   0x0004  /* This enables npage words    */
+#define EXPANSION_NPCAPABLE     0x0008  /* Link partner supports npage */
+#define EXPANSION_MFAULTS       0x0010  /* Multiple faults detected    */
+#define EXPANSION_RESV          0xffe0  /* Unused...                   */
+
+#define ESTATUS_1000_TFULL     0x2000  /* Can do 1000BT Full */
+#define ESTATUS_1000_THALF     0x1000  /* Can do 1000BT Half */
 
 /* N-way test register. */
-#define NWAYTEST_RESV1         0x00ff  /* Unused...                   */
-#define NWAYTEST_LOOPBACK      0x0100  /* Enable loopback for N-way   */
-#define NWAYTEST_RESV2         0xfe00  /* Unused...                   */
+#define NWAYTEST_RESV1          0x00ff  /* Unused...                   */
+#define NWAYTEST_LOOPBACK       0x0100  /* Enable loopback for N-way   */
+#define NWAYTEST_RESV2          0xfe00  /* Unused...                   */
+
+/* 1000BASE-T Control register */
+#define ADVERTISE_1000FULL      0x0200  /* Advertise 1000BASE-T full duplex */
+#define ADVERTISE_1000HALF      0x0100  /* Advertise 1000BASE-T half duplex */
 
+/* 1000BASE-T Status register */
+#define LPA_1000LOCALRXOK       0x2000  /* Link partner local receiver status */
+#define LPA_1000REMRXOK         0x1000  /* Link partner remote receiver status */
+#define LPA_1000FULL            0x0800  /* Link partner 1000BASE-T full duplex */
+#define LPA_1000HALF            0x0400  /* Link partner 1000BASE-T half duplex */
+
+/* Flow control flags */
+#define FLOW_CTRL_TX           0x01
+#define FLOW_CTRL_RX           0x02
 
 /**
  * mii_nway_result
  *
  * The one exception to IEEE 802.3u is that 100baseT4 is placed
  * between 100T-full and 100T-half.  If your phy does not support
- * 100T4 this is fine. If your phy places 100T4 elsewhere in the
+ * 100T4 this is fine. If your phy places 100T4 elsewhere in the
  * priority order, you will need to roll your own function.
  */
 static inline unsigned int mii_nway_result (unsigned int negotiated)
@@ -154,5 +188,4 @@ static inline unsigned int mii_duplex (unsigned int duplex_lock,
        return 0;
 }
 
-
 #endif /* __LINUX_MII_H__ */
index dcc381d301ce1120506c2047d1b2ddd2221d9dbf..cb8398d2c00cd7bb8194959f5aee95874f35a185 100644 (file)
 #define PCI_DEVICE_ID_PLX_SPCOM200     0x1103
 #define PCI_DEVICE_ID_PLX_DJINN_ITOO   0x1151
 #define PCI_DEVICE_ID_PLX_R753         0x1152
+#define PCI_DEVICE_ID_PLX_9030         0x9030
 #define PCI_DEVICE_ID_PLX_9050         0x9050
 #define PCI_DEVICE_ID_PLX_9060         0x9060
 #define PCI_DEVICE_ID_PLX_9060ES       0x906E
index 957ce3b16161f351b0d132b6a617310de7dfe9f7..519cef1612eb42adc6567bec62c6b94cc5e55f8e 100644 (file)
 
 #elif defined (CONFIG_MPC85xx)
 #include <asm/immap_85xx.h>
-#define _POST_WORD_ADDR        (CONFIG_SYS_IMMR + offsetof(ccsr_pic_t, tfrr))
+#define _POST_WORD_ADDR        (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_PIC_OFFSET + \
+                               offsetof(ccsr_pic_t, tfrr))
 
 #elif defined (CONFIG_MPC86xx)
 #include <asm/immap_86xx.h>
-#define _POST_WORD_ADDR        (CONFIG_SYS_IMMR + offsetof(ccsr_pic_t, tfrr))
+#define _POST_WORD_ADDR        (CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_PIC_OFFSET + \
+                               offsetof(ccsr_pic_t, tfrr))
 
 #elif defined (CONFIG_4xx)
 #define _POST_WORD_ADDR \
index a8de3e1df6d441364b26d689a0b58f797fd7d03e..ffdee7d43d385532a9bf22e1f8eae00ef0127bfa 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libgeneric.a
+LIB    = $(obj)libgeneric.o
 
 COBJS-$(CONFIG_ADDR_MAP) += addr_map.o
 COBJS-$(CONFIG_BZIP2) += bzlib.o
@@ -59,7 +59,7 @@ SRCS  := $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index d6e283045f6bbeb430c8d41a2b4072816b6875c1..c965577dc093e7a21325b9e37b74ab9ebdb7645e 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)libfdt.a
+LIB    = $(obj)libfdt.o
 
 SOBJS  =
 
@@ -38,7 +38,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 57f03b0cd784637dc95fa252054fa477736b3943..4d3401dfa1c89f05be405334aa795eab59f8c80d 100644 (file)
@@ -26,7 +26,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)liblzma.a
+LIB    = $(obj)liblzma.o
 
 SOBJS  =
 
@@ -39,7 +39,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 5dd1bf57758fdff07e15ae4ad0a5bd2e3b538cb8..69bc8392213f2448356a0d209961c863d4e76707 100644 (file)
@@ -23,7 +23,7 @@
 
 include $(TOPDIR)/config.mk
 
-LIB    = $(obj)liblzo.a
+LIB    = $(obj)liblzo.o
 
 SOBJS  =
 
@@ -34,7 +34,7 @@ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index b89cd809bfe75b1aeb94a5335ebbc90e1b1addd0..56954650af535099e93221952961c10dbbe62197 100644 (file)
@@ -26,7 +26,7 @@ SECTIONS
 {
   .resetvec 0xf8004ffc :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } = 0xffff
 
   .text      :
index d171269c32512f30a2da2046195a06cc30e1bc20..8a9e6e9475d628a73bdaf7c28f15d75392025a28 100644 (file)
@@ -26,7 +26,7 @@ SECTIONS
 {
   .resetvec 0x00800FFC :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } = 0xffff
 
   .text      :
index e676e0c7c098504e9b2afe89a9239d6509f14886..73190cd39035ee095cd08eba8aa6e6b19e4e9938 100644 (file)
@@ -26,7 +26,7 @@ SECTIONS
 {
   .resetvec 0xE3003FFC :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } = 0xffff
 
   .text      :
index 5a586fc7c8a66dfbb7a71f807fed3a36aa8935fc..9894a105396ae1745aeb759f2addd8d48359eb55 100644 (file)
@@ -26,7 +26,7 @@ SECTIONS
 {
   .resetvec 0x00800FFC :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } = 0xffff
 
   .text      :
index 1601c36891147cf3360f3f1495f56e0a8ca384f8..c81ce68c8bfdb3169ca370117742383d91aff37b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2006
+ * (C) Copyright 2006-2010
  * Stefan Roese, DENX Software Engineering, sr@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -26,7 +26,7 @@ SECTIONS
 {
   .resetvec 0xE0013FFC :
   {
-    *(.resetvec)
+    KEEP(*(.resetvec))
   } = 0xffff
 
   .text      :
index 05cd2fd52b3fb9ee6732b9f4b41bbe8a54880844..88c15a4873865e118c99a505b23fd36b7d3ecf08 100644 (file)
 #
 
 NAND_SPL := y
-CONFIG_SYS_TEXT_BASE := 0xfff00000
 PAD_TO := 0xfff04000
 
 include $(TOPDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds \
+         -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
index ad8258957bb81a89c3e0d179415b413bab900494..138e42765f1cd3da89381101e5a2f87feb82e242 100644 (file)
@@ -30,7 +30,6 @@ SECTIONS
        .text : {
                *(.text*)
                . = ALIGN(16);
-               *(.eh_frame)
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
        }
 
@@ -39,13 +38,15 @@ SECTIONS
                *(.data*)
                *(.sdata*)
                _GOT2_TABLE_ = .;
-               *(.got2)
+               KEEP(*(.got2))
                __got2_entries = (. - _GOT2_TABLE_) >> 2;
        }
 
        . = ALIGN(8);
        __bss_start = .;
-       .bss (NOLOAD) : { *(.*bss) }
+       .bss (NOLOAD) : {
+               *(.*bss)
+       }
        _end = .;
 }
 ENTRY(_start)
index 05cd2fd52b3fb9ee6732b9f4b41bbe8a54880844..88c15a4873865e118c99a505b23fd36b7d3ecf08 100644 (file)
 #
 
 NAND_SPL := y
-CONFIG_SYS_TEXT_BASE := 0xfff00000
 PAD_TO := 0xfff04000
 
 include $(TOPDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds \
+         -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
index ad8258957bb81a89c3e0d179415b413bab900494..138e42765f1cd3da89381101e5a2f87feb82e242 100644 (file)
@@ -30,7 +30,6 @@ SECTIONS
        .text : {
                *(.text*)
                . = ALIGN(16);
-               *(.eh_frame)
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
        }
 
@@ -39,13 +38,15 @@ SECTIONS
                *(.data*)
                *(.sdata*)
                _GOT2_TABLE_ = .;
-               *(.got2)
+               KEEP(*(.got2))
                __got2_entries = (. - _GOT2_TABLE_) >> 2;
        }
 
        . = ALIGN(8);
        __bss_start = .;
-       .bss (NOLOAD) : { *(.*bss) }
+       .bss (NOLOAD) : {
+               *(.*bss)
+       }
        _end = .;
 }
 ENTRY(_start)
index 5f95c874f6e972d117fa2d08a51434d058cb9e5a..ff289fb3c6fde94eea675d53c68669191645cc2c 100644 (file)
@@ -43,35 +43,33 @@ SECTIONS
        . = ALIGN(4);
        .data : {
                *(.data)
-       __datarel_start = .;
-               *(.data.rel)
-       __datarelrolocal_start = .;
-               *(.data.rel.ro.local)
-       __datarellocal_start = .;
-               *(.data.rel.local)
-       __datarelro_start = .;
-               *(.data.rel.ro)
        }
 
        . = ALIGN(4);
-       __rel_dyn_start = .;
-       __rel_dyn_end = .;
-       __dynsym_start = .;
-
-       __got_start = .;
-       . = ALIGN(4);
-       .got : { *(.got) }
-
-       __got_end = .;
-       . = .;
        __u_boot_cmd_start = .;
        .u_boot_cmd : { *(.u_boot_cmd) }
        __u_boot_cmd_end = .;
 
        . = ALIGN(4);
-       __bss_start = .;
-       .bss : { *(.bss) }
-       _end = .;
+
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+                . = ALIGN(4);
+               _end = .;
+       }
+
        /DISCARD/ : { *(.bss*) }
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynsym*) }
index 678c80b67413d081ec3aa820e54854a8f7c6e9de..86e5ecb2d2e85655ed2519c268f9371ff92e2751 100644 (file)
 #
 
 NAND_SPL := y
-CONFIG_SYS_TEXT_BASE := 0xfff00000
 
 include $(TOPDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds \
+          -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
index 216d1ec959304e3660bd3f09e0207c43028e9d1e..0544f6bacd02c4e32138c6042637ff18c88698a2 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 # CFLAGS += -DDEBUG
 
-LIB    = $(obj)libnet.a
+LIB    = $(obj)libnet.o
 
 COBJS-$(CONFIG_CMD_NET)  += bootp.o
 COBJS-$(CONFIG_CMD_DNS)  += dns.o
@@ -43,7 +43,7 @@ OBJS  := $(addprefix $(obj),$(COBJS))
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 169d12632430f6ddaa7324c6b8c2d5a1a4472eac..200e2f1b9adcf80ce7060efb6a2c5c48bef9b1a0 100644 (file)
 include $(TOPDIR)/config.mk
 include $(OBJTREE)/include/autoconf.mk
 
-LIB                            = libpost.a
-GPLIB-$(CONFIG_HAS_POST)       += libgenpost.a
+LIB                            = libpost.o
+GPLIB-$(CONFIG_HAS_POST)       += libgenpost.o
 COBJS-$(CONFIG_HAS_POST)       += post.o
 COBJS-$(CONFIG_POST_STD_LIST)  += tests.o
 
-SPLIB-$(CONFIG_HAS_POST) = drivers/libpostdrivers.a
+SPLIB-$(CONFIG_HAS_POST) = drivers/libpostdrivers.o
 SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d lib_$(ARCH) ]; then echo \
-                           "lib_$(ARCH)/libpost$(ARCH).a"; fi)
+                           "lib_$(ARCH)/libpost$(ARCH).o"; fi)
 SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d lib_$(ARCH)/fpu ]; then echo \
-                           "lib_$(ARCH)/fpu/libpost$(ARCH)fpu.a"; fi)
+                           "lib_$(ARCH)/fpu/libpost$(ARCH)fpu.o"; fi)
 SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d cpu/$(CPU) ]; then echo \
-                           "cpu/$(CPU)/libpost$(CPU).a"; fi)
+                           "cpu/$(CPU)/libpost$(CPU).o"; fi)
 SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d board/$(BOARD) ]; then echo \
-                           "board/$(BOARD)/libpost$(BOARD).a"; fi)
+                           "board/$(BOARD)/libpost$(BOARD).o"; fi)
 
 GPLIB  := $(addprefix $(obj),$(GPLIB-y))
 SPLIB  := $(addprefix $(obj),$(SPLIB-y))
@@ -55,7 +55,7 @@ postdeps:
 
 # generic POST library
 $(GPLIB): $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 # specific POST libraries
 $(SPLIB): $(obj).depend postdeps
@@ -63,9 +63,7 @@ $(SPLIB): $(obj).depend postdeps
 
 # the POST lib archive
 $(LIB): $(GPLIB) $(SPLIB)
-       (echo create $(LIB); for lib in $(GPLIB) $(SPLIB) ; \
-        do echo addlib $$lib; done; echo save) \
-       | $(AR) -M
+       $(call cmd_link_o_target, $^)
 
 #########################################################################
 
index d2932bed1333499a0b358e7fd2f850a07e9d5e4a..83026c071373aa0dc8c2544cf992f6b588b65193 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostlwmon.a
+LIB    = libpostlwmon.o
 
 COBJS-$(CONFIG_HAS_POST)       += sysmon.o
 
index 4e95515ef1fcff00e705c7c921e3f21aec669ba6..b1996887cd277c8adf516e8aba873b625d58e7af 100644 (file)
@@ -22,7 +22,7 @@
 # MA 02111-1307 USA
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostlwmon5.a
+LIB    = libpostlwmon5.o
 
 COBJS-$(CONFIG_HAS_POST)       += sysmon.o watchdog.o dspic.o fpga.o dsp.o gdc.o
 
index 8a8578f43949e4ebac4c7f33d7d2c41aca662d8d..2d34dd8d03d14cc5102176ffa672345ab7205236 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostnetta.a
+LIB    = libpostnetta.o
 
 COBJS-$(CONFIG_HAS_POST)       += codec.o dsp.o
 
index d1538f67272da337c55b78653bb73522d6c8e756..d25b0d151a5f701aae2c7db8db07eb68586b8d14 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostpdm360ng.a
+LIB    = libpostpdm360ng.o
 
 COBJS-$(CONFIG_HAS_POST)       += coproc_com.o
 
index 86d8784ca5c64fe80a07ab20753574327db418e5..a8b70059ff1e867669b7cf292ee4b149a4c55755 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostmpc83xx.a
+LIB    = libpostmpc83xx.o
 
 AOBJS-$(CONFIG_HAS_POST)       +=
 COBJS-$(CONFIG_HAS_POST)       += ecc.o
index 162924f6b2f11eb04075dcb1499a2cf02ec683dc..3e1792f8926cad009acced601c3cbcca966734d3 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostmpc8xx.a
+LIB    = libpostmpc8xx.o
 
 AOBJS-$(CONFIG_HAS_POST)       += cache_8xx.o
 COBJS-$(CONFIG_HAS_POST)       += cache.o ether.o spr.o uart.o usb.o watchdog.o
index 1cfd3bb59c3e5d9cd9475e9e58021f6b8f7fcc47..922013131f229546a5aff292e0363f748772347f 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(OBJTREE)/include/autoconf.mk
 
-LIB    = libpostppc4xx.a
+LIB    = libpostppc4xx.o
 
 AOBJS-$(CONFIG_HAS_POST)       += cache_4xx.o
 COBJS-$(CONFIG_HAS_POST)       += cache.o
index 50ae7fb8f0decd9e5c974495cde72c2a5d0d6245..6d146355956252c9aa3ef1a1fd79d8b4262f7f5f 100644 (file)
@@ -174,6 +174,7 @@ static int test_ecc(uint32_t ecc_addr)
        clear_and_enable_ecc();
        out_be32(ecc_mem, ECC_PATTERN);
        out_be32(ecc_mem + 1, ECC_PATTERN);
+       ppcDcbf((u32)ecc_mem);
 
        /* Verify no ECC error reading back */
        value = in_be32(ecc_mem);
@@ -193,6 +194,7 @@ static int test_ecc(uint32_t ecc_addr)
 
        /* Test for correctable error by creating a one-bit error */
        out_be32(ecc_mem, ECC_PATTERN_CORR);
+       ppcDcbf((u32)ecc_mem);
        clear_and_enable_ecc();
        value = in_be32(ecc_mem);
        disable_ecc();
@@ -212,6 +214,7 @@ static int test_ecc(uint32_t ecc_addr)
 
        /* Test for uncorrectable error by creating a two-bit error */
        out_be32(ecc_mem, ECC_PATTERN_UNCORR);
+       ppcDcbf((u32)ecc_mem);
        clear_and_enable_ecc();
        value = in_be32(ecc_mem);
        disable_ecc();
@@ -232,6 +235,7 @@ static int test_ecc(uint32_t ecc_addr)
 
        /* Remove error from SDRAM and enable ECC. */
        out_be32(ecc_mem, ECC_PATTERN);
+       ppcDcbf((u32)ecc_mem);
        clear_and_enable_ecc();
 
        return ret;
index 0b6cdf58c9bb1439546ab289743aac2255b9ecd9..0d87ae0f9d65469580d26d101aa20d434f99d0e0 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(TOPDIR)/config.mk
 
-LIB    = libpostdrivers.a
+LIB    = libpostdrivers.o
 
 COBJS-$(CONFIG_HAS_POST)       += i2c.o memory.o rtc.o
 
index 4a1b1a49d17bd481e401070ad44b78d69779638b..4cbd9f3703f8f2b9f47cf9ad0626a2dbdbf281dc 100644 (file)
@@ -63,11 +63,12 @@ int i2c_post_test (int flags)
        unsigned int i;
 #ifndef CONFIG_SYS_POST_I2C_ADDRS
        /* Start at address 1, address 0 is the general call address */
-       for (i = 1; i < 128; i++)
+       for (i = 1; i < 128; i++) {
                if (i2c_ignore_device(i))
                        continue;
                if (i2c_probe (i) == 0)
                        return 0;
+       }
 
        /* No devices found */
        return -1;
index 0cd15cfa137b636a931647760f60e68b3acfb903..bc9b82ef2488fb527e139398a19c583edf49c636 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(TOPDIR)/config.mk
 
-LIB    = libpost$(ARCH).a
+LIB    = libpost$(ARCH).o
 
 AOBJS-$(CONFIG_HAS_POST)       += asm.o
 COBJS-$(CONFIG_HAS_POST)       += cpu.o cmp.o cmpi.o two.o twox.o three.o threex.o
index 25726db73db1430f8a59a0ed15bcebf2089ad711..b97ad6fbc8b231fb47b5eb3c9a8011b4a049d470 100644 (file)
@@ -22,7 +22,7 @@
 #
 include $(TOPDIR)/config.mk
 
-LIB    = libpost$(ARCH)fpu.a
+LIB    = libpost$(ARCH)fpu.o
 
 COBJS-$(CONFIG_HAS_POST)       += fpu.o 20001122-1.o 20010114-2.o 20010226-1.o 980619-1.o
 COBJS-$(CONFIG_HAS_POST)       += acc1.o compare-fp-1.o mul-subnormal-single-1.o
index 1efc9c7d97d76f8639a4af8c621786c0c4322e36..17f8ef76234369f0d7e148bffecf432df09cd3ba 100644 (file)
@@ -34,7 +34,7 @@ CPPFLAGS += -I$(TOPDIR)
 all:   $(LIB)
 
 $(LIB):        $(obj).depend $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+       $(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
index 04dfe9c3f1ec19ef0dde0d6782d8ecc6f009d591..2f7a59c00b959a04a8f28d64b1d5b662b26dd849 100644 (file)
@@ -12,7 +12,7 @@
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
@@ -28,9 +28,9 @@ HEADERS       := fw_env.h
 
 # Compile for a hosted environment on the target
 HOSTCPPFLAGS  = -idirafter $(SRCTREE)/include \
-                -idirafter $(OBJTREE)/include2 \
-                -idirafter $(OBJTREE)/include \
-                -DUSE_HOSTCC
+               -idirafter $(OBJTREE)/include2 \
+               -idirafter $(OBJTREE)/include \
+               -DUSE_HOSTCC
 
 ifeq ($(MTD_VERSION),old)
 HOSTCPPFLAGS += -DMTD_OLD