NAND boot: MPC8536DS support
authorMingkai Hu <Mingkai.hu@freescale.com>
Wed, 23 Sep 2009 07:20:37 +0000 (15:20 +0800)
committerKumar Gala <galak@kernel.crashing.org>
Wed, 30 Sep 2009 13:42:06 +0000 (08:42 -0500)
commit9a1a0aedbbd56f901bfbc124f18ec6d9dcefe282
tree04470f95747aaa8faf64f9dbc79dfe8751583652
parent07355700523203c5f72018712cf0d93683f255c8
NAND boot: MPC8536DS support

MPC8536E can support booting from NAND flash which uses the
image u-boot-nand.bin. This image contains two parts: a 4K
NAND loader and a main U-Boot image. The former is appended
to the latter to produce u-boot-nand.bin. The 4K NAND loader
includes the corresponding nand_spl directory, along with the
code twisted by CONFIG_NAND_SPL. The main U-Boot image just
like a general U-Boot image except the parts that included by
CONFIG_SYS_RAMBOOT.

When power on, eLBC will automatically load from bank 0 the
4K NAND loader into the FCM buffer RAM where CPU can execute
the boot code directly. In the first stage, the NAND loader
copies itself to RAM or L2SRAM to free up the FCM buffer RAM,
then loads the main image from NAND flash to RAM or L2SRAM
and boot from it.

This patch implements the NAND loader to load the main image
into L2SRAM, so the main image can configure the RAM by using
SPD EEPROM. In the first stage, the NAND loader copies itself
to the second to last 4K address space, and uses the last 4K
address space as the initial RAM for stack.

Obviously, the size of L2SRAM shouldn't be less than the size
of the image used. If so, the workaround is to generate another
image that includes the code to configure the RAM by SPD and
load it to L2SRAM first, then relocate the main image to RAM
to boot up.

Signed-off-by: Mingkai Hu <Mingkai.hu@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
MAKEALL
Makefile
board/freescale/mpc8536ds/config.mk
board/freescale/mpc8536ds/tlb.c
include/configs/MPC8536DS.h
nand_spl/board/freescale/mpc8536ds/Makefile [new file with mode: 0644]
nand_spl/board/freescale/mpc8536ds/nand_boot.c [new file with mode: 0644]