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. changes since v1: - missed to add statistics for enabling dcache to arm926ejs in commit message. Add also CACHE command to the tx25 and magnesium board. So I changed old patch "ARM: flush cache for arm926" to "ARM (ARM926ejs): add data cache support, tested on magnesium and tx25 board" - set TEXT_BASE == relocation address for the tx25 board. -> in relocation_code() no need to copy code again for this board. This results in editing "ARM: implement relocation for ARM926" patch. -> So actual next branch needs a rebase. Sorry for that! Heiko Schocher (26): arm: get rid of bi_env ARM: cp15: setup mmu and enable dcache ARM (ARM926ejs): add data cache support, tested on magnesium and tx25 board 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 | 81 ++++++ 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 | 344 ++++++++++++++++++++++++ drivers/i2c/omap24xx_i2c.c | 4 +- include/command.h | 3 + include/common.h | 9 + include/configs/da850evm.h | 6 +- include/configs/imx27lite-common.h | 6 + include/configs/km_arm.h | 4 + include/configs/omap3_beagle.h | 6 + include/configs/qong.h | 11 + include/configs/tx25.h | 14 +- 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, 4344 insertions(+), 230 deletions(-) create mode 100644 doc/README.arm-relocation _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot