Hello:
These instructions worked for me to boot from a K9F1G08U08 Samsung 128MB NAND:
The main idea is to build the kernel and filesystem with NAND support, boot from an SD card, and write the NAND with the bootstream and filesystem.
In ltib configuration:
DO NOT select the "Build mfg firmware" option in the platform configuration
DO select kobs-ng, boot stream, and mtd-utils in the package list.
Under target image generation options, ensure the jffs2 erase block size setting matches that of the NAND being used (for example, 128K for K9F1G08U08)
Make the first two kernel command line options under the bootstream configuration look like this:
(noinitrd console=ttyAM0,115200 root=/dev/mtdblock1 rootfstype=jffs2 rw rootwait fec_mac=00:08:02:6B:A3:1A gpmi)
(noinitrd console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait fec_mac=00:08:02:6B:A3:1A gpmi)
This makes the default boot NAND, but allows you to boot SD first by using KEY1 on the EVK.
After ltib rebuilds your kernel and filesystem, do this command to ensure the bootstream gets built properly: ./ltib -p imx-bootlets -f
If that errors, use ./ltib -p imx-bootlets -m prep to extract the source.
Run the mk_mx28_sd script (from freescale i.MX28 page) from the ltib directory with the SD card enumerated on the host.
Copy the ltib/rootfs.jffs2 file to the SD card's Linux filesystem partition.
Insert the SD card into the EVK, put DIP block in NAND boot mode, and hold KEY1 down while applying power. This will force it to load kernel and filesystem off of the SD card.
Once the device is booted, login as root.
Execute these commands:
flash_eraseall /dev/mtd0
kobs-ng init /boot/imx28_linux.sb
flash_eraseall /dev/mtd1
nandwrite /dev/mtd1 rootfs.jffs2
sync
poweroff
Remove the SD card, and apply power.
The kernel and filesystem should be sourced from the NAND.