DOKK Library

Security Accelerator Low Level Driver - User Guide

Authors Texas Instruments Inc.

License CC-BY-ND-3.0

Plaintext
Security Accelerator Low Level Driver


                                   User Guide




 Document License

 This work is licensed under the Creative Commons Attribution-NoDerivs 3.0 Unported
 License. To view a copy of this license, visit
 http://creativecommons.org/licenses/by-nd/3.0/ or send a letter to Creative Commons,
 171 Second Street, Suite 300, San Francisco, California, 94105, USA.


 Contributors to this document

 Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/




Texas Instruments, Incorporated
20450 Century Boulevard
Germantown, MD 20874 USA
VP00102-Form-1
Revision D
Contents
                   Overview ............................................................................................................................. 1
                   Build guidelines for SA LLD package................................................................................ 1
                       1) Building SA LLD using gmake in Windows environment ..................................... 1
                       2) Building SA LLD using gmake in MSYS environment ......................................... 2
                       3) Building SA LLD using gmake in Linux bash environment ................................... 3
                   Steps to run example and/or unit test projects .................................................................... 4
                   Steps to run example project in Linux user space............................................................... 6
                   Additional notes for Linux user space ................................................................................ 7




Confidential and Proprietary                                                                                                                                  ii
User Guide for LLDs                                               Revision B: 2/14/2013




                                                                                 User Guide


                   User Guide for SA LLD and Examples

Overview
This document provides guideline for compiling and executing Security Accelerator Low Level
Device Driver (SA LLD) with examples included in the release package.
As a pre-requisite refer release note for the corresponding C66X PDK in order to find
recommended version of compiler and dependent tools. PDK and SA LLD would need to be
installed by running the installer. For rest of the document keyword
        <PDK_INSTALL_PATH> refers to the location where PDK is installed.
        <SALLD_INSTALL_PATH> refers to the location where SA LLD is installed

Build guidelines for SA LLD package
Release package comes with a pre-built set of libraries for SA LLD module. Below are the steps in
case if source release is provided and the SA LLD would need to be rebuilt. Note that makefile
support is now added so that SA LLD libraries can be built using makefile.
NOTE: SA LLD package for ARM Linux user space has to be built in Linux environment.

1) Building SA LLD using gmake in Windows environment
a) Setting Environment Variables:
        C6X_GEN_INSTALL_PATH
              o Install location for Code Gen Tool
              o Example for default location of Code Gen Tool 7.2 GA. Note use of forward
                 slash for the path in the case of windows environment.


                               set C6X_GEN_INSTALL_PATH=”C:/Program Files/Texas
                               Instruments/C6000 Code Generation Tools 7.2.4”


          XDC_INSTALL_PATH [Optional - See below]

Confidential and Proprietary                                                                        1
User Guide for LLDs                                                   Revision B: 2/14/2013


                   o Install location for XDC Tool
                   o This is only required if gmake is available through XDC tool
                   o Example for Default location in the case of xdctools_3_22_01_21 [Illustration
                     Purpose] :


                               set XDC_INSTALL_PATH=C:/Program Files/Texas
                               Instruments/xdctools_3_22_01_21


          PDK_INSTALL_PATH
             o Install location for PDK package
             o Example for Default location of PDK TCI6614 1.0.0.13:

                               set PDK_INSTALL_PATH=C:ti/pdk_tci6614_1_00_00_13
                                                                                                     A
              dditional environment variables are optional. Refer sasetupenv.bat for the details.

b) Once the environment variables are initialized correctly, run sasetupenv.bat located in
   the <SALLD_INSTALL_PATH>\packages> directory to set the environment. Refer to the
   batch file in case if any modifications are required for the target environment.

                sasetupenv.bat


c) To build the SA LLD libraries, execute sabuild.bat from the SA LLD packages directory
   <SALLD_INSTALL_PATH>\packages

                sabuild.bat



