]> git.karo-electronics.de Git - karo-tx-uboot.git/commit
ARM1176: Coexist with other ARM1176 platforms
authorCyril Chemparathy <cyril@ti.com>
Mon, 7 Jun 2010 18:13:27 +0000 (14:13 -0400)
committerSandeep Paulraj <s-paulraj@ti.com>
Mon, 7 Jun 2010 18:13:27 +0000 (14:13 -0400)
commitb87996d24a41cfc15fea125e5c805163af4acba1
tree4f06bcccb350702117f474ffacb9a2201a13e31b
parent9bb3b3d4406c1e388a99f6fb189147d6a06cc2cf
ARM1176: Coexist with other ARM1176 platforms

The current ARM1176 CPU specific code is too specific to the SMDK6400
architecture.  The following changes were necessary prerequisites for the
addition of other SoCs based on ARM1176.

Existing board's (SMDK6400) configuration has been modified to keep behavior
unchanged despite these changes.

1. Peripheral port remap configurability
The earlier code had hardcoded remap values specific to s3c64xx in start.S.
This change makes the peripheral port remap addresses and sizes configurable.

2. U-Boot code relocation support
Most architectures allow u-boot code to run initially at a different
address (possibly in NOR) and then get relocated to its final resting place
in RAM.  Added support for this capability in ARM1176 architecture.

3. Disable TCM if necessary
If a ROM based bootloader happened to have initialized TCM, we disable it here
to keep things sane.

4. Remove unnecessary SoC specific includes
ARM1176 code does not really need this SoC specific include.  The presence
of this include prevents builds on other ARM1176 archs.

5. Modified virt-to-phys conversion during MMU disable
The original MMU disable code masks out too many bits from the load address
when it tries to figure out the physical address of the jump target label.
Consequently, it ends up branching to the wrong address after disabling the
MMU.

Signed-off-by: Cyril Chemparathy <cyril@ti.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
arch/arm/cpu/arm1176/cpu.c
arch/arm/cpu/arm1176/start.S
include/configs/smdk6400.h