u-boot-brain/arch
Timur Tabi 6ca88b0958 powerpc/85xx: relocate CCSR before creating the initial RAM area
Before main memory (DDR) is initialized, the on-chip L1 cache is used as a
memory area for the stack and the global data (gd_t) structure.  This is
called the initial RAM area, or initram.  The L1 cache is locked and the TLBs
point to a non-existent address (so that there's no chance it will overlap
main memory or any device).  The L1 cache is also configured not to write
out to memory or the L2 cache, so everything stays in the L1 cache.

One of the things we might do while running out of initram is relocate CCSR.
On reset, CCSR is typically located at some high 32-bit address, like
0xfe000000, and this may not be the best place for CCSR.  For example, on
36-bit systems, CCSR is relocated to 0xffe000000, near the top of 36-bit
memory space.

On some future Freescale SOCs, the L1 cache will be forced to write to the
backing store, so we can no longer have the TLBs point to non-existent address.
Instead, we will point the TLBs to an unused area in CCSR.  In order for this
technique to work, CCSR needs to be relocated before the initram memory is
enabled.

Unlike the original CCSR relocation code in cpu_init_early_f(), the TLBs
we create now for relocating CCSR are deleted after the relocation is finished.
cpu_init_early_f() will still need to create a TLB for CCSR (at the new
location) for normal U-Boot purposes.  This is done to keep the impact to
existing U-Boot code minimal and to better isolate the CCSR relocation code.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2011-09-29 19:01:04 -05:00
..
arm led: remove camel casing of led identifiers globally 2011-09-13 08:30:52 +02:00
avr32 Unify timer_init() and cpu_init() prototypes 2011-08-01 15:10:15 +02:00
blackfin Merge branch 'master' of git://git.denx.de/u-boot-blackfin 2011-08-02 21:46:53 +02:00
m68k ColdFire:Clean up the CONFIG_STANDALONE_LOAD_ADDR usage 2011-09-04 22:46:55 +08:00
microblaze unify version_string 2011-07-28 17:22:53 +02:00
mips MIPS: mips32: fix wrong loop bound in flush_cache() 2011-09-03 10:43:45 +09:00
nios2 unify version_string 2011-07-28 17:22:53 +02:00
powerpc powerpc/85xx: relocate CCSR before creating the initial RAM area 2011-09-29 19:01:04 -05:00
sh sh: add calling mmc_initialize in board.c 2011-08-22 13:16:09 +09:00
sparc Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
x86 Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
.gitignore update include/asm/ gitignore after move 2010-05-07 00:17:30 +02:00