2) Building SA LLD using gmake in MSYS environment
a) Setting Environment Variables
        C6X_GEN_INSTALL_PATH
                o Install location for Code Gen Tool
                o Examples for default location of Code Gen Tool 7.2.4 GA

                           export C6X_GEN_INSTALL_PATH="C:/Program Files/Texas
                           Instruments/C6000 Code Generation Tools 7.2.4"


          PDK_INSTALL_PATH
               o Install location for PDK package
               o Change the shell prompt directory to PDK installation directory. Example for
                 a default PDK installation at C:/ti/pdk_tci6614_1_00_00_13, the
                 commands would be
Confidential and Proprietary                                                                              2
User Guide for LLDs                                                   Revision B: 2/14/2013




                           $cd "C:/ti/pdk_tci6614_1_00_00_13"

                           $export PDK_INSTALL_PATH=$PWD




          SALLD_INSTALL_PATH
               o Install location for SA LLD package
               o Change the shell prompt directory to SA LLD installation directory. Example
                 for a default SA LLD installation at C:/ti/salld_1_0_5_4/packages, the
                 commands would be
                           $cd "C:/ti/salld_1_0_5_4/packages"

                           $export SALLD_INSTALL_PATH=$PWD




b) To build all the SA LLD libraries, run sabuild.sh from the top level SA LLD packages
   directory <SALLD_INSTALL_PATH>/packages

                $./sabuild.sh

         The shell script cleans and rebuilds all SA LLD libraries.



3) Building SA LLD using gmake in Linux bash environment
    a) Setting Environment Variables
       Set the build environment by sourcing the environment variable setup script
       “sasetupenv_lnx.sh”.
       source sasetupenv_lnx.sh

         Following are the environment variables in the script which needs to be modified
         according the build environment.
    o    C66X_GEN_INSTALL_PATH
                Install location for c66x processor Code Generation Tool
    o    CROSS_TOOL_INSTALL_PATH
                Install location for GNU ARM Cortex-A8 tool.
    o    PDK_INSTALL_PATH
                Install location for TI PDK package which contains CSL
    o    SA_INSTALL_DIR
                Install location for SA LLD package


Confidential and Proprietary                                                                   3
User Guide for LLDs                                                         Revision B: 2/14/2013


    b) To build the SA LLD components, run sabuild.sh from the top level SA LLD packages
       directory <SALLD_INSTALL_PATH>/packages
       The shell script cleans and rebuilds SA LLD libraries.

Steps to run example and/or unit test projects
The “example” directory in SA LLD contains several examples1 which demonstrate usage of
API’s. The “test” directory in SA LLD contains unit test module2.

1. Check Prerequisites
Please ensure that all dependent/pre-requisite packages are installed before proceeding with the
examples and/or unit test.

2. Configure CCS Environment
The CCS environment configuration step needs to be done only once for a workspace as these
settings are saved in the workspace preferences. These settings only need to be modified if:
             New workspace is selected
             Newer version of the component is being used. In that case modify the paths of the
                upgraded component to the newer directory.

The procedure mentioned in this section is provided using <Managed Build Macro> option in
CCS. Following are the steps:
          a. Create a macro file if not available from the SA LLD or PDK release. For the SA
              LLD release, sample file: <SALLD_INSTALL_PATH>\packages\macros.ini may
              be modified and used.
          b.
              Following environment would need to be available in the macros.ini file

                               PDK_INSTALL_PATH             =   <PDK_INSTALL_PATH>\packages
                               CSL_INSTALL_PATH             =   <PDK_INSTALL_PATH>\packages
                               CPPI_INSTALL_PATH            =   <PDK_INSTALL_PATH>\packages
                               QMSS_INSTALL_PATH            =   <PDK_INSTALL_PATH>\packages
                               PASS_INSTALL_PATH            =   <PDK_INSTALL_PATH>\packages
                               SA_INSTALL_PATH              =   <SALLD_INSTALL_PATH>\packages


3. Create CCS Project

SA LLD package includes a batch file saProjectCreate.bat under
<SA_INSTALL_PATH>\packages. The batch file allows creation of projects based on the
different dependent tool version for all examples and unit tests included in SA LLD. The batch file

1
  The example projects without “_w3gpp” can be run with standard SA LLD package and the example projects with
“_w3gpp” can be run only if the SA 3GPP Enabler is installed.
2
  The unit test project without “_w3gpp” can be run with standard SA LLD package and the unit test project with
