Getting Started Guide for DM6446 EVM
On this page you are going to find all the necessary information to start from scratch to use the RidgeRun SDK on your DM6446 evaluation module (EVM). In the following sections we assume that you have already downloaded the DVSDK version 4.01.00.09 for OMAP3X processor (this version is compatible with the DM6446) and that you have installed the toolchain 2009q1-203 from codesourcery as well as your DM6446 SDK following the steps on The RidgeRun installation guide.
RidgeRun SDK's kernel has support for the following list of drivers for the DM6446 processor:
- UART driver
- I2C driver
- GPIO driver
- EDMA driver
- NAND driver with 1-bit ECC, up to 2K page size support
- MMC/SD driver with SDHC and SDIO support
- SPI driver with EEPROM support (polled, PIO and DMA mode of operation)
- USB driver with Host, Device and OTG modes; Supports USB Host/Device Mass Storage Class, USB Hub and HID clasess as well as USB Device CDC / RNDIS classes
Basic preliminary work
Installing the DVSDK
1. Set the DVSDK binary as executable and set the required permissions.
sudo chmod 777 dvsdk_omap3530-evm_4_01_00_09_setuplinux
2. Install the DVSDK. For ubuntu versions different than Ubuntu 10.04 LTS 32-bit you will need to add the --forcehost argument to install it:
note: During the EZSDK installation process you will be asked for the toolchain's path, assuming that you installed it on /opt, the path that you need to provide is /opt/codesourcery/arm-2009q1/bin/
Setting up serial access to the Linux console
You use the serial port to control u-boot and Linux. The picocom terminal emulator work well for this purpose.
Setting up a TFTP server
If you are planning to use the SDK's installer to install images generated by the SDK in NAND, installing a TFTP server you will speed up downloads to the target hardware by using TFTP.
Setting up an NFS server
For application development, it is convenient to use root NFS mount file system for the target hardware. This allows you to rebuild your application on the host and immediately run the application on the target hardware with no interveining steps. You host PC needs to be configured as a NFS server for this in order to work properly.
It is possible that during u-boot / UBL related tasks your board's bootloader becomes corrupted ( likely due to a write / erase operation of the address where u-boot / UBL is stored in NAND / NOR ). In such case, it is necessary to use the TI's Flash Utilities provided with your DM6446 SDK. It is assumed that you have already build the development directory by issuing a "make" command from the root of the directory.
1. Turn OFF your board. Set the DM6446 EVM into UART boot mode by configuring the S3 dip switch as shown in Fig.1 (S3-1 and S3-2, ON position).
2. Turn ON your board and open your serial console, verify that you get a sequence of "BOOTME" messages on screen (This means that the board is currently in UART boot mode).
3. Close the serial console.
4. Proceed to load the binary image of u-boot into RAM, this task is accomplished by using the Serial Loader tool (slh) TI Flash Utility. The Serial Loader executable is located under the path shown below (please notice that the remaining recovery procedure commands will be given assuming that the user is located in this path).
5. Issue the following command:
./slh_DM644x.exe -load2DDR ../../../../src/u-boot.bin -startAddr 0x82000000 -loadAddr 0x82000000 -v -p /dev/ttyUSB0
note: * The startAddr and loadAddr parameters have the same value and should match the U-boot RAM address specified under the Bootloader Configuration SDK menu.
* The -p parameter can be used to specify the device where the serial cable is attached.
The user should get an output similar to the following after executing the command:
----------------------------------------------------- TI Serial Loader Host Program for DM644x (C) 2011, Texas Instruments, Inc. Ver. 1.50 ----------------------------------------------------- Loading image to DDR Attempting to connect to device /dev/ttyUSB0... Press any key to end this program at any time. Waiting for the DM644x... Target: BOOTME BOOTME commmand received. Returning ACK and header... ACK command sent. Waiting for BEGIN command... Target: BEGIN BEGIN commmand received. Sending CRC table... 100% [ ] CRC table sent.... Waiting for DONE... Target: DONE DONE received. Sending the UBL... 100% [ ] UBL sent.... Target: DONE DONE received. UBL was accepted. UBL transmitted successfully. Waiting for SLT on the DM644x... Target:Starting UART Boot... Target:BOOTUBL BOOTUBL commmand received. Returning CMD and command... CMD value sent. Waiting for DONE... Target: DONE DONE received. Command was accepted. Waiting for SENDIMG sequence... Target:SENDIMG SENDIMG received. Returning ACK and header for image data... ACK command sent. Waiting for BEGIN command... Target: BEGIN BEGIN commmand received. 0% [ ------------------------------------------------------------ ] Status Undefined 100% Waiting for DONE... Image data sent. Target: DONE DONE received. All bytes of image data received... Target: DONE Target:U-Boot 2010.12-rc2 (Oct 13 2011 - 10:46:24) Target:Cores: ARM 405 MHz, DSP 810 MHz Target:DDR: 189 MHz Target:I2C: ready Target:DRAM: 256 MiB Target:NAND: 64 MiB Target:Bad block table found at page 131040, version 0x01 Target:Bad block table found at page 131008, version 0x01 Target:In: serial Target:Out: serial Target:Err: serial Target:Net: Ethernet PHY: LXT972 @ 0x01 Target:DaVinci-EMAC Terminated
note: The TI Flash Utilities have a known issue, after the command is executed the Serial Loader tool might hang, in such case proceed to open an additional console and issue the following command: