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.

AM335x-PSP 04.06.00.03 Features and Performance Guide

From Texas Instruments Wiki
Jump to: navigation, search

Content is no longer maintained and is being kept for reference only!

TIBanner.png
AM335x-PSP 04.06.00.03 Features and Performance Guide
Linux PSP

Contents

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]

Content is no longer maintained and is being kept for reference only!

All performance numbers provided in this document are gathered using AM335x BeagleBone and Evaluation Module (version 1.0D and version 1.1A) Board with ARM running at 720MHz and DDR2 configured at 266MHz clock.

About This Manual[edit]

This document provides an overview and performance data for each of the device drivers which are part of the Linux PSP package supporting AM335x BeagleBone and Evaluation Module (version 1.0D and version 1.1A) Board . Note that only a subset of the drivers may have actually been fully tested and verified in the package you are using. Please refer to the release notes provided with the package for information on which of the drivers have actually been verified. In the rest of the document, we will refer this setup as AM335x EVM.

If You Need Assistance[edit]

For further information or to report any problems, contact http://community.ti.com/ or http://support.ti.com/

Support Overview[edit]

Boot Modes Supported[edit]

Green colored box in the table below means that the particular boot mode is supported on the device in the release.

AM335x Supported Boot Modes
Boot Mode AM335x (BeagleBone) AM335x (Evaluation Module)
SPI EEPROM No No
SPI Flash No No
NAND Flash No Yes
NOR Flash No No
I2C EEPROM No No
MMC/SD Yes Yes
EMAC Boot No No
UART Boot Yes (UART0) Yes (UART0)


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.

U-Boot supported feature table
Feature AM335x (BeagleBone) AM335x (Evaluation Module)
UART Yes Yes
Ethernet Download (TFTP) Yes Yes
USB DFU No No
MMC/SD Yes Yes
SPI Flash No No
NAND flash No Yes
USB Mass Storage No No


Linux Kernel[edit]


Kernel Virtual Memory Layout
[edit]

The default AM335x kernel configuration, with "mem=128M" passed as boot argument, uses following Virtual Memory laout:

