I have a question regarding booting from flash. I'm using a custom OMAP3530 board which has 256 MB of nand flash, and 128 MB of RAM. I've been able to
copy my filesystem to flash as a jffs2 image, and I can tell my kernel
to boot from that location (/dev/mtdblock4). I would also like to boot
off of the kernel from nand flash, but I'm unclear on how to figure out
the physical address of the kernel location in the flash memory. I
have copied my kernel into /dev/mtd3 using mtd-tools when connected
over NFS. According to a message printed during the kernel's boot
(dmesg), I see the flash MTD partitions are as follows:
Start End Device
0x00000000 0x00080000 X-Loader-NAND
0x00080000 0x00100000 U-boot-NAND
0x00100000 0x00140000 Boot Env-NAND
0x00140000 0x00540000 Kernel-NAND
0x00540000 0x10000000 Filesytem-NAND
Obviously,
I've copied the kernel into the fourth of these partitions. However,
these addresses appear to be virtual addresses, not physical
addresses. I am unclear on how to find the physical address from which
to boot the kernel. A wiki page on the OMAP/davinci wiki (http://wiki.davincidsp.com/index.php/Writing_Kernel_Image_to_NAND_Flash)
shows the standard locations on several different davinci EVMs, but of
course, our device has a different memory layout. How do I find the physical address for the kernel to boot from? I tried the
following without success:
nboot 80700000 0 140000
(I was trying to copy the flash at address 140000 on device 0 to memory address 0x80700000). Any ideas?
Neil