u-boot-brain/cpu
Mingkai Hu 7da53351d8 ppc/85xx: add boot from NAND/eSDHC/eSPI support
The MPC8536E is capable of booting form NAND/eSDHC/eSPI, this patch
implements these three bootup methods in a unified way - all of these
use the general cpu/mpc85xx/start.S, and load the main image to L2SRAM
which lets us use the SPD to initialize the SDRAM.

For all three bootup methods, the bootup process can be divided into two
stages: the first stage will initialize the corresponding controller,
configure the L2SRAM, then copy the second stage image to L2SRAM and
jump to it. The second stage image is just like the general U-Boot image
to configure all the hardware and boot up to U-Boot command line.

When boot from NAND, the eLBC controller will first load the first stage
image to internal 4K RAM buffer because it's also stored on the NAND
flash. The first stage image, also call 4K NAND loader, will initialize
the L2SRAM, load the second stage image to L2SRAM and jump to it. The 4K
NAND loader's code comes from the corresponding nand_spl directory, along
with the code twisted by CONFIG_NAND_SPL.

When boot from eSDHC/eSPI, there's no such a first stage image because
the CPU ROM code does the same work. It will initialize the L2SRAM
according to the config addr/word pairs on the fixed address and
initialize the eSDHC/eSPI controller, then load the second stage image
to L2SRAM and jump to it.

The macro CONFIG_SYS_RAMBOOT is used to control the code to produce the
second stage image for all different bootup methods. It's set in the
board config file when one of the bootup methods above is selected.

Signed-off-by: Mingkai Hu <Mingkai.hu@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2009-09-15 21:30:09 -05:00
..
74xx_7xx ppc: Remove -fno-strict-aliasing 2009-09-04 22:15:48 +02:00
arm720t arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm920t arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm925t arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm926ejs Merge branch 'master' of git://git.denx.de/u-boot-arm 2009-09-07 23:12:46 +02:00
arm946es arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm1136 arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm1176 arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm_cortexa8 arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
arm_intcm arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
at32ap Add AVR32 LCD support 2009-07-26 13:12:02 +02:00
blackfin Blackfin: use scratch pad for exception stack 2009-09-02 05:58:38 -04:00
i386 i386: Replace [read, write]_mmcr_[byte, word, long] with memory mapped structure 2009-09-04 21:56:45 +02:00
ixp arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
leon2 Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
leon3 Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
lh7a40x arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
mcf52x2 ColdFire: Add M5208EVB and MCF520x CPU support 2009-07-14 09:27:17 -05:00
mcf523x ColdFire: PLATFORM_CPPFLAGS updates for new compiler 2009-03-17 15:58:37 -06:00
mcf532x ColdFire: Fix compile warning messages 2009-08-26 03:44:31 -05:00
mcf547x_8x ColdFire: PLATFORM_CPPFLAGS updates for new compiler 2009-03-17 15:58:37 -06:00
mcf5227x ColdFire: Fix compile warning messages 2009-08-26 03:44:31 -05:00
mcf5445x Minor coding style cleanup. 2009-08-10 10:38:34 +02:00
microblaze microblaze: Use cache functions (especially cache status) 2009-01-23 10:40:00 +01:00
mips MIPS: Implement ethernet halt for au1x00 2009-05-16 09:20:03 +09:00
mpc5xx Fix all linker script to handle all rodata sections 2009-03-20 22:39:12 +01:00
mpc5xxx Reset i2c slave devices during init on mpc5xxx cpus 2009-09-06 11:26:04 +02:00
mpc8xx ppc: Remove -fno-strict-aliasing 2009-09-04 22:15:48 +02:00
mpc8xxx ppc/8xxx: Misc DDR related fixes 2009-09-15 21:30:08 -05:00
mpc83xx mpc83xx/serdes: License cleanup: remove "All Rights Reserved" notice 2009-09-04 23:02:04 +02:00
mpc85xx ppc/85xx: add boot from NAND/eSDHC/eSPI support 2009-09-15 21:30:09 -05:00
mpc86xx ppc/85xx/86xx: Bug fix: call to puts in probecpu() moved to checkcpu(). 2009-09-08 09:10:08 -05:00
mpc512x Update Freescale copyrights to remove "All Rights Reserved" 2009-07-29 09:59:22 +02:00
mpc824x ppc: Remove -fno-strict-aliasing 2009-09-04 22:15:48 +02:00
mpc8220 Fix all linker script to handle all rodata sections 2009-03-20 22:39:12 +01:00
mpc8260 i2c: Create common default i2c_[set|get]_bus_speed() functions 2009-06-12 20:39:45 +02:00
nios General help message cleanup 2009-06-12 20:47:16 +02:00
nios2 General help message cleanup 2009-06-12 20:47:16 +02:00
ppc4xx ppc4xx: Big cleanup of PPC4xx defines 2009-09-11 10:35:58 +02:00
pxa arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
s3c44b0 arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
sa1100 arm: Remove -fno-strict-aliasing 2009-09-04 22:15:53 +02:00
sh2 sh: unify linker script 2009-07-08 11:43:15 +09:00
sh3 sh: unify linker script 2009-07-08 11:43:15 +09:00
sh4 sh: unify linker script 2009-07-08 11:43:15 +09:00