[    0.000000] Memory: 128MB = 128MB total
[    0.000000] Memory: 124068k/124068k available, 7004k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xffa00000 - 0xffe00000   (   4 MB)
[    0.000000]     vmalloc : 0xc8800000 - 0xf8000000   ( 760 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0509000   (5124 kB)
[    0.000000]       .init : 0xc0509000 - 0xc053e000   ( 212 kB)
[    0.000000]       .data : 0xc053e000 - 0xc05887a0   ( 298 kB)
[    0.000000]        .bss : 0xc05887c4 - 0xc05b4780   ( 176 kB)


Boot-time measurement[edit]

For boot-time measurement the following setup was used

The kernel image used had the following features enabled

  • NAND driver
  • Block devices
  • Network device support
  • I2C support
  • SPI support
  • GPIO support
  • WDT support
  • Sound card support
  • HID devices
  • USB support
  • MMC/SD/SDIO support
  • Loadable module support
  • Filesystem support for ext2, ext3, JFFS2 and NFS

The following was the kernel command line passed

console=ttyO0,115200n8 ip=dhcp earlyprink root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

The total boot-time (ignoring the boot delays in the 2 stages of U-Boot) is ~21.74 secs

The break-up of the boot-time is as given below:

  • Booting the compressed kernel (calculated from the time U-Boot displays "## Booting..." to the prompt) : 21.24 secs
  • Reading the 2.3MB uImage from SD card : 0.4 secs
  • Misc time in U-Boot : 0.1 secs


PSP Linux Drivers[edit]

This section provides brief overview of the device drivers supported in the Linux PSP release.

Note: The constraints may vary across product releases. Please refer to the Release Notes accompanying the release for an updated list of constraints.

Device Driver List[edit]

The following table list the various device drivers supported and the device 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 Driver Support
Peripheral Description Linux driver type DMA usage
Audio (McASP) Audio Record and Playback ALSA SoC EDMA
Ethernet Ethernet Network driver Netdev Internal DMA
USB MSC Host USB Mass Storage Class Host Driver Block USB Internal DMA
USB HID Host USB Human Interface Device Host Driver Input driver USB Internal DMA
USB MUSB HCD MUSB Host controller driver USB HCD USB Internal DMA
NAND Flash Flash storage system MTD Character and Block Not Supported
GLCD Graphical LCD driver Frame Buffer LCDC Internal DMA
SPI Flash Flash storage system MTD Character and Block EDMA
MMC/SD Interface to MultiMedia Secure Digital cards Block EDMA
UART Serial Communication Interface Character Not Supported
I2C Inter-IC Communication Character Not Supported
RTC Real-time clock Character None
Watchdog Watchdog Timer Miscellaneous None
SPI Serial Peripheral Interface Character EDMA
Touchscreen Touchscreen driver Input driver None


ALSA SoC Audio Driver[edit]

This section an overview of the ALSA SoC audio driver features along with the throughput and CPU load numbers.

Introduction[edit]

AM335x 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.

Audio.png

Driver Features[edit]

The driver supports the following features:

  1. Supports AIC3106 audio codec in ALSA SoC framework.
  2. Multiple sample rate support (8 KHz, 44.1 KHz and 48 KHz commonly used) for both capture and playback.
  3. Supports audio in stereo mode
  4. Supports simultaneous playback and record (full-duplex mode).
  5. Supports mixer interface for the audio codec

Features Not Supported[edit]

  1. OSS based applications, which use ALSA-OSS emulation layer, are not supported.
  2. Formats such as TDM, Left and Right Justified are currently not supported.
  3. Synthesizer and midi interfaces are not supported.

Constraints[edit]

  1. 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.
  2. Sampling frequencies for playback and capture streams should be same.
  3. The audio driver does not allow opening the same stream (playback/capture) multiple times.

Supported System Calls[edit]

Refer ALSA project - the C library reference [1] for API calls.

Supported IOCTLs[edit]

NA

Performance and Benchmarks[edit]

  1. Access type - RW_INTERLEAVED
  2. Channels - 2
  3. Format - S16_LE
  4. Period size - 64


Audio capture
Sampling Rate (in Hz) Duration (in secs) Bitrate (in bits/sec) CPU Load (in %)
8000
327.7
255,978.00
0.23
11025
237.8
352,757.00
0.31
16000
163.86
511,929.00
0.42
22050
118.9
705,489.00
0.59
24000
118.9
705,488.00
0.58
32000
81.93
1,023,804.00
0.9
44100
59.45
1,410,874.00
1.16
48000
54.62
1,535,629.00
1.26
88200
29.73

2,821,345.00
2.35
96000
27.31
3,070,771.00
2.12


Audio playback
Sampling Rate (in Hz) Duration (in secs) Bitrate (in bits/sec) CPU Load (in %)
8000
327.57
256,081.00
0.39
11025
237.69
352,912.00
0.43
16000
163.78
512,163.00
0.56
22050
118.84
705,824.00
0.64
24000
118.84
705,824.00
0.61
32000
81.89
1,024,324.00
0.96
44100
59.42
1,411,646.00
0.96
48000
54.59
1,536,486.00
0.99
88200
29.71
2,823,289.00
1.72
96000
27.29
3,072,967.00
2.27

Ethernet Driver[edit]

This section provides an overview of the Ethernet driver features along with throughput and CPU load numbers. Ethernet driver follows standard Linux network interface Architecture.

Introduction[edit]

The Ethernet driver supports the Linux netdev interface.
Ethernet4.png

Driver Features[edit]

The driver supports the following features:

  1. 10/100/1000 Mbps mode of operation.
  2. Auto negotiation.
  3. Full duplex and half duplex mode of operation.
  4. Linux NAPI support
  5. Support for MII and RGMII interfaces to PHY
  6. CPSW Interrupt Pacing. This driver uses Timer 5 & 6 for CPSW Interrupt Pacing. Sharing this Timer with any other module will result in Ethernet pacing not working properly.

Features Not Supported[edit]

  1. Promiscuous mode of operation.
  2. Second switch port.
  3. IEEE 1588
  4. VLAN (Subscription common for all ports)
  5. Ethertool (Supports only Slave 0)
  6. Switch mode of operation

Constraints[edit]

NA

Supported System Calls[edit]

Supports the socket() and related system calls in accordance with Linux architecture.

Performance and Benchmarks[edit]

Ethernet Port0 TCP - 1000Mbps Mode Performance
TCP Window Size
(in KBytes)
Bandwidth-(in Mbits/sec) CPU Load (in %) Bandwidth - With Interrupt Pacing
(in Mbits/sec)
CPU Load (in %)
16 277.60 100 317.60 92.64
32 312.00 100 353.60 97.63
64 292.80 100 350.40 100
128 283.20 100 332.80 100
256 282.40 100 334.40 100


The performance numbers were captured using the iperf tool. Usage details are mentioned below:

  • iperf version 2.0.4
  • On PC Host invoke iperf in the server mode  : "#iperf -s "
  • On the DUT iperf is invoked in client mode  : "#iperf -c <server ip> -w <window size> -m -f M -d -t 60". This starts bi-directional traffic to the server for a duration of 60 seconds
  • Interrupt pacing feature enabled with pacing interval set to 500usecs (# ethtool -C eth0 rx-usecs 500)
  • The transfers are measured over a duration of 60Secs
  • Cross cable is used to measure performance.
  • Speed is set to 1000Mbps


Graphical LCD (GLCD) Driver[edit]

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 and it reuses da8xx-fb driver as LCDC IP is upgraded version of that found on OMAP-L138 SoC.

GLCD Driver.jpg

Driver Features[edit]

The driver supports the following features:

  1. Supports WVGA display through Fbdev framework.
  2. Supports display of ARGB:8888 images at max resolution 2048*2048, but pixel clock can be driven Max 150MHz.
  3. Supports getting and setting the variable screen information.
  4. Supports retrieving the fixed screen information.

Features Not Supported[edit]

  1. Brightness and color control ioctls not supported.

Constraints[edit]

  1. There is limit on Max pixel clock of 150MHz.

Supported System Calls[edit]

open(), close(), read(), mmap(), ioctl() 

Performance Benchmarks[edit]

Performance and Benchmarks not available in this release.


NAND Driver[edit]

This section provides an overview of the NAND flash driver features along with throughput and CPU load numbers.

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.c 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.

Nand Driver.png

Driver Features[edit]

The driver supports the following features:

  1. BCH8 with Hardware Error Correction is supported
  2. Supports Read, Write and Erase
  3. Bad Block Management
  4. Polled Prefetch mode of transfer (enabled by default)
  5. SLC NAND

Features Not Supported[edit]

  1. DMA Mode of operation

Constraints[edit]

NA

Supported System Calls[edit]

Supports the system call support proivided by Linux MTD interface viz. open(), close(), read(), write(), ioctl()

Performance Benchmarks[edit]

Please refer MTD Test Setup before proceeding.

NAND UBIFS Write with sync
Buffer size Through put in Mbytes/sec CPU Load (in %)
102400
2.50
100
262144
2.57
100
524288
2.60
100
1048576
2.62
100
5242880
2.63
100
NAND UBIFS Read with sync
Buffer size Through put in Mbytes/sec CPU Load (in %)
102400
3.56
100
262144
3.58
100
524288
3.60
100
1048576
3.60
100
5242880
3.60
100

SPI Flash Driver[edit]

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).

SPI Driver.png

Driver Features[edit]

The driver supports the following features:

  1. PIO+DMA Mode of Operation are supported.

Features Not Supported[edit]

NA

Constraints[edit]

NA

Supported System Calls[edit]

Supports the system call support proivided by MTD interface viz. open(), close(), read(), write(), ioctl()

Performance Benchmarks[edit]

Please refer MTD Test Setup before proceeding.

SPI Write
Buffer size Through put in Mbytes/sec CPU Load (in %)
102400
0.09
88.55
262144
0.09
88.12
524288
0.09
87.07
1048576
0.09
87.66
SPI Read
Buffer size Through put in Mbytes/sec CPU Load (in %)
102400
1.21
9.25
262144
1.21
13.29
524288
1.21
16.09
1048576
1.21
16.76


NOTE

Over all SPI performance is low because we can only do a 24MHz clock on the board against the theoretical max of 48 MHz. Also high CPU load on write is expected because the SPI flash driver does a write every page size (256 bytes) resulting in high interrupt load.

MMC/SD Driver[edit]

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.

Mmcsd Driver.png

Driver Features[edit]

The driver supports the following features:

  1. MMC/SD native protocol command/response set
  2. Single/multiple block data transfers
  3. Linux file system and generic MMC layer abstract details of block devices (MMC)
  4. High-speed (SDv1.1) and High Capacity (SDv2.0) cards
  5. Support for 4 bit modes
  6. Support for card detect and Write protect features
  7. DMA and polled mode for data transfer operations

Features Not Supported[edit]

  1. Support for 1-bit, 8-bit mode of operation.
  2. SPI mode of operation

Constraints[edit]

  1. 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() 

Supported IOCTLs[edit]

None

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.

Please refer MMC/SD Test Setup before proceeding.

EXT2 file system[edit]

SD - Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 2.58 2.98
256 100 2.57 3.17
512 100 2.55 3.19
1024 100 2.53 2.92
5120 100 2.43 2.73


SD - Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 6.80 8.04
256 100 6.79 9.20
512 100 6.79 8.94
1024 100 6.80 8.69
5120 100 6.80 8.75


The performance numbers were captured using the following:

  • SD Card (Sandisk, MicroSDHC, Class 4, 8GB)
  • File System: ext2
  • Partition was mounted with async option

VFAT file system[edit]

SD - Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 4.45 8.62
256 100 4.59 6.39
512 100 4.69 7.34
1024 100 4.72 6.89
5120 100 4.69 6.58


SD - Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 6.53 7.91
256 100 6.68 8.85
512 100 6.69 9.44
1024 100 6.69 9.38
5120 100 6.69 9.44


The performance numbers were captured using the following:

  • SD Card (Sandisk, MicroSDHC, Class 4, 8GB)
  • File System: vfat
  • Partition was mounted with async option


UART Driver[edit]

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/ttyOX(X=0-5)

Omapuart.png


Driver Features[edit]

  • None

Features Not Supported[edit]

  • Hardware Flow Control

Constraints[edit]

NA

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)

