== How to use FlashWriteNAND.bin ARM program on OMAP ? == FWN is expected to be loaded in RAM at 0x10000000 address. You can use tt-loader from a linux host to load it at that address. You need to specify some parameters directly from address 0x1000ffec to 0x1000ffff depending of what you need to do. === Read the NAND === 1. Set 0x1000ffec to 0 or 3 depending on the mode used to write the NAND. So try 0x00000000 and then try 0x00000003 if you got an error. For example, x-load at the very beginning is expected to be read with 0x00000003 command. 2. Set 0x1000fff0 to the RAM address where you want to dump the NAND content. You can just use 0x10001000, but not lower address. If your system RAM size is 64 Mbytes, your RAM is available from 0x10000000 to 0x14000000. 3. Set 0x1000fff4 to the NAND offset where you want to read the NAND 4. Set 0x1000fff8 to the NAND size you want to read Be carreful, offset and size must match NAND block boundaries. 5. Call FWN program by just branch to 0x10000000 address. You will obtain some verbose information onto USB port. === Erase the NAND === You can just erase the NAND by blocks. This will reset any byte to 0xFF in NAND. 1. Set 0x1000ffec to 0x00000002 2. Set 0x1000fff4 to the NAND offset where you want to erase the NAND 3. Set 0x1000fff8 to the NAND size you want to erase 4. Call FWN program by just branch to 0x10000000 address. You will obtain some verbose information onto USB port. === Write the NAND === To write the NAND, you first need to load in RAM a file content to an address greater or equal to 0x10001000. 1. Set 0x1000ffec to 0x00000001 or 0x00000004. You should only use 0x00000000 as 0x00000004 may only be used to write x-load and you should not need to write it (or you really know you have to do so...) 2. Set 0x1000fff0 to the RAM address where you have uploaded the file content. You can just use 0x10001000, but not lower address. If your system RAM size is 64 Mbytes, your RAM is available from 0x10000000 to 0x14000000. 3. Set 0x1000fff4 to the NAND offset where you want to write the NAND 4. Set 0x1000fff8 to the NAND size you want to write Be carreful, offset and size must match NAND block boundaries. 5. Set 0x1000fffc to the NAND total size. For example, 0x04000000 if the NAND is 64 Mbytes large. 6. Call FWN program by just branch to 0x10000000 address. You will obtain some verbose information onto USB port.