TMS320C6472 Chip Support Library User Guide


Contents


Read This First


About this Manual

This document describes how to install and work with Texas Instruments' TMS320C6472 Chip Support Library (CSL). In this context, the document contains instructions to:

  • Install the release
  • Build the sources contained in the release
  • Updated and changed APIs


Installation


System Requirements

Hardware Requirements:

·        TMS320C6472

Software Requirements:

·        This version of CSL has been compiled with TI Codegen tools version c6000 7.0.3.

·        Code Composer Studio version 4.2.0.10012 for running CCSv4 example projects


Package Contents

The delivery packages from Texas Instruments include four zip files for each package as shown below:

 

File name

Contents

Product Zip

csl_c6472_03_00_07_01.zip

v      All header files.

v      CSL libraries in big endian and little endian mode.

v      Release example - Each device has its own example folders.

v      User Guide and API Reference Guide for CSL are provided.

v      ReleaseNotes_C6472_03_00_07_01.html

v      SoftwareManifest_C6472.pdf

Interrupt Controller (INTC) module zip

csl_c64xplus_intc_03_00_07_01.zip

v      INTC module header files.

v      INTC module library file in big endian and little endian mode.

v      Release examples for INTC.

This module is provided as separate library to facilitate use of CSL with an operating system.

This module should not be used with an embedded OS with interrupt controller support, such as DSP/BIOS. Please refer to the API Reference Guide for more information on the INTC module.

CSL Source zip file

csl_c6472_src_03_00_07_01.zip

v      All C6472 CSL source files.

v      All header files.

v      Build script batch file

v      Makefiles to build the library

INTC Source zip file

csl_c64xplus_intc_src_03_00_07_01.zip

v      All INTC CSL source files.

v      All INTC CSL header files.

v      Build script batch file

v      Makefiles to build the library

 


Installation Guidelines and Directory Structures

The steps to be followed for installation of the release package are as follows:

1.     Download the release zip files.

2.     Unzip the files with command “unzip <zip file name>” at the command prompt. Alternatively, use the WinZip wizard to extract the files.

 

The directory structure of the package is as shown below:

 

Installation Package

|

|_____csl_c6472

|

|_____csl_c6472_src

|

|_____csl_c64xplus_intc

|

|_____csl_c64xplus_intc_src

 

 

The directory structure of the product zip package release is as shown below:

 

csl_c6472

         |_____doc -> contains the User Guide and API Reference Guide 

         |

   |

         |_____example

         |        |          

         |        |_____bwmngmt

         |        |          

         |        |_____cache

         |        |

         |        |_____chip

         |        |

         |        |_____dat

         |        |

         |        |_____ddr2

         |        |

         |        |_____edma

         |        |

         |        |_____idma

         |        |

         |        .

         |        .

         |        |_____utopia2

         |

         |_____inc      CSL module header files

         |

         |_____lib

         |        |_____csl_c6472.lib (little endian CSL library)

         |        |

         |        |_____csl_c6472e.lib (big endian CSL library)

         |

         |

         |_____ ReleaseNotes_C6472_03_00_07_01.html (Release notes document)

         |

         |_____ SoftwareManifest_C6472.pdf (Software manifest document)

 

The directory structure of the source zip package is as shown below:

 

csl_c6472_src

         |

         |_____batch files (to build the library)

         |

         |_____makefiles to build the library

         |

         |_____inc      ALL Header files

         |

         |_____src

                    |_____bwmngmt

                    |

                    |_____cache

        |

                    |_____cfg

                    .

                    .

                    .

                    |_____utopia2

 

 

The directory structure of the INTC zip package release is as shown below:

 

csl_C64xplus_intc

         |_____ example

         |          |

         |          c64xplus

         |             |

         |             intc

         |               |___intc_example1

         |               |

         |               .

         |               .

         |               |

         |               |___intc_example6

         |

         |_____inc      INTC module Header files

         |

         |_____lib

                    |___csl_c64xplus_intc.lib (little endian INTC CSL library)

                    |

                    |___csl_c64xplus_intce.lib (big endian INTC CSL library)

 

 

The directory structure of the INTC CSL source zip package is as shown below:

 

csl_c64xplus_intc_src

         |

         |_____batch files (to build the INTC library)

         |

         |_____makefiles to build the library

         |

         |_____inc        INTC Header files

         |

         |_____src

                    |_____common

                    |

                    |_____intc

 


Supported Modules

This release of CSL for TMS320C6472 contains functional and register-level APIs for the modules listed in the table below to program the peripherals. This set of APIs provides peripheral abstraction that can be used by higher layers of software.

Module

Register Layer Provided? (Yes/No)

Functional Layer Provided? (Yes/No)

Example Provided? (Yes/No)

Example Tested on?

(NotTested/ Sim/ /QuickTurn/VDB/EVM)

Remarks

BWMNGMT

Yes

Yes

Yes

EVM

 

CACHE  

Yes

Yes

Yes

EVM

 

CFG

Yes

Yes

Yes

EVM

 

CHIP

Yes

Yes

Yes

EVM

 

DAT

Yes

Yes

Yes

EVM

 

DDR2

