John Tobias wrote:
Hi Guys,
1. The DVFlasher that I am using only works on the first UBL block. Is
there other utility that I can use to program the blocks 2 - 5?.
DVFlasher does not support it directly, but you can modify ubl to write
as many of the blocks as you want. From uartboot.c.
nandBoot.page = 1;
// The block is always block is always 1 (to start with) for the
UBL header
nandBoot.block = START_UBL_BLOCK_NUM;
// This field doesn't matter for the UBL header
nandBoot.ldAddress = 0;
// Write header to page 0 of block 1(or up to block 5)
// Write the UBL to the same block, starting at page 1 (since
blocks are 16k)
UARTSendStringCRLF("Writing UBL to NAND flash");
if (NAND_WriteHeaderAndData(&nandBoot, (uint8_t *)
ackHeader.binAddr) != E_PASS)
goto UART_tryAgain;
// Send SENDAPP command
UARTSendStringNULL("SENDAPP");
// Get the application header and data
if (UARTGetHeaderAndData(&ackHeader) != E_PASS)
{
goto UART_tryAgain;
}
Write blocks from START_UBL_BLOCK_NUM to END_UBL_BLOCK_NUM. See
nandBoot.block = START_UBL_BLOCK_NUM;.
You can do something similar with START_APP_BLOCK_NUM and write extra
copies. NAND_Copy already supports looking for a valid application in
blocks 6-50.
2. In Linux userspace, what utility did you use to check the CRC
validity of UBL data on blocks 1-5?.
I have not ever done this from Linux. This would require the Linux
davinci NAND driver and UBL sharing the same layout.
3. Lastly, what utility did you use in linux userspace to re-program
the UBL block 1-5 just incase they messed up?. I do believe, using
mtdwrite is not possible due to CRC incompatibility.
Ditto.
Thanks,
John
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source