Merge branch 'master' of git://git.denx.de/u-boot-samsung
authorWolfgang Denk <wd@denx.de>
Tue, 30 Nov 2010 20:30:13 +0000 (21:30 +0100)
committerWolfgang Denk <wd@denx.de>
Tue, 30 Nov 2010 20:30:13 +0000 (21:30 +0100)
977 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/arm1176/Makefile
arch/arm/cpu/arm1176/s3c64xx/Makefile
arch/arm/cpu/arm1176/start.S
arch/arm/cpu/arm1176/tnetv107x/Makefile
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/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/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/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/omap4/Makefile
arch/arm/cpu/armv7/omap4/board.c
arch/arm/cpu/armv7/s5p-common/Makefile
arch/arm/cpu/armv7/s5pc1xx/Makefile
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/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/lib/Makefile
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/start.S
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/start.S
arch/powerpc/cpu/mpc512x/u-boot.lds
arch/powerpc/cpu/mpc5xx/Makefile
arch/powerpc/cpu/mpc5xx/config.mk
arch/powerpc/cpu/mpc5xx/start.S
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/start.S
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/start.S
arch/powerpc/cpu/mpc8220/u-boot.lds
arch/powerpc/cpu/mpc824x/Makefile
arch/powerpc/cpu/mpc824x/config.mk
arch/powerpc/cpu/mpc824x/start.S
arch/powerpc/cpu/mpc824x/u-boot.lds
arch/powerpc/cpu/mpc8260/Makefile
arch/powerpc/cpu/mpc8260/config.mk
arch/powerpc/cpu/mpc8260/start.S
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/start.S
arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
arch/powerpc/cpu/mpc86xx/Makefile
arch/powerpc/cpu/mpc86xx/config.mk
arch/powerpc/cpu/mpc86xx/start.S
arch/powerpc/cpu/mpc86xx/u-boot.lds
arch/powerpc/cpu/mpc8xx/Makefile
arch/powerpc/cpu/mpc8xx/config.mk
arch/powerpc/cpu/mpc8xx/start.S
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/sh3/Makefile
arch/sh/cpu/sh4/Makefile
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/eric/Makefile with 67% 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/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/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/atum8548/atum8548.c
board/balloon3/Makefile
board/barco/Makefile [deleted file]
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/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/corenet_ds/corenet_ds.c
board/freescale/corenet_ds/pci.c
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/mpc8536ds/mpc8536ds.c
board/freescale/mpc8540ads/Makefile
board/freescale/mpc8540ads/mpc8540ads.c
board/freescale/mpc8541cds/Makefile
board/freescale/mpc8541cds/mpc8541cds.c
board/freescale/mpc8544ds/Makefile
board/freescale/mpc8544ds/mpc8544ds.c
board/freescale/mpc8548cds/Makefile
board/freescale/mpc8548cds/mpc8548cds.c
board/freescale/mpc8555cds/Makefile
board/freescale/mpc8555cds/mpc8555cds.c
board/freescale/mpc8560ads/Makefile
board/freescale/mpc8560ads/mpc8560ads.c
board/freescale/mpc8568mds/Makefile
board/freescale/mpc8568mds/mpc8568mds.c
board/freescale/mpc8569mds/Makefile
board/freescale/mpc8569mds/mpc8569mds.c
board/freescale/mpc8572ds/Makefile
board/freescale/mpc8572ds/mpc8572ds.c
board/freescale/mpc8610hpcd/Makefile
board/freescale/mpc8610hpcd/mpc8610hpcd.c
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/p1022ds/p1022ds.c
board/freescale/p1_p2_rdb/Makefile
board/freescale/p1_p2_rdb/p1_p2_rdb.c
board/freescale/p1_p2_rdb/pci.c
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/igep0030/Makefile
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/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/pm854/pm854.c
board/pm856/Makefile
board/pm856/pm856.c
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/smdk2400/Makefile
board/samsung/smdk2410/Makefile
board/samsung/smdk6400/Makefile
board/samsung/smdkc100/Makefile
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/sbc8548/sbc8548.c
board/sbc8560/Makefile
board/sbc8641d/Makefile
board/sbc8641d/sbc8641d.c
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/evm/Makefile
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/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/tqm85xx/tqm85xx.c
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/common/fsl_8xxx_pci.c
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_pci.c
common/command.c
common/dlmalloc.c
common/env_mmc.c
common/env_sf.c
common/fdt_support.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/omap_hsmmc.c
drivers/mtd/Makefile
drivers/mtd/cfi_flash.c
drivers/mtd/nand/Makefile
drivers/mtd/nand/ndfc.c
drivers/mtd/onenand/Makefile
drivers/mtd/spi/Makefile
drivers/mtd/spi/ramtron.c [new file with mode: 0644]
drivers/mtd/spi/spi_flash.c
drivers/mtd/spi/spi_flash_internal.h
drivers/mtd/ubi/Makefile
drivers/net/Makefile
drivers/net/dc2114x.c
drivers/net/e1000.c
drivers/net/eepro100.c
drivers/net/fec_mxc.c
drivers/net/greth.c
drivers/net/natsemi.c
drivers/net/ns8382x.c
drivers/net/pcnet.c
drivers/net/phy/Makefile
drivers/net/rtl8139.c
drivers/net/rtl8169.c
drivers/net/tsi108_eth.c
drivers/net/uli526x.c
drivers/pci/Makefile
drivers/pci/fsl_pci_init.c
drivers/pci/pci.c
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/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/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/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/P1022DS.h
include/configs/P1_P2_RDB.h
include/configs/P4080DS.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/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/corenet_ds.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/igep0030.h
include/configs/keymile-common.h
include/configs/mcc200.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/sc3.h
include/configs/tcm-bf537.h
include/configs/tnetv107x_evm.h
include/configs/zipitz2.h
include/pci.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/freescale/mpc8536ds/Makefile
nand_spl/board/freescale/mpc8569mds/Makefile
nand_spl/board/freescale/p1_p2_rdb/Makefile
nand_spl/board/sheldon/simpc8313/Makefile
net/Makefile
net/bootp.c
net/eth.c
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/Makefile
tools/env/Makefile

