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.
DaVinci PSP 03.22.00.04 Device Driver Features and Performance Guide
Contents
- 1 Document License
- 2 Read This First
- 3 Support Overview
- 4 Power Management measurements
- 5 ALSA SoC Audio Driver
- 6 Ethernet Driver
- 7 Graphical LCD (GLCD) Driver (DA850/OMAP-L138/AM18x)
- 8 NAND Driver
- 9 NOR flash Driver
- 10 SPI Flash Driver
- 11 MMC/SD Driver
- 12 UART Driver
- 13 I2C Driver
- 14 EDMA Driver
- 15 Watchdog(WDT) Driver
- 16 USB Driver
- 17 eCAP
- 18 eHRPWM
Document License[edit]
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Read This First[edit]
About This Manual[edit]
This document provides an overview and performance data for the device drivers which are part of the DaVinci Linux PSP package.
NOTE
For DA850 Spectrum Digital EVM, the performance numbers have been recorded with cpuidle driver enabled and with cpufreq governor set to userspace.
If You Need Assistance[edit]
For further information or to report any problems, contact http://community.ti.com/ or http://support.ti.com/
Trademarks[edit]
OMAPTM and DaVinciTM are trademarks of Texas Instruments, Incorporated. All other trademarks are the properties of their respective owners.
Support Overview[edit]
Boot Modes Supported[edit]
The following table provides information on the boot modes supported. Green color in the table below means that the particular boot mode is supported on the device.
Boot Mode | DA850/OMAP-L138/AM18x | DA830/OMAP-L137/AM17x |
---|---|---|
SPI Flash | ||
NAND Flash | ||
NOR Flash | ||
MMC/SD |
NOTE
These are supported boot modes in PSP software, the actual hardware may support many more boot modes than shown here. Please refer to hardware documentation for list of all supported boot modes.
U-Boot Support[edit]
U-Boot is the defacto bootloader for Linux kernel on ARM. The following features of U-Boot are supported in this release:
Feature | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM |
---|---|---|---|
UART | |||
Ethernet Download (TFTP) | |||
MMC/SD | |||
SPI Flash | |||
NAND flash | |||
NOR Flash |
Device Driver List[edit]
The following table list the various device drivers supported and the platform/EVMs they are supported on. On detailed information on specific features or limitations of a pariticular driver, refer to the chapter catering to that driver in this document.
Peripheral | Description | Linux driver type | DMA usage | Devices supported on |
---|---|---|---|---|
Audio (McASP) | Audio Record and Playback | ALSA SoC | EDMA3 | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
EMAC | Ethernet Network driver | Netdev |
EMAC Internal DMA |
DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
USB MSC Host | USB Mass Storage Class Host Driver | Block | USB Internal DMA | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVMI |
USB HID Host | USB Human Interface Device Host Driver | Input driver | USB Internal DMA | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
USB MUSB HCD | MUSB Host controller driver | USB HCD | USB Internal DMA | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
USB OHCI HCD | OHCI Host controller driver | USB HCD | USB Internal DMA | DA830 Spectrum Digital EVM, DA850 Spectrum Digital EVM |
NAND Flash | Flash storage system | MTD Character and Block | Not Supported |
DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
NOR Flash | Flash storage system | MTD Character and Block | Not Supported | DA850 Spectrum Digital EVM |
GLCD | Graphical LCD driver | Frame Buffer | LCDC Internal DMA | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
CLCD | Character LCD driver | Parallel port based driver | None | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
SPI Flash | Flash storage system | MTD Character and Block | EDMA3 | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
MMC/SD | Interface to MultiMedia Secure Digital cards | Block | EDMA3 | DA830 Spectrum Digital EVM, DA850 Spectrum Digital EVM |
UART | Serial Communication Interface | Character | Not Supported |
DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
I2C | Inter-IC Communication | Character | Not Supported |
DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
RTC | Real-time clock | Character | None | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
Watchdog | Watchdog Timer | Miscellaneous | None | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
SPI | Serial Peripheral Interface | Character | EDMA3 | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
Power Management | Linux drivers cpuidle, cpufreq and Suspend-to-RAM | Misc | None | DA850 Spectrum Digital EVM |
Touchscreen | Drivers for TPS65070 | Input driver | None | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
eCAP | PWM Capture and Generation | Miscellaneous | None | DA830 Spectrum Digital EVM, DA830-WiFi Spectrum Digital EVM, DA850 Spectrum Digital EVM |
eHRPWM | PWM generation | Miscellaneous | None | DA850 Spectrum Digital EVM |
Power Management measurements[edit]
Suspend/Resume timings[edit]
It takes 544.737 msecs to suspend and 574.583 msecs to resume with default kernel. Please find below log for individual module timings, captured by appending initcall_debug to kernel bootargs. Resume time is more than expected because there is a delay to resume device safely.
root@arago:~# rtcwake -s 2 -d /dev/rtc0 -m mem wakeup from "mem" at Sat Jan 1 00:09:36 2000 PM: Syncing filesystems ... done. Freezing user space processes ... (elapsed 0.02 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done. calling soc-audio.0+ @ 1076, parent: platform call soc-audio.0+ returned 0 after 1346 usecs calling snd-soc-dummy+ @ 1076, parent: platform call snd-soc-dummy+ returned 0 after 4 usecs calling rtc0+ @ 1076, parent: omap_rtc call rtc0+ returned 0 after 26 usecs calling input0+ @ 1076, parent: 1-0025 call input0+ returned 0 after 5 usecs calling usb1+ @ 526, parent: ohci.0 calling davinci_mdio-0:00+ @ 1076, parent: davinci_mdio.0 call davinci_mdio-0:00+ returned 0 after 140 usecs call usb1+ returned 0 after 96 usecs calling mtd3ro+ @ 1076, parent: spi1.0 call mtd3ro+ returned 0 after 5 usecs calling mtd3+ @ 1076, parent: spi1.0 call mtd3+ returned 0 after 3 usecs calling mtd2ro+ @ 1076, parent: spi1.0 call mtd2ro+ returned 0 after 3 usecs calling mtd2+ @ 1076, parent: spi1.0 call mtd2+ returned 0 after 4 usecs calling mtd1ro+ @ 1076, parent: spi1.0 call mtd1ro+ returned 0 after 4 usecs calling mtd1+ @ 1076, parent: spi1.0 call mtd1+ returned 0 after 3 usecs calling mtd0ro+ @ 1076, parent: spi1.0 call mtd0ro+ returned 0 after 4 usecs calling mtd0+ @ 1076, parent: spi1.0 call mtd0+ returned 0 after 3 usecs calling spi1.0+ @ 1076, parent: spi1 call spi1.0+ returned 0 after 4 usecs calling serial8250+ @ 1076, parent: platform call serial8250+ returned 0 after 5 usecs calling alarmtimer+ @ 1076, parent: platform call alarmtimer+ returned 0 after 12 usecs calling davinci_emac.1+ @ 1076, parent: platform call davinci_emac.1+ returned 0 after 2996 usecs calling davinci_mdio.0+ @ 1076, parent: platform call davinci_mdio.0+ returned 0 after 30 usecs calling 1-0021+ @ 1076, parent: i2c-1 call 1-0021+ returned 0 after 6 usecs calling 1-0064+ @ 1076, parent: i2c-1 call 1-0064+ returned 0 after 4 usecs calling 1-0020+ @ 1076, parent: i2c-1 call 1-0020+ returned 0 after 3 usecs calling 1-0018+ @ 1076, parent: i2c-1 call 1-0018+ returned 0 after 3 usecs calling 1-0048+ @ 1076, parent: i2c-1 call 1-0048+ returned 0 after 3 usecs calling 1-0025+ @ 1076, parent: i2c-1 call 1-0025+ returned 0 after 5 usecs calling i2c-1+ @ 1076, parent: i2c-gpio.1 call i2c-1+ returned 0 after 3 usecs calling ahci+ @ 1076, parent: platform call ahci+ returned 0 after 2 usecs calling ohci.0+ @ 1076, parent: platform call ohci.0+ returned 0 after 38 usecs calling spi_davinci.1+ @ 1076, parent: platform call spi_davinci.1+ returned 0 after 24 usecs calling pm-davinci+ @ 1076, parent: platform call pm-davinci+ returned 0 after 3 usecs calling cpuidle-davinci.0+ @ 1076, parent: platform call cpuidle-davinci.0+ returned 0 after 3 usecs calling cpufreq-davinci+ @ 1076, parent: platform call cpufreq-davinci+ returned 0 after 2 usecs calling omap_rtc+ @ 1076, parent: platform call omap_rtc+ returned 0 after 16 usecs calling da8xx_lcdc.0+ @ 1076, parent: platform call da8xx_lcdc.0+ returned 0 after 195354 usecs calling davinci-mcbsp.1+ @ 1076, parent: platform call davinci-mcbsp.1+ returned 0 after 4 usecs calling davinci-pcm-audio+ @ 1076, parent: platform call davinci-pcm-audio+ returned 0 after 3 usecs calling serial8250.0+ @ 1076, parent: platform call serial8250.0+ returned 0 after 144 usecs calling davinci_mmc.0+ @ 1076, parent: platform call davinci_mmc.0+ returned 0 after 1057 usecs calling davinci_mmc.1+ @ 1076, parent: platform call davinci_mmc.1+ returned 0 after 1045 usecs calling watchdog+ @ 1076, parent: platform call watchdog+ returned 0 after 3 usecs calling i2c-gpio.1+ @ 1076, parent: platform call i2c-gpio.1+ returned 0 after 3 usecs calling edma+ @ 1076, parent: platform call edma+ returned 0 after 3 usecs calling reg-dummy+ @ 1076, parent: platform call reg-dummy+ returned 0 after 4 usecs PM: suspend of devices complete after 544.737 msecs PM: late suspend of devices complete after 1.158 msecs PM: Calling irq_gc_suspend+0x0/0x50 PM: Calling timekeeping_suspend+0x0/0x13c PM: Calling leds_suspend+0x0/0x28 PM: Calling cpufreq_bp_suspend+0x0/0x64 PM: Calling cpu_pm_suspend+0x0/0x20 PM: Calling cpu_pm_resume+0x0/0x18 PM: Calling cpufreq_bp_resume+0x0/0x68 PM: Calling leds_resume+0x0/0x24 PM: Calling timekeeping_resume+0x0/0x124 PM: Calling irq_gc_resume+0x0/0x4c PM: Calling irq_pm_syscore_resume+0x0/0x18 PM: early resume of devices complete after 0.412 msecs calling reg-dummy+ @ 1076, parent: platform call reg-dummy+ returned 0 after 5 usecs calling edma+ @ 1076, parent: platform call edma+ returned 0 after 5 usecs calling i2c-gpio.1+ @ 1076, parent: platform call i2c-gpio.1+ returned 0 after 3 usecs calling watchdog+ @ 1076, parent: platform call watchdog+ returned 0 after 3 usecs calling davinci_mmc.1+ @ 1076, parent: platform call davinci_mmc.1+ returned 0 after 46 usecs calling davinci_mmc.0+ @ 1076, parent: platform call davinci_mmc.0+ returned 0 after 37 usecs calling serial8250.0+ @ 1076, parent: platform call serial8250.0+ returned 0 after 254 usecs calling davinci-pcm-audio+ @ 1076, parent: platform call davinci-pcm-audio+ returned 0 after 3 usecs calling davinci-mcbsp.1+ @ 1076, parent: platform call davinci-mcbsp.1+ returned 0 after 3 usecs calling da8xx_lcdc.0+ @ 1076, parent: platform call da8xx_lcdc.0+ returned 0 after 202839 usecs calling omap_rtc+ @ 1076, parent: platform call omap_rtc+ returned 0 after 17 usecs calling cpufreq-davinci+ @ 1076, parent: platform call cpufreq-davinci+ returned 0 after 4 usecs calling cpuidle-davinci.0+ @ 1076, parent: platform call cpuidle-davinci.0+ returned 0 after 3 usecs calling pm-davinci+ @ 1076, parent: platform call pm-davinci+ returned 0 after 3 usecs calling spi_davinci.1+ @ 1076, parent: platform call spi_davinci.1+ returned 0 after 29 usecs calling ohci.0+ @ 1076, parent: platform Waiting for USB PHY clock good... call ohci.0+ returned 0 after 3111 usecs calling usb1+ @ 526, parent: ohci.0 calling ahci+ @ 1076, parent: platform call ahci+ returned 0 after 3 usecs calling i2c-1+ @ 1076, parent: i2c-gpio.1 call i2c-1+ returned 0 after 3 usecs calling 1-0025+ @ 1076, parent: i2c-1 call 1-0025+ returned 0 after 3 usecs calling 1-0048+ @ 1076, parent: i2c-1 call 1-0048+ returned 0 after 3 usecs calling 1-0018+ @ 1076, parent: i2c-1 call 1-0018+ returned 0 after 3 usecs calling 1-0020+ @ 1076, parent: i2c-1 call 1-0020+ returned 0 after 2 usecs calling 1-0064+ @ 1076, parent: i2c-1 call 1-0064+ returned 0 after 7 usecs calling 1-0021+ @ 1076, parent: i2c-1 call 1-0021+ returned 0 after 3 usecs calling davinci_mdio.0+ @ 1076, parent: platform call davinci_mdio.0+ returned 0 after 29 usecs calling davinci_emac.1+ @ 1076, parent: platform davinci_mdio davinci_mdio.0: resetting idled controller net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1) call davinci_emac.1+ returned 0 after 16873 usecs calling alarmtimer+ @ 1076, parent: platform call alarmtimer+ returned 0 after 3 usecs call usb1+ returned 0 after 98570 usecs calling serial8250+ @ 1076, parent: platform call serial8250+ returned 0 after 7 usecs calling spi1.0+ @ 1076, parent: spi1 call spi1.0+ returned 0 after 5 usecs calling mtd0+ @ 1076, parent: spi1.0 call mtd0+ returned 0 after 3 usecs calling mtd0ro+ @ 1076, parent: spi1.0 call mtd0ro+ returned 0 after 2 usecs calling mtd1+ @ 1076, parent: spi1.0 call mtd1+ returned 0 after 3 usecs calling mtd1ro+ @ 1076, parent: spi1.0 call mtd1ro+ returned 0 after 3 usecs calling mtd2+ @ 1076, parent: spi1.0 call mtd2+ returned 0 after 3 usecs calling mtd2ro+ @ 1076, parent: spi1.0 call mtd2ro+ returned 0 after 1 usecs calling mtd3+ @ 1076, parent: spi1.0 call mtd3+ returned 0 after 3 usecs calling mtd3ro+ @ 1076, parent: spi1.0 call mtd3ro+ returned 0 after 2 usecs calling davinci_mdio-0:00+ @ 1076, parent: davinci_mdio.0 call davinci_mdio-0:00+ returned 0 after 108 usecs calling input0+ @ 1076, parent: 1-0025 call input0+ returned 0 after 270 usecs calling rtc0+ @ 1076, parent: omap_rtc call rtc0+ returned 0 after 66 usecs calling snd-soc-dummy+ @ 1076, parent: platform call snd-soc-dummy+ returned 0 after 4 usecs calling soc-audio.0+ @ 1076, parent: platform call soc-audio.0+ returned 0 after 6922 usecs PM: resume of devices complete after 574.583 msecs Restarting tasks ... done. PHY: davinci_mdio-0:00 - Link is Up - 100/Full
ALSA SoC Audio Driver[edit]
Abstract
This chapter provides details on ALSA SoC audio driver along with CPU load numbers.
Introduction[edit]
DaVinci Audio driver complies to the Advanced Linux Sound Architecture (ALSA) System on Chip (SoC) framework (ASoC).
The ASoC framework splits an embedded audio system into three components:
- Codec driver: The codec driver is generic and hardware independent code that configures the audio codec to provide audio capture and playback. It should contain no code that is specific to the target platform or machine.
- Platform driver: The platform driver can be divided into audio DMA and SoC Digital Audio Interface (DAI) configuration and control. The platform driver only targets the SoC CPU and must have no board specific code.
- Machine driver: The ASoC machine (or board) driver is the code that glues together the platform and codec drivers. It can contain codec and platform specific code. It registers the audio subsystem with the kernel as a platform device.
Following architecture diagram shows all the components and the interactions among them:
Driver Features[edit]
- The driver supports the following features:
- Supports AIC3106 audio codec in ALSA SoC framework.
- Multiple sample rate support (8 KHz, 44.1 KHz and 48 KHz commonly used) for both capture and playback.
- Supports audio in stereo mode.
- Supports simultaneous playback and record (full-duplex mode).
- Start, stop, pause and resume feature.
- Supports mixer interface for audio codecs.
Features Not Supported[edit]
- Does NOT support OSS based applications using OSS emulation layer.
- Driver will not work if built as module.
Constraints[edit]
- By default, codec is configured in master mode and McASP is used as slave. Testing of the audio sub-system is done in this configuration only.
- Configuration of playback and capture streams in different sampling rates is not supported.
- Pin 2 of Boot switch should be "ON" on DA850 Spectrum Digital EVM to use playback capture.
Supported System Calls[edit]
Refer ALSA project - the C library reference [1] for API calls.
Performance and Benchmarks[edit]
The performance numbers were captured using the following:
- Word length in bits = 16
- Number of channels per sample = 2
Sampling Rate (in Hz) | CPU Load (in %) | |||||
---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | |
8000 | 1 |
1 |
1 | 1 | 1 | 1 |
44100 | 8 | 7 | 7 | 8 | 7 | 8 |
48000 | 8 |
7 | 7 | 8 | 7 | 8 |
Sampling Rate (in Hz) | CPU Load (in %) | |||||
---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | |
8000 | 3 |
2 |
3 | 2 | 3 | 2 |
44100 | 8 |
7 | 8 | 7 | 8 | 7 |
48000 | 8 |
7 | 8 | 7 | 8 | 7 |
Ethernet Driver[edit]
Abstract
This chapter provides details on Ethernet driver along with throughput and CPU load numbers.
Introduction[edit]
The Ethernet driver supports the Linux netdev interface.
Driver Features[edit]
The driver supports the following features:
- 10/100 Mbps mode of operation.
- Auto negotiation.
- Support for multicast and broadcast frames.
- Promiscuous mode of operation.
- Full duplex and half duplex mode of operation.
- Linux NAPI support
- Support for MII and RMII interfaces to PHY
Supported System Calls[edit]
Supports the socket() and related system calls in accordance with Linux architecture.
Performance and Benchmarks[edit]
TCP Window Size(in KBytes) | Interval (in Seconds) | Transfer Rate MII PHY (in Mbps) | Transfer Rate RMII PHY (in Mbps) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
16 | 60 | 41.3 | 47.4 | 39.2 | 45.4 | 40.1 | 44.2 | 43.4 | 51.7 | NA | NA | NA | NA |
32 | 60 | 46.9 | 52.3 | 44.8 | 51.2 | 43.4 | 51.4 | 48.3 | 55.4 | NA | NA | NA | NA |
64 | 60 | 44.2 | 54.7 | 41.2 | 52.7 | 40.2 | 51.7 | 48.1 | 55.8 | NA | NA | NA | NA |
128 | 60 | 45.4 | 53.6 | 44.3 | 51.2 | 44.2 | 50.2 | 48.9 | 55.9 | NA | NA | NA | NA |
NOTE
RMII PHY support is available only on DA850/OMAPL138/AM18x SDI.
CPU load during the performance test is 90%
The performance numbers were captured using the iperf tool. Usage details are mentioned below:
- Server side command switch : "-s"
- Client side command : "-c <server ip> -w <window size> -d -t60". This starts bi-directional traffic to the server for a duration of 60 seconds.
- Iperf tool is run on the DUT1 in server mode and on DUT2 in client mode. Version 2.0.4 is used on both sides.
- Data captured here is for "iperf" in client mode.
- Cross cable is used to measure performance.
- Speed is set to 100Mbps
Graphical LCD (GLCD) Driver (DA850/OMAP-L138/AM18x)[edit]
Abstract
This chapter describes the GLCD driver architecture, driver features and performance numbers (throughput and CPU load).
Introduction[edit]
GLCD driver is based on Fbdev framework.
Driver Features[edit]
- Supports QVGA display through Fbdev framework.
- Supports display of RGB565 images.
- Supports getting and setting the variable screen information.
- Supports retrieving the fixed screen information.
Features Not Supported[edit]
- Brightness and color control ioctls not supported.
Supported System Calls[edit]
open(), close(), read(), mmap(), ioctl()
NAND Driver[edit]
Abstract
This chapter describes the NAND flash driver architecture, driver features and performance numbers (throughput and CPU load).
Introduction[edit]
The NAND driver is implemented as a character and block driver, compliant with the Linux MTD subsystem interface. It supports various NAND Flash chips (see file drivers/mtd/nand/nand_ids.h in Linux kernel sources) The NAND driver creates the device nodes for user space access (/dev/mtdblock0, /dev/mtdblock1, /dev/mtd0,/dev/mtd1 and so on.).
This figure illustrates the stack diagram of NAND flash driver in Linux.
Driver Features[edit]
The driver supports the following features:
- JFFS2 and UBIFS file system support
- Supports Read, Write and Erase
- Bad Block Management
- Polled mode of transfer
- Small Block (512 bytes), Big Block (2K & 4K bytes), SLC NAND
Features Not Supported[edit]
- flash_eraseall with -j option fails. Please use without -j option
Supported System Calls[edit]
Supports the system call support proivided by Linux MTD interface viz. open(), close(), read(), write(), ioctl()
Performance Benchmarks[edit]
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 0.2 | 0.3 | 0.2 | 0.3 | 0.2 | 0.3 | 99 | 99 | 98 | 99 | 98 | 99 |
256 | 100 | 0.2 | 0.3 | 0.2 | 0.3 | 0.2 | 0.3 | 99 | 99 | 98 | 98 | 99 | 99 |
512 | 100 | 0.2 | 0.3 | 0.2 | 0.3 | 0.2 | 0.3 | 98 | 99 | 99 | 98 | 98 | 98 |
1024 | 100 | 0.2 | 0.3 | 0.2 | 0.3 | 0.2 | 0.3 | 99 | 98 | 99 | 98 | 99 | 99 |
5120 | 100 | 0.2 | 0.3 | 0.2 | 0.3 | 0.2 | 0.3 | 98 | 99 | 99 | 99 | 99 | 99 |
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 2.5 | 3.2 | 2.4 | 3.1 | 2.4 | 3.2 | 98 | 99 | 99 | 98 | 99 | 98 |
256 | 100 | 2.5 | 3.2 | 2.4 | 3.1 | 2.4 | 3.1 | 98 | 99 | 98 | 99 | 98 | 99 |
512 | 100 | 2.5 | 3.2 | 2.4 | 3.1 | 2.4 | 3.1 | 98 | 99 | 98 | 99 | 98 | 99 |
1024 | 100 | 2.5 | 3.2 | 2.4 | 3.1 | 2.4 | 3.1 | 98 | 99 | 98 | 99 | 98 | 99 |
5120 | 100 | 2.5 | 3.2 | 2.4 | 3.1 | 2.4 | 3.1 | 98 | 99 | 98 | 99 | 98 | 99 |
The performance numbers are captured using the following:
- NAND PART Number: Micron MT29F4G08AAC
- File System = JFFS2
- NAND partition was mounted with async option.
NOR flash Driver[edit]
Abstract
This chapter describes the NOR flash driver architecture, driver features and performance numbers (throughput and CPU load).
Introduction[edit]
The NOR flash driver is implemented as a character and block device driver, compliant with the Linux MTD subsystem architecture. It supports various CFI compliant NOR flash chips. The NOR flash driver creates the device nodes for user space access (/dev/mtdblock0, /dev/mtdblock1, /dev/mtd0,/dev/mtd1 and so on.).
Driver Features[edit]
The driver supports the following features:
- JFFS2 file system support
- Supports Read, Write and Erase
- Polled mode of transfer
Supported System Calls[edit]
Supports the system call support proivided by Linux MTD interface viz. open(), close(), read(), write(), ioctl()
Performance Benchmarks[edit]
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 78 | 75 | NA | NA | NA | NA |
256 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 78 | 74 | NA | NA | NA | NA |
512 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 81 | 75 | NA | NA | NA | NA |
1024 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 81 | 74 | NA | NA | NA | NA |
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 98 | 99 | NA | NA | NA | NA |
256 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 98 | 99 | NA | NA | NA | NA |
512 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 98 | 99 | NA | NA | NA | NA |
1024 | 3 |
0.1 | 0.1 | NA | NA | NA | NA | 98 | 99 | NA | NA | NA | NA |
NOTE
NOR driver support is available only on DA850/OMAPL138/AM18x.
The performance numbers are captured using the following:
- NOR PART Number: Intel PC28F640P30T85
- File System = JFFS2
- NOR partition was mounted with async option.
SPI Flash Driver[edit]
Abstract
This chapter describes the SPI flash driver architecture, driver features and performance numbers (throughput and CPU load).
Introduction[edit]
SPI Flash driver is implemented as block driver and compliant with standard MTD driver. It supports various flash devices. The SPI driver creates device node for user space access (example, /dev/mtd1).
Driver Features[edit]
- DMA and PIO modes are supported.
Supported System Calls[edit]
Supports the system call support proivided by MTD interface viz. open(), close(), read(), write(), ioctl()
Performance Benchmarks[edit]
Performance numbers will be provided later
MMC/SD Driver[edit]
Abstract
This chapter provides details on MMC/SD driver along with throughput and CPU load numbers.
Introduction[edit]
The MMC controller provides an interface to external MMC cards that follow the MMC specification v4.0. The MMC driver is implemented as a block driver. Block device nodes(such as /dev/mmcblockp1, /dev/mmcblockp2) are created for user space access.
Driver Features[edit]
The driver supports the following features:
- MMC/SD native protocol command/response set
- Single/multiple block data transfers
- Linux file system and generic MMC layer abstract details of block devices (MMC)
- High-speed (SDv1.1) and High Capacity (SDv2.0) cards
- Support for 1/4 bit modes
- Support for card detect and Write protect features
- DMA and polled mode for data transfer operations
Features Not Supported[edit]
- Support for 8-bit mode of operation.
- SDIO - WLAN support
- SPI mode of operation
Constraints[edit]
- MMC/SD cards should not be removed when the mount operation is in progress. If done so, data integrity cannot be guaranteed.
Supported System Calls[edit]
open(),close(),read(),write()
Performance and Benchmarks[edit]
IMPORTANT
The performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.
The performance numbers were captured using class 10 SDHC Card (SanDisk, 8GB)
Performance using EXT2 file system[edit]
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 7.5 |
8.3 |
7.3 | 8.1 | NA | NA | 74 |
65 |
77 | 66 | NA | NA |
256 | 100 | 7.3 |
8.4 |
7.4 | 7.9 | NA | NA | 77 |
67 |
75 | 66 | NA | NA |
512 | 100 | 8.1 |
8.2 |
7.9 | 8.1 | NA | NA | 77 |
69 |
76 | 69 | NA | NA |
1024 | 100 | 7.5 |
8.2 |
7.4 | 8.1 | NA | NA | 77 |
67 |
75 | 66 | NA | NA |
5120 | 100 | 7.5 |
8.1 |
7.2 | 7.9 | NA | NA | 77 |
66 |
76 | 65 | NA | NA |
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 14.1 |
15.2 |
13.9 | 14.9 | NA | NA | 42 |
37 |
43 | 38 | NA | NA |
256 | 100 | 14.3 |
15.2 |
13.9 | 14.8 | NA | NA | 43 |
37 |
42 | 38 | NA | NA |
512 | 100 | 14.1 |
15.1 |
13.8 | 14.7 | NA | NA | 41 |
36 |
40 | 38 | NA | NA |
1024 | 100 | 14.3 |
15.1 |
13.9 | 14.6 | NA | NA | 41 |
37 |
40 | 38 | NA | NA |
5120 | 100 | 14.1 |
15.2 |
13.8 | 14.7 | NA | NA | 42 |
39 |
44 | 38 | NA | NA |
Performance using VFAT file system[edit]
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 6.2 | 7.1 |
5.9 | 6.8 | NA | NA | 66 | 59 |
65 | 57 | NA | NA |
256 | 100 | 6.3 |
7.1 |
6.1 | 6.9 | NA | NA | 66 |
57 |
65 | 56 | NA | NA |
512 | 100 | 6.4 |
7.2 |
6.2 | 6.9 | NA | NA | 66 |
58 |
65 | 57 | NA | NA |
1024 | 100 | 6.3 |
7.1 |
6.1 | 6.8 | NA | NA | 66 |
57 |
65 | 55 | NA | NA |
5120 | 100 | 6.4 |
7.1 |
6.2 | 6.9 | NA | NA | 66 |
58 |
65 | 57 | NA | NA |
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 13.7 |
14.5 |
13.4 | 14.1 | NA | NA | 41 | 40 | 40 | 42 | NA | NA |
256 | 100 | 13.7 |
14.3 |
13.3 | 14.1 | NA | NA | 42 |
39 |
41 | 38 | NA | NA |
512 | 100 | 13.3 |
14.2 |
13.1 | 13.9 | NA | NA | 44 | 38 |
45 | 39 | NA | NA |
1024 | 100 | 13.9 |
14.5 |
13.5 | 14.3 | NA | NA | 44 |
38 |
42 | 39 | NA | NA |
5120 | 100 | 13.8 |
14.4 |
13.5 | 14.3 | NA | NA | 46 |
40 |
45 | 41 | NA | NA |
UART Driver[edit]
Abstract
This chapter provides details on UART driver.
Introduction[edit]
The UART driver is implemented as a serial driver, and can be accessed from user space as /dev/ttyS2.
Driver Features[edit]
The driver supports the following features:
- Only UART2 is physically available on EVM board
Supported System Calls[edit]
open(),close(),read(),write(),ioctl()
Supported IOCTLs[edit]
Constant | Description |
---|---|
TIOCGSERIAL | Gets device parameters from the UART (example, port type, port num, baud rate, base divisor, and so on. |
TIOCSSERIAL | Sets UART device parameters (example, port type, port num, baud rate, base divisor, and so on) |
I2C Driver[edit]
Abstract
This chapter provides details on I2C driver.
Introduction[edit]
The I2C peripheral is compliant with the Philips Semiconductor I2C-bus specification version 2.1. The I2C driver is implemented as a serial driver. The I2C driver can be accessed from the user space as /dev/i2c/0.
Driver Features[edit]
The driver supports the following features:
- 7-bit addressing mode
- Fast mode
- Interrupt mode
Features Not Supported[edit]
- 7-bit and 10-bit addressing combined format is not supported
- DMA mode is not supported
Supported System Calls[edit]
open(),close(),read(),write(),ioctl()
Supported IOCTLs[edit]
Constant | Description |
---|---|
I2C_SLAVE_FORCE | Changes slave address. Slave address is 7 or 10 bits. This changes the address, even if it is already considered. |
I2C_TENBIT | 7- or 10-bit address. (Value = 0 for 7 bits; value != 0 for 10 bits.) |
I2C_FUNCS | Gets the adapter functionality |
I2C_RDWR | Combined R/W transfer (one stop only) |
EDMA Driver[edit]
Abstract
This chapter provides details on EDMA driver along with throughput and CPU load numbers.
Introduction[edit]
The EDMA controller handles all data transfers between the level-two (L2) cache/memory controller and the device peripherals. On DA850/OMAPL138 EDMA has 2 CC instances where as the other SoCs have one instance. Each EDMA instance supports up to 32-dma channels and 8 QDMA channels. The EDMA consists of a scalable Parameter RAM (PaRAM) that supports flexible ping-pong, circular buffering, channel-chaining, auto-reloading, and memory protection. The EDMA allows movement of data to/from any addressable memory spaces, including internal memory (L2 SRAM), peripherals, and external memory.
The EDMA driver exposes only the kernel level API's. This driver is used as a utility by other drivers for data transfer.
Driver Features[edit]
The driver supports the following features:
- Request and Free DMA channel
- Programs DMA channel
- Start and Synchronize with DMA transfers
- Provides DMA transaction completion callback to applications
- Multiple instances of EDMA driver on a single processor
Features Not Supported[edit]
- QDMA is not supported.
- Reservation of resources (channels and PaRAMs) for usage from DSP is not supported.
Watchdog(WDT) Driver[edit]
Abstract
This chapter provides details on Watchdog timer driver.
Introduction[edit]
DaVinci SoCs have a 64-bit watchdog timer which can be used to reset the hardware in case of a software fault. Once the /dev/watchdog is opened, it will reboot the system unless a user space daemon resets the timer at regular intervals within a certain timeout period. The WDT driver is registered as a misc device. Default timeout of this driver is 60 seconds.
Driver Features[edit]
The driver supports the following features:
- Supports IOCTLs to set/get the timeout value, ping the watchdog & query the watchdog structure info.
- Driver can be built as a loadable module and inserted dynamically.
Constraints[edit]
- Once /dev/watchdog is opened, closing it doesn't disable the watchdog
Supported System Calls[edit]
open(), close(), write(), read()
Supported IOCTLs[edit]
Constant | Description |
---|---|
WDIOC_GETSUPPORT | This ioctl returns "struct watchdog_info", which tells what the device can do |
WDIO_KEEPALIVE | This ioctl can be used to notify the watchdog timer that the user space application is alive |
WDIO_SETTIMEOUT | Watchdog timeout or margin can be dynamically changed using this ioctl |
WDIO_GETTIMEOUT | This ioctl returns the present watchdog timeout period in seconds |
USB Driver[edit]
Abstract
This chapter provides details on OHCI and MUSB drivers along with throughput and CPU load numbers.
This chapter describes the USB (EHCI and MUSB) driver architecture, features supported/not supported, constraints and performance numbers.
OHCI Controller[edit]
Driver Features[edit]
The driver supports the following features
- Human Interface Class (HID)
- Mass Storage Class (MSC)
- Hub Class
- USB Video Class (UVC)
- USB Audio Class (UAC)
Features Not Supported[edit]
All other classes not mentioned in the "Supported Features" section.
MUSB OTG controller[edit]
Description[edit]
The MUSB driver is implemented on top of Mentor OTG IP version 1.8 which supports all the speeds (High, Full and Low (host mode only)). On DA850/OMAP-L138, MUSB uses CPPI 4.1 DMA for all the transfers on other devices CPPI 3.0 DMA is used.
Driver Features[edit]
The driver supports the following features
Host Mode
- Human Interface Class (HID)
- Mass Storage Class (MSC)
- Hub Class
- USB Video Class (UVC)
- USB Audio Class (UAC)
Gadget mode
- Mass Storage Class (MSC)
- USB Networking - RNDIS/CDC
Features Not Supported[edit]
- OTG
- Modular support for host/device mode.
USB Mass Storage Class Host Driver[edit]
Driver Features[edit]
The driver supports the following feature
- DMA mode
- PIO mode
Supported System Calls[edit]
open(), close(), read(), write(), ioctl()
Performance Benchmarks[edit]
IMPORTANT
For Mass-storage applications, the performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.
USB MSC (MUSB) Host mode DMA EXT2 File System Performance[edit]
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 2.2 | 2.5 | 2.2 | 2.4 | 2.2 | 2.4 | 25 | 19 | 24 | 18 | 24 | 19 |
512 | 100 | 2.2 | 2.4 | 2.2 | 2.3 | 2.3 | 2.4 | 29 | 17 | 28 | 18 | 27 | 18 |
1024 | 100 | 2.4 | 2.5 | 2.3 | 2.5 | 2.3 | 2.5 | 20 | 17 | 19 | 18 | 19 | 17 |
5120 | 100 | 2.6 | 2.7 | 2.3 | 2.5 | 2.2 | 2.5 | 26 | 14 | 27 | 15 | 27 | 17 |
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 8.2 | 8.4 | 8.1 | 8.3 | 8.1 | 8.2 | 59 | 47 | 58 | 46 | 57 | 45 |
512 | 100 | 8.1 | 8.7 | 7.9 | 8.5 | 7.8 | 8.3 | 61 | 47 | 60 | 45 | 59 | 44 |
1024 | 100 | 8.1 | 8.4 | 8.2 | 8.4 | 8.1 | 8.5 | 64 | 47 | 66 | 48 | 65 | 49 |
5120 | 100 | 7.9 | 8.7 | 8.1 | 8.4 | 7.9 | 8.3 | 65 | 47 | 66 | 48 | 64 | 47 |
The performance numbers are captured using the following.
- Using 2GB SD card via card reader
USB MSC (MUSB) Host mode DMA VFAT File System Performance[edit]
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 3.6 | 3.9 | 3.5 | 3.8 | 3.4 | 3.7 | 41 | 33 | 42 | 34 | 43 | 35 |
512 | 100 | 3.6 | 4.1 | 3.5 | 4.2 | 3.3 | 4.1 | 40 | 33 | 41 | 32 | 41 | 33 |
1024 | 100 | 3.7 | 4.1 | 3.5 | 4.1 | 3.5 | 4.1 | 41 | 33 | 42 | 34 | 43 | 33 |
5120 | 100 | 3.6 | 3.9 | 3.5 | 3.8 | 3.4 | 3.7 | 39 | 32 | 40 | 33 | 41 | 33 |
Buffer Size (in KBytes) | Total Bytes Transferred (in MBytes) | Transfer Rate (in MBytes/sec) | CPU Load (in %) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | ||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||
100 | 100 | 8.1 | 8.7 | 7.9 | 8.3 | 7.8 | 8.4 | 66 | 56 | 67 | 57 | 65 | 56 |
512 | 100 | 8.4 | 8.7 | 8.3 | 8.6 | 8.2 | 8.6 | 65 | 52 | 64 | 53 | 64 | 52 |
1024 | 100 | 8.1 | 8.5 | 8.1 | 8.4 | 8.1 | 8.3 | 64 | 49 | 63 | 50 | 62 | 51 |
5120 | 100 | 8.1 | 8.2 | 7.9 | 8.2 | 7.8 | 8.3 | 65 | 53 | 66 | 54 | 67 | 54 |
The performance numbers are captured using the following.
- SD card via USB card reader.
- File format: VFAT
USB Mass Storage Class Slave Driver[edit]
Description[edit]
This figure illustrates the stack diagram of the system with USB File Storage Gadget driver
Driver Features[edit]
The driver supports the following feature
- DMA mode
- PIO mode
- File backed storage driver was tested with SD media as the storage medium
Features Not Supported[edit]
- Modular support
Performance Benchmarks[edit]
USB Slave-DMA Performance[edit]
Bytes Transferred (MB) | Number of files transferred | Total Bytes transferred (MB) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Data Rate (MB/sec) | |||||||||||
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | |||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||||||
51 | 1 | 51 | 10.9 | 11.8 | 10.5 | 11.4 | 10.4 | 11.4 |
Bytes Transferred (MB) | Number of files transferred | Total Bytes transferred (MB) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Data Rate (MB/sec) | |||||||||||
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | |||||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||||||
51 | 1 | 51 | 12.2 | 14.9 | 11.9 | 13.8 | 11.6 | 13.5 |
The performance numbers are captured in DMA Mode using a file inside /dev/shm as storage gadget media exposing as removable media to Windows-XP over USB. The storage media is formatted using the FAT32 on Windows-XP.
Storage gadget media file is created using the command:
# dd if=/dev/zero of=/dev/shm/50M bs=1M count=50"
Insert the USB mass storage gadget with /dev/shm/50M
as the backing storage:
# insmod g_mass_storage.ko file=/dev/shm/50M
The performance numbers are captured using script on window
@echo Start time: %time%
copy f:\50M d:\
@echo Stop time: %time%
@echo Start time: %time%
copy d:\50M f:\50M
@echo Stop time: %time%
USB CDC/RNDIS Slave Driver[edit]
Description[edit]
The CDC RNDIS gadget driver that is used to send standard Ethernet frames using USB. The driver will create an Ethernet device by the name usb0.
Driver Features[edit]
The driver supports the following feature
- DMA mode
- PIO mode
- 10/100 Mbps speed.
Supported System Calls[edit]
open(), close(), read(), write(), ioctl()
Performance Benchmarks[edit]
Performance benchmarks were collected using the Iperf tool and default options were used to collect the throughput numbers.
DA850/OMAP-L138[edit]
USB CDC-DMA Performance[edit]
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) | |||||||
---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | |||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||||
16 | 10 | 22.3 | 39.8 | 21.9 | 39.5 | 21.8 | 39.6 | ||
32 | 10 | 22.8 | 39.9 | 21.8 | 39.5 | 21.6 | 39.6 | ||
64 | 10 | 22.5 | 39.5 | 21.8 | 39.5 | 21.6 | 39.6 | ||
128 | 10 | 21.2 | 39.3 | 21.3 | 39.3 | 21.5 | 39.4 |
USB RNDIS-DMA Performance[edit]
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) | |||||||
---|---|---|---|---|---|---|---|---|---|
DA850 Spectrum Digital EVM | DA830 Spectrum Digital EVM | DA830-WiFi Spectrum Digital EVM | |||||||
300 MHz | 456 MHz | 300 MHz | 456 MHz | 300 MHz | 456 MHz | ||||
16 | 10 | 23.3 | 26.6 | 22.3 | 26.5 | 22.3 | 26.4 | ||
32 | 10 | 22.8 | 28.1 | 22.7 | 28.1 | 22.4 | 27.9 | ||
64 | 10 | 21.1 | 25.7 | 20.9 | 24.9 | 20.8 | 24.6 | ||
128 | 10 | 20.9 | 25.1 | 20.5 | 24.9 | 20.4 | 24.8 |
USB Human Interface Device (HID) Driver[edit]
Description[edit]
The event sub system creates /dev/input/event* devices with the help of mdev.
Driver Features[edit]
The driver supports the following feature
- DMA mode
- PIO mode
- USB Mouse and Keyboards that conform to the USB HID specifications
USB Isochronous Driver[edit]
Description[edit]
USB camera, speaker and mic uses isochronouse transfers. USB Video Class (UVC) is used by most of the USB cameras to capture image.
Driver Features[edit]
The driver supports the following feature
- DMA mode
- PIO mode
- Support for USB Audio and video class(UVC class)
USB OTG Driver[edit]
Description[edit]
MUSB controller on DaVinci supports USB On The Go (OTG). OTG protocol enables runtime role switch between USB host and device. This is achived using Session Request Protocol (SRP) and Host Negotiation Protocol (HNP). OTG driver is tested with OPT (OTG Protocol Tester).
Driver Features[edit]
The driver supports the following feature
eCAP[edit]
Description:[edit]
Enhanced Capture Module (eCAP) is used for speed measurements of rotating machinery, Sample Rate measurements of rotating machinery and Period and Duty Cycle measurements of pulse train signals. In PWM mode, eCAP can be configured to generate PWM Waveforms.
Driver Features:[edit]
1 .Supports Multiple Instances.
2. Provides control to the user through SYSFS interface.
3. Supports Wide range of Period and Duty cycle Control.
Constraint[edit]
eCAP driver belongs to the category of PWM drivers and hence the driver functions can be accessed only through the core PWM FrameWork.
eHRPWM[edit]
Description[edit]
Enhanced High-Resolution Pulse-Width Modulator (eHRPWM) is used to generate complex pulse width Waveforms with minimal CPU overhead or intervention.
Driver Features:[edit]
1 .Supports Multiple Instances.
2. Provides control to the user through SYSFS interface.
3. Supports wide range of Period and Duty cycle Control.
4. Supports Trip Zone, Dead Band, PWM chopper, Event Trigger and High Resolution Features.
Constraint[edit]
eHRPWM driver belongs to the category of PWM drivers and hence the basic PWM driver functions can be accessed only through the core PWM FrameWork. Advanced features have been exported for global access.