Yes

Yes

Yes

EVM

 

DTF

Yes

Yes

NA

NA

Example for this module is covered in other module example

DEV

Yes

NA

NA

NA

Only Register layer is provided

ECTL

Yes

Yes

NA

NA

Example for this module is covered in other module example

EDC

Yes

Yes

Yes

EVM

 

EDMA

Yes

Yes

Yes

EVM

 

EMAC

Yes

Yes

Yes

EVM

 

ETB 

Yes

Yes

Yes

EVM

 

GPIO

Yes

Yes

Yes

EVM

 

HPI

Yes

Yes

NA

Not Tested

Known issue

I2C

Yes

Yes

Yes

EVM

 

IDMA

Yes

Yes

Yes

EVM

 

INTC

Yes

Yes

Yes

EVM

1.       Example for INTC module is available only in
csl_c64xplus_intc package.

 

2.       INTC module is available as separate library, and should generally not be used with an embedded operating system with interrupt controller support, such as DSP/BIOS. Please refer to the API Reference Guide for more information on the INTC module.

 

Modules using INTC should use “csl_c64xplus_intc.lib” (little endian) and “csl_c64xplus_intce.lib” (big endian).

INTGEN

Yes

NA

NA

NA

Only Register layer is provided

MDIO

Yes

Yes

NA

NA

Examples are not provided

MEMPROT

Yes

Yes

Yes

EVM

 

PDMA

No

Yes

NA

NA

Example for this module is covered in other module example

PLLC

Yes

Yes

Yes

EVM

 

PSC

Yes

Yes

NA

NA

Example for this module is covered in other module example

POWERDOWN

Yes

Yes

Yes

EVM

 

SEC

Yes

NA

NA

NA

Only Register layer is provided

SMC

Yes

Yes

Yes

EVM

 

SMCP

Yes

Yes

NA

NA

Example for this module is covered in other module example

SRIO

Yes

Yes

Yes

EVM

 

TIMER

Yes

Yes

Yes

EVM

 

TSC

Yes

Yes

Yes

EVM

 

TSIP

Yes

Yes

Yes

EVM

 

UTOPIA2

Yes

Yes

NA

Not Tested

Known issue

Note
NA – Not Applicable (In Functional Layer column i.e., 3rd column, NA indicates that the CSL requirement for these modules is only register layer.)


Prerequisites to Run Examples

  • Make sure that EVM has been set up properly, so that CCS can be used for running examples.
  • Load corresponding GEL files before running example projects.

Gel file

Location

evm6472.gel for core 0

evm6472-MemoryMap.gel for core 1-5

Install EVMC6472 SDK, and the gel files can be found at

C:\Program Files\Texas Instruments\ccsv4\emulation\boards\evmc6472\gel

 

  • Configure PLLs if required such as when running EMAC example projects with a boot mode other than I2C and EMAC boot. When the gel files above are loaded and target core 0 is connected, PLL2 and PLL3 are enabled while PLL1 is configured to get CPU clock of 625MHz. PLL1 multiplier can also be changed through running evm6472.gel - PLL Controller Functions - PLL1_Controller_Setup.
  • Although PLL configuration is provided in the above GEL files, PLL APIs in the CSL package should to be used instead in applications to configure PLLs.
  • For running EMAC dual_emac example, connect both EMACs to a Giga bit capable (10/100/1000) Ethernet switch.
  • Additional gel file (example\emac\emac_core_restart\core_restart.gel) is provided for running EMAC core restart example. Detailed instructions for how to run this example can be found from example\emac\emac_core_restart\readme.txt.
  • For running TSIP dlb example on C6472EVM, frame sync and clock input must be supplied from such external hardware as chassis.

Build Guidelines


Environmental Variable Settings

1.     Make sure the path to the gmake executable is in the DOS PATH environment variable.

If gmake path is not set, then set path for ‘gmake’ as below if XDC tools are installed under “C:\Program Files\Texas Instruments\xdctools_3_20_03_63”.

 

set path=C:\Program Files\Texas Instruments\xdctools_3_20_03_63

 

2.     Make sure the path to the compiler executable, cl6x.exe is in the DOS PATH environment variable.

If not, then set path as below if CGT 7.0.3 is installed to “C:\Program Files\Texas Instruments\C6000 Code Generation Tools 7.0.3”.

 

set path=%path%;C:\Program Files\Texas Instruments\C6000 Code Generation Tools 7.0.3\bin


Compiling CSL Libraries

The steps to be followed to build the CSL libraries from the release source package are as follows:

1.     Download the release source zip file: “csl_c6472_src_03_00_07_01.zip”.

2.     Unzip the files with command “unzip <zip file name>” at the command prompt. Alternatively, use the WinZip wizard to extract the files.

3.     Go to the command prompt and change the current directory to <Zip folder path>\<csl_src_folder> e.g., cd C:\csl_c6472_src

4.     Setup the target name at command prompt using the following command:

 

set TARGET=c6472

 

5.     Set the environment variable “set CSL3X_ROOT_DIR=<Zip folder path>” at command prompt of the system. Compile the code with the batch file given. Different batch files for creating libraries for the device are listed below. Batch files will be found in the following path csl_c6472_src.

 

Library

Batch file to be invoked

Library name

C6472 CSL

build_csl (little endian)

csl_c6472.lib

build_csle (big endian)

csl_c6472e.lib

 

6.     To clean the built object files, invoke the corresponding batch file with the argument ‘cleanall’: .\build_csl.bat cleanall.

Note: Each time while building the library, use the ‘cleanall’ option with the build script and then build the library.


Compiling INTC CSL Libraries

The steps to be followed to build the INTC CSL library from the release are as follows:

1.     Download the release zip file, “csl_c64xplus_intc_src_03_00_07_01.zip”.

2.     Unzip the files with the command “unzip <zip file name>” at the command prompt. Alternatively, use the WinZip wizard to extract the files.

3.     Go to the command prompt and change the current directory to <Zip folder path>\<csl_intc_src_folder> e.g., cd C:\ csl_c64xplus_intc_src.

4.     Set the environment variable “set CSL3X_ROOT_DIR=<Zip folder path>” at command prompt of the system. Compile the code with the batch file given. Different batch files for creating libraries for the device are listed below. It will be found in the following path csl_c64xplus_intc_src\.

 

Library

Batch file to be invoked

Library name

INTC CSL

build_c64xplus_intc (little endian)

csl_c64xplus_intc.lib

build_c64xplus_intce (big endian)

csl_c64xplus_intce.lib

 

5.     To clean the built object files, invoke the corresponding batch file with the argument ‘cleanall’: .\build_c64xplus_intc.bat cleanall.

Note: Each time while building the library, use the ‘cleanall’ option with the build script and then build the library.


Updated and Changed APIs

Table below provides information on updated and changed APIs in this release.

File

API

Change Description

Any changes required in applications

Notes

csl_cache.h

CACHE_disableCaching()

A new function is added

NO

This function disables caching for a specific memory region.

 

 

csl_emac.h

EMAC_Common_Config

 

 

MdioPhyAddr is added

 

 

NO

This is added along with the MDIO flag MDIO_MODEFLG_SPECPHYADDR for applications to specify a PHY address to be monitored by MDIO. No changes are required in applications if the newly added MDIO_MODEFLG_SPECPHYADDR flag is not used.

 

 

csl_emac.h

EMAC_Core

 

 

A new structure is added

 

 

YES

This EMAC Core Instance structure is introduced to include core specific information which is updated run-time. In multi-core scenarios, it is desirable to place it in local memory to avoid run-time cache writeback/invalidation. Please refer to EMAC core restart, dual emac, and local loopback examples provided.

 

csl_emac.h

EMAC_Device

Removed: hApplication[], RxCh[], TxCh[]

Added: pEMACCore[]

NO

hApplication[], RxCh[], TxCh[] are now placed in EMAC_Core. Pointers to EMAC_Core are then stored in EMAC_Device.

csl_emac.h

EMAC_Device

hMDIO (MDIO handle) is replaced with MdioDev (MDIO device)

NO

This is due to MDIO API change

 

csl_emac.h

EMAC_open()

 

hCore (EMAC_Core handle) is added as a new argument

 

YES

This is due to the EMAC_Core addition. Applications need to initialize EMAC Core Instance and then pass the handle when calling EMAC_open(). Please refer to EMAC local loopback example provided.

 

csl_emac.h

EMAC_coreInit()

 

hCore (EMAC_Core handle) is added as a new argument

 

YES

This is due to the EMAC_Core addition. Applications need to initialize EMAC Core Instance and then pass the handle when calling EMAC_coreInit(). Please refer to EMAC core restart example provided.

csl_i2c.h

CSL_I2C_CLEAR_ALL

A new Macro is added

NO

This macro clears all status bits

csl_i2cAux.h

CSL_i2cClearStatus()

arg is added as a new argument

 

YES

This newly added argument is used to specify the bit to clear

csl_mdio.h

MDIO_MODEFLG_SPECPHYADDR

A new Macro is added

NO

This flag is added to enable applications to specify a PHY address to be monitored by MDIO

csl_mdio.h

MDIO_ERROR_INVALID

A new Macro is added

NO

This error code is added to report invalid f unction or calling parameter to MDIO

csl_mdio.h

MDIO_Device

regId is added

NO

This is added for specifying the set of MDIO User Access and PHY Select Registers used to modify a PHY

csl_mdio.h

MDIO_open()

 

Input arguments are added: instance number, PHY address to be monitored, handle to MDIO device

Return value: MDIO handle is replaced with success/error code

 

 

YES

MDIO_open() is modified to support simultaneous monitoring of two PHY address and also enable applications to specify a PHY address for monitoring. When MDIO_MODEFLG_SPECPHYADDR flag is not set, MDIO has the same behavior as before and instance number and PHY address will not be used. Please refer to EMAC module for how the updated MDIO is used.

 

csl_srio.h

CSL_SrioControlSetup

 

logicalLayerDisable is added

 

YES

This is added to configure LOG_TGT_ID_DIS in SRIO PER_SET_CNTL register. Please refer to the SRIO example provided.

 


Last updated: October 22, 2010