“_w3gpp” can be run only if the SA 3GPP Enabler is installed.
Confidential and Proprietary                                                                                      4
User Guide for LLDs                                                 Revision B: 2/14/2013


also allows additional executable types eg: Endianess. Batch file is supported for CCSv5.x
environment.

Alternatively, projects can be created using the CCS wizard and importing required files from test
and example directories.
.
Additional details on using saProjectCreate.bat :
     Prerequisite: All dependent components need to be installed. After the components are
       installed, start CCS once and wait for eclipse plugin to get into effect before running the
       batch file.

        Modify environment variables in saProjectCreate.bat under
         "<SALLD_INSTALL_PATH>\packages" directory to reflect project options. This would
         also include
             o IS_SIMULATOR_SUPPORT_NEEDED: For running projects in simulator
                 environment
             o ENDIAN: To select "little" or "big" endian
             o Set CCS_INSTALL_PATH to CCS 5.x install location
             o Refer additional environment settings in the batch file
         Run the batch file: saProjectCreate.bat

        The command line above will create projects for all SA LLD examples and unit tests. In
         order to create projects for a single example, for instance the SA LLD basic example, the
         command line should be modified as follows:
         saProjectCreate.bat
         "<SALLD_INSTALL_PATH>\packages\ti\drv\sa\example\SaBasicExample"

The CCS projects will be located under the directory selected for environment variable
<MY_WORKSPACE> which by default points to C:\MyPDKWorkspace<PART_NUMBER>

4. Import Project

    Below are the steps for importing project assumes that CCS project is already available.

    a. Select C/C++ Development perspective

    b. Click on File  Import

    c. On the Import Dialog Box select CCS  Existing CCS/CCE Eclipse Project

    d. Click on Next

    e. This will pop up a new dialog box; ensure that 'Select Root Directory' option is selected



Confidential and Proprietary                                                                         5
User Guide for LLDs                                                Revision B: 2/14/2013


    f. Click on Browse and select the top level directory where the project is present. For
       example

       C:\MyPDKWorkspace<PART_NUMBER>
       <PART_NUMBER> reflects the device part number for the PDK being installed.
    g. Under the projects section you should see the project. For example

         SA_BasicExample[_w3gpp]_exampleProject

    h. Click Finish

5. Build Project

    To build the project; ensure that the project you want to build, i.e.,
    “SA_BasicExample_exampleProject" is set as the active project. Click on Project  Build
    Active Project.

6. Run Project

    a. Launch the Debugger and switch to the Debug Perspective.

    b. To execute the project ensure the following is done:

          i. Click on Target  Reset CPU

         ii. Click on Target  Load Program

        iii. Select the executable file to be loaded. Example:

           “C:\MyPDKWorkspace<PART_NUMBER>\SA_BasicExample[_w3gpp]_examplePr
           oject\Debug\SA_BasicExamplet_exampleProject.out”

        iv. Click on OK.

         v. Once the project is loaded; click on Target  Run to execute it.


Steps to run example project in Linux user space
1. Build example
   o Change to the ARM Linux build directory “"<SALLD_INSTALL_PATH>/packages
      ti/drv/sa/example/SaBasicExample/src/armv7/linux/build”
   o Modify the build environment setup script to match the installation environment. Setup the
      build environment by sourcing the script “armv7setupenv.sh”.
      source ./ armv7setupenv.sh
   o Build the example by issuing the make command:
Confidential and Proprietary                                                                      6
User Guide for LLDs                                                   Revision B: 2/14/2013


      gmake all
    o The executable will be placed in the directory “./bin/sa/example”

2. Install the executable to Linux filesystem
Install/copy the “bin” directory and it sub-directories to the target linux filesystem.

3. Execute the example
Execute the example from on the target ARM processor. At the end of execution the example
prints the test summary.


Additional notes for Linux user space
1. Resource sharing with Linux Kernel
   Following multicore navigator related resources are shared with the Linux kernel in the case of
   LLD examples.
    CPPI Flow id
    General purpose Queues
    QMSS memory regions
   Application and the Linux kernel need to ensure that there is no conflict.of these resources.




Confidential and Proprietary                                                                         7