[U-Boot] [PATCH 00/26 v2][NEXT] arm: add full relocation / cache support

Heiko Schocher hs at denx.de
Fri Sep 17 13:10:27 CEST 2010


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



More information about the U-Boot mailing list