HOWTO Boot from NAND Flash on the Logic OMAP3530 Zoom
The Logic OMAP 3530Zoom requires LogicLoader and U-Boot in order to boot the Linux Kernel. Logic Loader does not support jffs2 so we have to burn the file system from U-Boot
Requirements
These instructions have been most recently tested against:
- 2.6.32 Kernel
- Logic Loader Version 2.4.13p1
- A Logic PD Zoom board, with NOR and NAND flash populated.
LogicLoader versions older than 2.4.6 do not support flash file systems
You have to boot the board from NAND flash in order for these instructions to work
Linux MTD partitions
NOR flash partitions
0x00000000-0x00800000 : "NOR fs #1"
NAND flash partitions
0x00000000-0x00020000 : "NoLo-NAND"
0x00020000-0x00240000 : "Lboot-NAND"
0x00240000-0x0ffe0000 : "NAND fs #1"
0x0ffe0000-0x10000000 : "u-boot Env-NAND"
Burning the Images to NAND Flash
Erase the NOR partition and NAND partition
The CONFIG block is stored in the second block of NOR so place the partition after the CONFIG block
losh> erase /dev/flash0 B2 B62 losh> erase /dev/nand0 B18 B2030
Create U-Boot/Kernel partition
losh> config CREATE losh> part-add /dev/flash0 a 2 62
Copy U-Boot and kernel NOR boot partition
losh> mount emu /dev/flash0a /emu losh> mount yaffs /emu /boot losh> ifconfig sm0 dhcp losh> cp /tftp/10.0.0.2:u-boot /boot/u-boot losh> cp /tftp/10.0.0.2:uImage-2.6.28-ts-armv7l /boot/uImage
Configure LogicLoader to load and autoboot U-Boot (Note: the [size] you enter for the kernel_size
variable should be the size returned by ls -l uImage...
on your host)
losh> kernel_size= [size] losh> echo "LOLOvideo-open 15 16; part-add /dev/flash0 a 2 62; mount emu /dev/flash0a /emu; mount yaffs /emu /boot; load raw 0x81000000 $kernel_size /boot/uImage; load elf /boot/u-boot; exec -" /dev/config
Reset the board to boot into U-Boot and set the U-Boot ecc to hw (Note: This does not work for all versions of U-Boot, but it will not hurt anything if it runs and fails.)
=> nand ecc hw
or in some versions in which the previous command is not implemented.
=> nandecc hw
Burn the jffs2 image to flash (The $jffs2_size
variable will be the hex value of the size returned by the tftp
command)
=> nand erase 0x240000 => setenv serverip 10.0.0.2 => setenv ipaddr 10.0.0.23 => setenv ethaddr 00:08:ee:02:38:8d => tftp 0x81000000 rootfs.jffs2 => nand write 0x81000000 0x240000 $jffs2_size
Configure U-boot to boot the kernel
=> setenv nandboot 'setenv bootargs display=${display} console=${consoledev},${baudrate} root=/dev/mtdblock3 rootfstype=jffs2 rw;bootm ${loadaddr}' => setenv bootcmd 'run nandboot' => saveenv
Reset the board and it should automatically boot into Linux
Additional Notes
To return to LoLo after writing the configuration script described above, power off your board, hold 'q' in the serial console window, and power the board.