diff --git a/CREDITS b/CREDITS
index d681018..dacc5b4 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 9258cb1..f47fca5 100644 (file)
@@ -524,8 +524,6 @@ Unknown / orphaned boards:
        RPXClassic      MPC8xx
        RPXlite         MPC8xx
 
-       ERIC            PPC4xx
-
        MOUSSE          MPC824x
 
        RPXsuper        MPC8260
@@ -591,6 +589,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 c54c6e8..767d561 100755 (executable)
--- a/MAKEALL
+++ b/MAKEALL
@@ -11,7 +11,7 @@
 # line; without any arguments, MAKEALL defaults to building all Power
 # Architecture systems (i. e. same as for "MAKEALL powerpc").
 #
-# With the iontroduction of the board.cfg file, it has become possible
+# With the introduction of the board.cfg file, it has become possible
 # to provide additional selections.  We use standard command line
 # options for this:
 #
@@ -125,6 +125,12 @@ FILTER="\$1 !~ /^#/"
 
 if [ "$SELECTED" ] ; then
        SELECTED=$(awk '('"$FILTER"') { print $1 }' boards.cfg)
+
+       # Make sure some boards from boards.cfg are actually found
+       if [ -z "$SELECTED" ] ; then
+               echo "Error: No boards selected, invalid arguments"
+               exit 1
+       fi
 fi
 
 #########################################################################
index f0c2703..87a383d 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,99 @@ 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)
+ifdef CONFIG_FSL_DIU_FB
+LIBS += board/freescale/common/libfreescale.o
+endif
+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 1acf9a3..68f5fb0 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 4216892..2a64c4d 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 7701b03..930e0d1 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 c8e18f7..eaed371 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 48dc7e3..0776101 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 1ca9199..7ec869b 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 b527939..0785b19 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 f04d268..cd8f016 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:
@@ -300,13 +272,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? */
+       cmp     r8, #23                 /* relative fixup? */
        beq     fixrel