Performance and Benchmarks[edit]

Performance and Benchmarks not available in this release.


I2C Driver[edit]

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.

I2C Driver.png

Driver Features[edit]

The driver supports the following features:

  1. 7-bit addressing mode
  2. Fast mode
  3. Interrupt mode

Features Not Supported[edit]

  1. 7-bit and 10-bit addressing combined format is not supported
  2. DMA mode is not supported

Constraints[edit]

NA

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_FUNCS Gets the adapter functionality
I2C_RDWR Combined R/W transfer (one stop only)

Performance and Benchmarks[edit]

Performance and Benchmarks not available in this release.


EDMA Driver[edit]

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 AM335x EDMA has has one instance of Channel controller. 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:

  1. Request and Free DMA channel
  2. Programs DMA channel
  3. Start and Synchronize with DMA transfers
  4. Provides DMA transaction completion callback to applications
  5. Multiple instances of EDMA driver on a single processor

Features Not Supported[edit]

  1. QDMA is not supported.
  2. Reservation of resources (channels and PaRAMs) for usage from other masters is not supported.

Constraints[edit]

NA

Supported System Calls[edit]

None

Supported IOCTLs[edit]

None

Performance and Benchmarks[edit]

NA


Touchscreen Driver[edit]

Introduction[edit]

