NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
MCSDK OMAPL138 User Guide Chapter Tools
|
MCSDK User Guide for OMAP-L138:
Tools and Development Environment |
Last updated: 11/07/2013
Contents
Overview[edit]
Acronyms[edit]
Put a condensed acronym table here. That is one that addresses acronyms that this Chapter uses. This means you should add/remove from the Table below.
The following acronyms are used throughout this chapter.
Acronym | Meaning |
CCS | Texas Instruments Code Composer Studio |
CSL | Texas Instruments Chip Support Library |
DDR | Double Data Rate |
DHCP | Dynamic Host Configuration Protocol |
DSP | Digital Signal Processor |
EDMA | Enhanced Direct Memory Access |
IPC | Texas Instruments Inter-Processor Communication Development Kit |
JTAG | Joint Test Action Group |
MCSDK | Texas Instruments Multi-Core Software Development Kit |
PDK | Texas Instruments Programmers Development Kit |
RTSC | Eclipse Real-Time Software Components |
TI | Texas Instruments |
UART | Universal Asynchronous Receiver/Transmitter |
USB | Universal Serial Bus |
Note: We use the abbreviation TMS when referring to a specific TI device (processor) and the abbreviation TMD when referring to a specific platform that the processor is on. For example, TMS320C6740 refers to the C6740 DSP processor and TMDSEVML138 refers to the actual hardware EVM that the processor is on.
Development Environments[edit]
CCS and Eclipse Platform Wizard[edit]
CCS latest version can be installed. For the details refer the following link
CCS comes with the different tools as BIOS/CGT etc.
For example - CCSv5 - Version: 5.3.0.00090 comes with bios_6_34_02_18 , xdctools_3_24_05_48
and C6000 Code Generation Tools 6.1.13
Linux Toolchain[edit]
Untar the arago toolchain for ARMv5te (ARM9) (link to it is in the MCSDK release notes) to a Linux host PC. Add {tool chain install location}/arago-2011.09/armv5te/bin to the exported environment variable 'PATH'. ( refer Getting started Guide for downloading the toolchain)
Installation[edit]
Installing the Multicore Software Development Kit[edit]
For Installing the MCSDK refer the Getting started Guide
Loading and Running Application on the target[edit]
ARM[edit]
Loading and Running U-Boot using CCS[edit]
This section describes how to boot up U-Boot using CCS and is useful when the U-Boot image is not programmed on the SPI NOR flash.
HW Configuration and Loading U-Boot[edit]
This section describes how to load the U-boot on EVM.
refer the link :http://processors.wiki.ti.com/index.php/Building_PSP_Components_for_OMAP-L1x_on_v3.x_Kernel#AIS_image_generation_for_omapl138_LCDK_EVM
Loading and Running Linux Kernel[edit]
The U-Boot comes with a set of default environment variables. Using those variables simplify several ways to boot kernel. Use the following command to set the default environment variables:
>env default -f –a >saveenv
U-Boot supports three ways to boot kernel and is configured through 'boot' env variable. For each of this method, the boot env variable value to be used is provided in parenthesis.
- tftp kernel and initrd ramfs (ramfs);
- tftp kernel and use nfs mounted filesystem (net);
- using ubifs (ubi);
You would need to add a few more variable specific to you setup:
- serverip - IP address of your tftp server
- tftp_root - Relative path from tftp server root directory where the image files are stored
- boot - one of three ways to boot kernel (ramfs, net, ubi)
- nfs_root - root directory exported by the NFS server (where the rootfs tar file was untarred)
Other defaults may be changed as needed. By default, these are set to use the image names from the Release. However for Preempt RT Full images, change the following env variables (applicable only for tftp boot of Linux and DTB):-
>setenv name_kern >setenv name_fdt
Loading and Running Linux Kernel using tftp with NFS file system[edit]
Once u-boot is flashed to NAND ,change the switch settings to boot from NAND , for details of switch settings refer
Once switch settings are proper and EVM is powered up, once can see the u-boot prompt at Tera term/Hyperterminal on windows and Minicom/serial port on Linux
U-Boot >
Mount the NFS file system and use the same for booting. You can use tftp server to load kernel, device tree and boot monitor. So, you would need to set the same “serverip” variable as described below. In addition to them set the “nfs_root” environment variable, which should refer to root directory of your target file system. The default environment variables assume that the target file system is on the same server as tftp server.
1. Linux environment[edit]
When the EVM is connected to linux host machine, you can use the scripts provided with the mcsdk release to make the u-boot environment up.
This is set-up as part of setup.sh script . The u-boot specific script is mcsdk_<version>/bin/setup-uboot-env.sh
Once this script is run successfuly u-boot environment will be set fine
2. Windows environment[edit]
When the EVM is connected to windows host machine, tftp server is running on windows/linux, nfs server is running on linux, following commands will help to boot the evm. Copy the built kernel image to windows system and share this folder at tftp server, and set this windows system ip as server ip on the target
>setenv serverip 192.168.1.10 >setenv bootfile uImage-omapl138-lcdk.bin >setenv bootargs 'mem=56M console=ttyS2,115200n8 root=/dev/nfs nfsroot=$nfs_serverip:filesystem_full_path,nolock ip=dhcp' >bootcmd 'dhcp;tftp;bootm' >saveenv >boot ( sample bootargs after placing all the variable values setenv bootargs 'mem=56M console=ttyS2,115200n8 root=/dev/nfs nfsroot=172.24.191.34:/home/x0089162/MCSDK/05-09-2013/filesystem/tisdk-rootfs-image-omapl138-lcdk,nolock ip=dhcp' )
Note : if you don't already have NFS server setup on your Ubuntu PC, please see http://processors.wiki.ti.com/index.php/NFS_Setup
Once booting completes, you can login to the EVM as 'root' with no password
A sample log is shown below for reference
version U-Boot 2012.04.01 (Sep 04 2013 - 18:51:20) arm-arago-linux-gnueabi-gcc (GCC) 4.5.3 20110311 (prerelease) GNU ld (GNU Binutils) 2.20.1.20100303 U-Boot > setenv bootfile uImage-omapl138-lcdk.bin U-Boot > boot BOOTP broadcast 1 DHCP client bound to address 172.24.190.83 Using DaVinci-EMAC device TFTP from server 172.24.145.12; our IP address is 172.24.190.83 Filename 'uImage-omapl138-lcdk.bin'. Load address: 0xc0700000 Loading: *## Warning: gatewayip needed but not set ################################################################# ################################################################# ################################## done Bytes transferred = 2397848 (249698 hex) ## Booting kernel from Legacy Image at c0700000 ... Image Name: Linux-3.3.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2397784 Bytes = 2.3 MiB Load Address: c0008000 Entry Point: c0008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. Booting Linux on physical CPU 0 Linux version 3.3.0 (gtbldadm@ubuntu-12) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #1 PREEMPT Wed Sep 4 14:07:57 EDT 2013 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: AM18x/OMAP-L138 lcdk board Memory policy: ECC disabled, Data cache writeback BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space DaVinci da850/omap-l138/am18x variant 0x1 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 14224 Kernel command line: mem=56M console=ttyS2,115200n8 root=/dev/nfs nfsroot=172.24.191.34:/home/x0089162/MCSDK/05-09-2013/filesystem/tisdk-rootfs-image-omapl138-lcdk,nolock ip=dhcp PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 56MB = 56MB total Memory: 51756k/51756k available, 5588k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xc4000000 - 0xff000000 ( 944 MB) lowmem : 0xc0000000 - 0xc3800000 ( 56 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc0008000 - 0xc0475000 (4532 kB) .init : 0xc0475000 - 0xc049d000 ( 160 kB) .data : 0xc049e000 - 0xc04cf760 ( 198 kB) .bss : 0xc04cf784 - 0xc04eca6c ( 117 kB) SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS:245 Console: colour dummy device 80x30 Calibrating delay loop... 148.88 BogoMIPS (lpj=744448) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok Setting up static identity map for 0xc03625a0 - 0xc03625f8 gpiochip_add: registered GPIOs 0 to 31 on device: DaVinci gpiochip_add: registered GPIOs 32 to 63 on device: DaVinci gpiochip_add: registered GPIOs 64 to 95 on device: DaVinci gpiochip_add: registered GPIOs 96 to 127 on device: DaVinci gpiochip_add: registered GPIOs 128 to 143 on device: DaVinci DaVinci: 144 gpio irqs print_constraints: dummy: NET: Registered protocol family 16 EMAC: MII PHY configured bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL) Advanced Linux Sound Architecture Driver Version 1.0.24. Switching to clocksource timer0_1 musb-hdrc: version 6.0, ?dma?, otg (peripheral+host) musb-hdrc musb-hdrc: dma type: dma-cppi41 MUSB255 controller's USBSS revision = 4ea11003 Waiting for USB PHY clock good... musb-hdrc musb-hdrc: USB OTG mode controller at fee00000 using DMA, IRQ 58 NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc. msgmni has been set to 101 io scheduler noop registered (default) da8xx_lcdc da8xx_lcdc.0: GLCD: Found VGA_Monitor panel Console: switching to colour frame buffer device 80x30 Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a AR7 serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a AR7 serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a AR7 console [ttyS2] enabled brd: module loaded ahci ahci: forcing PORTS_IMPL to 0x1 ahci ahci: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode ahci ahci: flags: ncq sntf pm led clo only pmp pio slum part ccc scsi0 : ahci_platform ata1: SATA max UDMA/133 mmio [mem 0x01e18000-0x01e19fff] port 0x100 irq 67 NAND device: Manufacturer ID: 0x2c, Chip ID: 0xcc (Micron NAND 512MiB 3,3V 16-bit) Bad block table found at page 262080, version 0x01 Bad block table found at page 262016, version 0x01 Creating 4 MTD partitions on "davinci_nand.1": 0x000000000000-0x000000020000 : "u-boot env" 0x000000020000-0x0000000a0000 : "u-boot" 0x0000000a0000-0x0000002a0000 : "kernel" 0x0000002a0000-0x000020000000 : "filesystem" davinci_nand davinci_nand.1: controller rev. 2.5 davinci_mdio davinci_mdio.0: davinci mdio revision 1.5 davinci_mdio davinci_mdio.0: detected phy mask ffffff7f davinci_mdio.0: probed davinci_mdio davinci_mdio.0: phy[7]: device davinci_mdio-0:07, driver SMSC LAN8710/LAN8720 ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver ohci ohci.0: DA8xx OHCI ohci ohci.0: new USB bus registered, assigned bus number 1 Waiting for USB PHY clock good... ohci ohci.0: irq 59, io mem 0x01e25000 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. input: gpio-keys-polled as /devices/platform/gpio-keys-polled.0/input/input0 omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0 omap_rtc: RTC power up reset detected omap_rtc: already running i2c /dev entries driver watchdog watchdog: heartbeat 60 sec cpuidle: using governor ladder cpuidle: using governor menu davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode usbcore: registered new interface driver usbhid usbhid: USB HID core driver usbcore: registered new interface driver snd-usb-audio soc-audio soc-audio.0: ASoC: Failed to create card debugfs directory ata1: SATA link down (SStatus 0 SControl 300) _regulator_get: 1-0018 supply IOVDD not found, using dummy regulator _regulator_get: 1-0018 supply DVDD not found, using dummy regulator _regulator_get: 1-0018 supply AVDD not found, using dummy regulator _regulator_get: 1-0018 supply DRVDD not found, using dummy regulator asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok ALSA device list: #0: DA850/OMAP-L138 EVM TCP cubic registered NET: Registered protocol family 17 console [netcon0] enabled netconsole: network logging started davinci_emac davinci_emac.1: using random MAC addr: 16:2d:3e:88:58:b1 omap_rtc omap_rtc: setting system clock to 2000-01-01 00:01:13 UTC (946684873) davinci_mdio davinci_mdio.0: resetting idled controller net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:07, id=7c0f1) PHY: davinci_mdio-0:07 - Link is Up - 100/Full Sending DHCP requests ., OK IP-Config: Got DHCP answer from 0.0.0.0, my address is 172.24.190.92 IP-Config: Complete: device=eth0, addr=172.24.190.92, mask=255.255.252.0, gw=172.24.188.1, host=172.24.190.92, domain=india.ti.com, nis-domain=(none), bootserver=0.0.0.0, rootserver=172.24.191.34, rootpath= VFS: Mounted root (nfs filesystem) on device 0:13. Freeing init memory: 160K INIT: version 2.88 booting Starting udev Starting Bootlog daemon: bootlogd. ALSA: Restoring mixer settings... No state is present for card EVM Found hardware: "DA850_OMAP-L138" "" "" "" "" Hardware is initialized using a generic method No state is present for card EVM NOT configuring network interfaces: / is an NFS mount Thu Sep 5 00:49:00 UTC 2013 INIT: Entering runlevel: 5 Starting system message bus: dbus. Starting Dropbear SSH server: NET: Registered protocol family 10 dropbear. Starting telnet daemon. Starting syslogd/klogd: done Starting thttpd. *************************************************************** *************************************************************** NOTICE: This file system contains the followin GPLv3 packages: binutils-symlinks binutils gdbserver If you do not wish to distribute GPLv3 components please remove the above packages prior to distribution. This can be done using the opkg remove command. i.e.: opkg remove <package> Where <package> is the name printed in the list above NOTE: If the package is a dependency of another package you will be notified of the dependent packages. You should use the --force-removal-of-dependent-packages option to also remove the dependent packages as well *************************************************************** *************************************************************** Stopping Bootlog daemon: bootlogd. umount: can't umount /mnt/.psplash: Device or resource busy _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project http://arago-project.org omapl138-lcdk ttyS2 Arago 2013.05 omapl138-lcdk ttyS2 omapl138-lcdk login: root root@omapl138-lcdk:~# uname -a Linux omapl138-lcdk 3.3.0 #1 PREEMPT Wed Sep 4 14:07:57 EDT 2013 armv5tejl GNU/Linux root@omapl138-lcdk:~# cat /proc/cmdline mem=56M console=ttyS2,115200n8 root=/dev/nfs nfsroot=172.24.191.34:/home/x0089162/MCSDK/05-09-2013/filesystem/tisdk-rootfs-image-omapl138-lcdk,nolock ip=dhcp root@omapl138-lcdk:~#
DSP[edit]
Loading and Running DSP applicaton[edit]
Start the code composer studio. Open the "Target Configurations" tab via View->Target Configurations. Create new Target "mcsdk.ccxml" with "Spectrum Digital XDS510USB Emulator" as Connection and "LCSDKOMAPL138" as Board or Device.
Right click on the mcsdk.ccxml configuration and launch it. Load any DSP application .out to DSP (Emulator_0/674X_0) , and run the application.
.
Using the Debugger[edit]
CCS Debugger[edit]
Taget can be connected using JTAG. For using the same proper target configs should be created and at particular target configuration releavant GEL files should be loaded before connecting the target.JTAG used with LCDK is
XDS510
For connecting to target using the proper debugger ,refer the details at DSP section above
http://processors.wiki.ti.com/index.php/MCSDK_OMAPL138_User_Guide_Chapter_Tools#DSP