This patch series add full relocation and cache support for arm based boards. I test this for arm1136, arm_cortexa8 and arm926ejs based boards.
Relocation support: !! This change is not compatible to old code !! If you want to compile in old style, you can set CONFIG_SYS_ARM_WITHOUT_RELOC but this possibility will be removed soon, so please adapt your board(s) changed arch/arm/lib/board.c to get inline with arch/powerpc/lib/board.c maybe it is possible to snyc them to one arch/generic/lib/board.c? This approach is similiar to powerpc, so there is a need for an initial stack pointer addr defined through CONFIG_SYS_INIT_SP_ADDR. Please also read doc/README.arm-relocation There is more info what is done, and maybe should be done. Cache support: I used the patches from Alessandro Rubini: http://lists.denx.de/pipermail/u-boot/2010-January/067099.html and rebased them to actual code. Also, in case of full relocation, the position of the TLB can not be set on compile time, instead it is calculated in board_init_f() and stored in gd. Also added cache support for arm_cortexa8 and arm1136. Heiko Schocher (26): arm: get rid of bi_env ARM: flush cache for arm926 ARM: cp15: setup mmu and enable dcache ARM V7 (OMAP): add data cache support, test on Beagle board ARM (ARM11): add data cache support, test on Qong board relocation: fixup cmdtable common: move TOTAL_MALLOC_LEN to include/common.h i2c: fix command usage help disk/part.c: fix relocation fixup i2c, omap24xx: set bus_initialized only after relocation. nand_boot_fsl_nfc.c: make "nfc" a "static const" pointer ARM: add relocation support ARM: implement relocation for ARM11 ARM: implement relocation for ARM V7 (OMAP) ARM: implement relocation for ARM926 ARM: implement relocation for ARM920 ARM: implement relocation for ARM925 ARM: implement relocation for ARM946 ARM: implement relocation for pxa ARM: implement relocation for ixp ARM: implement relocation for sa1100 ARM: implement relocation for s3c44b0 ARM: implement relocation for lh7a40x ARM: implement relocation for arm_intcm ARM: implement relocation for arm720t ARM: implement relocation for arm1176 arch/arm/config.mk | 8 + arch/arm/cpu/arm1136/start.S | 206 +++++++++++++++ arch/arm/cpu/arm1136/u-boot.lds | 14 +- arch/arm/cpu/arm1176/start.S | 286 ++++++++++++++++++++ arch/arm/cpu/arm1176/u-boot.lds | 14 +- arch/arm/cpu/arm720t/start.S | 170 ++++++++++++ arch/arm/cpu/arm720t/u-boot.lds | 14 +- arch/arm/cpu/arm920t/start.S | 225 ++++++++++++++++- arch/arm/cpu/arm920t/u-boot.lds | 14 +- arch/arm/cpu/arm925t/start.S | 204 ++++++++++++++- arch/arm/cpu/arm925t/u-boot.lds | 14 +- arch/arm/cpu/arm926ejs/orion5x/dram.c | 24 ++- arch/arm/cpu/arm926ejs/start.S | 172 ++++++++++++- arch/arm/cpu/arm926ejs/u-boot.lds | 14 +- arch/arm/cpu/arm946es/start.S | 168 ++++++++++++- arch/arm/cpu/arm946es/u-boot.lds | 14 +- arch/arm/cpu/arm_intcm/start.S | 166 ++++++++++++ arch/arm/cpu/arm_intcm/u-boot.lds | 14 +- arch/arm/cpu/armv7/mx51/u-boot.lds | 14 +- arch/arm/cpu/armv7/omap3/cache.S | 82 ++++++ arch/arm/cpu/armv7/omap3/emif4.c | 34 +++ arch/arm/cpu/armv7/omap3/sdrc.c | 38 +++ arch/arm/cpu/armv7/start.S | 191 +++++++++++++- arch/arm/cpu/armv7/u-boot.lds | 14 +- arch/arm/cpu/ixp/start.S | 280 ++++++++++++++++++++ arch/arm/cpu/ixp/u-boot.lds | 14 +- arch/arm/cpu/lh7a40x/start.S | 187 +++++++++++++- arch/arm/cpu/lh7a40x/u-boot.lds | 14 +- arch/arm/cpu/pxa/start.S | 168 ++++++++++++ arch/arm/cpu/pxa/u-boot.lds | 14 +- arch/arm/cpu/s3c44b0/start.S | 174 ++++++++++++ arch/arm/cpu/s3c44b0/u-boot.lds | 14 +- arch/arm/cpu/sa1100/start.S | 162 ++++++++++++ arch/arm/cpu/sa1100/u-boot.lds | 14 +- arch/arm/include/asm/config.h | 3 +- arch/arm/include/asm/global_data.h | 11 + arch/arm/include/asm/u-boot-arm.h | 14 +- arch/arm/include/asm/u-boot.h | 4 - arch/arm/lib/board.c | 468 ++++++++++++++++++++++++++++++++- arch/arm/lib/cache-cp15.c | 82 ++++++ arch/arm/lib/cache.c | 13 +- arch/arm/lib/interrupts.c | 19 ++- arch/avr32/include/asm/u-boot.h | 1 - arch/avr32/lib/board.c | 25 +-- arch/i386/include/asm/u-boot.h | 4 - arch/m68k/lib/board.c | 35 +--- arch/mips/include/asm/u-boot.h | 2 - arch/mips/lib/board.c | 36 +--- arch/powerpc/lib/board.c | 10 - arch/sparc/lib/board.c | 28 +-- board/davedenx/qong/config.mk | 4 +- board/davedenx/qong/qong.c | 87 ++++--- board/karo/tx25/config.mk | 4 +- board/karo/tx25/tx25.c | 11 +- board/keymile/km_arm/km_arm.c | 24 ++ board/logicpd/imx27lite/config.mk | 2 +- board/logicpd/imx27lite/imx27lite.c | 15 +- board/ti/beagle/config.mk | 2 +- common/cmd_bdinfo.c | 12 +- common/cmd_bmp.c | 6 + common/cmd_i2c.c | 9 + common/command.c | 37 +++ disk/part.c | 11 +- doc/README.arm-relocation | 321 ++++++++++++++++++++++ drivers/i2c/omap24xx_i2c.c | 4 +- include/command.h | 3 + include/common.h | 9 + include/configs/da850evm.h | 6 +- include/configs/imx27lite-common.h | 5 + include/configs/km_arm.h | 4 + include/configs/omap3_beagle.h | 6 + include/configs/qong.h | 11 + include/configs/tx25.h | 13 +- nand_spl/board/karo/tx25/u-boot.lds | 14 +- nand_spl/nand_boot.c | 7 + nand_spl/nand_boot_fsl_nfc.c | 13 +- 76 files changed, 4320 insertions(+), 230 deletions(-) create mode 100644 doc/README.arm-relocation - changes since previous patch set - add CONFIG_SYS_ARM_WITHOUT_RELOC - changed order of patches -> cache patches are independent from relocation patches - add missing cpu types: arm1176 arm720t arm920t arm925t arm946es arm_intcm ixp lh7a40x pxa s3c44b0 sa1100 - only converted boards which I had tested - rebased againt current top of tree -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot