Texas Instruments Technology for Innovators(tm)

Linux Utils 2.26.02.05 Release Notes

July 2011

This Linux Utils Release is targetted for the various DaVinci- and OMAP-based platforms running Linux, but is generally usable for any Linux-based system.

Introduction, CMEM, SDMA, EDMA, VICP, Documentation, What's New, Upgrade Info, Compatibility Information, Device Support, Validation Info, Known Issues, Examples, Version Information, Technical Support.


Introduction

The Linux Utils utility package provides the ability for user-mode applications to access the CMEM, EDMA, SDMA, and VICP utility libraries.

CMEM

The CMEM (Contiguous Memory) utility library provides the ability for user-mode applications to allocate and free blocks of physically contiguous memory. This is typically done to manage multimedia data buffers which will be worked on by multimedia algorithms, but the memory provided by this library can be used for any purpose.

The reason multimedia algorithms often require physically contiguous memory is that sometimes they're on another processor which may not contain an MMU (e.g. the C64P processor on a DM644x device), and/or Linux-based algorithms utilize hardware accelerators (e.g. DMA, image co-processors, etc) which don't access memory through an MMU.

The CMEM module consists of the following packages:

The CMEM module supports the following devices:

SDMA

SDMA refers to the "System DMA" incorporated on the OMAP35x family of devices.

The SDMA utility library provides the ability for user-mode applications to request SDMA channels and operate on a channel using direct, memory-mapped access to the channel's DMA registers (Framework Components contains a layer named SCPY to manage this direct access). It also provides "blocking" support for waiting for the completion of a transfer on a particular channel.

Performing direct DMA register access helps to alleviate the overhead of initiating, and checking completion of, DMA transfers, since the usual method involves calling down into the Linux kernel somehow. Transfer completion checking is achieved by first querying an application status flag, and only when it is known that the transfer is NOT complete will a blocking kernel module call be made.

The SDMA module consists of the following packages:

The SDMA module supports the following devices:

EDMA

EDMA refers to the "Enhanced DMA" incorporated on the Davinci family of C64+ devices.

The EDMA utility library provides the ability for user-mode applications to request EDMA channels and operate on a channel using direct, memory-mapped access to the channel's DMA registers (Framework Components contains a layer named ACPY3 to manage this direct access). It also provides "blocking" support for waiting for the completion of a transfer on a particular channel.

Performing direct DMA register access helps to alleviate the overhead of initiating, and checking completion of, DMA transfers, since the usual method involves calling down into the Linux kernel somehow. Transfer completion checking is achieved by first querying an application status flag, and only when it is known that the transfer is NOT complete will a blocking kernel module call be made.

The EDMA module consists of the following packages:

The EDMA module supports the following devices:

VICP

VICP refers to the "Video Image CoProcessing" subsystem incorporated on the Davinci family of C64+ devices.

The VICP utility library provides the ability for user-mode applications to request VICP channels and operate on a channel using direct, memory-mapped access to the channel's registers (Framework Components contains a layer named VICPSYNC to manage this direct access). It also provides "blocking" support for waiting for the completion of a transfer on a particular channel.

The main functionality of the VICP utility library is to provide access to the completion interrupts of various coprocessor resources. The VICP utility library provides access to specific "resources" that include:

Access to these resources is typically achieved by way of a Framework Components resource manager that makes function calls into the VICP library. Functional operation of the various resources is *not* part of the Linux Utils VICP component.

The VICP module consists of the following packages:

The VICP module supports the following devices:


Documentation

The following documentation is available:

Release notes from previous releases are also available in the relnotes_archive directory.


What's New

The following significant changes have been made since Linux Utils 2.00

2.26.02.05

2.26.01.02

2.26.00.01

2.25.05.11

2.25.04.10

2.25.03.09

2.25.02.08

2.25.01.06

2.25

2.24.03

2.24.02

2.24.01

2.24

2.23.01

2.23

2.22

2.21

2.20

2.10

2.00


Upgrade Information

The Linux Utils packages are available in the "packages/" subdirectory of the product. If you have a previous release of the Linux Utils (or CMEM) product, you can install this release next to it, and modify your application and/or server builds to use this newer release.

If you're using the DVEVM, this can be done by setting the CMEM_INSTALL_DIR variable in the Rules.make file at the top of the DVEVM distribution directory.

Compatibility Breaks!

None

Note, if you're upgrading from a release earlier than Linux Utils 2.26.01.02, be sure to review the Upgrade section for each of the releases between your current release and this one. Previous release notes are available in the relnotes_archive directory.


Compatibility Information

The details provided below describe each package's compatibility with the previous release.

Note, the Configuration Reference Guide contains further details about each package.

If migrating from a release prior to Linux Utils 2.26.01.02, consult previous releases available in the relnotes_archive directory.

Compatibility Key Definitions

Compatibility keys are intentionally independent of Marketing product numbers and are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Compatibility keys are composed of 3 comma-delimited numbers - M,S,R - where:


Device Support

This release supports the following devices:


Validation

This release was validated against using the following components:

This release was validated in the following configurations:


Known Issues

The 2nd function parameter (int nParams) to EDMA_unregister() and EDMA_freeResource() is ignored, since it is no longer allowed to achieve "partial free" by passing fewer 'nParams' than was used with EDMA_getResource(). When freeing a resource, all 'nParam' that were allocated by EDMA_getResource() will be freed.


Examples

Linux Utils example apps and tests are provided in the ti/sdo/linuxutils/*/apps directory.


Version Information

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. linuxutils_2_26_02_05.


Technical Support

For technical support, contact softwaresupport@ti.com

Check the following web site for updates: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/linuxutils/index.html


Last updated: July 12, 2011