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

Reply via email to