Touchscreen controller on AM335x is an 8 channel general purpose ADC, with optional support for interleaving Touch Screen conversions for a 4-wire, 5-wire, or 8-wire resistive panel. A resistive touchscreen operates by applying a volatge across a resistive network and measuring the change in resistance at a given point on the matrix where the screen is touched by an input (stylus or finger). The change in the resistance ratio marks the location on the touchscreen.

Driver Features[edit]

The driver supports the following features:

  • Resistive touchscreen
  • Hardware synchronized one shot mode
  • Programmable Open delay/Sampling delay before sampling each channel
  • Programmable averaging of input samples - 16
  • Support for servicing FIFOs via CPU.
  • ADC sampled data is 12-bit wide.
  • Pressure(z) measurements.

Features Not Supported[edit]

  • DMA Request event.

Constraints[edit]

NA

Supported System Calls[edit]

None

Supported IOCTLs[edit]

None

Performance and Benchmarks[edit]

NA


Watchdog(WDT) Driver[edit]

This chapter provides details on Watchdog timer driver.

Introduction[edit]

AM335x has a 32-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. If watchdog device node is closed before timeout also reboot won't happen. The WDT driver is registered as a misc device. Default timeout of this driver is 60 seconds.

Wdt.png

Driver Features[edit]

The driver supports the following features:

  1. Supports IOCTLs to set/get the timeout value, ping the watchdog & query the watchdog structure info.
  2. Driver can be built as a loadable module and inserted dynamically.

Supported System Calls[edit]

open(), close(), write(), ioctl(), 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

Performance and Benchmarks[edit]

NA


USB Driver[edit]

This chapter provides details on MUSB drivers along with throughput and CPU load numbers.

This chapter describes the MUSB driver architecture, features supported/not supported, constraints and performance numbers.

MUSB OTG controller[edit]

Description[edit]

The MUSB driver is implemented on top of Mentor OTG IP version 2.0 which supports all the speeds (High, Full and Low (host mode only)). On AM335x, MUSB uses CPPI 4.1 DMA for all the transfers.

Driver Features[edit]