-       cmp     r8, #2          /* absolute fixup? */
+       cmp     r8, #2                  /* absolute fixup? */
        beq     fixabs
        /* ignore unknown type of fixup */
        b       fixnext
@@ -315,7 +287,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 +295,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
@@ -408,6 +380,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 fe9d8a0..c63dc92 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 d5ac7d3..1a097b5 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 240f1e3..1b93008 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 c099036..5c6df08 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 8cd267b..46050da 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
  */
@@ -184,9 +163,8 @@ stack_setup:
 
        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         */
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
        cmp     r0, r6
        beq     clear_bss
 
@@ -197,35 +175,53 @@ copy_loop:
        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, r7, 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     r8, r1, #0xff
+       cmp     r8, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r8, #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
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -242,18 +238,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 */
        /* 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 4a0bc70..0686e42 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 cbb13b2..dcc7782 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 f030c53..31da706 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 d8a4383..5c71b77 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 114d8ad..7530e6a 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 01a2f55..1d6a538 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 28945e2..32b41b3 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 f53fdc2..00ce62b 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 7e8d6ed..bd53724 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 d4edde7..01edb9b 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
  */
@@ -230,9 +209,8 @@ stack_setup:
 
        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         */
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
        cmp     r0, r6
        beq     clear_bss
 
@@ -243,35 +221,53 @@ copy_loop:
        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, r7, 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     r8, r1, #0xff
+       cmp     r8, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r8, #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
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -289,24 +285,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 */
        /* 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 6985434..a6f8b56 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 8d0e88f..29465c2 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 51229c6..ce590a7 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
  */
@@ -221,9 +200,8 @@ stack_setup:
 
        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         */
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
        cmp     r0, r6
        beq     clear_bss
 
@@ -234,35 +212,53 @@ copy_loop:
        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, r7, 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     r8, r1, #0xff
+       cmp     r8, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r8, #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
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -271,6 +267,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 +276,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 */
        /* 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 1c4e9bc..7b53edb 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 7701b03..930e0d1 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 def3980..be9f6dd 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 d7e9e2c..4eb1d87 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 fc2cc03..0754297 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 ce3e5a5..bab048b 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 76f0179..38d7f03 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 67d1b0e..0e112b3 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 0fc9f2a..1c1f58e 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 74aea74..862ca02 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 11f4141..e5a9994 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 bf8dfa8..1cbff43 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 c335d5c..64e6aae 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 e81f2da..d4747f3 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 cad43ba..f4950f7 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
  */
@@ -190,9 +171,8 @@ stack_setup:
 
        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         */
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
        cmp     r0, r6
        beq     clear_bss
 
@@ -203,42 +183,60 @@ copy_loop:
        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, r7, 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     r8, r1, #0xff
+       cmp     r8, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r8, #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
        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 +248,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 */
        /* 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 6535963..eb91979 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 7701b03..930e0d1 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 957ca34..fcaba30 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
  */
@@ -188,9 +167,8 @@ stack_setup:
 
        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         */
+       ldr     r3, _bss_start_ofs
+       add     r2, r0, r3              /* r2 <- source end address         */
        cmp     r0, r6
        beq     clear_bss
 
@@ -201,35 +179,53 @@ copy_loop:
        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, r7, 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     r8, r1, #0xff
+       cmp     r8, #23                 /* relative fixup? */
+       beq     fixrel
+       cmp     r8, #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
        add     r0, r0, r4
-       sub     r1, r1, r3
        add     r1, r1, r4
        mov     r2, #0x00000000         /* clear                            */
 
@@ -246,18 +242,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 */
        /* 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 242c7ec..3b5c18d 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 7743fef..8c0e915 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 7cfaa2c..e8be9c9 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))
 
 #########################################################################