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.

DM355 Linux Kernel Flashing steps

Is there a step by step guide available to program a blank flash using a serial connection from scratch?

I have a DVEVM board into which I've fitted a blank flash. I've compiled the u-boot and kernel images, and I think I've successfully gotten the u-boot programmed into the blank flash using the sfh_DM35x utility (using the great step by steps given by Juan on http://community.ti.com/forums/p/2658/10521.aspx). I can boot the DVEVM from the flash and it tells me u-boot is running. I stop the autoboot when it invites me to, and I get the DM355 EVM# prompt.

Now I need to get the linux kernel image into the flash over the serial connection, is there a similar set of instructions for this?

Also could you confirm please that the errors I see during the boot are normal when only u-boot has been flashed in:

U-Boot 1.2.0 (May 14 2009 - 11:52:55)
DRAM:  128 MB
NAND:  NAND device: Manufacturer ID: 0x20, Chip ID: 0xd3 (ST Micro NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
No NAND device found!!!
1024 MiB
*** Warning - bad CRC or NAND, using default environment

Many thanks.

  • Steve,

    I have not used sfh_DM35x utility to write the Linux Kernel in the past, I normally use u-boot for this, please see http://wiki.davincidsp.com/index.php?title=Writing_Kernel_Image_to_NAND_Flash 

     

  • Thanks for the reply. Unfortunately writing the linux kernel (or anything) over ethernet won't be an option to me, as our prototype product boards have only a serial port. I'll need a way to write the kernel over serial.

    Incidentally I have tried loading the EVM kernel over ethernet, the Linux host is running tftp-server and the kernel image is in the right place:

    Hit any key to stop autoboot:  0
    DM355 EVM # setenv serverip 192.168.0.61
    DM355 EVM # setenv bootfile uImage
    DM355 EVM # dhcp
    BOOTP broadcast 1
    DHCP client bound to address 192.168.0.220
    TFTP from server 192.168.0.61; our IP address is 192.168.0.220
    Filename 'uImage'.
    Load address: 0x80700000
    Loading: T T T T T T T T T T T T T T T T
    Retry count exceeded; starting again

    The EVM's got an IP address OK, though while the transfer is trying to run I can't ping the EVM which I might expect to work.

    But as I say, ethernet is not really an option, serial loading is most likely needed.

  • Actually I might have found a way to do this. I discovered that U-Boot on the DVEVM has a utility 'loadb' which allows file transfer using the Kermit protocol. I've now managed to download the kernel to the DVEVM serially using loadb and a terminal program. Takes about 15 minutes though, but seems to get it there.

     

     

  • This is great news, but 15 min is a bit slow.  I was planning on trying this with the serial flashing utility when I got to the office later today; it seems it should be possible, but wanted to try it before suggesting it.

  • The Sfh/Sft combination utility can be used to flash in the kernel - but this is quite a bit of work BUT, it is doable.

    The Sft (which is the program that runs on the target) does have nand support so it knows how to write to NAND - you'll need to know the offset into NAND where you want to write the kernel, and then setup a custom command in the SFH and SFT to receive the uImage, write it into NAND. Now NOTE, that sft uses HW ECC to write in the images it receives (u-boot and ubl usually) since the RBL ARM bootloader uses HW ECC to read in the data. HOWEVER, u-boot might be configured for either Soft ECC (software ECC) or HW ECC; check this before you go ahead with the modifications.

    Finally, you'll need to setup the u-boot environment variables (include/configs/davinci.h has some default u-boot env. vars defined, u can change this) to ensure it reads in the kernel after power on, something like "nboot 0x87000000 0 [offset into nand]"

  • Hi,

     

    I am trying to update uImage and ramdisk.gz into NAND Flash of my dm355 over Serial.

    Is there a wiki page explaining the steps?

     

    I have already installed sfh/sft on my linux desktop pc and it works for updating ubl/uboot apps.

     

    Many thanks