The driver supports the following features:

Host Mode

  1. Human Interface Class (HID)
  2. Mass Storage Class (MSC)
  3. Hub Class

Gadget mode

  1. Mass Storage Class (MSC)
  2. USB Networking - RNDIS/CDC

Features Not Supported[edit]

  1. OTG
  2. USB Host Video Class (UVC)
  3. USB Host Audio Class (UAC)
  4. USB CDC HOST (USBNET)

USB Mass Storage Class Host Driver[edit]

Driver Features[edit]

The driver supports the following features:

  1. DMA mode
  2. PIO mode

Features Not Supported[edit]

None

Constraints[edit]

NA

Supported System Calls[edit]

open(), close(), read(), write(), ioctl()

Supported IOCTLS[edit]

None

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.


       Setup : WesternDigital HDD (500GB) connected to usb0 port.
File read/write performance data on usb0 port(WDD HDD) has been captured.
ltp-ddt used for performance.

For Test setup details refer to usb-host-msc test setup


USB MSC (MUSB) Host mode EXT2 File System Performance[edit]
USB-MSC MUSB Host-DMA-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 22.76 17.57
256 100 23.13 13.02
512 100 22.77 11.74
1024 100 23.46 12.53
5120 100 23.38 11.80


USB-MSC MUSB Host-DMA-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 23.41 24.55
256 100 23.32 24.50
512 100 23.21 25.00
1024 100 23.51 23.54
5120 100 23.32 24.67



USB-MSC MUSB Host-PIO-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 19.8 27.36
256 100 20.84 17.5
512 100 20.37 19.65
1024 100 20.52 19.37
5120 100 19.83 17.39


USB-MSC MUSB Host-PIO-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 10.12 25.07
256 100 10.12 24.71
512 100 10.11 24.69
1024 100 10.1 25.34
5120 100 10.11 23.03


The performance numbers are captured using the following.

  1. Hard disk: HDD - Western Digital 500GB drive
  2. File format: ext2
USB MSC (MUSB) Host mode VFAT File System Performance[edit]
USB-MSC MUSB Host-DMA-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 18.54 33.04
256 100 20.41 33.66
500 100 19.38 32.35
1024 100 19.83 31.95
5120 100 20.74 32.61


USB-MSC MUSB Host-DMA-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 21.25 24.34
100 256 21.02 24.65
500 100 20.2 25.45
1024 100 21.13 26.21
5120 100 21.02 23.45


USB-MSC MUSB Host-PIO-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 17.54 29.1
100 256 17.89 30.2
500 100 17.74 29.78
1024 100 17.45 28.29
5120 100 17.24 28.90


USB-MSC MUSB Host-PIO-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 9.75 22.98
100 256 9.55 20.24
500 100 9.51 19.58
1024 100 9.57 17.9
5120 100 9.53 18.93


The performance numbers are captured using the following.

  1. Hard HDD - Western Digital 500GB drive
  2. File format: VFAT

USB - ext2 File System Performance on simulataneous read/write on two HDD[edit]

       Setup : WesternDigital HDD (500GB) connected to usb0 port and Transcend 1GB JetFlash connected to usb1 port.
File read/write performance data on usb0 port(WDD HDD) has been captured while simulatenous
file write is in progress on usb1 port(Transcend 1GB).
ltp-ddt used for performance.
USB DMA-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 19.98 36.19
256 100 19.72 30.64
512 100 19.29 34.38
1024 100 18.52 44.54
5120 100 19.86 38.26


USB DMA-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 22.53 51.61
256 100 22.14 33.97
512 100 22.22 35.17
1024 100 22.66 38.23
5120 100 22.36 49.89


USB PIO-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 19.33 56.91
256 100 19.47 49.63
512 100 17.18 48.12
1024 100 19.25 55.96
5120 100 19.67 55.62


USB PIO-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 9.3 54.57
256 100 9.31 53.24
512 100 9.33 55.03
1024 100 9.32 55.11
5120 100 9.29 54.17


USB - VFAT, File System Performance on simulataneous read/write on two HDD[edit]

       Setup : WesternDigital HDD (500GB) connected to usb0 port and Transcend 1GB JetFlash connected to usb1 port.
File read/write performance data on usb0 port(WDD HDD) has been captured while simulatenous
file write is in progress on usb1 port(Transcend 1GB JetFlash).
ltp-ddt used for performance.
USB - DMA-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 13.82 35.18
256 100 16.95 41.52
512 100 17.60 40.94
1024 100 15.51 48.90
5120 100 17.15 42.16


