Skip to content

arm: add full relocation / cache support

Heiko Schocher u-boot 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest26 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26arm: get rid of bi_envarch/arm/include/asm/u-boot.h arch/avr32/include/asm/u-boot.h arch/i386/include/asm/u-boot.h +2 more+0 -120 replies
2/26ARM: flush cache for arm926arch/arm/lib/cache.c+6 -00 replies
3/26ARM: cp15: setup mmu and enable dcachearch/arm/lib/cache-cp15.c+51 -03 replies
3/26ARM: cp15: setup mmu and enable dcache+0 -01 reply
4/26ARM V7 (OMAP): add data cache support, test on Beagle boardarch/arm/cpu/armv7/omap3/cache.S arch/arm/lib/cache.c include/configs/omap3_beagle.h+88 -00 replies
5/26ARM (ARM11): add data cache support, test on Qong boardarch/arm/cpu/arm1136/start.S arch/arm/lib/cache.c include/configs/qong.h+7 -10 replies
6/26relocation: fixup cmdtablearch/avr32/lib/board.c arch/m68k/lib/board.c arch/mips/lib/board.c +3 more+56 -920 replies
7/26common: move TOTAL_MALLOC_LEN to include/common.harch/m68k/lib/board.c arch/mips/lib/board.c arch/powerpc/lib/board.c +1 more+9 -260 replies
8/26i2c: fix command usage helpcommon/cmd_i2c.c+3 -00 replies
9/26disk/part.c: fix relocation fixupdisk/part.c+9 -20 replies
10/26i2c, omap24xx: set bus_initialized only after relocation.drivers/i2c/omap24xx_i2c.c+3 -10 replies
11/26nand_boot_fsl_nfc.c: make "nfc" a "static const" pointernand_spl/nand_boot_fsl_nfc.c+1 -50 replies
12/26ARM: add relocation supportarch/arm/config.mk arch/arm/include/asm/config.h arch/arm/include/asm/global_data.h +10 more+910 -81 reply
12/26ARM: add relocation support+0 -022 replies
13/26ARM: implement relocation for ARM11arch/arm/cpu/arm1136/start.S arch/arm/cpu/arm1136/u-boot.lds board/davedenx/qong/config.mk +2 more+273 -430 replies
14/26ARM: implement relocation for ARM V7 (OMAP)arch/arm/cpu/armv7/mx51/u-boot.lds arch/arm/cpu/armv7/omap3/emif4.c arch/arm/cpu/armv7/omap3/sdrc.c +4 more+291 -70 replies
15/26ARM: implement relocation for ARM926arch/arm/cpu/arm926ejs/orion5x/dram.c arch/arm/cpu/arm926ejs/start.S arch/arm/cpu/arm926ejs/u-boot.lds +10 more+287 -210 replies
16/26ARM: implement relocation for ARM920arch/arm/cpu/arm920t/start.S arch/arm/cpu/arm920t/u-boot.lds+237 -20 replies
17/26ARM: implement relocation for ARM925arch/arm/cpu/arm925t/start.S arch/arm/cpu/arm925t/u-boot.lds+216 -20 replies
18/26ARM: implement relocation for ARM946arch/arm/cpu/arm946es/start.S arch/arm/cpu/arm946es/u-boot.lds+180 -20 replies
19/26ARM: implement relocation for pxaarch/arm/cpu/pxa/start.S arch/arm/cpu/pxa/u-boot.lds+181 -10 replies
20/26ARM: implement relocation for ixparch/arm/cpu/ixp/start.S arch/arm/cpu/ixp/u-boot.lds+293 -10 replies
21/26ARM: implement relocation for sa1100arch/arm/cpu/sa1100/start.S arch/arm/cpu/sa1100/u-boot.lds+175 -10 replies
22/26ARM: implement relocation for s3c44b0arch/arm/cpu/s3c44b0/start.S arch/arm/cpu/s3c44b0/u-boot.lds+187 -10 replies
23/26ARM: implement relocation for lh7a40xarch/arm/cpu/lh7a40x/start.S arch/arm/cpu/lh7a40x/u-boot.lds+199 -20 replies
24/26ARM: implement relocation for arm_intcmarch/arm/cpu/arm_intcm/start.S arch/arm/cpu/arm_intcm/u-boot.lds+179 -10 replies
25/26ARM: implement relocation for arm720tarch/arm/cpu/arm720t/start.S arch/arm/cpu/arm720t/u-boot.lds+183 -10 replies
26/26ARM: implement relocation for arm1176arch/arm/cpu/arm1176/start.S arch/arm/cpu/arm1176/u-boot.lds+299 -10 replies

Reviews trailers per patch

2 of 28 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchBen GardinerScott Wood
SeriesR-b T-b T-b A-b
1/26
2/26
3/26
3/26
4/26R-b
5/26
6/26
7/26
8/26
9/26
10/26
11/26A-b
12/26
12/26
13/26
14/26
15/26T-b
16/26
17/26
18/26
19/26
20/26
21/26
22/26
23/26
24/26
25/26
26/26

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

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

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

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany