uboot/include
Mingkai Hu 9a1a0aedbb 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>
2009-09-30 08:42:06 -05:00
..
asm-arm Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-avr32 Add AVR32 LCD support 2009-07-26 13:12:02 +02:00
asm-blackfin Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-generic asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-i386 Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-m68k Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-microblaze Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-mips Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-nios Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-nios2 Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-ppc ppc/85xx: Clean up immap_85xx.h 2009-09-28 22:35:58 -05:00
asm-sh Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-sparc asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
bedbug
configs NAND boot: MPC8536DS support 2009-09-30 08:42:06 -05:00
cramfs
galileo rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
jffs2 jffs2: summary support 2008-12-09 23:39:59 +01:00
linux Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
lzma Refresh LZMA-lib to v4.65 2009-07-22 09:43:27 +02:00
mtd UBI: Add basic UBI support to U-Boot (Part 7/8) 2008-11-19 20:34:39 +01:00
pcmcia
u-boot tools: mkimage: Fixed build warnings 2009-09-10 22:58:47 +02:00
usb usb: fix CONFIG_SYS_MPC83xx_USB_ADDR not defined error 2009-07-09 21:33:14 +02:00
.gitignore Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
4xx_i2c.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
74xx_7xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
405_dimm.h
405_mal.h Dual-license IBM code contributions 2009-08-09 23:15:33 +02:00
ACEX1K.h
MCD_dma.h
MCD_progCheck.h
MCD_tasksInit.h
SA-1100.h
_exports.h export SPI functions to standalone apps 2009-08-09 22:34:51 +02:00
addr_map.h Introduce addr_map library 2008-12-15 22:05:36 +01:00
ahci.h Update Freescale copyrights to remove "All Rights Reserved" 2009-07-29 09:59:22 +02:00
ali512x.h Move ali512x.h 2009-03-20 22:39:13 +01:00
altera.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ambapp.h
api_public.h API: Improve glue mid-layer of the API demo application. 2009-02-18 00:39:44 +01:00
arm925t.h
armcoremodule.h
at45.h at91: rename DATAFLASH_MMC_SELECT to CONFIG_DATAFLASH_MMC_SELECT 2009-04-04 20:42:19 +02:00
at91rm9200_i2c.h
at91rm9200_net.h
ata.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
atmel_lcdc.h
bcd.h Replace BCD2BIN and BIN2BCD macros with inline functions 2009-08-25 12:57:55 +02:00
bcm5221.h
bmp_layout.h
bus_vcxk.h new video driver for bus vcxk framebuffers 2009-07-26 13:17:21 +02:00
bzlib.h
circbuf.h
clps7111.h
command.h Make "usage" messages more helpful. 2009-06-12 20:45:48 +02:00
common.h tools: mkimage: Fixed build warnings 2009-09-10 22:58:47 +02:00
commproc.h 8xx, mgsuvd: rename board to a more generic name 2009-03-18 20:50:04 +01:00
compiler.h Move uninitialized_var() macro from ubi_uboot.h to compiler.h 2009-09-04 22:16:40 +02:00
config_cmd_all.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
config_cmd_default.h include/config_cmd_default.h cleanup 2009-07-17 23:25:51 +02:00
crc.h
da9030.h
dataflash.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ddr_spd.h fsl-ddr: add the DDR3 SPD infrastructure 2009-03-30 13:33:50 -05:00
div64.h Add a do_div() wrapper macro, lldiv(). 2009-01-24 00:23:09 +01:00
dm9000.h Add config option for disabling DM9000-SROM support. 2009-06-08 22:57:21 -07:00
dm9161.h
dp83848.h
ds1722.h Misc ds1722 fixups 2009-09-04 21:54:52 +02:00
ds4510.h Add support for Maxim's DS4510 I2C device 2009-01-24 01:47:50 +01:00
dtt.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
e500.h ppc/p4080: Determine various chip frequencies on CoreNet platforms 2009-09-24 12:05:29 -05:00
elf.h compiler.h: unify system ifdef cruft here 2009-07-19 21:41:46 +02:00
environment.h unify {CONFIG_,}ENV_IS_EMBEDDED 2009-08-25 12:57:54 +02:00
exports.h export SPI functions to standalone apps 2009-08-09 22:34:51 +02:00
ext2fs.h
fat.h Remove non-ascii characters from fat code 2008-12-04 20:51:44 +01:00
fdc.h
fdt.h powerpc: Fix bootm to boot up again with a Ramdisk 2008-09-13 02:03:38 +02:00
fdt_support.h 83xx: Replace CONFIG_MPC83XX with CONFIG_MPC83xx 2009-06-12 20:47:17 +02:00
fis.h
flash.h Support up to 7 banks for ids as specified in JEDEC JEP106Z 2009-08-26 08:58:27 +02:00
fpga.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
fsl_esdhc.h fsl_esdhc: Add device tree fixups 2009-07-16 22:24:06 +02:00
fsl_nfc.h MX31: Add NAND SPL for i.MX31. 2009-06-21 16:18:12 +02:00
hush.h hush: add showvar command for hush shell. 2008-10-18 21:54:02 +02:00
hwconfig.h Add simple hwconfig infrastructure 2009-07-16 22:23:53 +02:00
i2c.h powerpc: updates for the keymile boards 2009-07-21 00:06:11 +02:00
i8042.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ide.h mucmc52, uc101: delete ata@3a00 node, if no CF card is detected 2009-09-25 01:22:13 +02:00
image.h mkimage: Add Kirkwood Boot Image support (kwbimage) 2009-09-10 22:58:48 +02:00
iomux.h stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
ioports.h
keyboard.h
kgdb.h
lcd.h lcd.h: define extern vidinfo_t for all cases 2009-07-26 13:16:50 +02:00
lcdvideo.h
lh7a40x.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
lh7a400.h
lh7a404.h
libata.h
libfdt.h libfdt: Fix C++ compile-time cast error on gnu 4.2.1 2009-04-01 19:30:27 -04:00
libfdt_env.h compiler.h: unify system ifdef cruft here 2009-07-19 21:41:46 +02:00
linux_logo.h
lmb.h
logbuff.h
lpd7a400_cpld.h
lxt971a.h
lynxkdi.h
malloc.h Consolidate arch-specific mem_malloc_init() implementations 2009-09-04 21:47:07 +02:00
mb862xx.h video: mb862xx: use macros instead of magic numbers 2009-07-17 15:23:40 +02:00
mg_disk.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
mii_phy.h
miiphy.h Dual-license IBM code contributions 2009-08-09 23:15:33 +02:00
mk48t59.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mmc.h include/mmc.h: Fix typo in IS_SD() macro 2009-08-23 22:11:30 +02:00
mpc5xx.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc5xxx.h mpc52xx: Add SPI driver. 2009-06-14 23:01:38 +02:00
mpc5xxx_sdma.h Move MPC5xxx_FEC driver to drivers/net 2008-08-29 13:58:07 -06:00
mpc8xx.h
mpc8xx_irq.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc83xx.h mpc83xx: add missing CSCONFIG_ODT_WR_CFG for 832x CPUs 2009-08-21 17:10:35 -05:00
mpc85xx.h
mpc86xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc106.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc824x.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc8220.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc8260.h
mpc8260_irq.h
nand.h Remove legacy NAND and disk on chip code. 2009-07-16 19:07:47 -05:00
net.h net: sync env ethaddr to device enetaddr in eth_init() 2009-08-07 17:39:23 -07:00
netdev.h Convert CS8900 Ethernet driver to CONFIG_NET_MULTI API 2009-08-25 13:35:54 -07:00
nios-io.h
nios.h
nios2-epcs.h
nios2-io.h
nios2.h
nomadik.h Added nomadik.h header 2009-02-22 13:39:27 +01:00
ns7520_eth.h
ns9750_bbus.h
ns9750_eth.h
ns9750_mem.h
ns9750_ser.h
ns9750_sys.h
ns16550.h include/ns16550.h: Unify structure declaration for registers 2009-04-04 01:23:56 +02:00
ns87308.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
onenand_uboot.h Compile warning fix in onenand_uboot.h 2009-02-02 20:42:15 +01:00
part.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
pc_keyb.h
pca953x.h Add support for PCA953x I2C gpio devices 2008-12-19 18:11:49 -06:00
pci.h pci/fsl_pci_init: Use PCIe capability to determine if controller is PCIe 2009-08-28 17:12:36 -05:00
pci_ids.h Add Intel E1000 PCIE card support 2009-08-08 02:26:05 -07:00
pcmcia.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
post.h FPU POST: fix warnings when building with 2.18 binutils 2009-01-24 01:49:41 +01:00
ppc4xx.h ppc4xx: Big cleanup of PPC4xx defines 2009-09-11 10:35:58 +02:00
ppc4xx_enet.h Dual-license IBM code contributions 2009-08-09 23:15:33 +02:00
ppc405.h ppc4xx: Big cleanup of PPC4xx defines 2009-09-11 10:35:58 +02:00
ppc440.h ppc4xx: Big cleanup of PPC4xx defines 2009-09-11 10:35:58 +02:00
ppc_asm.tmpl
ppc_defs.h
ps2mult.h Rename common ns16550 constants with UART_ prefix to prevent conflicts 2009-04-03 22:34:07 +02:00
radeon.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
reiserfs.h
rtc.h Switch from per-driver to common definition of bin2bcd and bcd2bin 2009-08-25 12:57:55 +02:00
s3c24x0.h include/s3c24x0.h: fix S3C24X0_SPI_CHANNEL declaration 2009-08-25 12:22:38 +02:00
s3c64x0.h ARM: Add arm1176 core with S3C6400 SoC 2008-08-31 00:39:46 +02:00
s3c2400.h
s3c2410.h
s3c6400.h s3c64xx: remove unnecessary definition 2009-04-24 22:54:18 +02:00
s6e63d6.h A driver for the S6E63D6 SPI display controller from Samsung 2009-02-24 10:00:28 +01:00
s_record.h
sata.h SATA: do not auto-initialize during boot 2009-01-27 23:42:39 +01:00
scsi.h
sed156x.h
sed13806.h
serial.h stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
sha1.h
sha256.h
sm501.h
smiLynxEM.h
spartan2.h
spartan3.h Fix Spartan-3 definitions. 2008-09-22 22:07:20 +02:00
spd.h
spd_sdram.h
spi.h
spi_flash.h
status_led.h ARM Add blue colour LED to status_led. 2009-06-12 20:39:49 +02:00
stdio_dev.h console: unify printing current devices 2009-07-19 01:02:46 +02:00
stratixII.h
sym53c8xx.h
systemace.h
timestamp.h Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
tsec.h tsec: Add support for BCM5482S PHY 2009-06-15 00:13:54 -07:00
tsi108.h
tsi148.h Add support for the Tundra TSI148 VME-bridge 2009-07-19 11:21:08 +02:00
twl4030.h OMAP3 Move twl4030 mmc function 2009-07-29 09:57:43 +02:00
tws.h drivers/twserial: Add protocol driver for "three wire serial" interface. 2009-03-30 09:38:36 +02:00
ubi_uboot.h Move uninitialized_var() macro from ubi_uboot.h to compiler.h 2009-09-04 22:16:40 +02:00
universe.h
usb.h usb : musb : Enabling DM6446 (TI DaVinci) USB module power 2009-01-28 19:57:30 +01:00
usb_cdc_acm.h
usb_defs.h Prepare USB layer for ehci 2009-01-28 19:57:27 +01:00
usbdescriptors.h
usbdevice.h drivers/usb: regorganisation 2009-04-06 20:40:46 +02:00
version.h
vfd_logo.h
video.h
video_ad7176.h
video_ad7177.h
video_ad7179.h
video_easylogo.h
video_fb.h
video_font.h
video_logo.h
virtex2.h
vsc7385.h
vxworks.h vxworks.h: Fix build problem introduced by commits 29a4c24d/e9084b23 2008-12-09 00:24:30 +01:00
w83c553f.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
watchdog.h
xilinx.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
xyzModem.h