USB - DMA-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 20.67 48.72
256 100 20.23 39.38
512 100 20.22 34.49
1024 100 20.57 35.56
5120 100 20.21 44.70



USB - PIO-Write Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 13.02 39.25
256 100 15.62 50.67
512 100 13.86 52.18
1024 100 14.97 52
5120 100 16 51.38


USB - PIO-Read Performance values
Buffer Size (in KBytes) Total Bytes Transferred (in MBytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
100 100 6.64 83.51
256 100 8.89 46.31
512 100 8.88 46.06
1024 100 8.89 43.92
5120 100 8.9 48.56


USB Mass Storage Class Slave Driver[edit]

Description[edit]

This figure illustrates the stack diagram of the system with USB File Storage Gadget driver

USBSlaveStorage.PNG

Driver Features[edit]

The driver supports the following features:

  1. DMA mode
  2. PIO mode
  3. File backed storage driver was tested with SD media as the storage medium

Features Not Supported[edit]

None

Constraints[edit]

NA

Supported System Calls[edit]

NA

Supported IOCTLS[edit]

NA

Performance Benchmarks[edit]

The performance numbers are captured in DMA/PIO 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 NTFS on windows-xp.
Storage gadget media file is created from "# dd if=/dev/zero of=/dev/shm/50M bs=1M count=50"

# insmod g_mass_storage.ko file=/dev/shm/50M 

For test setup details refer to msc-device setup

USB Slave- DMA Write Performance values
Bytes Transferred (MB)"/dev/shm/50M" file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec) on Windows XP Transfer Rate (MB/sec) on Linux PC
50 1 50 12.3 70


USB Slave- DMA Read Performance values
Bytes Transferred (MB)"/dev/shm/50M" file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec) Transfer Rate (MB/sec) on Linux PC
50 1 50 14 21


USB Slave- PIO Write Performance values
Bytes Transferred (MB)"/dev/shm/50M" file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec) on Windows XP Transfer Rate (MB/sec) on Linux PC
50 1 50 13 60


USB Slave- PIO Read Performance values
Bytes Transferred (MB)"/dev/shm/50M" file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec) Transfer Rate (MB/sec) on Linux PC
50 1 50 14 19


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.

UsBSlaveEthenet.PNG

Driver Features[edit]

The driver supports the following features:

  1. DMA mode
  2. PIO mode
  3. 10/100 Mbps speed.

Features Not Supported[edit]

None

Constraints[edit]

NA

Supported System Calls[edit]

open(), close(), read(), write(), ioctl()

Supported IOCTLS[edit]

None

Performance Benchmarks[edit]

Performance benchmarks were collected using the Iperf tool and default options were used to collect the throughput numbers.

USB CDC-DMA Performance[edit]
USB CDC-DMA Performance values - Client
TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 118.8
32 60 122.9
64 60 128.7
128 60 107


USB RNDIS-DMA Performance[edit]
USB RNDIS-DMA Performance values - Client
TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 73.2
32 60 81.0
64 60 81.7
128 60 81.4


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 features:

  1. DMA mode
  2. PIO mode
  3. USB Mouse and Keyboards that conform to the USB HID specifications

Features Not Supported[edit]

None

Constraint[edit]

NA

Supported System Calls[edit]

NA

Supported IOCTLS[edit]

NA

Performance Benchmarks[edit]

NA

DCAN Driver[edit]

This section provides details on DCAN driver.

Introduction[edit]

The CAN (DCAN) driver supports the Linux netdev interface. CAN driver supports TX and RX in-order packet processing at various bit rates.

Driver Features[edit]

The driver supports the following features:

  1. SocketCAN networking framework
  2. Linux NAPI support for Rx operations
  3. Local loopback of sent frames (IFF_ECHO)
  4. Standard CAN bus bit-rates namely 10K, 20K, 50K, 100K, 125K, 250K, 500K & 1M

Features Not Supported[edit]

  1. ID filtering / Acceptance masks - since Linux infrastructure does not support this the driver cannot provide the feature

Constraints[edit]

NA

Supported System Calls[edit]

Supports the socket() and related system calls in accordance with Linux architecture. Refer to can.txt under Documentation/networking folder

Performance and Benchmarks[edit]

NA

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article AM335x-PSP 04.06.00.03 Features and Performance Guide here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article AM335x-PSP 04.06.00.03 Features and Performance Guide here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article AM335x-PSP 04.06.00.03 Features and Performance Guide here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity