This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Fully restoring DM6467T EVM device memory to factory values (aka Spectrum Digital HD1080P)

(Please note that this is a breakout thread from http://e2e.ti.com/support/embedded/f/356/p/86363/298144.aspx#298144)

(This is a rewrite of this post, which disappeared or got deleted.)

I wanted to know how to fully restore the DM6467T EVM device memory to factory values.  This includes all of the following memory:

- Hard Drive (((There are instructions out there on how to do this.  Just beware of incompleteness or inappropriateness.  Tread carefully.)))

- CPLD (((Altera has free compiler.  You'll need something like their USB Blaster.  I wrote detailed links here before, but post disappeared.)))

- NAND (((Instructions below)))

- I2C EEPROM (((Haven't gotten to this point yet)))

- SPI EEPROM (((Haven't gotten to this point yet)))

- ARM ROM (((At this point, assuming all processors from TI come with appropriate RBL, Rom Boot Loader, in them)))

Unfortunately I got EXTREMELY few replies to my posts from the community, which has greatly disappointed me.  I had such high hopes in the beginning.

Anyway, over the past 8 days I managed to clobber my NAND and just now recover it.  So at least now I know how to restore the NAND.  I still don't know how to restore the other things mentioned above.

Note that along the way, I found PLENTY of incomplete instructions.  The incompleteness of them was a real problem, and the reason it took a week to accomplish something that really takes less than 30 minutes once you know how.  There were two major conceptual hurdles that I had to get over.

1) Instructions for using dhcp on the EVM to download files doesn't work if your local area network router also has an internal tftp server.  There is a FAQ mentioning this, but it's instructions aren't appropriate for this situation.  I finally figured out how to bypass dhcp by using tftpboot along with some other environmental variables.  But that was only after unsuccessfully trying to serial flash, where the instructions must be incomplete as well.

2) Code Composer Studio has a very counter-intuitive user interface and it takes a big leap to get into the mindset of its authors in order to use it.  Yes, all the instructions are out there, but you have to know the answer before you can find it.  Once I cracked that nut, I was very quick to successfully flash both UBL and U-Boot to the NAND.

Note that after flashing UBL and U-Boot to the NAND, I was able to return to my prior download attempts and successfully download the kernel.  But the only instructions I had included downloading a ramdisk as well.  That didn't sit right with me.  I figured the original EVM demo didn't use a ramdisk.  By this time, it only took an overnight rest to figure out that the bootcmd and bootargs recommendations in the instructions were inappropriate.  I was able to simply look at there current values on the EVM, which I had never clobbered, fortunately!  

So, finally, this morning I got my EVM running again.  It was only about one 10 hour day of work after clobbering it.  The other seven 10 hour days were spent figuring out how to clobber it in the first place.

Oh, another big problem is WHAT addresses are correct.  The instructions are a hodge podge of things, often for the wrong processor or EVM.  If you get the wrong address somewhere, you're... clobbered.

With all that said, below are my notes for how to SUCCESSFULLY recover the NAND, from UBL to U-Boot to Linux Kernel, without ramdisk.

------------------------------------------------------------------------------------

 

HELMUT'S NOTES FOR USING CCS:

1 Load CCS with any workspace

2 View->Target Configurations, right click on Helmut1080PEVM, select Launch Selected Configuration

3 If not already, View->Debug

4 Tools->GEL Files.  Select GEL Files tree line, in GEL files window, right click, select Load GEL...

5 Locate first emulator in Debug windows, right click on it, select Connect Target

6 Target->Load Program, select nand_flash_writer.out

7 If not already, View->Console

8 Target->Run

9 answer questions per items 4++ above, follow bouncing ball.  NOTE VERY VERY SLOW.  Will say something like "ALL Tests Passed"

10 Repeat for both UBL and U-Boot

11 NEXT: need to write kernel to filesystem per http://processors.wiki.ti.com/index.php/DM6467_EVM_Installation#Writing_Kernel_and_Filesystem_Image_to_NAND_Flash 

-----------------------------------------------------------------------------------------------------------
 adapted from: http://processors.wiki.ti.com/index.php/DM6467_EVM_Installation#Flashing_UBL_and_U-Boot_to_NAND_using_Serial_Flasher
-----------------------------------------------------------------------------------------------------------

 

 

 

=== STEP ONE === Flashing UBL to NAND using CCS

1 Open CCS and connect to target. ARM gel file can be found here: http://arago-project.org/files/releases/davinci-psp_3.2.0.0-beta/board-utilities/ccs/

2 Change SW3 to UART boot mode (BM [0-3]:0001).

3 Using CCS, File->Load->nand_flash_writer.out and run (F5)  ***HgF*** wrong, Load is under Target menu

4 In the dialog box; enter the path of the UBL binary.

5 In the dialog box asking for offset, enter 1

6 Specify 'y' for global erase

7 Wait until the flash writer completes writing ubl is written to NAND.

 

 

=== STEP TWO === Flashing U-Boot using CCS

1 Open CCS and connect to target. ARM gel file can be found here

2 Change SW3 to UART boot mode (BM [0-3]:0001).

3 Using CCS, File->Load->nand_flash_writer.out and run (F5)  ***HgF*** wrong, Load is under Target menu

4 In the dialog box; enter the path of the u-boot.bin file.

5 In the dialog box asking for offset, enter 6

6 Specify 'n' for global erase

7 Specify 81080000 for the Application Entry Point

8 Specify 81080000 for the Application Load Address 

9 Wait until the flash writer completes writing u-boot to NAND.

 

 

-----------------------------------------------------------------------------------

 

=== STEP THREE === Flashing Linux Kernel using U-Boot prompt

0 Before doing this step, install ubuntu somewhere and get the atftpd server running.  I put it on VMware on a WindowsXP host.  Start at http://processors.wiki.ti.com/index.php/How_to_Build_a_Ubuntu_Linux_host_under_VMware

1 Interrupt U-Boot by pressing enter while U-Boot is counting down waiting for you

2 DM6467 EVM > setenv ipaddr 192.168.123.19 (((note this IP address was next avail on my router's dhcp client list)))

3 DM6467 EVM > setenv serverip 192.168.123.18 (((note this IP address is my ubuntu/vmware/windowsXP)))

4 DM6467 EVM > setenv bootfile uImage-dm6467t-evm.bin (((note this bin came from the DVDSK CD that came with the EVM)))

5 DM6467 EVM > setenv loadaddr 0x80700000

6 DM6467 EVM > tftpboot (((note size of download, round up to next 0x20000 block, not 0x800 page.  Per some warning FAQ.  Example uses 0x200000 below)))

7 DM6467 EVM > nand erase 0x160000 0x200000

8 DM6467 EVM > nand write 0x80700000 0x160000 0x200000

9 Instructions say to download and flash ramdisk also, but I'm thinking demo doesn't use ramdisk.  Let's try it.  (((I was correct)))

 

-----------------------------------------------------------------------------------

 

=== STEP FOUR  === Prepare for boot

0 DM6467 EVM > printenv (((check to see if bootcmd and bootargs already set)))

1 DM6467 EVM > setenv bootcmd 'nboot 0x80700000 0 0x160000; bootm'

2 DM6467 EVM > setenv bootargs 'mem=112M console=ttyS0,115200n8 root=/dev/hda1 rw ip=off vpif_display.ch2_numbuffers=0 vpif_display.ch3_numbuffers=0'

3 DM6467 EVM > saveenv

4 DM6467 EVM > boot