summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaghu Nambiath2013-02-22 14:46:51 -0600
committerRaghu Nambiath2013-02-22 14:46:51 -0600
commit3567157273192f71e8745ac3ce73141df0a951e8 (patch)
tree93ca32db906a99fa412095b1a1387486871f4435
parentcd19d348925e7820fc73e0762a2b494c5f0337ba (diff)
downloadpktlib-3567157273192f71e8745ac3ce73141df0a951e8.tar.gz
pktlib-3567157273192f71e8745ac3ce73141df0a951e8.tar.xz
pktlib-3567157273192f71e8745ac3ce73141df0a951e8.zip
Update for Keystone-2. Fix for IRs SDOCM00096570, SDOCM00099384 with QMSSIR SDOCM00096569
- Unit Test update for RMV3 support - Fixes in Unit test for init synchronization between core 1 and core 2 - Restructured the test for different SOC families
-rw-r--r--ti/runtime/pktlib/config.bld2
-rw-r--r--ti/runtime/pktlib/docs/Doxyfile4
-rw-r--r--ti/runtime/pktlib/docs/ReleaseNotes_pktLib.docbin120832 -> 121344 bytes
-rw-r--r--ti/runtime/pktlib/docs/ReleaseNotes_pktLib.pdfbin288704 -> 288433 bytes
-rw-r--r--ti/runtime/pktlib/macros.ini4
-rw-r--r--ti/runtime/pktlib/package.bld1
-rw-r--r--ti/runtime/pktlib/package.xdc4
-rw-r--r--ti/runtime/pktlib/pktLibProjectCreate.bat58
-rw-r--r--ti/runtime/pktlib/setupenv.bat208
-rw-r--r--ti/runtime/pktlib/src/pktlib.c155
-rw-r--r--ti/runtime/pktlib/test/Module.xs97
-rw-r--r--ti/runtime/pktlib/test/k1/linker.cmd (renamed from ti/runtime/pktlib/test/linker.cmd)0
-rw-r--r--ti/runtime/pktlib/test/k1/main.c.c430
-rw-r--r--ti/runtime/pktlib/test/k1/pktlibUnitTestProject.txt (renamed from ti/runtime/pktlib/test/PktlibUnittestProject.txt)9
-rw-r--r--ti/runtime/pktlib/test/k1/pktlib_tci6618_UnittestProject.txt (renamed from ti/runtime/pktlib/test/pktlib_tci6618_UnittestProject.txt)9
-rw-r--r--ti/runtime/pktlib/test/k1/pktlib_tmdxevm6614lxe_UnittestProject.txt (renamed from ti/runtime/pktlib/test/pktlib_tmdxevm6614lxe_UnittestProject.txt)9
-rw-r--r--ti/runtime/pktlib/test/k1/pktlib_tmdxscbp6618x_UnittestProject.txt (renamed from ti/runtime/pktlib/test/pktlib_tmdxscbp6618x_UnittestProject.txt)9
-rw-r--r--ti/runtime/pktlib/test/k1/testconfig.cfg (renamed from ti/runtime/pktlib/test/testconfig.cfg)0
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/grl.c2162
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/linker.cmd24
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/main.c443
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/pktlib_DspOnlyk2hTestProject.txt14
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp-only.c2771
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp_arm.c2942
-rw-r--r--ti/runtime/pktlib/test/k2h/c66/bios/testconfigk2h.cfg176
-rw-r--r--ti/runtime/pktlib/test/k2k/c66/bios/pktlib_DspOnlyk2kTestProject.txt14
-rw-r--r--ti/runtime/pktlib/test/k2k/c66/bios/testconfigk2k.cfg176
-rw-r--r--ti/runtime/pktlib/test/osal.c39
-rw-r--r--ti/runtime/pktlib/test/pktlib_test.c (renamed from ti/runtime/pktlib/test/main.c)451
-rw-r--r--ti/runtime/pktlib/test/pktlib_test.h102
-rw-r--r--ti/runtime/pktlib/test/test_sharedHeaps.c15
-rw-r--r--ti/runtime/pktlib/tiSetenv.bat54
-rw-r--r--ti/runtime/pktlib/tiSetenv_k2h.bat51
33 files changed, 9758 insertions, 675 deletions
diff --git a/ti/runtime/pktlib/config.bld b/ti/runtime/pktlib/config.bld
index 9e62f50..d42ab65 100644
--- a/ti/runtime/pktlib/config.bld
+++ b/ti/runtime/pktlib/config.bld
@@ -30,7 +30,7 @@ var pktLibrReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');
30/* C66 ELF compiler configuration for Little Endian Mode. */ 30/* C66 ELF compiler configuration for Little Endian Mode. */
31var C66LE = xdc.useModule('ti.targets.elf.C66'); 31var C66LE = xdc.useModule('ti.targets.elf.C66');
32C66LE.rootDir = toolsBaseDir; 32C66LE.rootDir = toolsBaseDir;
33/* C66LE.ccOpts.prefix = "-mo -o0 -g -q -k -eo.o"; */ 33/*C66LE.ccOpts.prefix = "-mo -o0 -g -q -k -eo.o"; */
34C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o"; 34C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
35 35
36/* C66 ELF compiler configuration for Big Endian Mode. */ 36/* C66 ELF compiler configuration for Big Endian Mode. */
diff --git a/ti/runtime/pktlib/docs/Doxyfile b/ti/runtime/pktlib/docs/Doxyfile
index 1e1d124..a5f0364 100644
--- a/ti/runtime/pktlib/docs/Doxyfile
+++ b/ti/runtime/pktlib/docs/Doxyfile
@@ -4,8 +4,8 @@
4#--------------------------------------------------------------------------- 4#---------------------------------------------------------------------------
5# Project related configuration options 5# Project related configuration options
6#--------------------------------------------------------------------------- 6#---------------------------------------------------------------------------
7PROJECT_NAME = "SRIO Driver" 7PROJECT_NAME = "Packet Library"
8PROJECT_NUMBER = 01.00.00.04 8PROJECT_NUMBER = 02.00.00.08
9OUTPUT_DIRECTORY = ./docs/doxygen 9OUTPUT_DIRECTORY = ./docs/doxygen
10CREATE_SUBDIRS = NO 10CREATE_SUBDIRS = NO
11OUTPUT_LANGUAGE = English 11OUTPUT_LANGUAGE = English
diff --git a/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.doc b/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.doc
index f2e217c..ac86274 100644
--- a/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.doc
+++ b/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.doc
Binary files differ
diff --git a/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.pdf b/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.pdf
index 2eaed9a..5921039 100644
--- a/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.pdf
+++ b/ti/runtime/pktlib/docs/ReleaseNotes_pktLib.pdf
Binary files differ
diff --git a/ti/runtime/pktlib/macros.ini b/ti/runtime/pktlib/macros.ini
index 5bfc152..e61e755 100644
--- a/ti/runtime/pktlib/macros.ini
+++ b/ti/runtime/pktlib/macros.ini
@@ -1 +1,3 @@
1PKTLIB_INSTALL_PATH = ..\..\..\ \ No newline at end of file 1PDK_INSTALL_PATH = C:\data\project\keystone-2-csl-lld
2IPC_INSTALL_PATH = C:\Program Files (x86)\Texas Instruments\ipc_1_24_02_27\packages
3PKTLIB_INSTALL_PATH = C:\data\project\transport-SDK\keystone-1\pktlib
diff --git a/ti/runtime/pktlib/package.bld b/ti/runtime/pktlib/package.bld
index 017c0bf..aa04a68 100644
--- a/ti/runtime/pktlib/package.bld
+++ b/ti/runtime/pktlib/package.bld
@@ -116,6 +116,7 @@ Pkg.otherFiles[Pkg.otherFiles.length++] = "pktlibver.h.xdt";
116 116
117Pkg.otherFiles[Pkg.otherFiles.length++] = "makefile_armv7"; 117Pkg.otherFiles[Pkg.otherFiles.length++] = "makefile_armv7";
118Pkg.otherFiles[Pkg.otherFiles.length++] = "lib/libpktlib_aearmv7.mk"; 118Pkg.otherFiles[Pkg.otherFiles.length++] = "lib/libpktlib_aearmv7.mk";
119Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/doxyfile.xdt";
119 120
120/* Generate Users Manual Doxyfile */ 121/* Generate Users Manual Doxyfile */
121var tplt = xdc.loadTemplate("./docs/doxyfile.xdt"); 122var tplt = xdc.loadTemplate("./docs/doxyfile.xdt");
diff --git a/ti/runtime/pktlib/package.xdc b/ti/runtime/pktlib/package.xdc
index 4a870a4..f0392c3 100644
--- a/ti/runtime/pktlib/package.xdc
+++ b/ti/runtime/pktlib/package.xdc
@@ -6,9 +6,9 @@
6 * DESCRIPTION: 6 * DESCRIPTION:
7 * This file contains the package specification for the Packet Library 7 * This file contains the package specification for the Packet Library
8 * 8 *
9 * Copyright (C) 2009,2010 Texas Instruments, Inc. 9 * Copyright (C) 2009,2013 Texas Instruments, Inc.
10 *****************************************************************************/ 10 *****************************************************************************/
11 11
12package ti.runtime.pktlib[01, 00, 00, 07] { 12package ti.runtime.pktlib[02, 00, 00, 08] {
13} 13}
14 14
diff --git a/ti/runtime/pktlib/pktLibProjectCreate.bat b/ti/runtime/pktlib/pktLibProjectCreate.bat
index fc98c1b..54d4ad8 100644
--- a/ti/runtime/pktlib/pktLibProjectCreate.bat
+++ b/ti/runtime/pktlib/pktLibProjectCreate.bat
@@ -11,7 +11,9 @@
11@REM * USAGE: 11@REM * USAGE:
12@REM * pktlibProjectCreate.bat 12@REM * pktlibProjectCreate.bat
13@REM * --- OR --- 13@REM * --- OR ---
14@REM * pktlibProjectCreate.bat 14@REM * Description: (first option is default)
15@REM * socFamily - k1/k2k / k2h
16@REM * endian - little / big
15@REM * 17@REM *
16@REM * 18@REM *
17@REM * Copyright (C) 2010, Texas Instruments, Inc. 19@REM * Copyright (C) 2010, Texas Instruments, Inc.
@@ -20,8 +22,16 @@
20@echo OFF 22@echo OFF
21 23
22REM Parameter Validation: Check if the argument was passed to the batch file and 24REM Parameter Validation: Check if the argument was passed to the batch file and
23REM if so we use that else we default to the working directory where the batch 25REM *****************************************************************************
24REM file was invoked from. We convert the PKTLIB Install path to short names because 26REM Argument [socFamily] is used to set DEVICE_NAME variable.
27REM Valid values are 'k2h'. Defaults to 'none Keystone-1'.
28set tempVar1=%1
29if not defined tempVar1 goto nodevice
30set DEVICE_NAME=%tempVar1%
31goto devicedone
32:nodevice
33set DEVICE_NAME=
34:devicedone
25REM otherwise the batch file commands do not work 35REM otherwise the batch file commands do not work
26set tempVar=%1 36set tempVar=%1
27IF NOT DEFINED tempVar GOTO noparameter 37IF NOT DEFINED tempVar GOTO noparameter
@@ -30,6 +40,12 @@ goto done
30:noparameter 40:noparameter
31set PKTLIB_SHORT_NAME=%~sdp0 41set PKTLIB_SHORT_NAME=%~sdp0
32:done 42:done
43REM *****************************************************************************
44
45echo =========================================================================
46echo. DEVICE_NAME : %DEVICE_NAME%
47echo. ENDIAN : %ENDIAN%
48echo =========================================================================
33 49
34REM ***************************************************************************** 50REM *****************************************************************************
35REM * Version Information of the various tools etc required to build the test 51REM * Version Information of the various tools etc required to build the test
@@ -46,10 +62,13 @@ set IS_SIMULATOR_SUPPORT_NEEDED=no
46REM Install Location for CCS 62REM Install Location for CCS
47REM set CCS_INSTALL_PATH="C:\Program Files\Texas Instruments\ccsv5" 63REM set CCS_INSTALL_PATH="C:\Program Files\Texas Instruments\ccsv5"
48REM set CCS_INSTALL_PATH="C:\Program Files\Texas Instruments\ccsv4" 64REM set CCS_INSTALL_PATH="C:\Program Files\Texas Instruments\ccsv4"
49set CCS_INSTALL_PATH="C:\ti\ccs_5_0_3\ccsv5" 65set CCS_INSTALL_PATH="C:\ti\ccs_5_3_0\ccsv5"
50 66
51REM Workspace where the PKTLIB projects will be created. 67REM Workspace where the PKTLIB projects will be created.
52set MY_WORKSPACE="C:\MyPKTLIBWorkspaceC6678-3-LE" 68set MY_WORKSPACE="C:\MyPKTLIBWorkspacek2hLE"
69
70REM macros.ini location
71set MACROS_FILE=macros.ini
53 72
54REM This is Endianess of the Projects being created. 73REM This is Endianess of the Projects being created.
55REM Valid Values are 'little' and 'big' 74REM Valid Values are 'little' and 'big'
@@ -61,28 +80,29 @@ REM Valid Values are 'ELF' and 'COFF'
61set OUTPUT_FORMAT=ELF 80set OUTPUT_FORMAT=ELF
62 81
63REM Version of CG-Tools 82REM Version of CG-Tools
64set CGT_VERSION=7.3.1 83set CGT_VERSION=7.4.2
65 84
66REM Version of XDC 85REM Version of XDC
67REM set XDC_VERSION=3.22.01.21
68REM set XDC_VERSION=3.20.07.86
69set XDC_VERSION=3.23.03.53 86set XDC_VERSION=3.23.03.53
70 87
71REM Version of BIOS 88REM Version of BIOS
72set BIOS_VERSION=6.33.05.46 89set BIOS_VERSION=6.33.06.50
73 90
74REM Version of the IPC 91REM Version of the IPC
75set IPC_VERSION=1.24.02.27 92set IPC_VERSION=1.24.03.32
76 93
77REM Version of the PDK 94REM EDMA3 Version
78set PDK_VERSION=1.0.0.21 95set EDMA_VERSION=02.11.05
79 96
97REM Version of the PDK
98set PDK_VERSION=1.00.00.05
80 99
81REM PDK Part Number 100REM PDK Part Number
82set PDK_PARTNO=C6678L 101set PDK_PARTNO=TCI6634
102REM set PDK_PARTNO=C6678L
83 103
84REM RTSC Platform Name 104REM RTSC Platform Name
85set RTSC_PLATFORM_NAME=ti.platforms.evm6678 105set RTSC_PLATFORM_NAME=ti.platforms.simKepler
86 106
87REM RTSC Target 107REM RTSC Target
88REM - Please ensure that you select this taking into account the 108REM - Please ensure that you select this taking into account the
@@ -115,15 +135,16 @@ echo ***************************************************************************
115echo Detecting UnitTest Projects in PKTLIB and importing them in the workspace %MY_WORKSPACE% 135echo Detecting UnitTest Projects in PKTLIB and importing them in the workspace %MY_WORKSPACE%
116 136
117REM Search for all the test Project Files in the PKTLIB. 137REM Search for all the test Project Files in the PKTLIB.
118for /F %%I IN ('dir /b /s *testproject.txt') do ( 138for /F %%I IN ('dir /b /s *%DEVICE_NAME%*testproject.txt') do (
119echo Detected Test Project: %%~nI 139echo Detected Test Project: %%~nI
120 140
121REM Goto each directory where the test project file is located and create the projects. 141REM Goto each directory where the test project file is located and create the projects.
122pushd %%~dI%%~pI 142pushd %%~dI%%~pI
123 143
124REM Execute the command to create the project using the parameters specified above. 144REM Execute the command to create the project using the parameters specified above.
125%CCS_INSTALL_PATH%\%AUTO_CREATE_COMMAND% -data %MY_WORKSPACE% -application com.ti.ccstudio.apps.projectCreate -ccs.name %%~nI -ccs.outputFormat %OUTPUT_FORMAT% -ccs.device com.ti.ccstudio.deviceModel.C6000.GenericC64xPlusDevice -ccs.endianness %ENDIAN% -ccs.kind executable -ccs.cgtVersion %CGT_VERSION% -rtsc.xdcVersion %XDC_VERSION% -rtsc.enableDspBios -rtsc.biosVersion %BIOS_VERSION% -rtsc.buildProfile "debug" -rtsc.products "com.ti.rtsc.IPC:%IPC_VERSION%;com.ti.rtsc.SYSBIOS:%BIOS_VERSION%;com.ti.biosmcsdk.pdk.%PDK_PARTNO%:%PDK_VERSION%" -rtsc.platform "%RTSC_PLATFORM_NAME%" -rtsc.target %RTSC_TARGET% -ccs.rts libc.a -ccs.args %%~nI%%~xI %SIMULATOR_SUPPORT_DEFINE% -ccs.setBuildOption com.ti.rtsc.*.XDC_PATH "${PKTLIB_INSTALL_PATH}" -ccs.setBuildOption com.ti.rtsc.*.XDC_PATH "${PKTLIB_INSTALL_PATH}" 145%CCS_INSTALL_PATH%\%AUTO_CREATE_COMMAND% -data %MY_WORKSPACE% -application com.ti.ccstudio.apps.projectCreate -ccs.name %%~nI -ccs.outputFormat %OUTPUT_FORMAT% -ccs.device com.ti.ccstudio.deviceModel.C6000.GenericC64xPlusDevice -ccs.endianness %ENDIAN% -ccs.kind executable -ccs.cgtVersion %CGT_VERSION% -rtsc.xdcVersion %XDC_VERSION% -rtsc.enableDspBios -rtsc.biosVersion %BIOS_VERSION% -rtsc.buildProfile "debug" -rtsc.products "com.ti.sdo.edma3:%EDMA_VERSION%;com.ti.rtsc.IPC:%IPC_VERSION%;com.ti.rtsc.SYSBIOS:%BIOS_VERSION%;ti.pdk:%PDK_VERSION%" -rtsc.platform "%RTSC_PLATFORM_NAME%" -rtsc.target %RTSC_TARGET% -ccs.rts libc.a -ccs.args %%~nI%%~xI %SIMULATOR_SUPPORT_DEFINE% -ccs.setCompilerOptions "--define DEVICE_K2H"
126 146echo Copying macro.ini
147copy %MACROS_FILE% %MY_WORKSPACE%\%%~nI\macros.ini
127popd 148popd
128) 149)
129 150
@@ -139,7 +160,8 @@ pushd %%~dI%%~pI
139 160
140REM Execute the command to create the project using the parameters specified above. 161REM Execute the command to create the project using the parameters specified above.
141%CCS_INSTALL_PATH%\%AUTO_CREATE_COMMAND% -data %MY_WORKSPACE% -application com.ti.ccstudio.apps.projectCreate -ccs.name %%~nI -ccs.outputFormat %OUTPUT_FORMAT% -ccs.device com.ti.ccstudio.deviceModel.C6000.GenericC64xPlusDevice -ccs.endianness %ENDIAN% -ccs.kind executable -ccs.cgtVersion %CGT_VERSION% -rtsc.xdcVersion %XDC_VERSION% -rtsc.enableDspBios -rtsc.biosVersion %BIOS_VERSION% -rtsc.buildProfile "debug" -rtsc.products "com.ti.rtsc.IPC:%IPC_VERSION%;com.ti.rtsc.SYSBIOS:%BIOS_VERSION%;com.ti.biosmcsdk.pdk.%PDK_PARTNO%:%PDK_VERSION%" -rtsc.platform "%RTSC_PLATFORM_NAME%" -rtsc.target %RTSC_TARGET% -ccs.rts libc.a -ccs.args %%~nI%%~xI %SIMULATOR_SUPPORT_DEFINE% -ccs.setBuildOption com.ti.rtsc.*.XDC_PATH "${PKTLIB_INSTALL_PATH}" -ccs.setBuildOption com.ti.rtsc.*.XDC_PATH "${PKTLIB_INSTALL_PATH}" 162%CCS_INSTALL_PATH%\%AUTO_CREATE_COMMAND% -data %MY_WORKSPACE% -application com.ti.ccstudio.apps.projectCreate -ccs.name %%~nI -ccs.outputFormat %OUTPUT_FORMAT% -ccs.device com.ti.ccstudio.deviceModel.C6000.GenericC64xPlusDevice -ccs.endianness %ENDIAN% -ccs.kind executable -ccs.cgtVersion %CGT_VERSION% -rtsc.xdcVersion %XDC_VERSION% -rtsc.enableDspBios -rtsc.biosVersion %BIOS_VERSION% -rtsc.buildProfile "debug" -rtsc.products "com.ti.rtsc.IPC:%IPC_VERSION%;com.ti.rtsc.SYSBIOS:%BIOS_VERSION%;com.ti.biosmcsdk.pdk.%PDK_PARTNO%:%PDK_VERSION%" -rtsc.platform "%RTSC_PLATFORM_NAME%" -rtsc.target %RTSC_TARGET% -ccs.rts libc.a -ccs.args %%~nI%%~xI %SIMULATOR_SUPPORT_DEFINE% -ccs.setBuildOption com.ti.rtsc.*.XDC_PATH "${PKTLIB_INSTALL_PATH}" -ccs.setBuildOption com.ti.rtsc.*.XDC_PATH "${PKTLIB_INSTALL_PATH}"
142 163echo Copying macro.ini
164copy %MACROS_FILE% %MY_WORKSPACE%\%%~nI\macros.ini
143popd 165popd
144) 166)
145 167
diff --git a/ti/runtime/pktlib/setupenv.bat b/ti/runtime/pktlib/setupenv.bat
index 86cac0e..4dbbccf 100644
--- a/ti/runtime/pktlib/setupenv.bat
+++ b/ti/runtime/pktlib/setupenv.bat
@@ -1,74 +1,172 @@
1@REM ****************************************************************************** 1@REM ******************************************************************************
2@REM * FILE PURPOSE: Environment Setup for building Packet Library 2@REM * FILE PURPOSE: Environment Setup for building PDK
3@REM ****************************************************************************** 3@REM ******************************************************************************
4@REM * FILE NAME: setupenv.bat 4@REM * FILE NAME: setupenv.bat
5@REM * 5@REM *
6@REM * DESCRIPTION: 6@REM * DESCRIPTION:
7@REM * Configures and sets up the Build Environment 7@REM * Configures and sets up the Build Environment for PDK.
8
9@REM * The batch file expects an optional argument:PDK_INSTALL_PATH: Location of the PDK package.
10@REM * If the argument is not specified the batch file assumes that the PDK is installed in the same location
11@REM * where the batch file is located and is being executed.
12@REM *
13@REM * USAGE:
14@REM * setupenv.bat "C:/Program Files/Texas Instruments/pdk_C6678_1_0_0_17/packages"
15@REM * --- OR ---
16@REM * setupenv.bat
8@REM * 17@REM *
9@REM * Copyright (C) 2009,2010 Texas Instruments, Inc. 18@REM * Copyright (C) 2011, Texas Instruments, Inc.
10@REM ***************************************************************************** 19@REM *****************************************************************************
20@echo off
21@REM *******************************************************************************
22@REM ********************** GET PARAMETERS PASSED THROUGH ARGUMENT ***************
23@REM *******************************************************************************
24@REM Parameter Validation: Check if the argument was passed to the batch file and
25@REM if so we use that else we default to the working directory where the batch
26@REM file was invoked from
27
28IF DEFINED PDK_INSTALL_PATH GOTO endparameter
29set tempVar=%1
30IF NOT DEFINED tempVar GOTO noparameter
31set PDK_INSTALL_PATH=%~fs1
32goto done1
33:noparameter
34set PDK_INSTALL_PATH=%~sdp0
35:done1
36
37:endparameter
38
39@REM *******************************************************************************
40@REM ********************** CHECK REQUIRED ENVIRONMENT DEFINES BEGIN ***************
41@REM *******************************************************************************
42if not defined C6X_GEN_INSTALL_PATH goto HLP_C6X_GEN_INSTALL_PATH
43set C6X_GEN_INSTALL_PATH=%C6X_GEN_INSTALL_PATH:\=/%
44
45if not defined PKTLIB_INSTALL_PATH goto HLP_PKTLIB_INSTALL_PATH
46
47if not defined XDC_INSTALL_PATH @echo "XDC_INSTALL_PATH: XDC NOT CONFIGURED!!!!. REQUIRED FOR XDC BUILD"
48
49
50@REM *******************************************************************************
51@REM ********************** CHECK REQUIRED ENVIRONMENT DEFINES END ***************
52@REM *******************************************************************************
53
54
55@REM *******************************************************************************
56@REM *************************** OPTIONAL ENVIRONMENT DEFINES **********************
57@REM *************************** NOT REQUIRED FOR BUILDING THE PDK *****************
58@REM *******************************************************************************
59@REM COVERITY_INSTALL_PATH: Environment Variable for tool to do STATIC Analysis
60@REM of the code
61@REM
62@REM DOXYGEN_INSTALL_PATH: DOXYGEN Version 1.7.3 [Only needed for generating Doxygen]
63@REM
64@REM HTML_HELP_WORKSHOP_INSTALL_PATH: HTML Help compiler.[Only needed for generating Doxygen]
65@REM *******************************************************************************
66@REM *******************************************************************************
67@REM *******************************************************************************
68
69@REM PDK PARTNO
70set PARTNO=TCI6614
71
72set CGTOOLS=%C6X_GEN_INSTALL_PATH%
73
74@REM *******************************************************************************
75@REM ** Convert C6X_GEN_INSTALL_PATH and PDK_INSTALL_PATH to short name and to UNIX STYLE PATH for XDC build **
76@REM *******************************************************************************
77if not defined XDC_INSTALL_PATH goto END_SHORT_CONVERSION
78set PATH=%PATH%;%XDC_INSTALL_PATH%\packages\xdc\services\io\release
79@REM for /f "tokens=1* delims=" %%a in ('cmd /q/c path2dos %PDK_INSTALL_PATH%') do set PDK_INSTALL_PATH=%%a
80@REM for /f "tokens=1* delims=" %%a in ('cmd /q/c path2dos %C6X_GEN_INSTALL_PATH%') do set C6X_GEN_INSTALL_PATH=%%a
81
82for /f "tokens=1* delims=" %%a in ('cmd /q/c path2dos %PDK_INSTALL_PATH%') do set PDK_INSTALL_PATH=%%a
11 83
12@echo ------------------------------------------------ 84for /f "tokens=1* delims=" %%a in ('cmd /q/c path2dos %C6X_GEN_INSTALL_PATH%') do set C6X_GEN_INSTALL_PATH=%%a
13@echo Configuring Packet Library Build Environment 85
86:END_SHORT_CONVERSION
87if not defined C6X_GEN_INSTALL_PATH set C6X_GEN_INSTALL_PATH=%C6X_GEN_INSTALL_PATH:\=/%
88
89set XDCCGROOT=%C6X_GEN_INSTALL_PATH%
90echo CGTOOL INSTALL Directory %C6X_GEN_INSTALL_PATH%
91echo PDK Directory %PDK_INSTALL_PATH%
92echo XDC Directory %XDC_INSTALL_PATH%
93echo SOC=%SOC%
14@echo off 94@echo off
95@REM *******************************************************************************
96@REM *************************** XDC PATH Configuration ****************************
97@REM *******************************************************************************
15 98
16@REM Configure the Part Number 99@REM Ensure that all the components inside PDK are a part of the XDC Path; such that
17set PARTNO=C6678 100@REM one component can use another.
18 101set XDCPATH=../../..;%PDK_INSTALL_PATH%;%PKTLIB_INSTALL_PATH%;%XDC_INSTALL_PATH%/packages;%C6X_GEN_INSTALL_PATH%/include
19@REM ---------------------------------
20@REM Enabling MINI PACKAGE to be Built
21@REM ---------------------------------
22set MINI_PACKAGE=OFF
23@echo MINI PACKAGE is set to %MINI_PACKAGE%
24
25@REM This is the base location for the various tools.
26set XDCCGROOT=T:\c6xx\cgen7_2_04\c6000\cgtools
27set C6X_GEN_INSTALL_PATH=T:\c6xx\cgen7_2_04\c6000\cgtools
28
29REM *******************************************************************************
30REM *************************** XDC PATH Configuration ****************************
31REM *******************************************************************************
32REM Packet Library depends upon the following packages:-
33REM - CPPI LLD
34REM - QMSS LLD
35REM These packages should be installed before trying to build the driver else
36REM compilations will fail.
37REM PDK Package: CPPI and QMSS are a part of the PDK package.
38
39@REM Specify the XDC Tool Path
40set XDC_INSTALL_PATH=t:/gen/xdc/xdctools_3_22_04_46
41set XDCPATH=../../..;%XDC_INSTALL_PATH%/packages
42
43@REM Configure the XDCPATH
44REM set PDK_INSTALL_PATH=C:/Program Files/Texas Instruments/pdk_TCI6614_1_0_0_0/packages
45set PDK_INSTALL_PATH=C:/ti/pdk_C6678_1_0_0_21/packages
46set XDCPATH=%XDCPATH%;%PDK_INSTALL_PATH%;%C6X_GEN_INSTALL_PATH%/include
47 102
48@REM Eclipse Help Plugin (Not required by customers) 103@REM Eclipse Help Plugin (Not required by customers)
49set XDC_ECLIPSE_PLUGIN_INSTALL_PATH=T:/gen/xdc/xdc_eclipse_plugin_gen/20091203 104if defined XDC_ECLIPSE_PLUGIN_INSTALL_PATH set XDCPATH=%XDCPATH%;%XDC_ECLIPSE_PLUGIN_INSTALL_PATH%
50set XDC_FILTER_INSTALL_PATH=T:/gen/xdc/xdcFilter/20100428 105
51set XDCPATH=%XDCPATH%;%XDC_ECLIPSE_PLUGIN_INSTALL_PATH% 106if defined XDC_FILTER_INSTALL_PATH set XDCPATH=%XDCPATH%;%XDC_FILTER_INSTALL_PATH%
52set XDCPATH=%XDCPATH%;%XDC_FILTER_INSTALL_PATH% 107
108set XDCPATH=%XDCPATH%;%PDK_INSTALL_PATH%
109@REM *******************************************************************************
110@REM ************************** Build Tools Configuration **************************
111@REM *******************************************************************************
112
113@REM Windows Path
114set PATH=C:\Windows\System32
115
116@REM XDC Tools location:
117set PATH=%PATH%;%XDC_INSTALL_PATH%;%XDC_INSTALL_PATH%\bin
118
119@REM Compiler Tools:
120set PATH=%PATH%;%C6X_GEN_INSTALL_PATH%\bin
121
122@REM CG-XML Package:
123set PATH=%PATH%;%CG_XML_BIN_INSTALL_PATH%
53 124
54@REM Configure the paths to ensure that the XDC is available. 125@REM Third Party Tools: Doxygen
55set PATH=%XDC_INSTALL_PATH%;%XDC_INSTALL_PATH%\bin;T:\Doxygen\doxygen\1.5.1-p1\bin 126if defined DOXYGEN_INSTALL_PATH set PATH=%PATH%;%DOXYGEN_INSTALL_PATH%
127
128@REM Third Party Tools: HTML Help compiler.
129if defined HTML_HELP_WORKSHOP_INSTALL_PATH set PATH=%PATH%;%HTML_HELP_WORKSHOP_INSTALL_PATH%;
56 130
57@REM Third Party Tools: Install-Jammer (Not required by customers) 131@REM Third Party Tools: Install-Jammer (Not required by customers)
58set PATH=%PATH%;T:\gen\InstallJammer\v1_2_05 132if defined INSTALL_JAMMER_DIR set PATH=%PATH%;%INSTALL_JAMMER_DIR%
133
134@REM Third Party Tools: Coverity
135if defined COVERITY_INSTALL_PATH set PATH=%PATH%;%COVERITY_INSTALL_PATH%\bin
136
137@REM Set the Title Window appropiately.
138Title NWAL Build Environment
139
140goto SUCCESS
141
142:HLP_C6X_GEN_INSTALL_PATH
143@echo "ENVIRONMENT VARIABLE C6X_GEN_INSTALL_PATH: Code Generation Tool NOT CONFIGURED!!!!"
144@echo Example [NOTE ""]:set C6X_GEN_INSTALL_PATH="c:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2"
145goto ERROR
146
147:HLP_PKTLIB_INSTALL_PATH
148@echo "ENVIRONMENT VARIABLE PKTLIB_INSTALL_PATH: PacketLib NOT CONFIGURED!!!!"
149@echo Example [NOTE ""]:set PKTLIB_INSTALL_PATH="c:/Program Files/Texas Instruments"
150goto ERROR
151
152:HLP_XDC_INSTALL_PATH
153@echo "ENVIRONMENT VARIABLE XDC_INSTALL_PATH: XDC NOT CONFIGURED!!!!"
154@echo XDC_INSTALL_PATH EXAMPLE [DEFAULT LOCATION]:
155@echo set XDC_INSTALL_PATH=C:\Program Files\Texas Instruments\xdctools_3_20_07_86
59 156
60set PATH=%PATH%;%XDCCGROOT%\bin;T:\gen\gnu\99-11-01\cygwin-b20\H-i586-cygwin32\bin 157:HLP_CG_XML_BIN_INSTALL_PATH
61set PATH=%PATH%;T:\SDOApps\cg_xml\cg_xml_v2_20_00\bin 158@echo "ENVIRONMENT VARIABLE CG_XML_BIN_INSTALL_PATH: Code Generation Tools XML package NOT CONFIGURED!!!!"
62set PATH=%PATH%;T:\ti_pdsp_cgen\20091120 159@echo CG_XML_BIN_INSTALL_PATH EXAMPLE [DEFAULT LOCATION]:
160@echo set CG_XML_BIN_INSTALL_PATH=C:\Program Files\Texas Instruments\cg_xml\bin
161goto ERROR
63 162
64REM Third Party Tools: HTML Help compiler. 163:SUCCESS
65set PATH=%PATH%;T:\Doxygen\HTML_Help_Workshop\10-01-2007;%C6X_GEN_INSTALL_PATH%\bin; 164@echo NWAL BUILD ENVIRONMENT CONFIGURED
66@REM Environment Variable which control STATIC Analysis of the code 165@echo *******************************************************************************
67set STATIC_ANALYZE_PATH=T:\gen\coverity\prevent-mingw-3.4.0 166goto DONE
68set PATH=%PATH%;%STATIC_ANALYZE_PATH%\bin
69 167
70REM Set the Title Window appropiately. 168:ERROR
71Title Packet Library Build Environment 169@echo ERROR CONFIGURING NWAL BUILD ENVIRONMENT
72@echo Packet Library Build Environment Configured 170@echo *******************************************************************************
73@echo -----------------------------------------------
74 171
172:DONE
diff --git a/ti/runtime/pktlib/src/pktlib.c b/ti/runtime/pktlib/src/pktlib.c
index 40aafaa..cba4f07 100644
--- a/ti/runtime/pktlib/src/pktlib.c
+++ b/ti/runtime/pktlib/src/pktlib.c
@@ -56,7 +56,7 @@
56#include <ti/runtime/pktlib/pktlib.h> 56#include <ti/runtime/pktlib/pktlib.h>
57 57
58/* CSL Cache Module */ 58/* CSL Cache Module */
59#include <ti/csl/csl_cacheAux.h> 59#include <ti/csl/cslr.h>
60 60
61/* CPPI/QMSS Include */ 61/* CPPI/QMSS Include */
62#include <ti/drv/qmss/qmss_drv.h> 62#include <ti/drv/qmss/qmss_drv.h>
@@ -72,6 +72,11 @@
72#endif 72#endif
73#endif 73#endif
74 74
75/* Same for all SOC's. Being pulled out of CSL to avoid
76 * device dependency
77 */
78#define CACHE_L2_LINESIZE 128
79
75/************************************************************************** 80/**************************************************************************
76 ************************* Local Definitions ****************************** 81 ************************* Local Definitions ******************************
77 **************************************************************************/ 82 **************************************************************************/
@@ -187,6 +192,7 @@ typedef struct Pktlib_Info
187 Ti_Pkt* donor; 192 Ti_Pkt* donor;
188}Pktlib_Info; 193}Pktlib_Info;
189 194
195#define PKTLIB_BLOCK_STARVATION_COUNT 4
190/** 196/**
191 * @brief 197 * @brief
192 * The structure describes the Packet Library Heaps 198 * The structure describes the Packet Library Heaps
@@ -214,8 +220,8 @@ typedef struct Pktlib_Heap
214 220
215 /** 221 /**
216 * @brief This the base starvation queue which has been allocated to the heap. 222 * @brief This the base starvation queue which has been allocated to the heap.
217 */ 223 */
218 int32_t baseStarvationQueue; 224 Qmss_QueueHnd baseStarvationQueue;
219 225
220 /** 226 /**
221 * @brief This is valid only for super heaps and indicates all the member 227 * @brief This is valid only for super heaps and indicates all the member
@@ -335,9 +341,6 @@ Pktlib_Heap gSharedPktHeaps[PKTLIB_MAX_PACKET_HEAP];
335 ************************ Extern Definitions ****************************** 341 ************************ Extern Definitions ******************************
336 **************************************************************************/ 342 **************************************************************************/
337 343
338/* Workaround for the starvation queues */
339extern Qmss_GlobalConfigParams qmssLObj;
340
341/********************************************************************** 344/**********************************************************************
342 ********************* Packet Library Functions *********************** 345 ********************* Packet Library Functions ***********************
343 **********************************************************************/ 346 **********************************************************************/
@@ -671,22 +674,15 @@ static void Pktlib_getQueueStarvationCount
671 uint8_t* zeroDataBufferCount 674 uint8_t* zeroDataBufferCount
672) 675)
673{ 676{
674 uint32_t queNum; 677 uint32_t starvationCount[PKTLIB_BLOCK_STARVATION_COUNT];
675 uint32_t regIndex;
676 uint32_t starvationCount;
677
678 /* Calculate the queue number to be used & register to be used */
679 queNum = ptrPktHeap->baseStarvationQueue - qmssLObj.maxQueueNum[Qmss_QueueType_STARVATION_COUNTER_QUEUE].startIndex;
680 regIndex = queNum / 4;
681 678
682 /* Read the entire register. This will cause the value to become 0 */ 679 *dataBufferCount = 0;
683 starvationCount = qmssLObj.qmConfigReg->FREE_DESCRIPTOR_STARVE_COUNT_REG[regIndex]; 680 Qmss_getStarvationCounts(ptrPktHeap->baseStarvationQueue,
681 PKTLIB_BLOCK_STARVATION_COUNT,
682 starvationCount);
683 *dataBufferCount = starvationCount[0];
684 *zeroDataBufferCount = starvationCount[1];
684 685
685 /* The DATA Buffer Starvation queue is always the first 8 bits */
686 *dataBufferCount = (uint8_t)CSL_FEXTR (starvationCount, 7, 0);
687
688 /* The ZERO DATA Buffer Starvation queue is always the next 8 bits */
689 *zeroDataBufferCount = (uint8_t)CSL_FEXTR (starvationCount, 15, 8);
690 return; 686 return;
691} 687}
692 688
@@ -700,106 +696,32 @@ static void Pktlib_getQueueStarvationCount
700 * that all allocations fit in the same register and the rest of the queues 696 * that all allocations fit in the same register and the rest of the queues
701 * are marked as reserved. 697 * are marked as reserved.
702 * 698 *
703 * @param[out] baseStarvationQueueToUse 699 * @param[out] baseStarvationQueue
704 * Pointer to the queue information which indicates the base queue number 700 * Pointer to the block of starvation queues allocated.
705 * which can be used for allocation.
706 * 701 *
707 * @retval 702 * @retval
708 * Success - 0 703 * Success - 0
709 * @retval 704 * @retval
710 * Error - <0 705 * Error - <0
711 */ 706 */
712static int32_t Pktlib_allocateStarvationQueue (int32_t* baseStarvationQueueToUse) 707static int32_t Pktlib_allocateStarvationQueue (Qmss_QueueHnd* pBaseStarvationQueue)
713{ 708{
714 Qmss_QueueHnd parentQueueHandle; 709 Qmss_QueueHnd starvationQueueBlock[PKTLIB_BLOCK_STARVATION_COUNT];
715 Qmss_QueueHnd childQueueHandle[3]; 710
716 uint8_t isAllocated; 711 *pBaseStarvationQueue = Qmss_queueBlockOpen(starvationQueueBlock,
717 uint32_t index; 712 Qmss_QueueType_STARVATION_COUNTER_QUEUE,
718 int32_t starvationQueueNumber; 713 PKTLIB_BLOCK_STARVATION_COUNT,
719 int32_t maxStarvationQueueNumber; 714 PKTLIB_BLOCK_STARVATION_COUNT);
720 715 if (*pBaseStarvationQueue < 0)
721 /* Get the base & max starvation queue numbers from the QMSS LLD directly. */
722 starvationQueueNumber = qmssLObj.maxQueueNum[Qmss_QueueType_STARVATION_COUNTER_QUEUE].startIndex;
723 maxStarvationQueueNumber = starvationQueueNumber + qmssLObj.maxQueueNum[Qmss_QueueType_STARVATION_COUNTER_QUEUE].maxNum;
724
725 /* Cycle through all the QMSS Starvation Queues. */
726 while (starvationQueueNumber < maxStarvationQueueNumber)
727 { 716 {
728 parentQueueHandle = Qmss_queueOpen (Qmss_QueueType_STARVATION_COUNTER_QUEUE, 717#ifdef DEBUG_PKTLIB
729 starvationQueueNumber, 718 /* Debug only: */
730 &isAllocated); 719 System_printf ("Debug: QMSS Error allocating Starvation Queue Block:%d \n",
731 if (parentQueueHandle < 0) 720 *pBaseStarvationQueue);
732 return -1; 721#endif
733 722 return -1;
734 /* Step 1: Make sure that the parent starvation queue is NOT already open */
735 if (isAllocated > 1)
736 {
737 /* We cannot operate on a new queue. */
738 starvationQueueNumber++;
739
740 /* Close the parent queue. */
741 Qmss_queueClose(parentQueueHandle);
742 continue;
743 }
744
745 /* Step2: Since there are 4 queues per count register the queue we are interested in should
746 * be a multiple of 4. */
747 if ((starvationQueueNumber % 4) != 0)
748 {
749 /* No we cannot use this queue. */
750 starvationQueueNumber++;
751
752 /* Close the parent queue. */
753 Qmss_queueClose(parentQueueHandle);
754 continue;
755 }
756
757 /* Initialize the children starvation queue */
758 childQueueHandle[0] = 0;
759 childQueueHandle[1] = 0;
760 childQueueHandle[2] = 0;
761
762 /* Step3: Make sure that all the children queues are also not being used. */
763 for (index = 0; index < 3; index++)
764 {
765 childQueueHandle[index] = Qmss_queueOpen (Qmss_QueueType_STARVATION_COUNTER_QUEUE,
766 starvationQueueNumber + index + 1,
767 &isAllocated);
768 if (childQueueHandle[index] < 0)
769 return -1;
770
771 /* Check: Make sure that the queue is not already open. */
772 if (isAllocated > 1)
773 break;
774 }
775
776 /* Did we succeed? */
777 if (index == 3)
778 {
779 /* YES */
780 *baseStarvationQueueToUse = starvationQueueNumber;
781 return 0;
782 }
783 else
784 {
785 /* NO. The children queue were already allocated. We need to close all the CHILD queues
786 * since we cannot proceed. */
787 for (index = 0; index < 3; index++)
788 {
789 if (childQueueHandle[index] != 0)
790 Qmss_queueClose(childQueueHandle[index]);
791 }
792
793 /* Increment the starvation queue number */
794 starvationQueueNumber++;
795
796 /* Close the parent queue. */
797 Qmss_queueClose(parentQueueHandle);
798 }
799 } 723 }
800 724 return 0;
801 /* Control comes here implies that there was no queue which could be used. */
802 return -1;
803} 725}
804 726
805/** 727/**
@@ -1020,7 +942,8 @@ Pktlib_HeapHandle Pktlib_createHeap(Pktlib_HeapCfg* ptrHeapCfg, int32_t* errCode
1020 return NULL; 942 return NULL;
1021 } 943 }
1022#ifdef DEBUG_PKTLIB 944#ifdef DEBUG_PKTLIB
1023 System_printf ("Debug: Starvation Queue %d has been allocated for the heap\n", ptrPktHeap->baseStarvationQueue); 945 System_printf ("Debug: Starvation Queue 0x%x has been allocated for the heap\n",
946 ptrPktHeap->baseStarvationQueue);
1024#endif 947#endif
1025 } 948 }
1026 949
@@ -1031,9 +954,7 @@ Pktlib_HeapHandle Pktlib_createHeap(Pktlib_HeapCfg* ptrHeapCfg, int32_t* errCode
1031 if (ptrPktHeap->useStarvationQueue) 954 if (ptrPktHeap->useStarvationQueue)
1032 { 955 {
1033 /* Allocate a starvation counter queue. */ 956 /* Allocate a starvation counter queue. */
1034 ptrPktHeap->freeQueueHnd = Qmss_queueOpen(Qmss_QueueType_STARVATION_COUNTER_QUEUE, 957 ptrPktHeap->freeQueueHnd = ptrPktHeap->baseStarvationQueue;
1035 ptrPktHeap->baseStarvationQueue,
1036 &isAllocated);
1037 if (ptrPktHeap->freeQueueHnd == 0) 958 if (ptrPktHeap->freeQueueHnd == 0)
1038 { 959 {
1039 *errCode = PKLIB_ERESOURCE; 960 *errCode = PKLIB_ERESOURCE;
@@ -1063,7 +984,7 @@ Pktlib_HeapHandle Pktlib_createHeap(Pktlib_HeapCfg* ptrHeapCfg, int32_t* errCode
1063 /* Allocate a starvation queue where these packets will be stored. */ 984 /* Allocate a starvation queue where these packets will be stored. */
1064 ptrPktHeap->freeZeroQueueHnd = Qmss_queueOpen(Qmss_QueueType_STARVATION_COUNTER_QUEUE, 985 ptrPktHeap->freeZeroQueueHnd = Qmss_queueOpen(Qmss_QueueType_STARVATION_COUNTER_QUEUE,
1065 ptrPktHeap->baseStarvationQueue + 1, 986 ptrPktHeap->baseStarvationQueue + 1,
1066 &isAllocated); 987 &isAllocated);
1067 if (ptrPktHeap->freeZeroQueueHnd == 0) 988 if (ptrPktHeap->freeZeroQueueHnd == 0)
1068 { 989 {
1069 *errCode = PKLIB_ERESOURCE; 990 *errCode = PKLIB_ERESOURCE;
diff --git a/ti/runtime/pktlib/test/Module.xs b/ti/runtime/pktlib/test/Module.xs
index e2271b7..a779107 100644
--- a/ti/runtime/pktlib/test/Module.xs
+++ b/ti/runtime/pktlib/test/Module.xs
@@ -7,7 +7,7 @@
7 * This file contains the module specification for Pktlib Test 7 * This file contains the module specification for Pktlib Test
8 * Files 8 * Files
9 * 9 *
10 * Copyright (C) 2009,2010 Texas Instruments, Inc. 10 * Copyright (C) 2009,2013 Texas Instruments, Inc.
11 *****************************************************************************/ 11 *****************************************************************************/
12 12
13/* Load the library utility. */ 13/* Load the library utility. */
@@ -22,36 +22,81 @@ var libUtility = xdc.loadCapsule ("../build/buildlib.xs");
22 **************************************************************************/ 22 **************************************************************************/
23function modBuild() 23function modBuild()
24{ 24{
25 /* Add all the .c files to the release package. */ 25 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/osal.c";
26 var testFiles = libUtility.listAllFiles (".c", "test"); 26 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/pktlib_osal.h";
27 for (var k = 0 ; k < testFiles.length; k++) 27 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/pktlib_test.h";
28 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k]; 28 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/pktlib_test.c";
29 29 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/README.txt";
30 /* Add all the .h files to the release package. */ 30 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/test_sharedHeaps.c";
31 var testFiles = libUtility.listAllFiles (".h", "test");
32 for (var k = 0 ; k < testFiles.length; k++)
33 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
34
35 /* Add all the .cfg files to the release package. */
36 var testFiles = libUtility.listAllFiles (".cfg", "test");
37 for (var k = 0 ; k < testFiles.length; k++)
38 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
39
40 /* Add all the .cmd files to the release package. */
41 var testFiles = libUtility.listAllFiles (".cmd", "test");
42 for (var k = 0 ; k < testFiles.length; k++)
43 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
44 31
45 if ( buildFull != "YES" ) 32 if ( buildFull != "YES" )
46 { 33 {
47 /* Add all the .cmd files to the release package. */ 34 /* Add all the .cmd files to the release package. */
48 var testFiles = libUtility.listAllFiles ("_UnittestProject.txt", "test"); 35 var testFiles = libUtility.listAllFiles ("_UnittestProject.txt", "test/k1");
36 for (var k = 0 ; k < testFiles.length; k++)
37 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
38
39 var testFiles = libUtility.listAllFiles (".c", "test/k1");
40 for (var k = 0 ; k < testFiles.length; k++)
41 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
42
43 var testFiles = libUtility.listAllFiles (".h", "test/k1");
49 for (var k = 0 ; k < testFiles.length; k++) 44 for (var k = 0 ; k < testFiles.length; k++)
50 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k]; 45 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
46
47 var testFiles = libUtility.listAllFiles (".cfg", "test/k1");
48 for (var k = 0 ; k < testFiles.length; k++)
49 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
50
51 var testFiles = libUtility.listAllFiles (".cmd", "test/k1");
52 for (var k = 0 ; k < testFiles.length; k++)
53 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
51 } else { 54 } else {
52 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/PktlibUnittestProject.txt"; 55 /* Add all the .c files to the release package. */
53 } 56 var testFiles = libUtility.listAllFiles (".c", "test/k2h");
54 Pkg.otherFiles[Pkg.otherFiles.length++] = "test/README.txt"; 57 for (var k = 0 ; k < testFiles.length; k++)
55 58 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
59
60 var testFiles = libUtility.listAllFiles (".c", "test/k2k");
61 for (var k = 0 ; k < testFiles.length; k++)
62 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
63
64
65 /* Add all the .h files to the release package. */
66 var testFiles = libUtility.listAllFiles (".h", "test/k2h");
67 for (var k = 0 ; k < testFiles.length; k++)
68 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
69
70 var testFiles = libUtility.listAllFiles (".h", "test/k2k");
71 for (var k = 0 ; k < testFiles.length; k++)
72 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
73
74 /* Add all the .cfg files to the release package. */
75 var testFiles = libUtility.listAllFiles (".cfg", "test/k2h");
76 for (var k = 0 ; k < testFiles.length; k++)
77 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
78
79 var testFiles = libUtility.listAllFiles (".cfg", "test/k2k");
80 for (var k = 0 ; k < testFiles.length; k++)
81 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
82
83 /* Add all the .cmd files to the release package. */
84 var testFiles = libUtility.listAllFiles (".cmd", "test/k2h");
85 for (var k = 0 ; k < testFiles.length; k++)
86 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
87
88 var testFiles = libUtility.listAllFiles (".cmd", "test/k2k");
89 for (var k = 0 ; k < testFiles.length; k++)
90 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
91
92 /* Add all the .txt files to the release package. */
93 var testFiles = libUtility.listAllFiles (".txt", "test/k2h");
94 for (var k = 0 ; k < testFiles.length; k++)
95 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
96
97 var testFiles = libUtility.listAllFiles (".txt", "test/k2k");
98 for (var k = 0 ; k < testFiles.length; k++)
99 Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
100 }
56} 101}
57 102
diff --git a/ti/runtime/pktlib/test/linker.cmd b/ti/runtime/pktlib/test/k1/linker.cmd
index 06e9ba3..06e9ba3 100644
--- a/ti/runtime/pktlib/test/linker.cmd
+++ b/ti/runtime/pktlib/test/k1/linker.cmd
diff --git a/ti/runtime/pktlib/test/k1/main.c.c b/ti/runtime/pktlib/test/k1/main.c.c
new file mode 100644
index 0000000..9615ac6
--- /dev/null
+++ b/ti/runtime/pktlib/test/k1/main.c.c
@@ -0,0 +1,430 @@
1/**
2 * @file pktlib_test.c
3 *
4 * @brief
5 * Test Code to test the packet library
6 *
7 * \par
8 * NOTE:
9 * (C) Copyright 2012 Texas Instruments, Inc.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 *
18 * Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the
21 * distribution.
22 *
23 * Neither the name of Texas Instruments Incorporated nor the names of
24 * its contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 *
39 */
40#include <pktlib_test.h>
41
42/* PDK Resource Manager Include Files. */
43#include <ti/drv/rm/rm.h>
44
45
46/* CPPI/QMSS Include Files. */
47#include <ti/drv/cppi/cppi_drv.h>
48#include <ti/drv/cppi/cppi_desc.h>
49#include <ti/drv/qmss/qmss_drv.h>
50#include <ti/drv/qmss/qmss_firmware.h>
51
52
53/* IPC includes */
54#include <ti/ipc/GateMP.h>
55#include <ti/ipc/Ipc.h>
56#include <ti/ipc/ListMP.h>
57#include <ti/ipc/SharedRegion.h>
58
59/**********************************************************************
60 ************************** Global Variables **************************
61 **********************************************************************/
62
63/* Memory allocated for the buffers is located in shared memory. */
64uint8_t memoryBuffer[NUM_HOST_DESC][MAX_DATA_SIZE];
65
66/* Memory allocated for the buffers is located in shared memory. */
67#pragma DATA_SECTION (sharedMemoryBuffer, ".appSharedMemory");
68uint8_t sharedMemoryBuffer[SHARED_NUM_HOST_DESC][SHARED_MAX_DATA_SIZE];
69
70/* Memory allocated for the descriptors. This is 16 bit aligned. */
71#pragma DATA_ALIGN (host_region, 16)
72uint8_t host_region[NUM_HOST_DESC * SIZE_HOST_DESC];
73
74/* QMSS device specific configuration */
75extern Qmss_GlobalConfigParams qmssGblCfgParams;
76
77/* CPPI device specific configuration */
78extern Cppi_GlobalConfigParams cppiGblCfgParams;
79
80/* Resource Manager Table */
81extern Rm_Resource rmResourceTable[];
82
83/* Gobal Memory Heap created for the test. */
84Pktlib_HeapHandle myHeap;
85
86/**********************************************************************
87 ************************* Extern Definitions *************************
88 **********************************************************************/
89
90/* External Definition for testing shared heaps. */
91extern int32_t test_pktLibrarySharedHeaps(Pktlib_HeapHandle sharedHeapHandle);
92
93/**
94 * @b Description
95 * @n
96 * System Initialization Code. This is added here only for illustrative
97 * purposes and needs to be invoked once during initialization at
98 * system startup.
99 *
100 * @retval
101 * Success - 0
102 * @retval
103 * Error - <0
104 */
105static int32_t system_init (void)
106{
107 int32_t result;
108 Qmss_MemRegInfo memRegInfo;
109 Qmss_InitCfg qmssInitConfig;
110
111 /* Initialize the QMSS Configuration block. */
112 memset (&qmssInitConfig, 0, sizeof (Qmss_InitCfg));
113
114 /* Initialize the Host Region. */
115 memset ((void *)&host_region, 0, sizeof(host_region));
116
117 /* Set up the linking RAM. Use the internal Linking RAM.
118 * LLD will configure the internal linking RAM address and maximum internal linking RAM size if
119 * a value of zero is specified. Linking RAM1 is not used */
120 qmssInitConfig.linkingRAM0Base = 0;
121 qmssInitConfig.linkingRAM0Size = 0;
122 qmssInitConfig.linkingRAM1Base = 0;
123 qmssInitConfig.maxDescNum = 1024;
124
125#ifdef xdc_target__bigEndian
126 /* PDSP Configuration: Big Endian */
127 qmssInitConfig.pdspFirmware[0].pdspId = Qmss_PdspId_PDSP1;
128 qmssInitConfig.pdspFirmware[0].firmware = &acc48_be;
129 qmssInitConfig.pdspFirmware[0].size = sizeof (acc48_be);
130#else
131 /* PDSP Configuration: Little Endian */
132 qmssInitConfig.pdspFirmware[0].pdspId = Qmss_PdspId_PDSP1;
133 qmssInitConfig.pdspFirmware[0].firmware = &acc48_le;
134 qmssInitConfig.pdspFirmware[0].size = sizeof (acc48_le);
135#endif
136
137 /* Get the RM Handle and pass it. */
138 qmssGblCfgParams.qmRmServiceHandle = rmServerServiceHandle;
139
140 /* Initialize Queue Manager Sub System */
141 result = Qmss_init (&qmssInitConfig, &qmssGblCfgParams);
142 if (result != QMSS_SOK)
143 {
144 printf ("Error initializing Queue Manager SubSystem error code : %d\n", result);
145 return -1;
146 }
147
148 /* Initialize the memory region configuration. */
149 memset ((void *)&memRegInfo, 0, sizeof(Qmss_MemRegInfo));
150
151 /* Memory Region 1 Configuration for single core heaps. */
152 memRegInfo.descBase = (uint32_t *)l2_global_address((uint32_t)host_region);
153 memRegInfo.descSize = SIZE_HOST_DESC;
154 memRegInfo.descNum = NUM_HOST_DESC;
155 memRegInfo.manageDescFlag = Qmss_ManageDesc_MANAGE_DESCRIPTOR;
156 memRegInfo.memRegion = Qmss_MemRegion_MEMORY_REGION1;
157
158 /* Set the start index correctly to account for the shared descriptors. */
159 memRegInfo.startIndex = 0;
160
161 /* Initialize and inset the memory region. */
162 result = Qmss_insertMemoryRegion (&memRegInfo);
163 if (result < QMSS_SOK)
164 {
165 printf ("Error inserting memory region: %d\n", result);
166 return -1;
167 }
168
169 /* Initialize CPPI CPDMA */
170 result = Cppi_init (&cppiGblCfgParams);
171 if (result != CPPI_SOK)
172 {
173 printf ("Error initializing Queue Manager SubSystem error code : %d\n", result);
174 return -1;
175 }
176
177 /* CPPI and Queue Manager are initialized. */
178 printf ("Debug: Queue Manager and CPPI are initialized.\n");
179 return 0;
180}
181/**
182 * @b Description
183 * @n
184 * Entry Point for the test code.
185 *
186 * @retval
187 * 0 - Success
188 * @retval
189 * <0 - Error
190 */
191int main (void)
192{
193 uint32_t coreNum;
194 Pktlib_HeapCfg heapCfg;
195 int32_t errCode;
196 uint32_t startAddress;
197 uint32_t endAddress;
198 uint32_t permissions;
199 uint32_t index;
200 CSL_MpuHandle hMpu;
201 Rm_Result rmResult;
202 Qmss_StartCfg qmssCfg;
203 Cppi_StartCfg cppiCfg;
204
205 /* Get the core Number. */
206 coreNum = CSL_chipReadReg (CSL_CHIP_DNUM);
207
208 /* Synchronize all the cores. */
209 Ipc_start();
210
211 /* Is this core the system initialization core? */
212 if (coreNum == SYSTEM_INIT_CORE)
213 {
214 /* Debug Message: */
215 System_printf ("****************************************\n");
216 System_printf ("****** Packet Library Unit Test ********\n");
217 System_printf ("****************************************\n");
218
219 /* Initialize the resource manager with the specified table. */
220 rmResult = Rm_init (&rmResourceTable[0]);
221 if (rmResult != RM_OK)
222 {
223 System_printf ("Error: Initialization of the RM failed error code: %d\n", rmResult);
224 return -1;
225 }
226 System_printf ("Debug: RM Initialization was successful\n");
227
228 /* YES. Only the system initialization core is responsible for system initialization
229 * and executing all the non shared heap tests. */
230 if (system_init() < 0)
231 return -1;
232
233 /* Start the QMSS Driver: For the TMDXEVM6614LXE we start the QMSS with
234 * the resource manager we had instantiated. For the other devices we
235 * simply start with no PDK resource manager. */
236 /* Display the Version Information for all the PDK Drivers */
237 System_printf ("Debug: %s\n", Rm_getVersionStr());
238 System_printf ("Debug: %s\n", Qmss_getVersionStr());
239 System_printf ("Debug: %s\n", Cppi_getVersionStr());
240
241 /* Initialize the configurations */
242 memset ((void *)&qmssCfg, 0, sizeof(Qmss_StartCfg));
243
244 /* Populate the QMSS configuration. */
245 qmssCfg.rmHandle = Rm_getHandle();
246
247 /* Start the QMSS with the specified configuration. */
248 if (Qmss_startCfg(&qmssCfg) != QMSS_SOK)
249 return -1;
250
251 memset ((void *)&cppiCfg, 0, sizeof(Cppi_StartCfg));
252
253 /* Populate the CPPI configuration. */
254 cppiCfg.rmHandle = Rm_getHandle();
255
256 /* Start the CPPI with the resource manager. */
257 Cppi_startCfg(&cppiCfg);
258
259 /* Open the handle to the MPU2: Ensure the permissions are passed to the Queue Manager
260 * Memory sections. If this is NOT done the threshold feature for queue will not work. */
261 hMpu = CSL_MPU_Open (2);
262 for (index = 0; index < 16; index++)
263 {
264 /* Get the MPU Programmability information. */
265 CSL_MPU_GetProgrammableAddressInfo (hMpu, 0, &startAddress, &endAddress, &permissions);
266
267 /* Enable all the permissions. */
268 permissions |= CSL_FMK (MPU_FIXED_MPPA_UX, 1) |
269 CSL_FMK (MPU_FIXED_MPPA_UW, 1) |
270 CSL_FMK (MPU_FIXED_MPPA_UR, 1) |
271 CSL_FMK (MPU_FIXED_MPPA_SX, 1) |
272 CSL_FMK (MPU_FIXED_MPPA_SW, 1) |
273 CSL_FMK (MPU_FIXED_MPPA_SR, 1);
274
275 /* Set the MPU Programmability information. */
276 CSL_MPU_SetProgrammableAddressInfo (hMpu, 0, startAddress, endAddress, permissions);
277
278 /* Get the MPU Programmability information. */
279 CSL_MPU_GetProgrammableAddressInfo (hMpu, 0, &startAddress, &endAddress, &permissions);
280
281 /* Display it */
282 System_printf ("Debug: Start Address 0x%x\n", startAddress);
283 System_printf ("Debug: End Address 0x%x\n", endAddress);
284 System_printf ("Debug: Permissions 0x%x\n", permissions);
285 }
286
287 /* Initialize the Shared Heaps. */
288 Pktlib_sharedHeapInit();
289
290 /* Initialize the heap configuration */
291 memset((void *)&heapCfg, 0 , sizeof(Pktlib_HeapCfg));
292
293 /* Populate the heap configuration */
294 heapCfg.name = "My Test Heap";
295 heapCfg.memRegion = Qmss_MemRegion_MEMORY_REGION1;
296 heapCfg.sharedHeap = 0;
297 heapCfg.useStarvationQueue = 0;
298 heapCfg.dataBufferSize = MAX_DATA_SIZE;
299 heapCfg.numPkts = 16;
300 heapCfg.numZeroBufferPackets = 64;
301 heapCfg.dataBufferPktThreshold = 0;
302 heapCfg.zeroBufferPktThreshold = 0;
303 heapCfg.heapInterfaceTable.data_malloc = myMalloc;
304 heapCfg.heapInterfaceTable.data_free = myFree;
305
306 /* Create the Local Heap with specified configuration. */
307 myHeap = Pktlib_createHeap(&heapCfg, &errCode);
308 if (myHeap == NULL)
309 {
310 System_printf ("Error: Unable to create the heap error code %d\n", errCode);
311 return -1;
312 }
313
314 /* Test the packet Library API */
315 if (test_pktLibrary() < 0)
316 {
317 System_printf ("Error: PACKET Library Unit Testing FAILED\n");
318 return -1;
319 }
320
321 /* Benchmark the Packet Library with a use-case. */
322 if (benchmark_pktLibrary() < 0)
323 {
324 System_printf ("Error: BENCHMARKING Packet Library FAILED\n");
325 return -1;
326 }
327
328 {
329 Pktlib_HeapHandle sharedHeapHandle;
330 Pktlib_HeapStats startStats;
331 Pktlib_HeapStats endStats;
332
333 /* Initialize the heap configuration */
334 memset((void *)&heapCfg, 0 , sizeof(Pktlib_HeapCfg));
335
336 /* Populate the heap configuration */
337 heapCfg.name = "MySharedHeap";
338 heapCfg.memRegion = Qmss_MemRegion_MEMORY_REGION1;
339 heapCfg.sharedHeap = 1;
340 heapCfg.useStarvationQueue = 0;
341 heapCfg.dataBufferSize = SHARED_MAX_DATA_SIZE;
342 heapCfg.numPkts = 16;
343 heapCfg.numZeroBufferPackets = 16;
344 heapCfg.dataBufferPktThreshold = 0;
345 heapCfg.zeroBufferPktThreshold = 0;
346 heapCfg.heapInterfaceTable.data_malloc = mySharedMemoryMalloc;
347 heapCfg.heapInterfaceTable.data_free = mySharedMemoryFree;
348
349 /* Create Shared Heap with specified configuration. */
350 sharedHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
351 if (sharedHeapHandle == NULL)
352 {
353 System_printf ("Error: Unable to create the shared heap error code %d\n", errCode);
354 return -1;
355 }
356
357 /* Get the heap statistics: Before we run the tests. */
358 Pktlib_getHeapStats(sharedHeapHandle, &startStats);
359
360 /* Execute the Shared Heap Tests */
361 if (test_pktLibrarySharedHeaps(sharedHeapHandle) < 0)
362 {
363 System_printf ("Error: SHARED HEAP Packet Library FAILED\n");
364 return -1;
365 }
366
367 /* Get the heap statistics: At the end of the test */
368 Pktlib_getHeapStats(sharedHeapHandle, &endStats);
369
370 /* Check for memory leaks: */
371 if ((startStats.numPacketsinGarbage != endStats.numPacketsinGarbage) ||
372 (startStats.numFreeDataPackets != endStats.numFreeDataPackets) ||
373 (startStats.numZeroBufferPackets != endStats.numZeroBufferPackets))
374 return -1;
375 }
376
377 /* Debug Message: */
378 System_printf ("Debug: All tests passed\n");
379
380 /* Test passed. */
381 return 0;
382 }
383 else
384 {
385 /* Start the DSP/ARM Resource Manager for each core: */
386
387 /* Initialize the resource manager with the specified table. */
388 rmResult = Rm_start ();
389 if (rmResult != RM_OK)
390 {
391 System_printf ("Error: RM Startup failed error code: %d\n", rmResult);
392 return -1;
393 }
394
395 /* On each core we need to start the QMSS before we can proceed with using it. */
396
397 /* Display the Version Information for all the PDK Drivers */
398 System_printf ("Debug: %s\n", Rm_getVersionStr());
399 System_printf ("Debug: %s\n", Qmss_getVersionStr());
400 System_printf ("Debug: %s\n", Cppi_getVersionStr());
401
402
403 /* Initialize the configurations */
404 memset ((void *)&qmssCfg, 0, sizeof(Qmss_StartCfg));
405
406 /* Populate the QMSS configuration. */
407 qmssCfg.rmHandle = Rm_getHandle();
408
409 /* Start the QMSS with the specified configuration. */
410 if (Qmss_startCfg(&qmssCfg) != QMSS_SOK)
411 return -1;
412
413
414 /* Initialize the CPPI Configuration. */
415 memset ((void *)&cppiCfg, 0, sizeof(Cppi_StartCfg));
416
417 /* Populate the CPPI configuration. */
418 cppiCfg.rmHandle = Rm_getHandle();
419
420 /* Start the CPPI with the resource manager. */
421 Cppi_startCfg(&cppiCfg);
422
423 /* Test the Packet Library Shared Heaps. */
424 if (test_pktLibrarySharedHeaps(NULL) < 0)
425 return -1;
426
427 /* Debug Message: */
428 System_printf ("Debug: Shared Heap Test Passed.\n");
429 }
430}
diff --git a/ti/runtime/pktlib/test/PktlibUnittestProject.txt b/ti/runtime/pktlib/test/k1/pktlibUnitTestProject.txt
index e71a0e8..f188734 100644
--- a/ti/runtime/pktlib/test/PktlibUnittestProject.txt
+++ b/ti/runtime/pktlib/test/k1/pktlibUnitTestProject.txt
@@ -1,11 +1,12 @@
1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/README.txt" 1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/README.txt"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/main.c" 2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/main.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/pktlib_test.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c" 4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c"
4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/linker.cmd" 5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/linker.cmd"
5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c" 6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c"
6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c" 7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c"
7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/testconfig.cfg" 8-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/testconfig.cfg"
8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c" 9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c"
9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c" 10-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c"
10-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/default_resource_table.c" 11-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/default_resource_table.c"
11-ccs.setCompilerOptions "-mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib" -rtsc.enableRtsc 12-ccs.setCompilerOptions "-mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib" -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib/test" -rtsc.enableRtsc
diff --git a/ti/runtime/pktlib/test/pktlib_tci6618_UnittestProject.txt b/ti/runtime/pktlib/test/k1/pktlib_tci6618_UnittestProject.txt
index 989409c..2b671e2 100644
--- a/ti/runtime/pktlib/test/pktlib_tci6618_UnittestProject.txt
+++ b/ti/runtime/pktlib/test/k1/pktlib_tci6618_UnittestProject.txt
@@ -1,11 +1,12 @@
1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/main.c" 1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/main.c"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/pktlib_test.c"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c" 3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/linker.cmd" 4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/linker.cmd"
4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c" 5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c"
5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c" 6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c"
6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/testconfig.cfg" 7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/testconfig.cfg"
7-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c" 8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c"
8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c" 9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c"
9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/default_resource_table.c" 10-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/default_resource_table.c"
10-ccs.setCompilerOptions "-DDEVICE_TCI6618 -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib" 11-ccs.setCompilerOptions "-DDEVICE_TCI6618 -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib/test"
11-rtsc.enableRtsc 12-rtsc.enableRtsc
diff --git a/ti/runtime/pktlib/test/pktlib_tmdxevm6614lxe_UnittestProject.txt b/ti/runtime/pktlib/test/k1/pktlib_tmdxevm6614lxe_UnittestProject.txt
index 42bc8d9..797de40 100644
--- a/ti/runtime/pktlib/test/pktlib_tmdxevm6614lxe_UnittestProject.txt
+++ b/ti/runtime/pktlib/test/k1/pktlib_tmdxevm6614lxe_UnittestProject.txt
@@ -1,11 +1,12 @@
1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/main.c" 1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/main.c"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/pktlib_test.c"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c" 3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/linker.cmd" 4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/linker.cmd"
4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c" 5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c"
5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c" 6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c"
6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/testconfig.cfg" 7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/testconfig.cfg"
7-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c" 8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c"
8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c" 9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c"
9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/tci6614_resource_table.c" 10-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/tci6614_resource_table.c"
10-ccs.setCompilerOptions "-DDEVICE_TMDXEVM6614LXE -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib -I${PDK_INSTALL_PATH}/ti/drv/rm" 11-ccs.setCompilerOptions "-DDEVICE_TMDXEVM6614LXE -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib/test -I${PDK_INSTALL_PATH}/ti/drv/rm"
11-rtsc.enableRtsc 12-rtsc.enableRtsc
diff --git a/ti/runtime/pktlib/test/pktlib_tmdxscbp6618x_UnittestProject.txt b/ti/runtime/pktlib/test/k1/pktlib_tmdxscbp6618x_UnittestProject.txt
index 0f0dc78..82ba7a7 100644
--- a/ti/runtime/pktlib/test/pktlib_tmdxscbp6618x_UnittestProject.txt
+++ b/ti/runtime/pktlib/test/k1/pktlib_tmdxscbp6618x_UnittestProject.txt
@@ -1,10 +1,11 @@
1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/main.c" 1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/main.c"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/pktlib_test.c"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c" 3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/linker.cmd" 4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/linker.cmd"
4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c" 5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c"
5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c" 6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c"
6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/testconfig.cfg" 7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k1/testconfig.cfg"
7-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c" 8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/cppi_device.c"
8-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c" 9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/qmss_device.c"
9-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/default_resource_table.c" 10-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/rm/resource_table/default_resource_table.c"
10-ccs.setCompilerOptions "-DDEVICE_TMDXSCBP6618X -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib" -rtsc.enableRtsc 11-ccs.setCompilerOptions "-DDEVICE_TMDXSCBP6618X -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib" -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib/test -rtsc.enableRtsc
diff --git a/ti/runtime/pktlib/test/testconfig.cfg b/ti/runtime/pktlib/test/k1/testconfig.cfg
index ae889ab..ae889ab 100644
--- a/ti/runtime/pktlib/test/testconfig.cfg
+++ b/ti/runtime/pktlib/test/k1/testconfig.cfg
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/grl.c b/ti/runtime/pktlib/test/k2h/c66/bios/grl.c
new file mode 100644
index 0000000..0d6bd63
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/grl.c
@@ -0,0 +1,2162 @@
1//#pragma DATA_SECTION (rmGrl, ".appSharedMemory");
2const char rmGrl[] = {
30xd0,
40x0d,
50xfe,
60xed,
70x00,
80x00,
90x08,
100x6f,
110x00,
120x00,
130x00,
140x38,
150x00,
160x00,
170x08,
180x60,
190x00,
200x00,
210x00,
220x28,
230x00,
240x00,
250x00,
260x11,
270x00,
280x00,
290x00,
300x10,
310x00,
320x00,
330x00,
340x00,
350x00,
360x00,
370x00,
380x0f,
390x00,
400x00,
410x08,
420x28,
430x00,
440x00,
450x00,
460x00,
470x00,
480x00,
490x00,
500x00,
510x00,
520x00,
530x00,
540x00,
550x00,
560x00,
570x00,
580x00,
590x00,
600x00,
610x00,
620x01,
630x00,
640x00,
650x00,
660x00,
670x00,
680x00,
690x00,
700x01,
710x71,
720x6d,
730x73,
740x73,
750x00,
760x00,
770x00,
780x00,
790x00,
800x00,
810x00,
820x01,
830x6c,
840x69,
850x6e,
860x6b,
870x72,
880x61,
890x6d,
900x2d,
910x63,
920x6f,
930x6e,
940x74,
950x72,
960x6f,
970x6c,
980x00,
990x00,
1000x00,
1010x00,
1020x03,
1030x00,
1040x00,
1050x00,
1060x08,
1070x00,
1080x00,
1090x00,
1100x00,
1110x00,
1120x00,
1130x00,
1140x00,
1150x00,
1160x00,
1170x00,
1180x01,
1190x00,
1200x00,
1210x00,
1220x02,
1230x00,
1240x00,
1250x00,
1260x01,
1270x6c,
1280x69,
1290x6e,
1300x6b,
1310x72,
1320x61,
1330x6d,
1340x00,
1350x00,
1360x00,
1370x00,
1380x03,
1390x00,
1400x00,
1410x00,
1420x08,
1430x00,
1440x00,
1450x00,
1460x00,
1470x00,
1480x00,
1490x00,
1500x00,
1510xff,
1520xff,
1530xff,
1540xff,
1550x00,
1560x00,
1570x00,
1580x02,
1590x00,
1600x00,
1610x00,
1620x01,
1630x6d,
1640x65,
1650x6d,
1660x6f,
1670x72,
1680x79,
1690x2d,
1700x72,
1710x65,
1720x67,
1730x69,
1740x6f,
1750x6e,
1760x73,
1770x00,
1780x00,
1790x00,
1800x00,
1810x00,
1820x03,
1830x00,
1840x00,
1850x00,
1860x08,
1870x00,
1880x00,
1890x00,
1900x00,
1910x00,
1920x00,
1930x00,
1940x00,
1950x00,
1960x00,
1970x00,
1980x40,
1990x00,
2000x00,
2010x00,
2020x02,
2030x00,
2040x00,
2050x00,
2060x01,
2070x66,
2080x69,
2090x72,
2100x6d,
2110x77,
2120x61,
2130x72,
2140x65,
2150x2d,
2160x70,
2170x64,
2180x73,
2190x70,
2200x00,
2210x00,
2220x00,
2230x00,
2240x00,
2250x00,
2260x03,
2270x00,
2280x00,
2290x00,
2300x08,
2310x00,
2320x00,
2330x00,
2340x00,
2350x00,
2360x00,
2370x00,
2380x00,
2390x00,
2400x00,
2410x00,
2420x08,
2430x00,
2440x00,
2450x00,
2460x02,
2470x00,
2480x00,
2490x00,
2500x01,
2510x71,
2520x75,
2530x65,
2540x75,
2550x65,
2560x73,
2570x00,
2580x00,
2590x00,
2600x00,
2610x00,
2620x03,
2630x00,
2640x00,
2650x00,
2660x08,
2670x00,
2680x00,
2690x00,
2700x00,
2710x00,
2720x00,
2730x00,
2740x00,
2750x00,
2760x00,
2770x40,
2780x00,
2790x00,
2800x00,
2810x00,
2820x02,
2830x00,
2840x00,
2850x00,
2860x01,
2870x61,
2880x63,
2890x63,
2900x75,
2910x6d,
2920x75,
2930x6c,
2940x61,
2950x74,
2960x6f,
2970x72,
2980x2d,
2990x63,
3000x68,
3010x00,
3020x00,
3030x00,
3040x00,
3050x00,
3060x03,
3070x00,
3080x00,
3090x00,
3100x08,
3110x00,
3120x00,
3130x00,
3140x00,
3150x00,
3160x00,
3170x00,
3180x00,
3190x00,
3200x00,
3210x00,
3220x30,
3230x00,
3240x00,
3250x00,
3260x02,
3270x00,
3280x00,
3290x00,
3300x01,
3310x71,
3320x6f,
3330x73,
3340x2d,
3350x74,
3360x69,
3370x6d,
3380x65,
3390x72,
3400x00,
3410x00,
3420x00,
3430x00,
3440x00,
3450x00,
3460x03,
3470x00,
3480x00,
3490x00,
3500x08,
3510x00,
3520x00,
3530x00,
3540x00,
3550x00,
3560x00,
3570x00,
3580x00,
3590x00,
3600x00,
3610x00,
3620x01,
3630x00,
3640x00,
3650x00,
3660x02,
3670x00,
3680x00,
3690x00,
3700x01,
3710x71,
3720x6f,
3730x73,
3740x2d,
3750x63,
3760x6c,
3770x75,
3780x73,
3790x74,
3800x65,
3810x72,
3820x00,
3830x00,
3840x00,
3850x00,
3860x03,
3870x00,
3880x00,
3890x00,
3900x08,
3910x00,
3920x00,
3930x00,
3940x00,
3950x00,
3960x00,
3970x00,
3980x00,
3990x00,
4000x00,
4010x00,
4020x08,
4030x00,
4040x00,
4050x00,
4060x02,
4070x00,
4080x00,
4090x00,
4100x01,
4110x71,
4120x6f,
4130x73,
4140x2d,
4150x71,
4160x75,
4170x65,
4180x75,
4190x65,
4200x00,
4210x00,
4220x00,
4230x00,
4240x00,
4250x00,
4260x03,
4270x00,
4280x00,
4290x00,
4300x08,
4310x00,
4320x00,
4330x00,
4340x00,
4350x00,
4360x00,
4370x00,
4380x00,
4390x00,
4400x00,
4410x00,
4420x40,
4430x00,
4440x00,
4450x00,
4460x02,
4470x00,
4480x00,
4490x00,
4500x02,
4510x00,
4520x00,
4530x00,
4540x01,
4550x63,
4560x70,
4570x70,
4580x69,
4590x00,
4600x00,
4610x00,
4620x00,
4630x00,
4640x00,
4650x00,
4660x01,
4670x73,
4680x72,
4690x69,
4700x6f,
4710x2d,
4720x72,
4730x78,
4740x2d,
4750x63,
4760x68,
4770x00,
4780x00,
4790x00,
4800x00,
4810x00,
4820x03,
4830x00,
4840x00,
4850x00,
4860x08,
4870x00,
4880x00,
4890x00,
4900x00,
4910x00,
4920x00,
4930x00,
4940x00,
4950x00,
4960x00,
4970x00,
4980x10,
4990x00,
5000x00,
5010x00,
5020x02,
5030x00,
5040x00,
5050x00,
5060x01,
5070x73,
5080x72,
5090x69,
5100x6f,
5110x2d,
5120x74,
5130x78,
5140x2d,
5150x63,
5160x68,
5170x00,
5180x00,
5190x00,
5200x00,
5210x00,
5220x03,
5230x00,
5240x00,
5250x00,
5260x08,
5270x00,
5280x00,
5290x00,
5300x00,
5310x00,
5320x00,
5330x00,
5340x00,
5350x00,
5360x00,
5370x00,
5380x10,
5390x00,
5400x00,
5410x00,
5420x02,
5430x00,
5440x00,
5450x00,
5460x01,
5470x73,
5480x72,
5490x69,
5500x6f,
5510x2d,
5520x72,
5530x78,
5540x2d,
5550x66,
5560x6c,
5570x6f,
5580x77,
5590x2d,
5600x69,
5610x64,
5620x00,
5630x00,
5640x00,
5650x00,
5660x03,
5670x00,
5680x00,
5690x00,
5700x08,
5710x00,
5720x00,
5730x00,
5740x00,
5750x00,
5760x00,
5770x00,
5780x00,
5790x00,
5800x00,
5810x00,
5820x14,
5830x00,
5840x00,
5850x00,
5860x02,
5870x00,
5880x00,
5890x00,
5900x01,
5910x61,
5920x69,
5930x66,
5940x2d,
5950x72,
5960x78,
5970x2d,
5980x63,
5990x68,
6000x00,
6010x00,
6020x00,
6030x00,
6040x00,
6050x00,
6060x03,
6070x00,
6080x00,
6090x00,
6100x08,
6110x00,
6120x00,
6130x00,
6140x00,
6150x00,
6160x00,
6170x00,
6180x00,
6190x00,
6200x00,
6210x00,
6220x81,
6230x00,
6240x00,
6250x00,
6260x02,
6270x00,
6280x00,
6290x00,
6300x01,
6310x61,
6320x69,
6330x66,
6340x2d,
6350x74,
6360x78,
6370x2d,
6380x63,
6390x68,
6400x00,
6410x00,
6420x00,
6430x00,
6440x00,
6450x00,
6460x03,
6470x00,
6480x00,
6490x00,
6500x08,
6510x00,
6520x00,
6530x00,
6540x00,
6550x00,
6560x00,
6570x00,
6580x00,
6590x00,
6600x00,
6610x00,
6620x81,
6630x00,
6640x00,
6650x00,
6660x02,
6670x00,
6680x00,
6690x00,
6700x01,
6710x61,
6720x69,
6730x66,
6740x2d,
6750x72,
6760x78,
6770x2d,
6780x66,
6790x6c,
6800x6f,
6810x77,
6820x2d,
6830x69,
6840x64,
6850x00,
6860x00,
6870x00,
6880x00,
6890x00,
6900x03,
6910x00,
6920x00,
6930x00,
6940x08,
6950x00,
6960x00,
6970x00,
6980x00,
6990x00,
7000x00,
7010x00,
7020x00,
7030x00,
7040x00,
7050x00,
7060x81,
7070x00,
7080x00,
7090x00,
7100x02,
7110x00,
7120x00,
7130x00,
7140x01,
7150x66,
7160x66,
7170x74,
7180x63,
7190x2d,
7200x61,
7210x2d,
7220x72,
7230x78,
7240x2d,
7250x63,
7260x68,
7270x00,
7280x00,
7290x00,
7300x00,
7310x00,
7320x00,
7330x00,
7340x03,
7350x00,
7360x00,
7370x00,
7380x08,
7390x00,
7400x00,
7410x00,
7420x00,
7430x00,
7440x00,
7450x00,
7460x00,
7470x00,
7480x00,
7490x00,
7500x04,
7510x00,
7520x00,
7530x00,
7540x02,
7550x00,
7560x00,
7570x00,
7580x01,
7590x66,
7600x66,
7610x74,
7620x63,
7630x2d,
7640x61,
7650x2d,
7660x74,
7670x78,
7680x2d,
7690x63,
7700x68,
7710x00,
7720x00,
7730x00,
7740x00,
7750x00,
7760x00,
7770x00,
7780x03,
7790x00,
7800x00,
7810x00,
7820x08,
7830x00,
7840x00,
7850x00,
7860x00,
7870x00,
7880x00,
7890x00,
7900x00,
7910x00,
7920x00,
7930x00,
7940x04,
7950x00,
7960x00,
7970x00,
7980x02,
7990x00,
8000x00,
8010x00,
8020x01,
8030x66,
8040x66,
8050x74,
8060x63,
8070x2d,
8080x61,
8090x2d,
8100x72,
8110x78,
8120x2d,
8130x66,
8140x6c,
8150x6f,
8160x77,
8170x2d,
8180x69,
8190x64,
8200x00,
8210x00,
8220x00,
8230x00,
8240x00,
8250x00,
8260x03,
8270x00,
8280x00,
8290x00,
8300x08,
8310x00,
8320x00,
8330x00,
8340x00,
8350x00,
8360x00,
8370x00,
8380x00,
8390x00,
8400x00,
8410x00,
8420x08,
8430x00,
8440x00,
8450x00,
8460x02,
8470x00,
8480x00,
8490x00,
8500x01,
8510x66,
8520x66,
8530x74,
8540x63,
8550x2d,
8560x62,
8570x2d,
8580x72,
8590x78,
8600x2d,
8610x63,
8620x68,
8630x00,
8640x00,
8650x00,
8660x00,
8670x00,
8680x00,
8690x00,
8700x03,
8710x00,
8720x00,
8730x00,
8740x08,
8750x00,
8760x00,
8770x00,
8780x00,
8790x00,
8800x00,
8810x00,
8820x00,
8830x00,
8840x00,
8850x00,
8860x04,
8870x00,
8880x00,
8890x00,
8900x02,
8910x00,
8920x00,
8930x00,
8940x01,
8950x66,
8960x66,
8970x74,
8980x63,
8990x2d,
9000x62,
9010x2d,
9020x74,
9030x78,
9040x2d,
9050x63,
9060x68,
9070x00,
9080x00,
9090x00,
9100x00,
9110x00,
9120x00,
9130x00,
9140x03,
9150x00,
9160x00,
9170x00,
9180x08,
9190x00,
9200x00,
9210x00,
9220x00,
9230x00,
9240x00,
9250x00,
9260x00,
9270x00,
9280x00,
9290x00,
9300x04,
9310x00,
9320x00,
9330x00,
9340x02,
9350x00,
9360x00,
9370x00,
9380x01,
9390x66,
9400x66,
9410x74,
9420x63,
9430x2d,
9440x62,
9450x2d,
9460x72,
9470x78,
9480x2d,
9490x66,
9500x6c,
9510x6f,
9520x77,
9530x2d,
9540x69,
9550x64,
9560x00,
9570x00,
9580x00,
9590x00,
9600x00,
9610x00,
9620x03,
9630x00,
9640x00,
9650x00,
9660x08,
9670x00,
9680x00,
9690x00,
9700x00,
9710x00,
9720x00,
9730x00,
9740x00,
9750x00,
9760x00,
9770x00,
9780x08,
9790x00,
9800x00,
9810x00,
9820x02,
9830x00,
9840x00,
9850x00,
9860x01,
9870x66,
9880x66,
9890x74,
9900x63,
9910x2d,
9920x63,
9930x2d,
9940x72,
9950x78,
9960x2d,
9970x63,
9980x68,
9990x00,
10000x00,
10010x00,
10020x00,
10030x00,
10040x00,
10050x00,
10060x03,
10070x00,
10080x00,
10090x00,
10100x08,
10110x00,
10120x00,
10130x00,
10140x00,
10150x00,
10160x00,
10170x00,
10180x00,
10190x00,
10200x00,
10210x00,
10220x04,
10230x00,
10240x00,
10250x00,
10260x02,
10270x00,
10280x00,
10290x00,
10300x01,
10310x66,
10320x66,
10330x74,
10340x63,
10350x2d,
10360x63,
10370x2d,
10380x74,
10390x78,
10400x2d,
10410x63,
10420x68,
10430x00,
10440x00,
10450x00,
10460x00,
10470x00,
10480x00,
10490x00,
10500x03,
10510x00,
10520x00,
10530x00,
10540x08,
10550x00,
10560x00,
10570x00,
10580x00,
10590x00,
10600x00,
10610x00,
10620x00,
10630x00,
10640x00,
10650x00,
10660x04,
10670x00,
10680x00,
10690x00,
10700x02,
10710x00,
10720x00,
10730x00,
10740x01,
10750x66,
10760x66,
10770x74,
10780x63,
10790x2d,
10800x63,
10810x2d,
10820x72,
10830x78,
10840x2d,
10850x66,
10860x6c,
10870x6f,
10880x77,
10890x2d,
10900x69,
10910x64,
10920x00,
10930x00,
10940x00,
10950x00,
10960x00,
10970x00,
10980x03,
10990x00,
11000x00,
11010x00,
11020x08,
11030x00,
11040x00,
11050x00,
11060x00,
11070x00,
11080x00,
11090x00,
11100x00,
11110x00,
11120x00,
11130x00,
11140x08,
11150x00,
11160x00,
11170x00,
11180x02,
11190x00,
11200x00,
11210x00,
11220x01,
11230x66,
11240x66,
11250x74,
11260x63,
11270x2d,
11280x64,
11290x2d,
11300x72,
11310x78,
11320x2d,
11330x63,
11340x68,
11350x00,
11360x00,
11370x00,
11380x00,
11390x00,
11400x00,
11410x00,
11420x03,
11430x00,
11440x00,
11450x00,
11460x08,
11470x00,
11480x00,
11490x00,
11500x00,
11510x00,
11520x00,
11530x00,
11540x00,
11550x00,
11560x00,
11570x00,
11580x04,
11590x00,
11600x00,
11610x00,
11620x02,
11630x00,
11640x00,
11650x00,
11660x01,
11670x66,
11680x66,
11690x74,
11700x63,
11710x2d,
11720x64,
11730x2d,
11740x74,
11750x78,
11760x2d,
11770x63,
11780x68,
11790x00,
11800x00,
11810x00,
11820x00,
11830x00,
11840x00,
11850x00,
11860x03,
11870x00,
11880x00,
11890x00,
11900x08,
11910x00,
11920x00,
11930x00,
11940x00,
11950x00,
11960x00,
11970x00,
11980x00,
11990x00,
12000x00,
12010x00,
12020x04,
12030x00,
12040x00,
12050x00,
12060x02,
12070x00,
12080x00,
12090x00,
12100x01,
12110x66,
12120x66,
12130x74,
12140x63,
12150x2d,
12160x64,
12170x2d,
12180x72,
12190x78,
12200x2d,
12210x66,
12220x6c,
12230x6f,
12240x77,
12250x2d,
12260x69,
12270x64,
12280x00,
12290x00,
12300x00,
12310x00,
12320x00,
12330x00,
12340x03,
12350x00,
12360x00,
12370x00,
12380x08,
12390x00,
12400x00,
12410x00,
12420x00,
12430x00,
12440x00,
12450x00,
12460x00,
12470x00,
12480x00,
12490x00,
12500x08,
12510x00,
12520x00,
12530x00,
12540x02,
12550x00,
12560x00,
12570x00,
12580x01,
12590x66,
12600x66,
12610x74,
12620x63,
12630x2d,
12640x65,
12650x2d,
12660x72,
12670x78,
12680x2d,
12690x63,
12700x68,
12710x00,
12720x00,
12730x00,
12740x00,
12750x00,
12760x00,
12770x00,
12780x03,
12790x00,
12800x00,
12810x00,
12820x08,
12830x00,
12840x00,
12850x00,
12860x00,
12870x00,
12880x00,
12890x00,
12900x00,
12910x00,
12920x00,
12930x00,
12940x04,
12950x00,
12960x00,
12970x00,
12980x02,
12990x00,
13000x00,
13010x00,
13020x01,
13030x66,
13040x66,
13050x74,
13060x63,
13070x2d,
13080x65,
13090x2d,
13100x74,
13110x78,
13120x2d,
13130x63,
13140x68,
13150x00,
13160x00,
13170x00,
13180x00,
13190x00,
13200x00,
13210x00,
13220x03,
13230x00,
13240x00,
13250x00,
13260x08,
13270x00,
13280x00,
13290x00,
13300x00,
13310x00,
13320x00,
13330x00,
13340x00,
13350x00,
13360x00,
13370x00,
13380x04,
13390x00,
13400x00,
13410x00,
13420x02,
13430x00,
13440x00,
13450x00,
13460x01,
13470x66,
13480x66,
13490x74,
13500x63,
13510x2d,
13520x65,
13530x2d,
13540x72,
13550x78,
13560x2d,
13570x66,
13580x6c,
13590x6f,
13600x77,
13610x2d,
13620x69,
13630x64,
13640x00,
13650x00,
13660x00,
13670x00,
13680x00,
13690x00,
13700x03,
13710x00,
13720x00,
13730x00,
13740x08,
13750x00,
13760x00,
13770x00,
13780x00,
13790x00,
13800x00,
13810x00,
13820x00,
13830x00,
13840x00,
13850x00,
13860x08,
13870x00,
13880x00,
13890x00,
13900x02,
13910x00,
13920x00,
13930x00,
13940x01,
13950x66,
13960x66,
13970x74,
13980x63,
13990x2d,
14000x66,
14010x2d,
14020x72,
14030x78,
14040x2d,
14050x63,
14060x68,
14070x00,
14080x00,
14090x00,
14100x00,
14110x00,
14120x00,
14130x00,
14140x03,
14150x00,
14160x00,
14170x00,
14180x08,
14190x00,
14200x00,
14210x00,
14220x00,
14230x00,
14240x00,
14250x00,
14260x00,
14270x00,
14280x00,
14290x00,
14300x04,
14310x00,
14320x00,
14330x00,
14340x02,
14350x00,
14360x00,
14370x00,
14380x01,
14390x66,
14400x66,
14410x74,
14420x63,
14430x2d,
14440x66,
14450x2d,
14460x74,
14470x78,
14480x2d,
14490x63,
14500x68,
14510x00,
14520x00,
14530x00,
14540x00,
14550x00,
14560x00,
14570x00,
14580x03,
14590x00,
14600x00,
14610x00,
14620x08,
14630x00,
14640x00,
14650x00,
14660x00,
14670x00,
14680x00,
14690x00,
14700x00,
14710x00,
14720x00,
14730x00,
14740x04,
14750x00,
14760x00,
14770x00,
14780x02,
14790x00,
14800x00,
14810x00,
14820x01,
14830x66,
14840x66,
14850x74,
14860x63,
14870x2d,
14880x66,
14890x2d,
14900x72,
14910x78,
14920x2d,
14930x66,
14940x6c,
14950x6f,
14960x77,
14970x2d,
14980x69,
14990x64,
15000x00,
15010x00,
15020x00,
15030x00,
15040x00,
15050x00,
15060x03,
15070x00,
15080x00,
15090x00,
15100x08,
15110x00,
15120x00,
15130x00,
15140x00,
15150x00,
15160x00,
15170x00,
15180x00,
15190x00,
15200x00,
15210x00,
15220x08,
15230x00,
15240x00,
15250x00,
15260x02,
15270x00,
15280x00,
15290x00,
15300x01,
15310x70,
15320x61,
15330x73,
15340x73,
15350x2d,
15360x72,
15370x78,
15380x2d,
15390x63,
15400x68,
15410x00,
15420x00,
15430x00,
15440x00,
15450x00,
15460x03,
15470x00,
15480x00,
15490x00,
15500x08,
15510x00,
15520x00,
15530x00,
15540x00,
15550x00,
15560x00,
15570x00,
15580x00,
15590x00,
15600x00,
15610x00,
15620x18,
15630x00,
15640x00,
15650x00,
15660x02,
15670x00,
15680x00,
15690x00,
15700x01,
15710x70,
15720x61,
15730x73,
15740x73,
15750x2d,
15760x74,
15770x78,
15780x2d,
15790x63,
15800x68,
15810x00,
15820x00,
15830x00,
15840x00,
15850x00,
15860x03,
15870x00,
15880x00,
15890x00,
15900x08,
15910x00,
15920x00,
15930x00,
15940x00,
15950x00,
15960x00,
15970x00,
15980x00,
15990x00,
16000x00,
16010x00,
16020x09,
16030x00,
16040x00,
16050x00,
16060x02,
16070x00,
16080x00,
16090x00,
16100x01,
16110x70,
16120x61,
16130x73,
16140x73,
16150x2d,
16160x72,
16170x78,
16180x2d,
16190x66,
16200x6c,
16210x6f,
16220x77,
16230x2d,
16240x69,
16250x64,
16260x00,
16270x00,
16280x00,
16290x00,
16300x03,
16310x00,
16320x00,
16330x00,
16340x08,
16350x00,
16360x00,
16370x00,
16380x00,
16390x00,
16400x00,
16410x00,
16420x00,
16430x00,
16440x00,
16450x00,
16460x20,
16470x00,
16480x00,
16490x00,
16500x02,
16510x00,
16520x00,
16530x00,
16540x01,
16550x71,
16560x6d,
16570x73,
16580x73,
16590x2d,
16600x71,
16610x6d,
16620x31,
16630x2d,
16640x72,
16650x78,
16660x2d,
16670x63,
16680x68,
16690x00,
16700x00,
16710x00,
16720x00,
16730x00,
16740x03,
16750x00,
16760x00,
16770x00,
16780x08,
16790x00,
16800x00,
16810x00,
16820x00,
16830x00,
16840x00,
16850x00,
16860x00,
16870x00,
16880x00,
16890x00,
16900x20,
16910x00,
16920x00,
16930x00,
16940x02,
16950x00,
16960x00,
16970x00,
16980x01,
16990x71,
17000x6d,
17010x73,
17020x73,
17030x2d,
17040x71,
17050x6d,
17060x31,
17070x2d,
17080x74,
17090x78,
17100x2d,
17110x63,
17120x68,
17130x00,
17140x00,
17150x00,
17160x00,
17170x00,
17180x03,
17190x00,
17200x00,
17210x00,
17220x08,
17230x00,
17240x00,
17250x00,
17260x00,
17270x00,
17280x00,
17290x00,
17300x00,
17310x00,
17320x00,
17330x00,
17340x20,
17350x00,
17360x00,
17370x00,
17380x02,
17390x00,
17400x00,
17410x00,
17420x01,
17430x71,
17440x6d,
17450x73,
17460x73,
17470x2d,
17480x71,
17490x6d,
17500x31,
17510x2d,
17520x72,
17530x78,
17540x2d,
17550x66,
17560x6c,
17570x6f,
17580x77,
17590x2d,
17600x69,
17610x64,
17620x00,
17630x00,
17640x00,
17650x00,
17660x03,
17670x00,
17680x00,
17690x00,
17700x08,
17710x00,
17720x00,
17730x00,
17740x00,
17750x00,
17760x00,
17770x00,
17780x00,
17790x00,
17800x00,
17810x00,
17820x40,
17830x00,
17840x00,
17850x00,
17860x02,
17870x00,
17880x00,
17890x00,
17900x01,
17910x71,
17920x6d,
17930x73,
17940x73,
17950x2d,
17960x71,
17970x6d,
17980x32,
17990x2d,
18000x72,
18010x78,
18020x2d,
18030x63,
18040x68,
18050x00,
18060x00,
18070x00,
18080x00,
18090x00,
18100x03,
18110x00,
18120x00,
18130x00,
18140x08,
18150x00,
18160x00,
18170x00,
18180x00,
18190x00,
18200x00,
18210x00,
18220x00,
18230x00,
18240x00,
18250x00,
18260x20,
18270x00,
18280x00,
18290x00,
18300x02,
18310x00,
18320x00,
18330x00,
18340x01,
18350x71,
18360x6d,
18370x73,
18380x73,
18390x2d,
18400x71,
18410x6d,
18420x32,
18430x2d,
18440x74,
18450x78,
18460x2d,
18470x63,
18480x68,
18490x00,
18500x00,
18510x00,
18520x00,
18530x00,
18540x03,
18550x00,
18560x00,
18570x00,
18580x08,
18590x00,
18600x00,
18610x00,
18620x00,
18630x00,
18640x00,
18650x00,
18660x00,
18670x00,
18680x00,
18690x00,
18700x20,
18710x00,
18720x00,
18730x00,
18740x02,
18750x00,
18760x00,
18770x00,
18780x01,
18790x71,
18800x6d,
18810x73,
18820x73,
18830x2d,
18840x71,
18850x6d,
18860x32,
18870x2d,
18880x72,
18890x78,
18900x2d,
18910x66,
18920x6c,
18930x6f,
18940x77,
18950x2d,
18960x69,
18970x64,
18980x00,
18990x00,
19000x00,
19010x00,
19020x03,
19030x00,
19040x00,
19050x00,
19060x08,
19070x00,
19080x00,
19090x00,
19100x00,
19110x00,
19120x00,
19130x00,
19140x00,
19150x00,
19160x00,
19170x00,
19180x40,
19190x00,
19200x00,
19210x00,
19220x02,
19230x00,
19240x00,
19250x00,
19260x01,
19270x62,
19280x63,
19290x70,
19300x2d,
19310x72,
19320x78,
19330x2d,
19340x63,
19350x68,
19360x00,
19370x00,
19380x00,
19390x00,
19400x00,
19410x00,
19420x03,
19430x00,
19440x00,
19450x00,
19460x08,
19470x00,
19480x00,
19490x00,
19500x00,
19510x00,
19520x00,
19530x00,
19540x00,
19550x00,
19560x00,
19570x00,
19580x08,
19590x00,
19600x00,
19610x00,
19620x02,
19630x00,
19640x00,
19650x00,
19660x01,
19670x62,
19680x63,
19690x70,
19700x2d,
19710x74,
19720x78,
19730x2d,
19740x63,
19750x68,
19760x00,
19770x00,
19780x00,
19790x00,
19800x00,
19810x00,
19820x03,
19830x00,
19840x00,
19850x00,
19860x08,
19870x00,
19880x00,
19890x00,
19900x00,
19910x00,
19920x00,
19930x00,
19940x00,
19950x00,
19960x00,
19970x00,
19980x08,
19990x00,
20000x00,
20010x00,
20020x02,
20030x00,
20040x00,
20050x00,
20060x01,
20070x62,
20080x63,
20090x70,
20100x2d,
20110x72,
20120x78,
20130x2d,
20140x66,
20150x6c,
20160x6f,
20170x77,
20180x2d,
20190x69,
20200x64,
20210x00,
20220x00,
20230x00,
20240x00,
20250x00,
20260x03,
20270x00,
20280x00,
20290x00,
20300x08,
20310x00,
20320x00,
20330x00,
20340x00,
20350x00,
20360x00,
20370x00,
20380x00,
20390x00,
20400x00,
20410x00,
20420x40,
20430x00,
20440x00,
20450x00,
20460x02,
20470x00,
20480x00,
20490x00,
20500x02,
20510x00,
20520x00,
20530x00,
20540x01,
20550x70,
20560x61,
20570x00,
20580x00,
20590x00,
20600x00,
20610x00,
20620x01,
20630x70,
20640x61,
20650x2d,
20660x6c,
20670x75,
20680x74,
20690x00,
20700x00,
20710x00,
20720x00,
20730x00,
20740x03,
20750x00,
20760x00,
20770x00,
20780x08,
20790x00,
20800x00,
20810x00,
20820x00,
20830x00,
20840x00,
20850x00,
20860x00,
20870x00,
20880x00,
20890x00,
20900x05,
20910x00,
20920x00,
20930x00,
20940x02,
20950x00,
20960x00,
20970x00,
20980x01,
20990x70,
21000x61,
21010x2d,
21020x66,
21030x69,
21040x72,
21050x6d,
21060x77,
21070x61,
21080x72,
21090x65,
21100x00,
21110x00,
21120x00,
21130x00,
21140x03,
21150x00,
21160x00,
21170x00,
21180x08,
21190x00,
21200x00,
21210x00,
21220x00,
21230x00,
21240x00,
21250x00,
21260x00,
21270x00,
21280x00,
21290x00,
21300x01,
21310x00,
21320x00,
21330x00,
21340x02,
21350x00,
21360x00,
21370x00,
21380x02,
21390x00,
21400x00,
21410x00,
21420x02,
21430x00,
21440x00,
21450x00,
21460x09,
21470x72,
21480x65,
21490x73,
21500x6f,
21510x75,
21520x72,
21530x63,
21540x65,
21550x2d,
21560x72,
21570x61,
21580x6e,
21590x67,
21600x65,
21610x00,
2162};
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/linker.cmd b/ti/runtime/pktlib/test/k2h/c66/bios/linker.cmd
new file mode 100644
index 0000000..06e9ba3
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/linker.cmd
@@ -0,0 +1,24 @@
1SECTIONS
2{
3 // Place all the Multicore Shared Libraries at Well Known Fixed Addresses.
4 GROUP(MC_SHARED_DATASTRUCTURES)
5 {
6 .cfgMemorySection: align=128 // Resource Manager Config Section
7 .cppi: align=128 // CPPI LLD Multicore Datastructures
8 .qmss: align=128 // QMSS LLD Multicore Datastructures
9 .pktLibSharedMemory: align=128 // Packet Library Multicore Datastructures
10 .appSharedMemory: align=128 // Application shared memory
11 } load=MSMCSRAM
12
13 // Place the Local Packet Library Heaps into L2 memory
14 GROUP(PKTLIB_LOCAL_HEAPS)
15 {
16 .pktLibLocalMemory:
17 } load=L2SRAM
18
19 // Place all the RM configuration data.
20 GROUP(MC_RM_CFG_DATA)
21 {
22 .rm: align=128 // RM
23 } load=MSMCSRAM
24}
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/main.c b/ti/runtime/pktlib/test/k2h/c66/bios/main.c
new file mode 100644
index 0000000..b8cc61e
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/main.c
@@ -0,0 +1,443 @@
1/**
2 * @file main.c
3 *
4 * @brief
5 * Test Code to test the packet library
6 *
7 * \par
8 * NOTE:
9 * (C) Copyright 2012-2013 Texas Instruments, Inc.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 *
18 * Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the
21 * distribution.
22 *
23 * Neither the name of Texas Instruments Incorporated nor the names of
24 * its contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 *
39 */
40#include <pktlib_test.h>
41
42/* CPPI/QMSS Include Files. */
43#include <ti/drv/cppi/cppi_drv.h>
44#include <ti/drv/cppi/cppi_desc.h>
45#include <ti/drv/qmss/qmss_drv.h>
46#include <ti/drv/qmss/qmss_firmware.h>
47
48
49/* IPC includes */
50#include <ti/ipc/GateMP.h>
51#include <ti/ipc/Ipc.h>
52#include <ti/ipc/ListMP.h>
53#include <ti/ipc/SharedRegion.h>
54
55#define PKTLIB_TEST_BYPASS_RM 1
56#ifndef PKTLIB_TEST_BYPASS_RM
57/* PDK Resource Manager Include Files. */
58#include <ti/drv/rm/rm.h>
59#include <ti/drv/rm/rm_services.h>
60
61extern const char rmPolicy[];
62extern const char rmGrl[];
63Char rmServerName[RM_NAME_MAX_CHARS] = "RM_Server";
64Char rmClientName[RM_NAME_MAX_CHARS] = "RM_Client";
65Rm_ServiceHandle *rmServerServiceHandle = NULL;
66#endif
67
68/**********************************************************************
69 ************************** Global Variables **************************
70 **********************************************************************/
71
72/* Memory allocated for the buffers is located in shared memory. */
73uint8_t memoryBuffer[NUM_HOST_DESC][MAX_DATA_SIZE];
74
75/* Memory allocated for the buffers is located in shared memory. */
76#pragma DATA_SECTION (sharedMemoryBuffer, ".appSharedMemory");
77uint8_t sharedMemoryBuffer[SHARED_NUM_HOST_DESC][SHARED_MAX_DATA_SIZE];
78
79/* Memory allocated for the descriptors. This is 16 bit aligned. */
80#pragma DATA_ALIGN (host_region, 16)
81uint8_t host_region[NUM_HOST_DESC * SIZE_HOST_DESC];
82
83/* QMSS device specific configuration */
84extern Qmss_GlobalConfigParams qmssGblCfgParams;
85
86/* CPPI device specific configuration */
87extern Cppi_GlobalConfigParams cppiGblCfgParams;
88
89
90/* Gobal Memory Heap created for the test. */
91Pktlib_HeapHandle myHeap;
92
93/**********************************************************************
94 ************************* Extern Definitions *************************
95 **********************************************************************/
96
97/* External Definition for testing shared heaps. */
98extern int32_t test_pktLibrarySharedHeaps(Pktlib_HeapHandle sharedHeapHandle);
99
100
101
102/**
103 * @b Description
104 * @n
105 * System Initialization Code. This is added here only for illustrative
106 * purposes and needs to be invoked once during initialization at
107 * system startup.
108 *
109 * @retval
110 * Success - 0
111 * @retval
112 * Error - <0
113 */
114static int32_t system_init (void)
115{
116 int32_t result;
117 Qmss_MemRegInfo memRegInfo;
118 Qmss_InitCfg qmssInitConfig;
119
120 /* Initialize the QMSS Configuration block. */
121 memset (&qmssInitConfig, 0, sizeof (Qmss_InitCfg));
122
123 /* Initialize the Host Region. */
124 memset ((void *)&host_region, 0, sizeof(host_region));
125
126 /* Set up the linking RAM. Use the internal Linking RAM.
127 * LLD will configure the internal linking RAM address and maximum internal linking RAM size if
128 * a value of zero is specified. Linking RAM1 is not used */
129 qmssInitConfig.linkingRAM0Base = 0;
130 qmssInitConfig.linkingRAM0Size = 0;
131 qmssInitConfig.linkingRAM1Base = 0;
132 qmssInitConfig.maxDescNum = 1024;
133
134#ifdef xdc_target__bigEndian
135 /* PDSP Configuration: Big Endian */
136 qmssInitConfig.pdspFirmware[0].pdspId = Qmss_PdspId_PDSP1;
137 qmssInitConfig.pdspFirmware[0].firmware = &acc48_be;
138 qmssInitConfig.pdspFirmware[0].size = sizeof (acc48_be);
139#else
140 /* PDSP Configuration: Little Endian */
141 qmssInitConfig.pdspFirmware[0].pdspId = Qmss_PdspId_PDSP1;
142 qmssInitConfig.pdspFirmware[0].firmware = &acc48_le;
143 qmssInitConfig.pdspFirmware[0].size = sizeof (acc48_le);
144#endif
145
146#ifndef PKTLIB_TEST_BYPASS_RM
147 /* Get the RM Handle and pass it. */
148 qmssGblCfgParams.qmRmServiceHandle = rmServerServiceHandle;
149#endif
150
151 /* Initialize Queue Manager Sub System */
152 result = Qmss_init (&qmssInitConfig, &qmssGblCfgParams);
153 if (result != QMSS_SOK)
154 {
155 printf ("Error initializing Queue Manager SubSystem error code : %d\n", result);
156 return -1;
157 }
158
159 /* Initialize the memory region configuration. */
160 memset ((void *)&memRegInfo, 0, sizeof(Qmss_MemRegInfo));
161
162 /* Memory Region 1 Configuration for single core heaps. */
163 memRegInfo.descBase = (uint32_t *)l2_global_address((uint32_t)host_region);
164 memRegInfo.descSize = SIZE_HOST_DESC;
165 memRegInfo.descNum = NUM_HOST_DESC;
166 memRegInfo.manageDescFlag = Qmss_ManageDesc_MANAGE_DESCRIPTOR;
167 memRegInfo.memRegion = Qmss_MemRegion_MEMORY_REGION1;
168
169 /* Set the start index correctly to account for the shared descriptors. */
170 memRegInfo.startIndex = 0;
171
172 /* Initialize and inset the memory region. */
173 result = Qmss_insertMemoryRegion (&memRegInfo);
174 if (result < QMSS_SOK)
175 {
176 printf ("Error inserting memory region: %d\n", result);
177 return -1;
178 }
179
180 /* Initialize CPPI CPDMA */
181 result = Cppi_init (&cppiGblCfgParams);
182 if (result != CPPI_SOK)
183 {
184 printf ("Error initializing Queue Manager SubSystem error code : %d\n", result);
185 return -1;
186 }
187
188 /* CPPI and Queue Manager are initialized. */
189 printf ("Debug: Queue Manager and CPPI are initialized.\n");
190 return 0;
191}
192
193/**
194 * @b Description
195 * @n
196 * Entry Point for the test code.
197 *
198 * @retval
199 * 0 - Success
200 * @retval
201 * <0 - Error
202 */
203
204int main (void)
205{
206 uint32_t coreNum;
207 Pktlib_HeapCfg heapCfg;
208 int32_t errCode;
209#ifndef PKTLIB_TEST_BYPASS_RM
210 Qmss_StartCfg qmssCfg;
211 Cppi_StartCfg cppiCfg;
212 int32_t result;
213 Rm_InitCfg rmInitCfg;
214 Rm_Handle rmServerHandle = NULL;
215 Rm_Handle rmClientHandle = NULL;
216 Rm_ServiceHandle *rmClientServiceHandle = NULL;
217
218 memset(&rmInitCfg,0,sizeof(Rm_InitCfg));
219#endif
220 /* Get the core Number. */
221 coreNum = CSL_chipReadReg (CSL_CHIP_DNUM);
222
223 /* Is this core the system initialization core? */
224 if (coreNum == SYSTEM_INIT_CORE)
225 {
226 /* Debug Message: */
227 System_printf ("****************************************\n");
228 System_printf ("****** Packet Library Unit Test ********\n");
229 System_printf ("****************************************\n");
230#ifndef PKTLIB_TEST_BYPASS_RM
231
232 /* Create the Server instance */
233 rmInitCfg.instName = &rmServerName[0];
234 rmInitCfg.instType = Rm_instType_SERVER;
235 rmInitCfg.instCfg.serverCfg.globalResourceList = (void *)(rmGrl);
236 rmInitCfg.instCfg.serverCfg.linuxDtb = NULL;
237 rmInitCfg.instCfg.serverCfg.globalPolicy = (void *)rmPolicy;
238 rmServerHandle = Rm_init(&rmInitCfg, &result);
239 System_printf("Core %d: RM Server instance created. Result = %d\n", coreNum, result);
240 if (result != RM_OK)
241 {
242 System_printf ("Error: Initialization of the RM failed error code: %d\n", result);
243 return -1;
244 }
245 System_printf ("Debug: RM Initialization was successful\n");
246
247 rmServerServiceHandle = Rm_serviceOpenHandle(rmServerHandle, &result);
248#endif
249 /* YES. Only the system initialization core is responsible for system initialization
250 * and executing all the non shared heap tests. */
251 if (system_init() < 0)
252 return -1;
253
254 /* Synchronize all the cores. */
255 Ipc_start();
256
257 /* Start the QMSS Driver: For the TMDXEVM6614LXE we start the QMSS with
258 * the resource manager we had instantiated. For the other devices we
259 * simply start with no PDK resource manager. */
260 /* Display the Version Information for all the PDK Drivers */
261 System_printf ("Debug: %s\n", Rm_getVersionStr());
262 System_printf ("Debug: %s\n", Qmss_getVersionStr());
263 System_printf ("Debug: %s\n", Cppi_getVersionStr());
264#ifndef PKTLIB_TEST_BYPASS_RM
265 /* Initialize the configurations */
266 memset ((void *)&qmssCfg, 0, sizeof(Qmss_StartCfg));
267
268 /* Populate the QMSS configuration. */
269 qmssCfg.rmServiceHandle = rmServerServiceHandle;
270
271 /* Start the QMSS with the specified configuration. */
272 if (Qmss_startCfg(&qmssCfg) != QMSS_SOK)
273 return -1;
274
275 memset ((void *)&cppiCfg, 0, sizeof(Cppi_StartCfg));
276
277 /* Populate the CPPI configuration. */
278 cppiCfg.rmServiceHandle = rmServerServiceHandle;
279
280 /* Start the CPPI with the resource manager. */
281 Cppi_startCfg(&cppiCfg);
282#else
283 if (Qmss_start() != QMSS_SOK)
284 return -1;
285
286#endif
287 /* Initialize the Shared Heaps. */
288 Pktlib_sharedHeapInit();
289
290 /* Initialize the heap configuration */
291 memset((void *)&heapCfg, 0 , sizeof(Pktlib_HeapCfg));
292
293 /* Populate the heap configuration */
294 heapCfg.name = "My Test Heap";
295 heapCfg.memRegion = Qmss_MemRegion_MEMORY_REGION1;
296 heapCfg.sharedHeap = 0;
297 heapCfg.useStarvationQueue = 0;
298 heapCfg.dataBufferSize = MAX_DATA_SIZE;
299 heapCfg.numPkts = 16;
300 heapCfg.numZeroBufferPackets = 64;
301 heapCfg.dataBufferPktThreshold = 0;
302 heapCfg.zeroBufferPktThreshold = 0;
303 heapCfg.heapInterfaceTable.data_malloc = myMalloc;
304 heapCfg.heapInterfaceTable.data_free = myFree;
305
306 /* Create the Local Heap with specified configuration. */
307 myHeap = Pktlib_createHeap(&heapCfg, &errCode);
308 if (myHeap == NULL)
309 {
310 System_printf ("Error: Unable to create the heap error code %d\n", errCode);
311 return -1;
312 }
313
314 /* Test the packet Library API */
315 if (test_pktLibrary() < 0)
316 {
317 System_printf ("Error: PACKET Library Unit Testing FAILED\n");
318 return -1;
319 }
320
321 /* Benchmark the Packet Library with a use-case. */
322 if (benchmark_pktLibrary() < 0)
323 {
324 System_printf ("Error: BENCHMARKING Packet Library FAILED\n");
325 return -1;
326 }
327
328 {
329 Pktlib_HeapHandle sharedHeapHandle;
330 Pktlib_HeapStats startStats;
331 Pktlib_HeapStats endStats;
332
333 /* Initialize the heap configuration */
334 memset((void *)&heapCfg, 0 , sizeof(Pktlib_HeapCfg));
335
336 /* Populate the heap configuration */
337 heapCfg.name = "MySharedHeap";
338 heapCfg.memRegion = Qmss_MemRegion_MEMORY_REGION1;
339 heapCfg.sharedHeap = 1;
340 heapCfg.useStarvationQueue = 0;
341 heapCfg.dataBufferSize = SHARED_MAX_DATA_SIZE;
342 heapCfg.numPkts = 16;
343 heapCfg.numZeroBufferPackets = 16;
344 heapCfg.dataBufferPktThreshold = 0;
345 heapCfg.zeroBufferPktThreshold = 0;
346 heapCfg.heapInterfaceTable.data_malloc = mySharedMemoryMalloc;
347 heapCfg.heapInterfaceTable.data_free = mySharedMemoryFree;
348
349 /* Create Shared Heap with specified configuration. */
350 sharedHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
351 if (sharedHeapHandle == NULL)
352 {
353 System_printf ("Error: Unable to create the shared heap error code %d\n", errCode);
354 return -1;
355 }
356
357 /* Get the heap statistics: Before we run the tests. */
358 Pktlib_getHeapStats(sharedHeapHandle, &startStats);
359
360 /* Execute the Shared Heap Tests */
361 if (test_pktLibrarySharedHeaps(sharedHeapHandle) < 0)
362 {
363 System_printf ("Error: SHARED HEAP Packet Library FAILED\n");
364 return -1;
365 }
366
367 /* Get the heap statistics: At the end of the test */
368 Pktlib_getHeapStats(sharedHeapHandle, &endStats);
369
370 /* Check for memory leaks: */
371 if ((startStats.numPacketsinGarbage != endStats.numPacketsinGarbage) ||
372 (startStats.numFreeDataPackets != endStats.numFreeDataPackets) ||
373 (startStats.numZeroBufferPackets != endStats.numZeroBufferPackets))
374 return -1;
375 }
376
377 /* Debug Message: */
378 System_printf ("Debug: All tests passed\n");
379
380 /* Test passed. */
381 return 0;
382 }
383 else
384 {
385 /* Synchronize all the cores. */
386 Ipc_start();
387
388#ifndef PKTLIB_TEST_BYPASS_RM
389 /* Start the DSP/ARM Resource Manager for each core: */
390 /* Create the Server instance */
391 rmInitCfg.instName = &rmClientName[0];
392 rmInitCfg.instType = Rm_instType_CLIENT;
393 rmInitCfg.instCfg.clientCfg.staticPolicy = (void *)rmPolicy;
394 rmClientHandle = Rm_init(&rmInitCfg, &result);
395 System_printf("Core %d: RM Server instance created. Result = %d\n", coreNum, result);
396 if (result != RM_OK)
397 {
398 System_printf ("Error: Initialization of the RM failed error code: %d\n", result);
399 return -1;
400 }
401 System_printf ("Debug: RM Initialization was successful\n");
402
403 rmClientServiceHandle = Rm_serviceOpenHandle(rmClientHandle, &result);
404
405 /* On each core we need to start the QMSS before we can proceed with using it. */
406
407 /* Display the Version Information for all the PDK Drivers */
408 System_printf ("Debug: %s\n", Rm_getVersionStr());
409 System_printf ("Debug: %s\n", Qmss_getVersionStr());
410 System_printf ("Debug: %s\n", Cppi_getVersionStr());
411
412
413 /* Initialize the configurations */
414 memset ((void *)&qmssCfg, 0, sizeof(Qmss_StartCfg));
415
416 /* Populate the QMSS configuration. */
417 qmssCfg.rmServiceHandle = rmClientServiceHandle;
418
419 /* Start the QMSS with the specified configuration. */
420 if (Qmss_startCfg(&qmssCfg) != QMSS_SOK)
421 return -1;
422
423
424 /* Initialize the CPPI Configuration. */
425 memset ((void *)&cppiCfg, 0, sizeof(Cppi_StartCfg));
426
427 /* Populate the CPPI configuration. */
428 cppiCfg.rmServiceHandle = rmClientServiceHandle;
429
430 /* Start the CPPI with the resource manager. */
431 Cppi_startCfg(&cppiCfg);
432#else
433 if (Qmss_start() != QMSS_SOK)
434 return -1;
435#endif
436 /* Test the Packet Library Shared Heaps. */
437 if (test_pktLibrarySharedHeaps(NULL) < 0)
438 return -1;
439
440 /* Debug Message: */
441 System_printf ("Debug: Shared Heap Test Passed.\n");
442 }
443}
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/pktlib_DspOnlyk2hTestProject.txt b/ti/runtime/pktlib/test/k2h/c66/bios/pktlib_DspOnlyk2hTestProject.txt
new file mode 100644
index 0000000..ffe149a
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/pktlib_DspOnlyk2hTestProject.txt
@@ -0,0 +1,14 @@
1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/README.txt"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/main.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/grl.c"
4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp-only.c"
5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/pktlib_test.c"
6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c"
7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/linker.cmd"
8-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c"
9-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c"
10-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/testconfigk2h.cfg"
11-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/k2h/src/cppi_device.c"
12-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/k2h/src/qmss_device.c"
13-ccs.setCompilerOptions "-DDEVICE_K2H -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib/test -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib "
14-rtsc.enableRtsc
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp-only.c b/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp-only.c
new file mode 100644
index 0000000..de7aa9e
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp-only.c
@@ -0,0 +1,2771 @@
1//#pragma DATA_SECTION (rmPolicy, ".appSharedMemory");
2const char rmPolicy[] = {
30xd0,
40x0d,
50xfe,
60xed,
70x00,
80x00,
90x0a,
100xd0,
110x00,
120x00,
130x00,
140x38,
150x00,
160x00,
170x0a,
180xb4,
190x00,
200x00,
210x00,
220x28,
230x00,
240x00,
250x00,
260x11,
270x00,
280x00,
290x00,
300x10,
310x00,
320x00,
330x00,
340x00,
350x00,
360x00,
370x00,
380x1c,
390x00,
400x00,
410x0a,
420x7c,
430x00,
440x00,
450x00,
460x00,
470x00,
480x00,
490x00,
500x00,
510x00,
520x00,
530x00,
540x00,
550x00,
560x00,
570x00,
580x00,
590x00,
600x00,
610x00,
620x01,
630x00,
640x00,
650x00,
660x00,
670x00,
680x00,
690x00,
700x03,
710x00,
720x00,
730x00,
740x14,
750x00,
760x00,
770x00,
780x00,
790x52,
800x4d,
810x5f,
820x53,
830x65,
840x72,
850x76,
860x65,
870x72,
880x00,
890x52,
900x4d,
910x5f,
920x43,
930x6c,
940x69,
950x65,
960x6e,
970x74,
980x00,
990x00,
1000x00,
1010x00,
1020x01,
1030x71,
1040x6d,
1050x73,
1060x73,
1070x00,
1080x00,
1090x00,
1100x00,
1110x00,
1120x00,
1130x00,
1140x01,
1150x6c,
1160x69,
1170x6e,
1180x6b,
1190x72,
1200x61,
1210x6d,
1220x2d,
1230x63,
1240x6f,
1250x6e,
1260x74,
1270x72,
1280x6f,
1290x6c,
1300x00,
1310x00,
1320x00,
1330x00,
1340x03,
1350x00,
1360x00,
1370x00,
1380x11,
1390x00,
1400x00,
1410x00,
1420x10,
1430x00,
1440x00,
1450x00,
1460x00,
1470x00,
1480x00,
1490x00,
1500x01,
1510x69,
1520x75,
1530x20,
1540x3d,
1550x20,
1560x28,
1570x2a,
1580x29,
1590x00,
1600x00,
1610x00,
1620x00,
1630x00,
1640x00,
1650x00,
1660x02,
1670x00,
1680x00,
1690x00,
1700x01,
1710x6c,
1720x69,
1730x6e,
1740x6b,
1750x72,
1760x61,
1770x6d,
1780x00,
1790x00,
1800x00,
1810x00,
1820x03,
1830x00,
1840x00,
1850x00,
1860x11,
1870x00,
1880x00,
1890x00,
1900x10,
1910x00,
1920x00,
1930x00,
1940x00,
1950xff,
1960xff,
1970xff,
1980xff,
1990x69,
2000x75,
2010x20,
2020x3d,
2030x20,
2040x28,
2050x2a,
2060x29,
2070x00,
2080x00,
2090x00,
2100x00,
2110x00,
2120x00,
2130x00,
2140x02,
2150x00,
2160x00,
2170x00,
2180x01,
2190x6d,
2200x65,
2210x6d,
2220x6f,
2230x72,
2240x79,
2250x2d,
2260x72,
2270x65,
2280x67,
2290x69,
2300x6f,
2310x6e,
2320x73,
2330x00,
2340x00,
2350x00,
2360x00,
2370x00,
2380x03,
2390x00,
2400x00,
2410x00,
2420x11,
2430x00,
2440x00,
2450x00,
2460x10,
2470x00,
2480x00,
2490x00,
2500x00,
2510x00,
2520x00,
2530x00,
2540x40,
2550x69,
2560x75,
2570x20,
2580x3d,
2590x20,
2600x28,
2610x2a,
2620x29,
2630x00,
2640x00,
2650x00,
2660x00,
2670x00,
2680x00,
2690x00,
2700x02,
2710x00,
2720x00,
2730x00,
2740x01,
2750x66,
2760x69,
2770x72,
2780x6d,
2790x77,
2800x61,
2810x72,
2820x65,
2830x2d,
2840x70,
2850x64,
2860x73,
2870x70,
2880x00,
2890x00,
2900x00,
2910x00,
2920x00,
2930x00,
2940x03,
2950x00,
2960x00,
2970x00,
2980x11,
2990x00,
3000x00,
3010x00,
3020x10,
3030x00,
3040x00,
3050x00,
3060x00,
3070x00,
3080x00,
3090x00,
3100x08,
3110x69,
3120x75,
3130x20,
3140x3d,
3150x20,
3160x28,
3170x2a,
3180x29,
3190x00,
3200x00,
3210x00,
3220x00,
3230x00,
3240x00,
3250x00,
3260x02,
3270x00,
3280x00,
3290x00,
3300x01,
3310x71,
3320x75,
3330x65,
3340x75,
3350x65,
3360x73,
3370x00,
3380x00,
3390x00,
3400x00,
3410x00,
3420x03,
3430x00,
3440x00,
3450x00,
3460x11,
3470x00,
3480x00,
3490x00,
3500x10,
3510x00,
3520x00,
3530x00,
3540x00,
3550x00,
3560x00,
3570x40,
3580x00,
3590x69,
3600x75,
3610x20,
3620x3d,
3630x20,
3640x28,
3650x2a,
3660x29,
3670x00,
3680x00,
3690x00,
3700x00,
3710x00,
3720x00,
3730x00,
3740x02,
3750x00,
3760x00,
3770x00,
3780x01,
3790x61,
3800x63,
3810x63,
3820x75,
3830x6d,
3840x75,
3850x6c,
3860x61,
3870x74,
3880x6f,
3890x72,
3900x2d,
3910x63,
3920x68,
3930x00,
3940x00,
3950x00,
3960x00,
3970x00,
3980x03,
3990x00,
4000x00,
4010x00,
4020x11,
4030x00,
4040x00,
4050x00,
4060x10,
4070x00,
4080x00,
4090x00,
4100x00,
4110x00,
4120x00,
4130x00,
4140x30,
4150x69,
4160x75,
4170x20,
4180x3d,
4190x20,
4200x28,
4210x2a,
4220x29,
4230x00,
4240x00,
4250x00,
4260x00,
4270x00,
4280x00,
4290x00,
4300x02,
4310x00,
4320x00,
4330x00,
4340x01,
4350x71,
4360x6f,
4370x73,
4380x2d,
4390x74,
4400x69,
4410x6d,
4420x65,
4430x72,
4440x00,
4450x00,
4460x00,
4470x00,
4480x00,
4490x00,
4500x03,
4510x00,
4520x00,
4530x00,
4540x11,
4550x00,
4560x00,
4570x00,
4580x10,
4590x00,
4600x00,
4610x00,
4620x00,
4630x00,
4640x00,
4650x00,
4660x01,
4670x69,
4680x75,
4690x20,
4700x3d,
4710x20,
4720x28,
4730x2a,
4740x29,
4750x00,
4760x00,
4770x00,
4780x00,
4790x00,
4800x00,
4810x00,
4820x02,
4830x00,
4840x00,
4850x00,
4860x01,
4870x71,
4880x6f,
4890x73,
4900x2d,
4910x63,
4920x6c,
4930x75,
4940x73,
4950x74,
4960x65,
4970x72,
4980x00,
4990x00,
5000x00,
5010x00,
5020x03,
5030x00,
5040x00,
5050x00,
5060x11,
5070x00,
5080x00,
5090x00,
5100x10,
5110x00,
5120x00,
5130x00,
5140x00,
5150x00,
5160x00,
5170x00,
5180x08,
5190x69,
5200x75,
5210x20,
5220x3d,
5230x20,
5240x28,
5250x2a,
5260x29,
5270x00,
5280x00,
5290x00,
5300x00,
5310x00,
5320x00,
5330x00,
5340x02,
5350x00,
5360x00,
5370x00,
5380x01,
5390x71,
5400x6f,
5410x73,
5420x2d,
5430x71,
5440x75,
5450x65,
5460x75,
5470x65,
5480x00,
5490x00,
5500x00,
5510x00,
5520x00,
5530x00,
5540x03,
5550x00,
5560x00,
5570x00,
5580x11,
5590x00,
5600x00,
5610x00,
5620x10,
5630x00,
5640x00,
5650x00,
5660x00,
5670x00,
5680x00,
5690x00,
5700x40,
5710x69,
5720x75,
5730x20,
5740x3d,
5750x20,
5760x28,
5770x2a,
5780x29,
5790x00,
5800x00,
5810x00,
5820x00,
5830x00,
5840x00,
5850x00,
5860x02,
5870x00,
5880x00,
5890x00,
5900x02,
5910x00,
5920x00,
5930x00,
5940x01,
5950x63,
5960x70,
5970x70,
5980x69,
5990x00,
6000x00,
6010x00,
6020x00,
6030x00,
6040x00,
6050x00,
6060x01,
6070x73,
6080x72,
6090x69,
6100x6f,
6110x2d,
6120x72,
6130x78,
6140x2d,
6150x63,
6160x68,
6170x00,
6180x00,
6190x00,
6200x00,
6210x00,
6220x03,
6230x00,
6240x00,
6250x00,
6260x11,
6270x00,
6280x00,
6290x00,
6300x10,
6310x00,
6320x00,
6330x00,
6340x00,
6350x00,
6360x00,
6370x00,
6380x10,
6390x69,
6400x75,
6410x20,
6420x3d,
6430x20,
6440x28,
6450x2a,
6460x29,
6470x00,
6480x00,
6490x00,
6500x00,
6510x00,
6520x00,
6530x00,
6540x02,
6550x00,
6560x00,
6570x00,
6580x01,
6590x73,
6600x72,
6610x69,
6620x6f,
6630x2d,
6640x74,
6650x78,
6660x2d,
6670x63,
6680x68,
6690x00,
6700x00,
6710x00,
6720x00,
6730x00,
6740x03,
6750x00,
6760x00,
6770x00,
6780x11,
6790x00,
6800x00,
6810x00,
6820x10,
6830x00,
6840x00,
6850x00,
6860x00,
6870x00,
6880x00,
6890x00,
6900x10,
6910x69,
6920x75,
6930x20,
6940x3d,
6950x20,
6960x28,
6970x2a,
6980x29,
6990x00,
7000x00,
7010x00,
7020x00,
7030x00,
7040x00,
7050x00,
7060x02,
7070x00,
7080x00,
7090x00,
7100x01,
7110x73,
7120x72,
7130x69,
7140x6f,
7150x2d,
7160x72,
7170x78,
7180x2d,
7190x66,
7200x6c,
7210x6f,
7220x77,
7230x2d,
7240x69,
7250x64,
7260x00,
7270x00,
7280x00,
7290x00,
7300x03,
7310x00,
7320x00,
7330x00,
7340x11,
7350x00,
7360x00,
7370x00,
7380x10,
7390x00,
7400x00,
7410x00,
7420x00,
7430x00,
7440x00,
7450x00,
7460x14,
7470x69,
7480x75,
7490x20,
7500x3d,
7510x20,
7520x28,
7530x2a,
7540x29,
7550x00,
7560x00,
7570x00,
7580x00,
7590x00,
7600x00,
7610x00,
7620x02,
7630x00,
7640x00,
7650x00,
7660x01,
7670x61,
7680x69,
7690x66,
7700x2d,
7710x72,
7720x78,
7730x2d,
7740x63,
7750x68,
7760x00,
7770x00,
7780x00,
7790x00,
7800x00,
7810x00,
7820x03,
7830x00,
7840x00,
7850x00,
7860x11,
7870x00,
7880x00,
7890x00,
7900x10,
7910x00,
7920x00,
7930x00,
7940x00,
7950x00,
7960x00,
7970x00,
7980x81,
7990x69,
8000x75,
8010x20,
8020x3d,
8030x20,
8040x28,
8050x2a,
8060x29,
8070x00,
8080x00,
8090x00,
8100x00,
8110x00,
8120x00,
8130x00,
8140x02,
8150x00,
8160x00,
8170x00,
8180x01,
8190x61,
8200x69,
8210x66,
8220x2d,
8230x74,
8240x78,
8250x2d,
8260x63,
8270x68,
8280x00,
8290x00,
8300x00,
8310x00,
8320x00,
8330x00,
8340x03,
8350x00,
8360x00,
8370x00,
8380x11,
8390x00,
8400x00,
8410x00,
8420x10,
8430x00,
8440x00,
8450x00,
8460x00,
8470x00,
8480x00,
8490x00,
8500x81,
8510x69,
8520x75,
8530x20,
8540x3d,
8550x20,
8560x28,
8570x2a,
8580x29,
8590x00,
8600x00,
8610x00,
8620x00,
8630x00,
8640x00,
8650x00,
8660x02,
8670x00,
8680x00,
8690x00,
8700x01,
8710x61,
8720x69,
8730x66,
8740x2d,
8750x72,
8760x78,
8770x2d,
8780x66,
8790x6c,
8800x6f,
8810x77,
8820x2d,
8830x69,
8840x64,
8850x00,
8860x00,
8870x00,
8880x00,
8890x00,
8900x03,
8910x00,
8920x00,
8930x00,
8940x11,
8950x00,
8960x00,
8970x00,
8980x10,
8990x00,
9000x00,
9010x00,
9020x00,
9030x00,
9040x00,
9050x00,
9060x81,
9070x69,
9080x75,
9090x20,
9100x3d,
9110x20,
9120x28,
9130x2a,
9140x29,
9150x00,
9160x00,
9170x00,
9180x00,
9190x00,
9200x00,
9210x00,
9220x02,
9230x00,
9240x00,
9250x00,
9260x01,
9270x66,
9280x66,
9290x74,
9300x63,
9310x2d,
9320x61,
9330x2d,
9340x72,
9350x78,
9360x2d,
9370x63,
9380x68,
9390x00,
9400x00,
9410x00,
9420x00,
9430x00,
9440x00,
9450x00,
9460x03,
9470x00,
9480x00,
9490x00,
9500x11,
9510x00,
9520x00,
9530x00,
9540x10,
9550x00,
9560x00,
9570x00,
9580x00,
9590x00,
9600x00,
9610x00,
9620x04,
9630x69,
9640x75,
9650x20,
9660x3d,
9670x20,
9680x28,
9690x2a,
9700x29,
9710x00,
9720x00,
9730x00,
9740x00,
9750x00,
9760x00,
9770x00,
9780x02,
9790x00,
9800x00,
9810x00,
9820x01,
9830x66,
9840x66,
9850x74,
9860x63,
9870x2d,
9880x61,
9890x2d,
9900x74,
9910x78,
9920x2d,
9930x63,
9940x68,
9950x00,
9960x00,
9970x00,
9980x00,
9990x00,
10000x00,
10010x00,
10020x03,
10030x00,
10040x00,
10050x00,
10060x11,
10070x00,
10080x00,
10090x00,
10100x10,
10110x00,
10120x00,
10130x00,
10140x00,
10150x00,
10160x00,
10170x00,
10180x04,
10190x69,
10200x75,
10210x20,
10220x3d,
10230x20,
10240x28,
10250x2a,
10260x29,
10270x00,
10280x00,
10290x00,
10300x00,
10310x00,
10320x00,
10330x00,
10340x02,
10350x00,
10360x00,
10370x00,
10380x01,
10390x66,
10400x66,
10410x74,
10420x63,
10430x2d,
10440x61,
10450x2d,
10460x72,
10470x78,
10480x2d,
10490x66,
10500x6c,
10510x6f,
10520x77,
10530x2d,
10540x69,
10550x64,
10560x00,
10570x00,
10580x00,
10590x00,
10600x00,
10610x00,
10620x03,
10630x00,
10640x00,
10650x00,
10660x11,
10670x00,
10680x00,
10690x00,
10700x10,
10710x00,
10720x00,
10730x00,
10740x00,
10750x00,
10760x00,
10770x00,
10780x08,
10790x69,
10800x75,
10810x20,
10820x3d,
10830x20,
10840x28,
10850x2a,
10860x29,
10870x00,
10880x00,
10890x00,
10900x00,
10910x00,
10920x00,
10930x00,
10940x02,
10950x00,
10960x00,
10970x00,
10980x01,
10990x66,
11000x66,
11010x74,
11020x63,
11030x2d,
11040x62,
11050x2d,
11060x72,
11070x78,
11080x2d,
11090x63,
11100x68,
11110x00,
11120x00,
11130x00,
11140x00,
11150x00,
11160x00,
11170x00,
11180x03,
11190x00,
11200x00,
11210x00,
11220x11,
11230x00,
11240x00,
11250x00,
11260x10,
11270x00,
11280x00,
11290x00,
11300x00,
11310x00,
11320x00,
11330x00,
11340x04,
11350x69,
11360x75,
11370x20,
11380x3d,
11390x20,
11400x28,
11410x2a,
11420x29,
11430x00,
11440x00,
11450x00,
11460x00,
11470x00,
11480x00,
11490x00,
11500x02,
11510x00,
11520x00,
11530x00,
11540x01,
11550x66,
11560x66,
11570x74,
11580x63,
11590x2d,
11600x62,
11610x2d,
11620x74,
11630x78,
11640x2d,
11650x63,
11660x68,
11670x00,
11680x00,
11690x00,
11700x00,
11710x00,
11720x00,
11730x00,
11740x03,
11750x00,
11760x00,
11770x00,
11780x11,
11790x00,
11800x00,
11810x00,
11820x10,
11830x00,
11840x00,
11850x00,
11860x00,
11870x00,
11880x00,
11890x00,
11900x04,
11910x69,
11920x75,
11930x20,
11940x3d,
11950x20,
11960x28,
11970x2a,
11980x29,
11990x00,
12000x00,
12010x00,
12020x00,
12030x00,
12040x00,
12050x00,
12060x02,
12070x00,
12080x00,
12090x00,
12100x01,
12110x66,
12120x66,
12130x74,
12140x63,
12150x2d,
12160x62,
12170x2d,
12180x72,
12190x78,
12200x2d,
12210x66,
12220x6c,
12230x6f,
12240x77,
12250x2d,
12260x69,
12270x64,
12280x00,
12290x00,
12300x00,
12310x00,
12320x00,
12330x00,
12340x03,
12350x00,
12360x00,
12370x00,
12380x11,
12390x00,
12400x00,
12410x00,
12420x10,
12430x00,
12440x00,
12450x00,
12460x00,
12470x00,
12480x00,
12490x00,
12500x08,
12510x69,
12520x75,
12530x20,
12540x3d,
12550x20,
12560x28,
12570x2a,
12580x29,
12590x00,
12600x00,
12610x00,
12620x00,
12630x00,
12640x00,
12650x00,
12660x02,
12670x00,
12680x00,
12690x00,
12700x01,
12710x66,
12720x66,
12730x74,
12740x63,
12750x2d,
12760x63,
12770x2d,
12780x72,
12790x78,
12800x2d,
12810x63,
12820x68,
12830x00,
12840x00,
12850x00,
12860x00,
12870x00,
12880x00,
12890x00,
12900x03,
12910x00,
12920x00,
12930x00,
12940x11,
12950x00,
12960x00,
12970x00,
12980x10,
12990x00,
13000x00,
13010x00,
13020x00,
13030x00,
13040x00,
13050x00,
13060x04,
13070x69,
13080x75,
13090x20,
13100x3d,
13110x20,
13120x28,
13130x2a,
13140x29,
13150x00,
13160x00,
13170x00,
13180x00,
13190x00,
13200x00,
13210x00,
13220x02,
13230x00,
13240x00,
13250x00,
13260x01,
13270x66,
13280x66,
13290x74,
13300x63,
13310x2d,
13320x63,
13330x2d,
13340x74,
13350x78,
13360x2d,
13370x63,
13380x68,
13390x00,
13400x00,
13410x00,
13420x00,
13430x00,
13440x00,
13450x00,
13460x03,
13470x00,
13480x00,
13490x00,
13500x11,
13510x00,
13520x00,
13530x00,
13540x10,
13550x00,
13560x00,
13570x00,
13580x00,
13590x00,
13600x00,
13610x00,
13620x04,
13630x69,
13640x75,
13650x20,
13660x3d,
13670x20,
13680x28,
13690x2a,
13700x29,
13710x00,
13720x00,
13730x00,
13740x00,
13750x00,
13760x00,
13770x00,
13780x02,
13790x00,
13800x00,
13810x00,
13820x01,
13830x66,
13840x66,
13850x74,
13860x63,
13870x2d,
13880x63,
13890x2d,
13900x72,
13910x78,
13920x2d,
13930x66,
13940x6c,
13950x6f,
13960x77,
13970x2d,
13980x69,
13990x64,
14000x00,
14010x00,
14020x00,
14030x00,
14040x00,
14050x00,
14060x03,
14070x00,
14080x00,
14090x00,
14100x11,
14110x00,
14120x00,
14130x00,
14140x10,
14150x00,
14160x00,
14170x00,
14180x00,
14190x00,
14200x00,
14210x00,
14220x08,
14230x69,
14240x75,
14250x20,
14260x3d,
14270x20,
14280x28,
14290x2a,
14300x29,
14310x00,
14320x00,
14330x00,
14340x00,
14350x00,
14360x00,
14370x00,
14380x02,
14390x00,
14400x00,
14410x00,
14420x01,
14430x66,
14440x66,
14450x74,
14460x63,
14470x2d,
14480x64,
14490x2d,
14500x72,
14510x78,
14520x2d,
14530x63,
14540x68,
14550x00,
14560x00,
14570x00,
14580x00,
14590x00,
14600x00,
14610x00,
14620x03,
14630x00,
14640x00,
14650x00,
14660x11,
14670x00,
14680x00,
14690x00,
14700x10,
14710x00,
14720x00,
14730x00,
14740x00,
14750x00,
14760x00,
14770x00,
14780x04,
14790x69,
14800x75,
14810x20,
14820x3d,
14830x20,
14840x28,
14850x2a,
14860x29,
14870x00,
14880x00,
14890x00,
14900x00,
14910x00,
14920x00,
14930x00,
14940x02,
14950x00,
14960x00,
14970x00,
14980x01,
14990x66,
15000x66,
15010x74,
15020x63,
15030x2d,
15040x64,
15050x2d,
15060x74,
15070x78,
15080x2d,
15090x63,
15100x68,
15110x00,
15120x00,
15130x00,
15140x00,
15150x00,
15160x00,
15170x00,
15180x03,
15190x00,
15200x00,
15210x00,
15220x11,
15230x00,
15240x00,
15250x00,
15260x10,
15270x00,
15280x00,
15290x00,
15300x00,
15310x00,
15320x00,
15330x00,
15340x04,
15350x69,
15360x75,
15370x20,
15380x3d,
15390x20,
15400x28,
15410x2a,
15420x29,
15430x00,
15440x00,
15450x00,
15460x00,
15470x00,
15480x00,
15490x00,
15500x02,
15510x00,
15520x00,
15530x00,
15540x01,
15550x66,
15560x66,
15570x74,
15580x63,
15590x2d,
15600x64,
15610x2d,
15620x72,
15630x78,
15640x2d,
15650x66,
15660x6c,
15670x6f,
15680x77,
15690x2d,
15700x69,
15710x64,
15720x00,
15730x00,
15740x00,
15750x00,
15760x00,
15770x00,
15780x03,
15790x00,
15800x00,
15810x00,
15820x11,
15830x00,
15840x00,
15850x00,
15860x10,
15870x00,
15880x00,
15890x00,
15900x00,
15910x00,
15920x00,
15930x00,
15940x08,
15950x69,
15960x75,
15970x20,
15980x3d,
15990x20,
16000x28,
16010x2a,
16020x29,
16030x00,
16040x00,
16050x00,
16060x00,
16070x00,
16080x00,
16090x00,
16100x02,
16110x00,
16120x00,
16130x00,
16140x01,
16150x66,
16160x66,
16170x74,
16180x63,
16190x2d,
16200x65,
16210x2d,
16220x72,
16230x78,
16240x2d,
16250x63,
16260x68,
16270x00,
16280x00,
16290x00,
16300x00,
16310x00,
16320x00,
16330x00,
16340x03,
16350x00,
16360x00,
16370x00,
16380x11,
16390x00,
16400x00,
16410x00,
16420x10,
16430x00,
16440x00,
16450x00,
16460x00,
16470x00,
16480x00,
16490x00,
16500x04,
16510x69,
16520x75,
16530x20,
16540x3d,
16550x20,
16560x28,
16570x2a,
16580x29,
16590x00,
16600x00,
16610x00,
16620x00,
16630x00,
16640x00,
16650x00,
16660x02,
16670x00,
16680x00,
16690x00,
16700x01,
16710x66,
16720x66,
16730x74,
16740x63,
16750x2d,
16760x65,
16770x2d,
16780x74,
16790x78,
16800x2d,
16810x63,
16820x68,
16830x00,
16840x00,
16850x00,
16860x00,
16870x00,
16880x00,
16890x00,
16900x03,
16910x00,
16920x00,
16930x00,
16940x11,
16950x00,
16960x00,
16970x00,
16980x10,
16990x00,
17000x00,
17010x00,
17020x00,
17030x00,
17040x00,
17050x00,
17060x04,
17070x69,
17080x75,
17090x20,
17100x3d,
17110x20,
17120x28,
17130x2a,
17140x29,
17150x00,
17160x00,
17170x00,
17180x00,
17190x00,
17200x00,
17210x00,
17220x02,
17230x00,
17240x00,
17250x00,
17260x01,
17270x66,
17280x66,
17290x74,
17300x63,
17310x2d,
17320x65,
17330x2d,
17340x72,
17350x78,
17360x2d,
17370x66,
17380x6c,
17390x6f,
17400x77,
17410x2d,
17420x69,
17430x64,
17440x00,
17450x00,
17460x00,
17470x00,
17480x00,
17490x00,
17500x03,
17510x00,
17520x00,
17530x00,
17540x11,
17550x00,
17560x00,
17570x00,
17580x10,
17590x00,
17600x00,
17610x00,
17620x00,
17630x00,
17640x00,
17650x00,
17660x08,
17670x69,
17680x75,
17690x20,
17700x3d,
17710x20,
17720x28,
17730x2a,
17740x29,
17750x00,
17760x00,
17770x00,
17780x00,
17790x00,
17800x00,
17810x00,
17820x02,
17830x00,
17840x00,
17850x00,
17860x01,
17870x66,
17880x66,
17890x74,
17900x63,
17910x2d,
17920x66,
17930x2d,
17940x72,
17950x78,
17960x2d,
17970x63,
17980x68,
17990x00,
18000x00,
18010x00,
18020x00,
18030x00,
18040x00,
18050x00,
18060x03,
18070x00,
18080x00,
18090x00,
18100x11,
18110x00,
18120x00,
18130x00,
18140x10,
18150x00,
18160x00,
18170x00,
18180x00,
18190x00,
18200x00,
18210x00,
18220x04,
18230x69,
18240x75,
18250x20,
18260x3d,
18270x20,
18280x28,
18290x2a,
18300x29,
18310x00,
18320x00,
18330x00,
18340x00,
18350x00,
18360x00,
18370x00,
18380x02,
18390x00,
18400x00,
18410x00,
18420x01,
18430x66,
18440x66,
18450x74,
18460x63,
18470x2d,
18480x66,
18490x2d,
18500x74,
18510x78,
18520x2d,
18530x63,
18540x68,
18550x00,
18560x00,
18570x00,
18580x00,
18590x00,
18600x00,
18610x00,
18620x03,
18630x00,
18640x00,
18650x00,
18660x11,
18670x00,
18680x00,
18690x00,
18700x10,
18710x00,
18720x00,
18730x00,
18740x00,
18750x00,
18760x00,
18770x00,
18780x04,
18790x69,
18800x75,
18810x20,
18820x3d,
18830x20,
18840x28,
18850x2a,
18860x29,
18870x00,
18880x00,
18890x00,
18900x00,
18910x00,
18920x00,
18930x00,
18940x02,
18950x00,
18960x00,
18970x00,
18980x01,
18990x66,
19000x66,
19010x74,
19020x63,
19030x2d,
19040x66,
19050x2d,
19060x72,
19070x78,
19080x2d,
19090x66,
19100x6c,
19110x6f,
19120x77,
19130x2d,
19140x69,
19150x64,
19160x00,
19170x00,
19180x00,
19190x00,
19200x00,
19210x00,
19220x03,
19230x00,
19240x00,
19250x00,
19260x11,
19270x00,
19280x00,
19290x00,
19300x10,
19310x00,
19320x00,
19330x00,
19340x00,
19350x00,
19360x00,
19370x00,
19380x08,
19390x69,
19400x75,
19410x20,
19420x3d,
19430x20,
19440x28,
19450x2a,
19460x29,
19470x00,
19480x00,
19490x00,
19500x00,
19510x00,
19520x00,
19530x00,
19540x02,
19550x00,
19560x00,
19570x00,
19580x01,
19590x70,
19600x61,
19610x73,
19620x73,
19630x2d,
19640x72,
19650x78,
19660x2d,
19670x63,
19680x68,
19690x00,
19700x00,
19710x00,
19720x00,
19730x00,
19740x03,
19750x00,
19760x00,
19770x00,
19780x11,
19790x00,
19800x00,
19810x00,
19820x10,
19830x00,
19840x00,
19850x00,
19860x00,
19870x00,
19880x00,
19890x00,
19900x18,
19910x69,
19920x75,
19930x20,
19940x3d,
19950x20,
19960x28,
19970x2a,
19980x29,
19990x00,
20000x00,
20010x00,
20020x00,
20030x00,
20040x00,
20050x00,
20060x02,
20070x00,
20080x00,
20090x00,
20100x01,
20110x70,
20120x61,
20130x73,
20140x73,
20150x2d,
20160x74,
20170x78,
20180x2d,
20190x63,
20200x68,
20210x00,
20220x00,
20230x00,
20240x00,
20250x00,
20260x03,
20270x00,
20280x00,
20290x00,
20300x11,
20310x00,
20320x00,
20330x00,
20340x10,
20350x00,
20360x00,
20370x00,
20380x00,
20390x00,
20400x00,
20410x00,
20420x09,
20430x69,
20440x75,
20450x20,
20460x3d,
20470x20,
20480x28,
20490x2a,
20500x29,
20510x00,
20520x00,
20530x00,
20540x00,
20550x00,
20560x00,
20570x00,
20580x02,
20590x00,
20600x00,
20610x00,
20620x01,
20630x70,
20640x61,
20650x73,
20660x73,
20670x2d,
20680x72,
20690x78,
20700x2d,
20710x66,
20720x6c,
20730x6f,
20740x77,
20750x2d,
20760x69,
20770x64,
20780x00,
20790x00,
20800x00,
20810x00,
20820x03,
20830x00,
20840x00,
20850x00,
20860x11,
20870x00,
20880x00,
20890x00,
20900x10,
20910x00,
20920x00,
20930x00,
20940x00,
20950x00,
20960x00,
20970x00,
20980x20,
20990x69,
21000x75,
21010x20,
21020x3d,
21030x20,
21040x28,
21050x2a,
21060x29,
21070x00,
21080x00,
21090x00,
21100x00,
21110x00,
21120x00,
21130x00,
21140x02,
21150x00,
21160x00,
21170x00,
21180x01,
21190x71,
21200x6d,
21210x73,
21220x73,
21230x2d,
21240x71,
21250x6d,
21260x31,
21270x2d,
21280x72,
21290x78,
21300x2d,
21310x63,
21320x68,
21330x00,
21340x00,
21350x00,
21360x00,
21370x00,
21380x03,
21390x00,
21400x00,
21410x00,
21420x11,
21430x00,
21440x00,
21450x00,
21460x10,
21470x00,
21480x00,
21490x00,
21500x00,
21510x00,
21520x00,
21530x00,
21540x20,
21550x69,
21560x75,
21570x20,
21580x3d,
21590x20,
21600x28,
21610x2a,
21620x29,
21630x00,
21640x00,
21650x00,
21660x00,
21670x00,
21680x00,
21690x00,
21700x02,
21710x00,
21720x00,
21730x00,
21740x01,
21750x71,
21760x6d,
21770x73,
21780x73,
21790x2d,
21800x71,
21810x6d,
21820x31,
21830x2d,
21840x74,
21850x78,
21860x2d,
21870x63,
21880x68,
21890x00,
21900x00,
21910x00,
21920x00,
21930x00,
21940x03,
21950x00,
21960x00,
21970x00,
21980x11,
21990x00,
22000x00,
22010x00,
22020x10,
22030x00,
22040x00,
22050x00,
22060x00,
22070x00,
22080x00,
22090x00,
22100x20,
22110x69,
22120x75,
22130x20,
22140x3d,
22150x20,
22160x28,
22170x2a,
22180x29,
22190x00,
22200x00,
22210x00,
22220x00,
22230x00,
22240x00,
22250x00,
22260x02,
22270x00,
22280x00,
22290x00,
22300x01,
22310x71,
22320x6d,
22330x73,
22340x73,
22350x2d,
22360x71,
22370x6d,
22380x31,
22390x2d,
22400x72,
22410x78,
22420x2d,
22430x66,
22440x6c,
22450x6f,
22460x77,
22470x2d,
22480x69,
22490x64,
22500x00,
22510x00,
22520x00,
22530x00,
22540x03,
22550x00,
22560x00,
22570x00,
22580x11,
22590x00,
22600x00,
22610x00,
22620x10,
22630x00,
22640x00,
22650x00,
22660x00,
22670x00,
22680x00,
22690x00,
22700x40,
22710x69,
22720x75,
22730x20,
22740x3d,
22750x20,
22760x28,
22770x2a,
22780x29,
22790x00,
22800x00,
22810x00,
22820x00,
22830x00,
22840x00,
22850x00,
22860x02,
22870x00,
22880x00,
22890x00,
22900x01,
22910x71,
22920x6d,
22930x73,
22940x73,
22950x2d,
22960x71,
22970x6d,
22980x32,
22990x2d,
23000x72,
23010x78,
23020x2d,
23030x63,
23040x68,
23050x00,
23060x00,
23070x00,
23080x00,
23090x00,
23100x03,
23110x00,
23120x00,
23130x00,
23140x11,
23150x00,
23160x00,
23170x00,
23180x10,
23190x00,
23200x00,
23210x00,
23220x00,
23230x00,
23240x00,
23250x00,
23260x20,
23270x69,
23280x75,
23290x20,
23300x3d,
23310x20,
23320x28,
23330x2a,
23340x29,
23350x00,
23360x00,
23370x00,
23380x00,
23390x00,
23400x00,
23410x00,
23420x02,
23430x00,
23440x00,
23450x00,
23460x01,
23470x71,
23480x6d,
23490x73,
23500x73,
23510x2d,
23520x71,
23530x6d,
23540x32,
23550x2d,
23560x74,
23570x78,
23580x2d,
23590x63,
23600x68,
23610x00,
23620x00,
23630x00,
23640x00,
23650x00,
23660x03,
23670x00,
23680x00,
23690x00,
23700x11,
23710x00,
23720x00,
23730x00,
23740x10,
23750x00,
23760x00,
23770x00,
23780x00,
23790x00,
23800x00,
23810x00,
23820x20,
23830x69,
23840x75,
23850x20,
23860x3d,
23870x20,
23880x28,
23890x2a,
23900x29,
23910x00,
23920x00,
23930x00,
23940x00,
23950x00,
23960x00,
23970x00,
23980x02,
23990x00,
24000x00,
24010x00,
24020x01,
24030x71,
24040x6d,
24050x73,
24060x73,
24070x2d,
24080x71,
24090x6d,
24100x32,
24110x2d,
24120x72,
24130x78,
24140x2d,
24150x66,
24160x6c,
24170x6f,
24180x77,
24190x2d,
24200x69,
24210x64,
24220x00,
24230x00,
24240x00,
24250x00,
24260x03,
24270x00,
24280x00,
24290x00,
24300x11,
24310x00,
24320x00,
24330x00,
24340x10,
24350x00,
24360x00,
24370x00,
24380x00,
24390x00,
24400x00,
24410x00,
24420x40,
24430x69,
24440x75,
24450x20,
24460x3d,
24470x20,
24480x28,
24490x2a,
24500x29,
24510x00,
24520x00,
24530x00,
24540x00,
24550x00,
24560x00,
24570x00,
24580x02,
24590x00,
24600x00,
24610x00,
24620x01,
24630x62,
24640x63,
24650x70,
24660x2d,
24670x72,
24680x78,
24690x2d,
24700x63,
24710x68,
24720x00,
24730x00,
24740x00,
24750x00,
24760x00,
24770x00,
24780x03,
24790x00,
24800x00,
24810x00,
24820x11,
24830x00,
24840x00,
24850x00,
24860x10,
24870x00,
24880x00,
24890x00,
24900x00,
24910x00,
24920x00,
24930x00,
24940x08,
24950x69,
24960x75,
24970x20,
24980x3d,
24990x20,
25000x28,
25010x2a,
25020x29,
25030x00,
25040x00,
25050x00,
25060x00,
25070x00,
25080x00,
25090x00,
25100x02,
25110x00,
25120x00,
25130x00,
25140x01,
25150x62,
25160x63,
25170x70,
25180x2d,
25190x74,
25200x78,
25210x2d,
25220x63,
25230x68,
25240x00,
25250x00,
25260x00,
25270x00,
25280x00,
25290x00,
25300x03,
25310x00,
25320x00,
25330x00,
25340x11,
25350x00,
25360x00,
25370x00,
25380x10,
25390x00,
25400x00,
25410x00,
25420x00,
25430x00,
25440x00,
25450x00,
25460x08,
25470x69,
25480x75,
25490x20,
25500x3d,
25510x20,
25520x28,
25530x2a,
25540x29,
25550x00,
25560x00,
25570x00,
25580x00,
25590x00,
25600x00,
25610x00,
25620x02,
25630x00,
25640x00,
25650x00,
25660x01,
25670x62,
25680x63,
25690x70,
25700x2d,
25710x72,
25720x78,
25730x2d,
25740x66,
25750x6c,
25760x6f,
25770x77,
25780x2d,
25790x69,
25800x64,
25810x00,
25820x00,
25830x00,
25840x00,
25850x00,
25860x03,
25870x00,
25880x00,
25890x00,
25900x11,
25910x00,
25920x00,
25930x00,
25940x10,
25950x00,
25960x00,
25970x00,
25980x00,
25990x00,
26000x00,
26010x00,
26020x40,
26030x69,
26040x75,
26050x20,
26060x3d,
26070x20,
26080x28,
26090x2a,
26100x29,
26110x00,
26120x00,
26130x00,
26140x00,
26150x00,
26160x00,
26170x00,
26180x02,
26190x00,
26200x00,
26210x00,
26220x02,
26230x00,
26240x00,
26250x00,
26260x01,
26270x70,
26280x61,
26290x00,
26300x00,
26310x00,
26320x00,
26330x00,
26340x01,
26350x70,
26360x61,
26370x2d,
26380x6c,
26390x75,
26400x74,
26410x00,
26420x00,
26430x00,
26440x00,
26450x00,
26460x03,
26470x00,
26480x00,
26490x00,
26500x11,
26510x00,
26520x00,
26530x00,
26540x10,
26550x00,
26560x00,
26570x00,
26580x00,
26590x00,
26600x00,
26610x00,
26620x05,
26630x69,
26640x75,
26650x20,
26660x3d,
26670x20,
26680x28,
26690x2a,
26700x29,
26710x00,
26720x00,
26730x00,
26740x00,
26750x00,
26760x00,
26770x00,
26780x02,
26790x00,
26800x00,
26810x00,
26820x01,
26830x70,
26840x61,
26850x2d,
26860x66,
26870x69,
26880x72,
26890x6d,
26900x77,
26910x61,
26920x72,
26930x65,
26940x00,
26950x00,
26960x00,
26970x00,
26980x03,
26990x00,
27000x00,
27010x00,
27020x11,
27030x00,
27040x00,
27050x00,
27060x10,
27070x00,
27080x00,
27090x00,
27100x00,
27110x00,
27120x00,
27130x00,
27140x01,
27150x69,
27160x75,
27170x20,
27180x3d,
27190x20,
27200x28,
27210x2a,
27220x29,
27230x00,
27240x00,
27250x00,
27260x00,
27270x00,
27280x00,
27290x00,
27300x02,
27310x00,
27320x00,
27330x00,
27340x02,
27350x00,
27360x00,
27370x00,
27380x02,
27390x00,
27400x00,
27410x00,
27420x09,
27430x76,
27440x61,
27450x6c,
27460x69,
27470x64,
27480x2d,
27490x69,
27500x6e,
27510x73,
27520x74,
27530x61,
27540x6e,
27550x63,
27560x65,
27570x73,
27580x00,
27590x61,
27600x73,
27610x73,
27620x69,
27630x67,
27640x6e,
27650x6d,
27660x65,
27670x6e,
27680x74,
27690x73,
27700x00,
2771};
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp_arm.c b/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp_arm.c
new file mode 100644
index 0000000..35e5271
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp_arm.c
@@ -0,0 +1,2942 @@
1const char rmPolicy[] = {
20xd0,
30x0d,
40xfe,
50xed,
60x00,
70x00,
80x0b,
90x7c,
100x00,
110x00,
120x00,
130x38,
140x00,
150x00,
160x0b,
170x60,
180x00,
190x00,
200x00,
210x28,
220x00,
230x00,
240x00,
250x11,
260x00,
270x00,
280x00,
290x10,
300x00,
310x00,
320x00,
330x00,
340x00,
350x00,
360x00,
370x1c,
380x00,
390x00,
400x0b,
410x28,
420x00,
430x00,
440x00,
450x00,
460x00,
470x00,
480x00,
490x00,
500x00,
510x00,
520x00,
530x00,
540x00,
550x00,
560x00,
570x00,
580x00,
590x00,
600x00,
610x01,
620x00,
630x00,
640x00,
650x00,
660x00,
670x00,
680x00,
690x03,
700x00,
710x00,
720x00,
730x14,
740x00,
750x00,
760x00,
770x00,
780x52,
790x4d,
800x5f,
810x53,
820x65,
830x72,
840x76,
850x65,
860x72,
870x00,
880x52,
890x4d,
900x5f,
910x43,
920x6c,
930x69,
940x65,
950x6e,
960x74,
970x00,
980x00,
990x00,
1000x00,
1010x01,
1020x71,
1030x6d,
1040x73,
1050x73,
1060x00,
1070x00,
1080x00,
1090x00,
1100x00,
1110x00,
1120x00,
1130x01,
1140x6c,
1150x69,
1160x6e,
1170x6b,
1180x72,
1190x61,
1200x6d,
1210x2d,
1220x63,
1230x6f,
1240x6e,
1250x74,
1260x72,
1270x6f,
1280x6c,
1290x00,
1300x00,
1310x00,
1320x00,
1330x03,
1340x00,
1350x00,
1360x00,
1370x11,
1380x00,
1390x00,
1400x00,
1410x10,
1420x00,
1430x00,
1440x00,
1450x00,
1460x00,
1470x00,
1480x00,
1490x01,
1500x69,
1510x75,
1520x20,
1530x3d,
1540x20,
1550x28,
1560x2a,
1570x29,
1580x00,
1590x00,
1600x00,
1610x00,
1620x00,
1630x00,
1640x00,
1650x02,
1660x00,
1670x00,
1680x00,
1690x01,
1700x6c,
1710x69,
1720x6e,
1730x6b,
1740x72,
1750x61,
1760x6d,
1770x00,
1780x00,
1790x00,
1800x00,
1810x03,
1820x00,
1830x00,
1840x00,
1850x11,
1860x00,
1870x00,
1880x00,
1890x10,
1900x00,
1910x00,
1920x00,
1930x00,
1940xff,
1950xff,
1960xff,
1970xff,
1980x69,
1990x75,
2000x20,
2010x3d,
2020x20,
2030x28,
2040x2a,
2050x29,
2060x00,
2070x00,
2080x00,
2090x00,
2100x00,
2110x00,
2120x00,
2130x02,
2140x00,
2150x00,
2160x00,
2170x01,
2180x6d,
2190x65,
2200x6d,
2210x6f,
2220x72,
2230x79,
2240x2d,
2250x72,
2260x65,
2270x67,
2280x69,
2290x6f,
2300x6e,
2310x73,
2320x00,
2330x00,
2340x00,
2350x00,
2360x00,
2370x03,
2380x00,
2390x00,
2400x00,
2410x2e,
2420x00,
2430x00,
2440x00,
2450x10,
2460x00,
2470x00,
2480x00,
2490x00,
2500x00,
2510x00,
2520x00,
2530x0c,
2540x69,
2550x75,
2560x20,
2570x3d,
2580x20,
2590x28,
2600x2a,
2610x29,
2620x00,
2630x00,
2640x00,
2650x00,
2660x0c,
2670x00,
2680x00,
2690x00,
2700x02,
2710x28,
2720x2a,
2730x29,
2740x00,
2750x00,
2760x00,
2770x00,
2780x0e,
2790x00,
2800x00,
2810x00,
2820x32,
2830x69,
2840x75,
2850x20,
2860x3d,
2870x20,
2880x28,
2890x2a,
2900x29,
2910x00,
2920x00,
2930x00,
2940x00,
2950x00,
2960x00,
2970x02,
2980x00,
2990x00,
3000x00,
3010x01,
3020x66,
3030x69,
3040x72,
3050x6d,
3060x77,
3070x61,
3080x72,
3090x65,
3100x2d,
3110x70,
3120x64,
3130x73,
3140x70,
3150x00,
3160x00,
3170x00,
3180x00,
3190x00,
3200x00,
3210x03,
3220x00,
3230x00,
3240x00,
3250x11,
3260x00,
3270x00,
3280x00,
3290x10,
3300x00,
3310x00,
3320x00,
3330x00,
3340x00,
3350x00,
3360x00,
3370x08,
3380x69,
3390x75,
3400x20,
3410x3d,
3420x20,
3430x28,
3440x2a,
3450x29,
3460x00,
3470x00,
3480x00,
3490x00,
3500x00,
3510x00,
3520x00,
3530x02,
3540x00,
3550x00,
3560x00,
3570x01,
3580x71,
3590x75,
3600x65,
3610x75,
3620x65,
3630x73,
3640x00,
3650x00,
3660x00,
3670x00,
3680x00,
3690x03,
3700x00,
3710x00,
3720x00,
3730xa2,
3740x00,
3750x00,
3760x00,
3770x10,
3780x00,
3790x00,
3800x00,
3810x00,
3820x00,
3830x00,
3840x02,
3850x80,
3860x69,
3870x75,
3880x20,
3890x3d,
3900x20,
3910x28,
3920x2a,
3930x29,
3940x00,
3950x00,
3960x00,
3970x02,
3980x80,
3990x00,
4000x00,
4010x00,
4020x09,
4030x28,
4040x2a,
4050x29,
4060x00,
4070x00,
4080x00,
4090x02,
4100x89,
4110x00,
4120x00,
4130x00,
4140x03,
4150x69,
4160x75,
4170x20,
4180x3d,
4190x20,
4200x28,
4210x2a,
4220x29,
4230x00,
4240x00,
4250x00,
4260x02,
4270x8c,
4280x00,
4290x00,
4300x00,
4310x14,
4320x28,
4330x2a,
4340x29,
4350x00,
4360x00,
4370x00,
4380x02,
4390xa0,
4400x00,
4410x00,
4420x00,
4430x80,
4440x69,
4450x75,
4460x20,
4470x3d,
4480x20,
4490x28,
4500x2a,
4510x29,
4520x00,
4530x00,
4540x00,
4550x03,
4560x20,
4570x00,
4580x00,
4590x00,
4600x0c,
4610x28,
4620x2a,
4630x29,
4640x00,
4650x00,
4660x00,
4670x03,
4680x2c,
4690x00,
4700x00,
4710x0c,
4720x74,
4730x69,
4740x75,
4750x20,
4760x3d,
4770x20,
4780x28,
4790x2a,
4800x29,
4810x00,
4820x00,
4830x00,
4840x0f,
4850xa0,
4860x00,
4870x00,
4880x00,
4890x40,
4900x28,
4910x2a,
4920x29,
4930x00,
4940x00,
4950x00,
4960x0f,
4970xe0,
4980x00,
4990x00,
5000x12,
5010x20,
5020x69,
5030x75,
5040x20,
5050x3d,
5060x20,
5070x28,
5080x2a,
5090x29,
5100x00,
5110x00,
5120x00,
5130x22,
5140x00,
5150x00,
5160x00,
5170x00,
5180x20,
5190x28,
5200x2a,
5210x29,
5220x00,
5230x00,
5240x00,
5250x22,
5260x20,
5270x00,
5280x00,
5290x1d,
5300xe0,
5310x69,
5320x75,
5330x20,
5340x3d,
5350x20,
5360x28,
5370x2a,
5380x29,
5390x00,
5400x00,
5410x00,
5420x00,
5430x00,
5440x00,
5450x02,
5460x00,
5470x00,
5480x00,
5490x01,
5500x61,
5510x63,
5520x63,
5530x75,
5540x6d,
5550x75,
5560x6c,
5570x61,
5580x74,
5590x6f,
5600x72,
5610x2d,
5620x63,
5630x68,
5640x00,
5650x00,
5660x00,
5670x00,
5680x00,
5690x03,
5700x00,
5710x00,
5720x00,
5730x11,
5740x00,
5750x00,
5760x00,
5770x10,
5780x00,
5790x00,
5800x00,
5810x00,
5820x00,
5830x00,
5840x00,
5850x30,
5860x69,
5870x75,
5880x20,
5890x3d,
5900x20,
5910x28,
5920x2a,
5930x29,
5940x00,
5950x00,
5960x00,
5970x00,
5980x00,
5990x00,
6000x00,
6010x02,
6020x00,
6030x00,
6040x00,
6050x01,
6060x71,
6070x6f,
6080x73,
6090x2d,
6100x74,
6110x69,
6120x6d,
6130x65,
6140x72,
6150x00,
6160x00,
6170x00,
6180x00,
6190x00,
6200x00,
6210x03,
6220x00,
6230x00,
6240x00,
6250x11,
6260x00,
6270x00,
6280x00,
6290x10,
6300x00,
6310x00,
6320x00,
6330x00,
6340x00,
6350x00,
6360x00,
6370x01,
6380x69,
6390x75,
6400x20,
6410x3d,
6420x20,
6430x28,
6440x2a,
6450x29,
6460x00,
6470x00,
6480x00,
6490x00,
6500x00,
6510x00,
6520x00,
6530x02,
6540x00,
6550x00,
6560x00,
6570x01,
6580x71,
6590x6f,
6600x73,
6610x2d,
6620x63,
6630x6c,
6640x75,
6650x73,
6660x74,
6670x65,
6680x72,
6690x00,
6700x00,
6710x00,
6720x00,
6730x03,
6740x00,
6750x00,
6760x00,
6770x11,
6780x00,
6790x00,
6800x00,
6810x10,
6820x00,
6830x00,
6840x00,
6850x00,
6860x00,
6870x00,
6880x00,
6890x08,
6900x69,
6910x75,
6920x20,
6930x3d,
6940x20,
6950x28,
6960x2a,
6970x29,
6980x00,
6990x00,
7000x00,
7010x00,
7020x00,
7030x00,
7040x00,
7050x02,
7060x00,
7070x00,
7080x00,
7090x01,
7100x71,
7110x6f,
7120x73,
7130x2d,
7140x71,
7150x75,
7160x65,
7170x75,
7180x65,
7190x00,
7200x00,
7210x00,
7220x00,
7230x00,
7240x00,
7250x03,
7260x00,
7270x00,
7280x00,
7290x11,
7300x00,
7310x00,
7320x00,
7330x10,
7340x00,
7350x00,
7360x00,
7370x00,
7380x00,
7390x00,
7400x00,
7410x40,
7420x69,
7430x75,
7440x20,
7450x3d,
7460x20,
7470x28,
7480x2a,
7490x29,
7500x00,
7510x00,
7520x00,
7530x00,
7540x00,
7550x00,
7560x00,
7570x02,
7580x00,
7590x00,
7600x00,
7610x02,
7620x00,
7630x00,
7640x00,
7650x01,
7660x63,
7670x70,
7680x70,
7690x69,
7700x00,
7710x00,
7720x00,
7730x00,
7740x00,
7750x00,
7760x00,
7770x01,
7780x73,
7790x72,
7800x69,
7810x6f,
7820x2d,
7830x72,
7840x78,
7850x2d,
7860x63,
7870x68,
7880x00,
7890x00,
7900x00,
7910x00,
7920x00,
7930x03,
7940x00,
7950x00,
7960x00,
7970x11,
7980x00,
7990x00,
8000x00,
8010x10,
8020x00,
8030x00,
8040x00,
8050x00,
8060x00,
8070x00,
8080x00,
8090x10,
8100x69,
8110x75,
8120x20,
8130x3d,
8140x20,
8150x28,
8160x2a,
8170x29,
8180x00,
8190x00,
8200x00,
8210x00,
8220x00,
8230x00,
8240x00,
8250x02,
8260x00,
8270x00,
8280x00,
8290x01,
8300x73,
8310x72,
8320x69,
8330x6f,
8340x2d,
8350x74,
8360x78,
8370x2d,
8380x63,
8390x68,
8400x00,
8410x00,
8420x00,
8430x00,
8440x00,
8450x03,
8460x00,
8470x00,
8480x00,
8490x11,
8500x00,
8510x00,
8520x00,
8530x10,
8540x00,
8550x00,
8560x00,
8570x00,
8580x00,
8590x00,
8600x00,
8610x10,
8620x69,
8630x75,
8640x20,
8650x3d,
8660x20,
8670x28,
8680x2a,
8690x29,
8700x00,
8710x00,
8720x00,
8730x00,
8740x00,
8750x00,
8760x00,
8770x02,
8780x00,
8790x00,
8800x00,
8810x01,
8820x73,
8830x72,
8840x69,
8850x6f,
8860x2d,
8870x72,
8880x78,
8890x2d,
8900x66,
8910x6c,
8920x6f,
8930x77,
8940x2d,
8950x69,
8960x64,
8970x00,
8980x00,
8990x00,
9000x00,
9010x03,
9020x00,
9030x00,
9040x00,
9050x11,
9060x00,
9070x00,
9080x00,
9090x10,
9100x00,
9110x00,
9120x00,
9130x00,
9140x00,
9150x00,
9160x00,
9170x14,
9180x69,
9190x75,
9200x20,
9210x3d,
9220x20,
9230x28,
9240x2a,
9250x29,
9260x00,
9270x00,
9280x00,
9290x00,
9300x00,
9310x00,
9320x00,
9330x02,
9340x00,
9350x00,
9360x00,
9370x01,
9380x61,
9390x69,
9400x66,
9410x2d,
9420x72,
9430x78,
9440x2d,
9450x63,
9460x68,
9470x00,
9480x00,
9490x00,
9500x00,
9510x00,
9520x00,
9530x03,
9540x00,
9550x00,
9560x00,
9570x11,
9580x00,
9590x00,
9600x00,
9610x10,
9620x00,
9630x00,
9640x00,
9650x00,
9660x00,
9670x00,
9680x00,
9690x81,
9700x69,
9710x75,
9720x20,
9730x3d,
9740x20,
9750x28,
9760x2a,
9770x29,
9780x00,
9790x00,
9800x00,
9810x00,
9820x00,
9830x00,
9840x00,
9850x02,
9860x00,
9870x00,
9880x00,
9890x01,
9900x61,
9910x69,
9920x66,
9930x2d,
9940x74,
9950x78,
9960x2d,
9970x63,
9980x68,
9990x00,
10000x00,
10010x00,
10020x00,
10030x00,
10040x00,
10050x03,
10060x00,
10070x00,
10080x00,
10090x11,
10100x00,
10110x00,
10120x00,
10130x10,
10140x00,
10150x00,
10160x00,
10170x00,
10180x00,
10190x00,
10200x00,
10210x81,
10220x69,
10230x75,
10240x20,
10250x3d,
10260x20,
10270x28,
10280x2a,
10290x29,
10300x00,
10310x00,
10320x00,
10330x00,
10340x00,
10350x00,
10360x00,
10370x02,
10380x00,
10390x00,
10400x00,
10410x01,
10420x61,
10430x69,
10440x66,
10450x2d,
10460x72,
10470x78,
10480x2d,
10490x66,
10500x6c,
10510x6f,
10520x77,
10530x2d,
10540x69,
10550x64,
10560x00,
10570x00,
10580x00,
10590x00,
10600x00,
10610x03,
10620x00,
10630x00,
10640x00,
10650x11,
10660x00,
10670x00,
10680x00,
10690x10,
10700x00,
10710x00,
10720x00,
10730x00,
10740x00,
10750x00,
10760x00,
10770x81,
10780x69,
10790x75,
10800x20,
10810x3d,
10820x20,
10830x28,
10840x2a,
10850x29,
10860x00,
10870x00,
10880x00,
10890x00,
10900x00,
10910x00,
10920x00,
10930x02,
10940x00,
10950x00,
10960x00,
10970x01,
10980x66,
10990x66,
11000x74,
11010x63,
11020x2d,
11030x61,
11040x2d,
11050x72,
11060x78,
11070x2d,
11080x63,
11090x68,
11100x00,
11110x00,
11120x00,
11130x00,
11140x00,
11150x00,
11160x00,
11170x03,
11180x00,
11190x00,
11200x00,
11210x11,
11220x00,
11230x00,
11240x00,
11250x10,
11260x00,
11270x00,
11280x00,
11290x00,
11300x00,
11310x00,
11320x00,
11330x04,
11340x69,
11350x75,
11360x20,
11370x3d,
11380x20,
11390x28,
11400x2a,
11410x29,
11420x00,
11430x00,
11440x00,
11450x00,
11460x00,
11470x00,
11480x00,
11490x02,
11500x00,
11510x00,
11520x00,
11530x01,
11540x66,
11550x66,
11560x74,
11570x63,
11580x2d,
11590x61,
11600x2d,
11610x74,
11620x78,
11630x2d,
11640x63,
11650x68,
11660x00,
11670x00,
11680x00,
11690x00,
11700x00,
11710x00,
11720x00,
11730x03,
11740x00,
11750x00,
11760x00,
11770x11,
11780x00,
11790x00,
11800x00,
11810x10,
11820x00,
11830x00,
11840x00,
11850x00,
11860x00,
11870x00,
11880x00,
11890x04,
11900x69,
11910x75,
11920x20,
11930x3d,
11940x20,
11950x28,
11960x2a,
11970x29,
11980x00,
11990x00,
12000x00,
12010x00,
12020x00,
12030x00,
12040x00,
12050x02,
12060x00,
12070x00,
12080x00,
12090x01,
12100x66,
12110x66,
12120x74,
12130x63,
12140x2d,
12150x61,
12160x2d,
12170x72,
12180x78,
12190x2d,
12200x66,
12210x6c,
12220x6f,
12230x77,
12240x2d,
12250x69,
12260x64,
12270x00,
12280x00,
12290x00,
12300x00,
12310x00,
12320x00,
12330x03,
12340x00,
12350x00,
12360x00,
12370x11,
12380x00,
12390x00,
12400x00,
12410x10,
12420x00,
12430x00,
12440x00,
12450x00,
12460x00,
12470x00,
12480x00,
12490x08,
12500x69,
12510x75,
12520x20,
12530x3d,
12540x20,
12550x28,
12560x2a,
12570x29,
12580x00,
12590x00,
12600x00,
12610x00,
12620x00,
12630x00,
12640x00,
12650x02,
12660x00,
12670x00,
12680x00,
12690x01,
12700x66,
12710x66,
12720x74,
12730x63,
12740x2d,
12750x62,
12760x2d,
12770x72,
12780x78,
12790x2d,
12800x63,
12810x68,
12820x00,
12830x00,
12840x00,
12850x00,
12860x00,
12870x00,
12880x00,
12890x03,
12900x00,
12910x00,
12920x00,
12930x11,
12940x00,
12950x00,
12960x00,
12970x10,
12980x00,
12990x00,
13000x00,
13010x00,
13020x00,
13030x00,
13040x00,
13050x04,
13060x69,
13070x75,
13080x20,
13090x3d,
13100x20,
13110x28,
13120x2a,
13130x29,
13140x00,
13150x00,
13160x00,
13170x00,
13180x00,
13190x00,
13200x00,
13210x02,
13220x00,
13230x00,
13240x00,
13250x01,
13260x66,
13270x66,
13280x74,
13290x63,
13300x2d,
13310x62,
13320x2d,
13330x74,
13340x78,
13350x2d,
13360x63,
13370x68,
13380x00,
13390x00,
13400x00,
13410x00,
13420x00,
13430x00,
13440x00,
13450x03,
13460x00,
13470x00,
13480x00,
13490x11,
13500x00,
13510x00,
13520x00,
13530x10,
13540x00,
13550x00,
13560x00,
13570x00,
13580x00,
13590x00,
13600x00,
13610x04,
13620x69,
13630x75,
13640x20,
13650x3d,
13660x20,
13670x28,
13680x2a,
13690x29,
13700x00,
13710x00,
13720x00,
13730x00,
13740x00,
13750x00,
13760x00,
13770x02,
13780x00,
13790x00,
13800x00,
13810x01,
13820x66,
13830x66,
13840x74,
13850x63,
13860x2d,
13870x62,
13880x2d,
13890x72,
13900x78,
13910x2d,
13920x66,
13930x6c,
13940x6f,
13950x77,
13960x2d,
13970x69,
13980x64,
13990x00,
14000x00,
14010x00,
14020x00,
14030x00,
14040x00,
14050x03,
14060x00,
14070x00,
14080x00,
14090x11,
14100x00,
14110x00,
14120x00,
14130x10,
14140x00,
14150x00,
14160x00,
14170x00,
14180x00,
14190x00,
14200x00,
14210x08,
14220x69,
14230x75,
14240x20,
14250x3d,
14260x20,
14270x28,
14280x2a,
14290x29,
14300x00,
14310x00,
14320x00,
14330x00,
14340x00,
14350x00,
14360x00,
14370x02,
14380x00,
14390x00,
14400x00,
14410x01,
14420x66,
14430x66,
14440x74,
14450x63,
14460x2d,
14470x63,
14480x2d,
14490x72,
14500x78,
14510x2d,
14520x63,
14530x68,
14540x00,
14550x00,
14560x00,
14570x00,
14580x00,
14590x00,
14600x00,
14610x03,
14620x00,
14630x00,
14640x00,
14650x11,
14660x00,
14670x00,
14680x00,
14690x10,
14700x00,
14710x00,
14720x00,
14730x00,
14740x00,
14750x00,
14760x00,
14770x04,
14780x69,
14790x75,
14800x20,
14810x3d,
14820x20,
14830x28,
14840x2a,
14850x29,
14860x00,
14870x00,
14880x00,
14890x00,
14900x00,
14910x00,
14920x00,
14930x02,
14940x00,
14950x00,
14960x00,
14970x01,
14980x66,
14990x66,
15000x74,
15010x63,
15020x2d,
15030x63,
15040x2d,
15050x74,
15060x78,
15070x2d,
15080x63,
15090x68,
15100x00,
15110x00,
15120x00,
15130x00,
15140x00,
15150x00,
15160x00,
15170x03,
15180x00,
15190x00,
15200x00,
15210x11,
15220x00,
15230x00,
15240x00,
15250x10,
15260x00,
15270x00,
15280x00,
15290x00,
15300x00,
15310x00,
15320x00,
15330x04,
15340x69,
15350x75,
15360x20,
15370x3d,
15380x20,
15390x28,
15400x2a,
15410x29,
15420x00,
15430x00,
15440x00,
15450x00,
15460x00,
15470x00,
15480x00,
15490x02,
15500x00,
15510x00,
15520x00,
15530x01,
15540x66,
15550x66,
15560x74,
15570x63,
15580x2d,
15590x63,
15600x2d,
15610x72,
15620x78,
15630x2d,
15640x66,
15650x6c,
15660x6f,
15670x77,
15680x2d,
15690x69,
15700x64,
15710x00,
15720x00,
15730x00,
15740x00,
15750x00,
15760x00,
15770x03,
15780x00,
15790x00,
15800x00,
15810x11,
15820x00,
15830x00,
15840x00,
15850x10,
15860x00,
15870x00,
15880x00,
15890x00,
15900x00,
15910x00,
15920x00,
15930x08,
15940x69,
15950x75,
15960x20,
15970x3d,
15980x20,
15990x28,
16000x2a,
16010x29,
16020x00,
16030x00,
16040x00,
16050x00,
16060x00,
16070x00,
16080x00,
16090x02,
16100x00,
16110x00,
16120x00,
16130x01,
16140x66,
16150x66,
16160x74,
16170x63,
16180x2d,
16190x64,
16200x2d,
16210x72,
16220x78,
16230x2d,
16240x63,
16250x68,
16260x00,
16270x00,
16280x00,
16290x00,
16300x00,
16310x00,
16320x00,
16330x03,
16340x00,
16350x00,
16360x00,
16370x11,
16380x00,
16390x00,
16400x00,
16410x10,
16420x00,
16430x00,
16440x00,
16450x00,
16460x00,
16470x00,
16480x00,
16490x04,
16500x69,
16510x75,
16520x20,
16530x3d,
16540x20,
16550x28,
16560x2a,
16570x29,
16580x00,
16590x00,
16600x00,
16610x00,
16620x00,
16630x00,
16640x00,
16650x02,
16660x00,
16670x00,
16680x00,
16690x01,
16700x66,
16710x66,
16720x74,
16730x63,
16740x2d,
16750x64,
16760x2d,
16770x74,
16780x78,
16790x2d,
16800x63,
16810x68,
16820x00,
16830x00,
16840x00,
16850x00,
16860x00,
16870x00,
16880x00,
16890x03,
16900x00,
16910x00,
16920x00,
16930x11,
16940x00,
16950x00,
16960x00,
16970x10,
16980x00,
16990x00,
17000x00,
17010x00,
17020x00,
17030x00,
17040x00,
17050x04,
17060x69,
17070x75,
17080x20,
17090x3d,
17100x20,
17110x28,
17120x2a,
17130x29,
17140x00,
17150x00,
17160x00,
17170x00,
17180x00,
17190x00,
17200x00,
17210x02,
17220x00,
17230x00,
17240x00,
17250x01,
17260x66,
17270x66,
17280x74,
17290x63,
17300x2d,
17310x64,
17320x2d,
17330x72,
17340x78,
17350x2d,
17360x66,
17370x6c,
17380x6f,
17390x77,
17400x2d,
17410x69,
17420x64,
17430x00,
17440x00,
17450x00,
17460x00,
17470x00,
17480x00,
17490x03,
17500x00,
17510x00,
17520x00,
17530x11,
17540x00,
17550x00,
17560x00,
17570x10,
17580x00,
17590x00,
17600x00,
17610x00,
17620x00,
17630x00,
17640x00,
17650x08,
17660x69,
17670x75,
17680x20,
17690x3d,
17700x20,
17710x28,
17720x2a,
17730x29,
17740x00,
17750x00,
17760x00,
17770x00,
17780x00,
17790x00,
17800x00,
17810x02,
17820x00,
17830x00,
17840x00,
17850x01,
17860x66,
17870x66,
17880x74,
17890x63,
17900x2d,
17910x65,
17920x2d,
17930x72,
17940x78,
17950x2d,
17960x63,
17970x68,
17980x00,
17990x00,
18000x00,
18010x00,
18020x00,
18030x00,
18040x00,
18050x03,
18060x00,
18070x00,
18080x00,
18090x11,
18100x00,
18110x00,
18120x00,
18130x10,
18140x00,
18150x00,
18160x00,
18170x00,
18180x00,
18190x00,
18200x00,
18210x04,
18220x69,
18230x75,
18240x20,
18250x3d,
18260x20,
18270x28,
18280x2a,
18290x29,
18300x00,
18310x00,
18320x00,
18330x00,
18340x00,
18350x00,
18360x00,
18370x02,
18380x00,
18390x00,
18400x00,
18410x01,
18420x66,
18430x66,
18440x74,
18450x63,
18460x2d,
18470x65,
18480x2d,
18490x74,
18500x78,
18510x2d,
18520x63,
18530x68,
18540x00,
18550x00,
18560x00,
18570x00,
18580x00,
18590x00,
18600x00,
18610x03,
18620x00,
18630x00,
18640x00,
18650x11,
18660x00,
18670x00,
18680x00,
18690x10,
18700x00,
18710x00,
18720x00,
18730x00,
18740x00,
18750x00,
18760x00,
18770x04,
18780x69,
18790x75,
18800x20,
18810x3d,
18820x20,
18830x28,
18840x2a,
18850x29,
18860x00,
18870x00,
18880x00,
18890x00,
18900x00,
18910x00,
18920x00,
18930x02,
18940x00,
18950x00,
18960x00,
18970x01,
18980x66,
18990x66,
19000x74,
19010x63,
19020x2d,
19030x65,
19040x2d,
19050x72,
19060x78,
19070x2d,
19080x66,
19090x6c,
19100x6f,
19110x77,
19120x2d,
19130x69,
19140x64,
19150x00,
19160x00,
19170x00,
19180x00,
19190x00,
19200x00,
19210x03,
19220x00,
19230x00,
19240x00,
19250x11,
19260x00,
19270x00,
19280x00,
19290x10,
19300x00,
19310x00,
19320x00,
19330x00,
19340x00,
19350x00,
19360x00,
19370x08,
19380x69,
19390x75,
19400x20,
19410x3d,
19420x20,
19430x28,
19440x2a,
19450x29,
19460x00,
19470x00,
19480x00,
19490x00,
19500x00,
19510x00,
19520x00,
19530x02,
19540x00,
19550x00,
19560x00,
19570x01,
19580x66,
19590x66,
19600x74,
19610x63,
19620x2d,
19630x66,
19640x2d,
19650x72,
19660x78,
19670x2d,
19680x63,
19690x68,
19700x00,
19710x00,
19720x00,
19730x00,
19740x00,
19750x00,
19760x00,
19770x03,
19780x00,
19790x00,
19800x00,
19810x11,
19820x00,
19830x00,
19840x00,
19850x10,
19860x00,
19870x00,
19880x00,
19890x00,
19900x00,
19910x00,
19920x00,
19930x04,
19940x69,
19950x75,
19960x20,
19970x3d,
19980x20,
19990x28,
20000x2a,
20010x29,
20020x00,
20030x00,
20040x00,
20050x00,
20060x00,
20070x00,
20080x00,
20090x02,
20100x00,
20110x00,
20120x00,
20130x01,
20140x66,
20150x66,
20160x74,
20170x63,
20180x2d,
20190x66,
20200x2d,
20210x74,
20220x78,
20230x2d,
20240x63,
20250x68,
20260x00,
20270x00,
20280x00,
20290x00,
20300x00,
20310x00,
20320x00,
20330x03,
20340x00,
20350x00,
20360x00,
20370x11,
20380x00,
20390x00,
20400x00,
20410x10,
20420x00,
20430x00,
20440x00,
20450x00,
20460x00,
20470x00,
20480x00,
20490x04,
20500x69,
20510x75,
20520x20,
20530x3d,
20540x20,
20550x28,
20560x2a,
20570x29,
20580x00,
20590x00,
20600x00,
20610x00,
20620x00,
20630x00,
20640x00,
20650x02,
20660x00,
20670x00,
20680x00,
20690x01,
20700x66,
20710x66,
20720x74,
20730x63,
20740x2d,
20750x66,
20760x2d,
20770x72,
20780x78,
20790x2d,
20800x66,
20810x6c,
20820x6f,
20830x77,
20840x2d,
20850x69,
20860x64,
20870x00,
20880x00,
20890x00,
20900x00,
20910x00,
20920x00,
20930x03,
20940x00,
20950x00,
20960x00,
20970x11,
20980x00,
20990x00,
21000x00,
21010x10,
21020x00,
21030x00,
21040x00,
21050x00,
21060x00,
21070x00,
21080x00,
21090x08,
21100x69,
21110x75,
21120x20,
21130x3d,
21140x20,
21150x28,
21160x2a,
21170x29,
21180x00,
21190x00,
21200x00,
21210x00,
21220x00,
21230x00,
21240x00,
21250x02,
21260x00,
21270x00,
21280x00,
21290x01,
21300x70,
21310x61,
21320x73,
21330x73,
21340x2d,
21350x72,
21360x78,
21370x2d,
21380x63,
21390x68,
21400x00,
21410x00,
21420x00,
21430x00,
21440x00,
21450x03,
21460x00,
21470x00,
21480x00,
21490x11,
21500x00,
21510x00,
21520x00,
21530x10,
21540x00,
21550x00,
21560x00,
21570x00,
21580x00,
21590x00,
21600x00,
21610x18,
21620x69,
21630x75,
21640x20,
21650x3d,
21660x20,
21670x28,
21680x2a,
21690x29,
21700x00,
21710x00,
21720x00,
21730x00,
21740x00,
21750x00,
21760x00,
21770x02,
21780x00,
21790x00,
21800x00,
21810x01,
21820x70,
21830x61,
21840x73,
21850x73,
21860x2d,
21870x74,
21880x78,
21890x2d,
21900x63,
21910x68,
21920x00,
21930x00,
21940x00,
21950x00,
21960x00,
21970x03,
21980x00,
21990x00,
22000x00,
22010x11,
22020x00,
22030x00,
22040x00,
22050x10,
22060x00,
22070x00,
22080x00,
22090x00,
22100x00,
22110x00,
22120x00,
22130x09,
22140x69,
22150x75,
22160x20,
22170x3d,
22180x20,
22190x28,
22200x2a,
22210x29,
22220x00,
22230x00,
22240x00,
22250x00,
22260x00,
22270x00,
22280x00,
22290x02,
22300x00,
22310x00,
22320x00,
22330x01,
22340x70,
22350x61,
22360x73,
22370x73,
22380x2d,
22390x72,
22400x78,
22410x2d,
22420x66,
22430x6c,
22440x6f,
22450x77,
22460x2d,
22470x69,
22480x64,
22490x00,
22500x00,
22510x00,
22520x00,
22530x03,
22540x00,
22550x00,
22560x00,
22570x11,
22580x00,
22590x00,
22600x00,
22610x10,
22620x00,
22630x00,
22640x00,
22650x00,
22660x00,
22670x00,
22680x00,
22690x20,
22700x69,
22710x75,
22720x20,
22730x3d,
22740x20,
22750x28,
22760x2a,
22770x29,
22780x00,
22790x00,
22800x00,
22810x00,
22820x00,
22830x00,
22840x00,
22850x02,
22860x00,
22870x00,
22880x00,
22890x01,
22900x71,
22910x6d,
22920x73,
22930x73,
22940x2d,
22950x71,
22960x6d,
22970x31,
22980x2d,
22990x72,
23000x78,
23010x2d,
23020x63,
23030x68,
23040x00,
23050x00,
23060x00,
23070x00,
23080x00,
23090x03,
23100x00,
23110x00,
23120x00,
23130x11,
23140x00,
23150x00,
23160x00,
23170x10,
23180x00,
23190x00,
23200x00,
23210x00,
23220x00,
23230x00,
23240x00,
23250x20,
23260x69,
23270x75,
23280x20,
23290x3d,
23300x20,
23310x28,
23320x2a,
23330x29,
23340x00,
23350x00,
23360x00,
23370x00,
23380x00,
23390x00,
23400x00,
23410x02,
23420x00,
23430x00,
23440x00,
23450x01,
23460x71,
23470x6d,
23480x73,
23490x73,
23500x2d,
23510x71,
23520x6d,
23530x31,
23540x2d,
23550x74,
23560x78,
23570x2d,
23580x63,
23590x68,
23600x00,
23610x00,
23620x00,
23630x00,
23640x00,
23650x03,
23660x00,
23670x00,
23680x00,
23690x11,
23700x00,
23710x00,
23720x00,
23730x10,
23740x00,
23750x00,
23760x00,
23770x00,
23780x00,
23790x00,
23800x00,
23810x20,
23820x69,
23830x75,
23840x20,
23850x3d,
23860x20,
23870x28,
23880x2a,
23890x29,
23900x00,
23910x00,
23920x00,
23930x00,
23940x00,
23950x00,
23960x00,
23970x02,
23980x00,
23990x00,
24000x00,
24010x01,
24020x71,
24030x6d,
24040x73,
24050x73,
24060x2d,
24070x71,
24080x6d,
24090x31,
24100x2d,
24110x72,
24120x78,
24130x2d,
24140x66,
24150x6c,
24160x6f,
24170x77,
24180x2d,
24190x69,
24200x64,
24210x00,
24220x00,
24230x00,
24240x00,
24250x03,
24260x00,
24270x00,
24280x00,
24290x11,
24300x00,
24310x00,
24320x00,
24330x10,
24340x00,
24350x00,
24360x00,
24370x00,
24380x00,
24390x00,
24400x00,
24410x40,
24420x69,
24430x75,
24440x20,
24450x3d,
24460x20,
24470x28,
24480x2a,
24490x29,
24500x00,
24510x00,
24520x00,
24530x00,
24540x00,
24550x00,
24560x00,
24570x02,
24580x00,
24590x00,
24600x00,
24610x01,
24620x71,
24630x6d,
24640x73,
24650x73,
24660x2d,
24670x71,
24680x6d,
24690x32,
24700x2d,
24710x72,
24720x78,
24730x2d,
24740x63,
24750x68,
24760x00,
24770x00,
24780x00,
24790x00,
24800x00,
24810x03,
24820x00,
24830x00,
24840x00,
24850x11,
24860x00,
24870x00,
24880x00,
24890x10,
24900x00,
24910x00,
24920x00,
24930x00,
24940x00,
24950x00,
24960x00,
24970x20,
24980x69,
24990x75,
25000x20,
25010x3d,
25020x20,
25030x28,
25040x2a,
25050x29,
25060x00,
25070x00,
25080x00,
25090x00,
25100x00,
25110x00,
25120x00,
25130x02,
25140x00,
25150x00,
25160x00,
25170x01,
25180x71,
25190x6d,
25200x73,
25210x73,
25220x2d,
25230x71,
25240x6d,
25250x32,
25260x2d,
25270x74,
25280x78,
25290x2d,
25300x63,
25310x68,
25320x00,
25330x00,
25340x00,
25350x00,
25360x00,
25370x03,
25380x00,
25390x00,
25400x00,
25410x11,
25420x00,
25430x00,
25440x00,
25450x10,
25460x00,
25470x00,
25480x00,
25490x00,
25500x00,
25510x00,
25520x00,
25530x20,
25540x69,
25550x75,
25560x20,
25570x3d,
25580x20,
25590x28,
25600x2a,
25610x29,
25620x00,
25630x00,
25640x00,
25650x00,
25660x00,
25670x00,
25680x00,
25690x02,
25700x00,
25710x00,
25720x00,
25730x01,
25740x71,
25750x6d,
25760x73,
25770x73,
25780x2d,
25790x71,
25800x6d,
25810x32,
25820x2d,
25830x72,
25840x78,
25850x2d,
25860x66,
25870x6c,
25880x6f,
25890x77,
25900x2d,
25910x69,
25920x64,
25930x00,
25940x00,
25950x00,
25960x00,
25970x03,
25980x00,
25990x00,
26000x00,
26010x11,
26020x00,
26030x00,
26040x00,
26050x10,
26060x00,
26070x00,
26080x00,
26090x00,
26100x00,
26110x00,
26120x00,
26130x40,
26140x69,
26150x75,
26160x20,
26170x3d,
26180x20,
26190x28,
26200x2a,
26210x29,
26220x00,
26230x00,
26240x00,
26250x00,
26260x00,
26270x00,
26280x00,
26290x02,
26300x00,
26310x00,
26320x00,
26330x01,
26340x62,
26350x63,
26360x70,
26370x2d,
26380x72,
26390x78,
26400x2d,
26410x63,
26420x68,
26430x00,
26440x00,
26450x00,
26460x00,
26470x00,
26480x00,
26490x03,
26500x00,
26510x00,
26520x00,
26530x11,
26540x00,
26550x00,
26560x00,
26570x10,
26580x00,
26590x00,
26600x00,
26610x00,
26620x00,
26630x00,
26640x00,
26650x08,
26660x69,
26670x75,
26680x20,
26690x3d,
26700x20,
26710x28,
26720x2a,
26730x29,
26740x00,
26750x00,
26760x00,
26770x00,
26780x00,
26790x00,
26800x00,
26810x02,
26820x00,
26830x00,
26840x00,
26850x01,
26860x62,
26870x63,
26880x70,
26890x2d,
26900x74,
26910x78,
26920x2d,
26930x63,
26940x68,
26950x00,
26960x00,
26970x00,
26980x00,
26990x00,
27000x00,
27010x03,
27020x00,
27030x00,
27040x00,
27050x11,
27060x00,
27070x00,
27080x00,
27090x10,
27100x00,
27110x00,
27120x00,
27130x00,
27140x00,
27150x00,
27160x00,
27170x08,
27180x69,
27190x75,
27200x20,
27210x3d,
27220x20,
27230x28,
27240x2a,
27250x29,
27260x00,
27270x00,
27280x00,
27290x00,
27300x00,
27310x00,
27320x00,
27330x02,
27340x00,
27350x00,
27360x00,
27370x01,
27380x62,
27390x63,
27400x70,
27410x2d,
27420x72,
27430x78,
27440x2d,
27450x66,
27460x6c,
27470x6f,
27480x77,
27490x2d,
27500x69,
27510x64,
27520x00,
27530x00,
27540x00,
27550x00,
27560x00,
27570x03,
27580x00,
27590x00,
27600x00,
27610x11,
27620x00,
27630x00,
27640x00,
27650x10,
27660x00,
27670x00,
27680x00,
27690x00,
27700x00,
27710x00,
27720x00,
27730x40,
27740x69,
27750x75,
27760x20,
27770x3d,
27780x20,
27790x28,
27800x2a,
27810x29,
27820x00,
27830x00,
27840x00,
27850x00,
27860x00,
27870x00,
27880x00,
27890x02,
27900x00,
27910x00,
27920x00,
27930x02,
27940x00,
27950x00,
27960x00,
27970x01,
27980x70,
27990x61,
28000x00,
28010x00,
28020x00,
28030x00,
28040x00,
28050x01,
28060x70,
28070x61,
28080x2d,
28090x6c,
28100x75,
28110x74,
28120x00,
28130x00,
28140x00,
28150x00,
28160x00,
28170x03,
28180x00,
28190x00,
28200x00,
28210x11,
28220x00,
28230x00,
28240x00,
28250x10,
28260x00,
28270x00,
28280x00,
28290x00,
28300x00,
28310x00,
28320x00,
28330x05,
28340x69,
28350x75,
28360x20,
28370x3d,
28380x20,
28390x28,
28400x2a,
28410x29,
28420x00,
28430x00,
28440x00,
28450x00,
28460x00,
28470x00,
28480x00,
28490x02,
28500x00,
28510x00,
28520x00,
28530x01,
28540x70,
28550x61,
28560x2d,
28570x66,
28580x69,
28590x72,
28600x6d,
28610x77,
28620x61,
28630x72,
28640x65,
28650x00,
28660x00,
28670x00,
28680x00,
28690x03,
28700x00,
28710x00,
28720x00,
28730x11,
28740x00,
28750x00,
28760x00,
28770x10,
28780x00,
28790x00,
28800x00,
28810x00,
28820x00,
28830x00,
28840x00,
28850x01,
28860x69,
28870x75,
28880x20,
28890x3d,
28900x20,
28910x28,
28920x2a,
28930x29,
28940x00,
28950x00,
28960x00,
28970x00,
28980x00,
28990x00,
29000x00,
29010x02,
29020x00,
29030x00,
29040x00,
29050x02,
29060x00,
29070x00,
29080x00,
29090x02,
29100x00,
29110x00,
29120x00,
29130x09,
29140x76,
29150x61,
29160x6c,
29170x69,
29180x64,
29190x2d,
29200x69,
29210x6e,
29220x73,
29230x74,
29240x61,
29250x6e,
29260x63,
29270x65,
29280x73,
29290x00,
29300x61,
29310x73,
29320x73,
29330x69,
29340x67,
29350x6e,
29360x6d,
29370x65,
29380x6e,
29390x74,
29400x73,
29410x00,
2942};
diff --git a/ti/runtime/pktlib/test/k2h/c66/bios/testconfigk2h.cfg b/ti/runtime/pktlib/test/k2h/c66/bios/testconfigk2h.cfg
new file mode 100644
index 0000000..4d94351
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2h/c66/bios/testconfigk2h.cfg
@@ -0,0 +1,176 @@
1/*
2 * Copyright 2011 by Texas Instruments Incorporated.
3 *
4 * All rights reserved. Property of Texas Instruments Incorporated.
5 * Restricted rights to use, duplicate or disclose this code are
6 * granted through contract.
7 *
8 */
9
10/* THIS FILE WAS GENERATED BY ti.sysbios.genx */
11
12environment['xdc.cfg.check.fatal'] = 'false';
13
14/* Load and use the various BIOS modules. */
15var Memory = xdc.useModule('xdc.runtime.Memory');
16var BIOS = xdc.useModule('ti.sysbios.BIOS');
17var HWI = xdc.useModule('ti.sysbios.family.c64p.Hwi');
18var CPINTC = xdc.useModule('ti.sysbios.family.c66.tci66xx.CpIntc');
19var ECM = xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
20var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
21var HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
22var Task = xdc.useModule('ti.sysbios.knl.Task');
23var Idle = xdc.useModule('ti.sysbios.knl.Idle');
24var SEM = xdc.useModule('ti.sysbios.knl.Semaphore');
25var Log = xdc.useModule('xdc.runtime.Log');
26var Diags = xdc.useModule('xdc.runtime.Diags');
27
28var Program = xdc.useModule('xdc.cfg.Program');
29// The size of the executable's initial stack
30Program.stack= 0x1500;
31 // The size of the executable's initial system stack
32//Program.sysStack = 0x1000;
33
34
35/* Load and use the CPPI, QMSS & CSL packages */
36var devType = "k2h"
37var Csl = xdc.useModule('ti.csl.Settings');
38Csl.deviceType = devType;
39var Cppi = xdc.loadPackage('ti.drv.cppi');
40var Qmss = xdc.loadPackage('ti.drv.qmss');
41
42/* DEVICE-SPECIFIC: Load & Use the PDK Resource Manager */
43var RM = xdc.loadPackage('ti.drv.rm');
44
45/* Load and use the PKTLIB Module */
46var Pktlib = xdc.loadPackage('ti.runtime.pktlib');
47
48
49/* Load and use the System Package */
50var System = xdc.useModule('xdc.runtime.System');
51SysStd = xdc.useModule('xdc.runtime.SysStd');
52System.SupportProxy = SysStd;
53
54/* Load and use the IPC packages */
55var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');
56var Settings = xdc.module('ti.sdo.ipc.family.Settings');
57var ListMP = xdc.useModule('ti.sdo.ipc.ListMP');
58var GateMP = xdc.useModule('ti.sdo.ipc.GateMP');
59var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
60SharedRegion.translate = false;
61var HeapMemMP = xdc.useModule('ti.sdo.ipc.heaps.HeapMemMP');
62var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
63
64var memmap = Program.cpu.memoryMap;
65
66/* Setup the list of processors that will use the IPC Shared Heaps */
67MultiProc.setConfig(null, ["CORE0", "CORE1" ]);
68
69/* Synchronize all processors (this will be done in Ipc_start) */
70Ipc.procSync = Ipc.ProcSync_ALL;
71
72/* To avoid wasting shared memory for Notify and MessageQ transports */
73for (var i = 0; i < MultiProc.numProcessors; i++) {
74 Ipc.setEntryMeta({
75 remoteProcId: i,
76 setupNotify: false,
77 setupMessageQ: false,
78 });
79}
80
81/*
82 * Enable Event Groups here and registering of ISR for specific GEM INTC is done
83 * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs
84 */
85ECM.eventGroupHwiNum[0] = 7;
86ECM.eventGroupHwiNum[1] = 8;
87ECM.eventGroupHwiNum[2] = 9;
88ECM.eventGroupHwiNum[3] = 10;
89
90/************************* NDK relevant configuration *************************/
91
92/* Load the PA package */
93var Pa = xdc.useModule('ti.drv.pa.Settings');
94
95
96/*
97** Allow storing of task names. By default if you name a task with a friendly display name it will not be saved
98** to conserve RAM. This must be set to true to allow it. We use friendly names on the Task List display.
99*/
100Task.common$.namedInstance = true;
101
102/********************************************************************************************************************
103* Define hooks and static tasks that will always be running. *
104 ********************************************************************************************************************/
105
106/*
107** If you are using RTSC configuration with NDK 2.2 and above, this is done by default, else
108** register hooks so that the stack can track all Task creation
109Task.common$.namedInstance = true;
110Task.addHookSet ({ registerFxn: '&NDK_hookInit', createFxn: '&NDK_hookCreate', });
111
112var Clock = xdc.useModule ('ti.sysbios.knl.Clock');
113
114/*
115** Sets up the exception log so you can read it with ROV in CCS
116*/
117var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
118var Exc = xdc.useModule('ti.sysbios.family.c64p.Exception');
119Exc.common$.logger = LoggerBuf.create();
120Exc.enablePrint = true; /* prints exception details to the CCS console */
121
122/************************* NDK relevant configuration End *************************/
123
124/* Define a variable to set the MAR mode for MSMCSRAM as all cacheable */
125var Cache = xdc.useModule('ti.sysbios.family.c66.Cache');
126
127/*
128** Create a Heap in Core Local L2 Memory.
129*/
130var heapMemParams = new HeapMem.Params();
131heapMemParams.size = 32768;
132heapMemParams.sectionName = "systemHeap";
133Program.global.heap0 = HeapMem.create(heapMemParams);
134
135/* This is the default memory heap. */
136Memory.defaultHeapInstance = Program.global.heap0;
137
138/* MSMC Memory Heap: Put in MSMC_SHARED section */
139SharedRegion.setEntryMeta(0,
140 { base: 0x0C010000,
141 len: 0x00070000,
142 ownerProcId: 0,
143 isValid: true,
144 name: "sharemem",
145 });
146
147Program.sectMap["sharedL2"] = "L2SRAM";
148Program.sectMap["systemHeap"] = "L2SRAM";
149Program.sectMap[".sysmem"] = "L2SRAM";
150Program.sectMap[".args"] = "L2SRAM";
151Program.sectMap[".cio"] = "L2SRAM";
152Program.sectMap[".far"] = "L2SRAM";
153Program.sectMap[".rodata"] = "L2SRAM";
154Program.sectMap[".neardata"] = "L2SRAM";
155Program.sectMap[".init_array"] = "L2SRAM";
156Program.sectMap[".cinit"] = "L2SRAM";
157Program.sectMap[".bss"] = "L2SRAM";
158Program.sectMap[".const"] = "L2SRAM";
159Program.sectMap[".text"] = "MSMCSRAM";
160Program.sectMap[".code"] = "MSMCSRAM";
161Program.sectMap[".switch"] = "L2SRAM";
162Program.sectMap[".data"] = "L2SRAM";
163Program.sectMap[".far:taskStackSection"] = "L2SRAM";
164Program.sectMap[".stack"] = "L2SRAM";
165Program.sectMap[".fardata"] = "L2SRAM";
166Program.sectMap[".args"] = "L2SRAM";
167Program.sectMap[".plt"] = "L2SRAM";
168Program.sectMap[".vecs"] = "L2SRAM";
169
170/* Enable BIOS Task Scheduler */
171BIOS.taskEnabled = true;
172
173/*
174 * @(#) ti.sysbios.genx; 2, 0, 0, 0,275; 4-29-2009 15:45:06; /db/vtree/library/trees/avala/avala-k25x/src/
175 */
176
diff --git a/ti/runtime/pktlib/test/k2k/c66/bios/pktlib_DspOnlyk2kTestProject.txt b/ti/runtime/pktlib/test/k2k/c66/bios/pktlib_DspOnlyk2kTestProject.txt
new file mode 100644
index 0000000..0d666fc
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2k/c66/bios/pktlib_DspOnlyk2kTestProject.txt
@@ -0,0 +1,14 @@
1-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/README.txt"
2-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/main.c"
3-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/grl.c"
4-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/policy_dsp-only.c"
5-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/pktlib_test.c"
6-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/osal.c"
7-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2h/c66/bios/linker.cmd"
8-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/src/pktlib.c"
9-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/test_sharedHeaps.c"
10-ccs.linkFile "PKTLIB_INSTALL_PATH/ti/runtime/pktlib/test/k2k/c66/bios/testconfigk2h.cfg"
11-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/cppi/device/k2h/src/cppi_device.c"
12-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/qmss/device/k2h/src/qmss_device.c"
13-ccs.setCompilerOptions "-DDEVICE_K2K -mv6600 -g --diag_warning=225 -I${PDK_INSTALL_PATH}/ti/drv/cppi -I${PDK_INSTALL_PATH}/ti/drv/qmss -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib/test -I${PKTLIB_INSTALL_PATH}/ti/runtime/pktlib "
14-rtsc.enableRtsc
diff --git a/ti/runtime/pktlib/test/k2k/c66/bios/testconfigk2k.cfg b/ti/runtime/pktlib/test/k2k/c66/bios/testconfigk2k.cfg
new file mode 100644
index 0000000..0837c04
--- /dev/null
+++ b/ti/runtime/pktlib/test/k2k/c66/bios/testconfigk2k.cfg
@@ -0,0 +1,176 @@
1/*
2 * Copyright 2011 by Texas Instruments Incorporated.
3 *
4 * All rights reserved. Property of Texas Instruments Incorporated.
5 * Restricted rights to use, duplicate or disclose this code are
6 * granted through contract.
7 *
8 */
9
10/* THIS FILE WAS GENERATED BY ti.sysbios.genx */
11
12environment['xdc.cfg.check.fatal'] = 'false';
13
14/* Load and use the various BIOS modules. */
15var Memory = xdc.useModule('xdc.runtime.Memory');
16var BIOS = xdc.useModule('ti.sysbios.BIOS');
17var HWI = xdc.useModule('ti.sysbios.family.c64p.Hwi');
18var CPINTC = xdc.useModule('ti.sysbios.family.c66.tci66xx.CpIntc');
19var ECM = xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
20var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
21var HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
22var Task = xdc.useModule('ti.sysbios.knl.Task');
23var Idle = xdc.useModule('ti.sysbios.knl.Idle');
24var SEM = xdc.useModule('ti.sysbios.knl.Semaphore');
25var Log = xdc.useModule('xdc.runtime.Log');
26var Diags = xdc.useModule('xdc.runtime.Diags');
27
28var Program = xdc.useModule('xdc.cfg.Program');
29// The size of the executable's initial stack
30Program.stack= 0x1500;
31 // The size of the executable's initial system stack
32//Program.sysStack = 0x1000;
33
34
35/* Load and use the CPPI, QMSS & CSL packages */
36var devType = "k2k"
37var Csl = xdc.useModule('ti.csl.Settings');
38Csl.deviceType = devType;
39var Cppi = xdc.loadPackage('ti.drv.cppi');
40var Qmss = xdc.loadPackage('ti.drv.qmss');
41
42/* DEVICE-SPECIFIC: Load & Use the PDK Resource Manager */
43var RM = xdc.loadPackage('ti.drv.rm');
44
45/* Load and use the PKTLIB Module */
46var Pktlib = xdc.loadPackage('ti.runtime.pktlib');
47
48
49/* Load and use the System Package */
50var System = xdc.useModule('xdc.runtime.System');
51SysStd = xdc.useModule('xdc.runtime.SysStd');
52System.SupportProxy = SysStd;
53
54/* Load and use the IPC packages */
55var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');
56var Settings = xdc.module('ti.sdo.ipc.family.Settings');
57var ListMP = xdc.useModule('ti.sdo.ipc.ListMP');
58var GateMP = xdc.useModule('ti.sdo.ipc.GateMP');
59var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
60SharedRegion.translate = false;
61var HeapMemMP = xdc.useModule('ti.sdo.ipc.heaps.HeapMemMP');
62var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
63
64var memmap = Program.cpu.memoryMap;
65
66/* Setup the list of processors that will use the IPC Shared Heaps */
67MultiProc.setConfig(null, ["CORE0", "CORE1" ]);
68
69/* Synchronize all processors (this will be done in Ipc_start) */
70Ipc.procSync = Ipc.ProcSync_ALL;
71
72/* To avoid wasting shared memory for Notify and MessageQ transports */
73for (var i = 0; i < MultiProc.numProcessors; i++) {
74 Ipc.setEntryMeta({
75 remoteProcId: i,
76 setupNotify: false,
77 setupMessageQ: false,
78 });
79}
80
81/*
82 * Enable Event Groups here and registering of ISR for specific GEM INTC is done
83 * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs
84 */
85ECM.eventGroupHwiNum[0] = 7;
86ECM.eventGroupHwiNum[1] = 8;
87ECM.eventGroupHwiNum[2] = 9;
88ECM.eventGroupHwiNum[3] = 10;
89
90/************************* NDK relevant configuration *************************/
91
92/* Load the PA package */
93var Pa = xdc.useModule('ti.drv.pa.Settings');
94
95
96/*
97** Allow storing of task names. By default if you name a task with a friendly display name it will not be saved
98** to conserve RAM. This must be set to true to allow it. We use friendly names on the Task List display.
99*/
100Task.common$.namedInstance = true;
101
102/********************************************************************************************************************
103* Define hooks and static tasks that will always be running. *
104 ********************************************************************************************************************/
105
106/*
107** If you are using RTSC configuration with NDK 2.2 and above, this is done by default, else
108** register hooks so that the stack can track all Task creation
109Task.common$.namedInstance = true;
110Task.addHookSet ({ registerFxn: '&NDK_hookInit', createFxn: '&NDK_hookCreate', });
111
112var Clock = xdc.useModule ('ti.sysbios.knl.Clock');
113
114/*
115** Sets up the exception log so you can read it with ROV in CCS
116*/
117var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
118var Exc = xdc.useModule('ti.sysbios.family.c64p.Exception');
119Exc.common$.logger = LoggerBuf.create();
120Exc.enablePrint = true; /* prints exception details to the CCS console */
121
122/************************* NDK relevant configuration End *************************/
123
124/* Define a variable to set the MAR mode for MSMCSRAM as all cacheable */
125var Cache = xdc.useModule('ti.sysbios.family.c66.Cache');
126
127/*
128** Create a Heap in Core Local L2 Memory.
129*/
130var heapMemParams = new HeapMem.Params();
131heapMemParams.size = 32768;
132heapMemParams.sectionName = "systemHeap";
133Program.global.heap0 = HeapMem.create(heapMemParams);
134
135/* This is the default memory heap. */
136Memory.defaultHeapInstance = Program.global.heap0;
137
138/* MSMC Memory Heap: Put in MSMC_SHARED section */
139SharedRegion.setEntryMeta(0,
140 { base: 0x0C010000,
141 len: 0x00070000,
142 ownerProcId: 0,
143 isValid: true,
144 name: "sharemem",
145 });
146
147Program.sectMap["sharedL2"] = "L2SRAM";
148Program.sectMap["systemHeap"] = "L2SRAM";
149Program.sectMap[".sysmem"] = "L2SRAM";
150Program.sectMap[".args"] = "L2SRAM";
151Program.sectMap[".cio"] = "L2SRAM";
152Program.sectMap[".far"] = "L2SRAM";
153Program.sectMap[".rodata"] = "L2SRAM";
154Program.sectMap[".neardata"] = "L2SRAM";
155Program.sectMap[".init_array"] = "L2SRAM";
156Program.sectMap[".cinit"] = "L2SRAM";
157Program.sectMap[".bss"] = "L2SRAM";
158Program.sectMap[".const"] = "L2SRAM";
159Program.sectMap[".text"] = "MSMCSRAM";
160Program.sectMap[".code"] = "MSMCSRAM";
161Program.sectMap[".switch"] = "L2SRAM";
162Program.sectMap[".data"] = "L2SRAM";
163Program.sectMap[".far:taskStackSection"] = "L2SRAM";
164Program.sectMap[".stack"] = "L2SRAM";
165Program.sectMap[".fardata"] = "L2SRAM";
166Program.sectMap[".args"] = "L2SRAM";
167Program.sectMap[".plt"] = "L2SRAM";
168Program.sectMap[".vecs"] = "L2SRAM";
169
170/* Enable BIOS Task Scheduler */
171BIOS.taskEnabled = true;
172
173/*
174 * @(#) ti.sysbios.genx; 2, 0, 0, 0,275; 4-29-2009 15:45:06; /db/vtree/library/trees/avala/avala-k25x/src/
175 */
176
diff --git a/ti/runtime/pktlib/test/osal.c b/ti/runtime/pktlib/test/osal.c
index d74c614..18da152 100644
--- a/ti/runtime/pktlib/test/osal.c
+++ b/ti/runtime/pktlib/test/osal.c
@@ -88,6 +88,45 @@ uint32_t cppiFreeCounter = 0;
88uint8_t globalMemoryPool[OSAL_POOL_SIZE]; 88uint8_t globalMemoryPool[OSAL_POOL_SIZE];
89uint32_t index = 0; 89uint32_t index = 0;
90 90
91
92/**********************************************************************
93 ************************** Global Variables **************************
94 **********************************************************************/
95uint32_t rmMallocCounter = 0;
96uint32_t rmFreeCounter = 0;
97
98/**********************************************************************
99 *************************** OSAL Functions **************************
100 **********************************************************************/
101
102/* FUNCTION PURPOSE: Allocates memory
103 ***********************************************************************
104 * DESCRIPTION: The function is used to allocate a memory block of the
105 * specified size.
106 */
107void* Osal_rmMalloc (uint32_t num_bytes)
108{
109 Error_Block errorBlock;
110
111 /* Increment the allocation counter. */
112 rmMallocCounter++;
113
114 /* Allocate memory. */
115 return Memory_alloc(NULL, num_bytes, 0, &errorBlock);
116}
117
118/* FUNCTION PURPOSE: Frees memory
119 ***********************************************************************
120 * DESCRIPTION: The function is used to free a memory block of the
121 * specified size.
122 */
123void Osal_rmFree (void *ptr, uint32_t size)
124{
125 /* Increment the free counter. */
126 rmFreeCounter++;
127 Memory_free(NULL, ptr, size);
128}
129
91/********************************************************************** 130/**********************************************************************
92 *************************** OSAL Functions ************************** 131 *************************** OSAL Functions **************************
93 **********************************************************************/ 132 **********************************************************************/
diff --git a/ti/runtime/pktlib/test/main.c b/ti/runtime/pktlib/test/pktlib_test.c
index b6ee199..df97d33 100644
--- a/ti/runtime/pktlib/test/main.c
+++ b/ti/runtime/pktlib/test/pktlib_test.c
@@ -1,5 +1,5 @@
1/** 1/**
2 * @file main.c 2 * @file pktlib_test.c
3 * 3 *
4 * @brief 4 * @brief
5 * Test Code to test the packet library 5 * Test Code to test the packet library
@@ -37,98 +37,15 @@
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 * 38 *
39 */ 39 */
40#include <stdio.h> 40#include <pktlib_test.h>
41#include <stdint.h>
42
43/* BIOS/XDC Include Files. */
44#include <xdc/std.h>
45#include <xdc/cfg/global.h>
46#include <xdc/runtime/IHeap.h>
47#include <xdc/runtime/System.h>
48#include <xdc/runtime/Error.h>
49#include <xdc/runtime/Memory.h>
50#include <ti/sysbios/BIOS.h>
51#include <ti/sysbios/knl/Task.h>
52#include <ti/sysbios/heaps/HeapBuf.h>
53#include <ti/sysbios/heaps/HeapMem.h>
54#include <ti/sysbios/family/c64p/Hwi.h>
55
56/* IPC includes */
57#include <ti/ipc/GateMP.h>
58#include <ti/ipc/Ipc.h>
59#include <ti/ipc/ListMP.h>
60#include <ti/ipc/SharedRegion.h>
61
62/* Packet Library Include Files. */
63#include <ti/runtime/pktlib/pktlib.h>
64
65/* CSL Include Files */
66#include <ti/csl/csl_chip.h>
67#include <ti/csl/csl_tsc.h>
68#include <ti/csl/csl_cacheAux.h>
69#include <ti/csl/csl_mpuAux.h>
70
71/* CPPI/QMSS Include Files. */
72#include <ti/drv/cppi/cppi_drv.h>
73#include <ti/drv/cppi/cppi_desc.h>
74#include <ti/drv/qmss/qmss_drv.h>
75#include <ti/drv/qmss/qmss_firmware.h>
76
77/* PDK Resource Manager Include Files. */
78#include <ti/drv/rm/rm.h>
79 41
80/**********************************************************************
81 ************************** LOCAL Definitions *************************
82 **********************************************************************/
83
84/* This is the Number of host descriptors which are available & configured
85 * in the memory region for this test. */
86#define NUM_HOST_DESC 256
87
88/* This is the size of each descriptor. */
89#define SIZE_HOST_DESC 64
90
91/* Maximum Data Size of each buffer */
92#define MAX_DATA_SIZE 1024
93
94/* Core responsible for system initialization. */
95#define SYSTEM_INIT_CORE 0
96
97/* Number of descriptors which are available in the shared memory */
98#define SHARED_NUM_HOST_DESC 32
99
100/* This is the size of each descriptor in the shared memory */
101#define SHARED_SIZE_HOST_DESC 64
102
103/* Maximum Data Size of each buffer in the shared memory */
104#define SHARED_MAX_DATA_SIZE 256
105 42
106/********************************************************************** 43/**********************************************************************
107 ************************** Global Variables ************************** 44 ************************** Global Variables **************************
108 **********************************************************************/ 45 **********************************************************************/
109 46
110/* Memory allocated for the buffers is located in shared memory. */
111uint8_t memoryBuffer[NUM_HOST_DESC][MAX_DATA_SIZE];
112
113/* Memory allocated for the buffers is located in shared memory. */
114#pragma DATA_SECTION (sharedMemoryBuffer, ".appSharedMemory");
115uint8_t sharedMemoryBuffer[SHARED_NUM_HOST_DESC][SHARED_MAX_DATA_SIZE];
116
117/* Memory allocated for the descriptors. This is 16 bit aligned. */
118#pragma DATA_ALIGN (host_region, 16)
119uint8_t host_region[NUM_HOST_DESC * SIZE_HOST_DESC];
120
121/* QMSS device specific configuration */
122extern Qmss_GlobalConfigParams qmssGblCfgParams;
123
124/* CPPI device specific configuration */
125extern Cppi_GlobalConfigParams cppiGblCfgParams;
126
127/* Resource Manager Table */
128extern Rm_Resource rmResourceTable[];
129
130/* Gobal Memory Heap created for the test. */ 47/* Gobal Memory Heap created for the test. */
131Pktlib_HeapHandle myHeap; 48extern Pktlib_HeapHandle myHeap;
132 49
133/********************************************************************** 50/**********************************************************************
134 ************************* Extern Definitions ************************* 51 ************************* Extern Definitions *************************
@@ -172,7 +89,7 @@ uint32_t l2_global_address (uint32_t addr)
172 * @retval 89 * @retval
173 * Error - NULL 90 * Error - NULL
174 */ 91 */
175static uint8_t* myMalloc(uint32_t size) 92uint8_t* myMalloc(uint32_t size)
176{ 93{
177 Error_Block errorBlock; 94 Error_Block errorBlock;
178 95
@@ -194,7 +111,7 @@ static uint8_t* myMalloc(uint32_t size)
194 * @retval 111 * @retval
195 * Not Applicable. 112 * Not Applicable.
196 */ 113 */
197static void myFree(uint8_t* ptr, uint32_t size) 114void myFree(uint8_t* ptr, uint32_t size)
198{ 115{
199 Memory_free (NULL, ptr, size); 116 Memory_free (NULL, ptr, size);
200} 117}
@@ -210,7 +127,7 @@ static void myFree(uint8_t* ptr, uint32_t size)
210 * @retval 127 * @retval
211 * Error - NULL 128 * Error - NULL
212 */ 129 */
213static uint8_t* mySharedMemoryMalloc(uint32_t size) 130uint8_t* mySharedMemoryMalloc(uint32_t size)
214{ 131{
215 Error_Block errorBlock; 132 Error_Block errorBlock;
216 133
@@ -232,99 +149,11 @@ static uint8_t* mySharedMemoryMalloc(uint32_t size)
232 * @retval 149 * @retval
233 * Not Applicable. 150 * Not Applicable.
234 */ 151 */
235static void mySharedMemoryFree(uint8_t* ptr, uint32_t size) 152void mySharedMemoryFree(uint8_t* ptr, uint32_t size)
236{ 153{
237 Memory_free ((xdc_runtime_IHeap_Handle)SharedRegion_getHeap(0), ptr, size); 154 Memory_free ((xdc_runtime_IHeap_Handle)SharedRegion_getHeap(0), ptr, size);
238} 155}
239 156
240/**
241 * @b Description
242 * @n
243 * System Initialization Code. This is added here only for illustrative
244 * purposes and needs to be invoked once during initialization at
245 * system startup.
246 *
247 * @retval
248 * Success - 0
249 * @retval
250 * Error - <0
251 */
252static int32_t system_init (void)
253{
254 int32_t result;
255 Qmss_MemRegInfo memRegInfo;
256 Qmss_InitCfg qmssInitConfig;
257
258 /* Initialize the QMSS Configuration block. */
259 memset (&qmssInitConfig, 0, sizeof (Qmss_InitCfg));
260
261 /* Initialize the Host Region. */
262 memset ((void *)&host_region, 0, sizeof(host_region));
263
264 /* Set up the linking RAM. Use the internal Linking RAM.
265 * LLD will configure the internal linking RAM address and maximum internal linking RAM size if
266 * a value of zero is specified. Linking RAM1 is not used */
267 qmssInitConfig.linkingRAM0Base = 0;
268 qmssInitConfig.linkingRAM0Size = 0;
269 qmssInitConfig.linkingRAM1Base = 0;
270 qmssInitConfig.maxDescNum = 1024;
271
272#ifdef xdc_target__bigEndian
273 /* PDSP Configuration: Big Endian */
274 qmssInitConfig.pdspFirmware[0].pdspId = Qmss_PdspId_PDSP1;
275 qmssInitConfig.pdspFirmware[0].firmware = &acc48_be;
276 qmssInitConfig.pdspFirmware[0].size = sizeof (acc48_be);
277#else
278 /* PDSP Configuration: Little Endian */
279 qmssInitConfig.pdspFirmware[0].pdspId = Qmss_PdspId_PDSP1;
280 qmssInitConfig.pdspFirmware[0].firmware = &acc48_le;
281 qmssInitConfig.pdspFirmware[0].size = sizeof (acc48_le);
282#endif
283
284 /* Get the RM Handle and pass it. */
285 qmssGblCfgParams.qmRmHandle = Rm_getHandle();
286
287 /* Initialize Queue Manager Sub System */
288 result = Qmss_init (&qmssInitConfig, &qmssGblCfgParams);
289 if (result != QMSS_SOK)
290 {
291 printf ("Error initializing Queue Manager SubSystem error code : %d\n", result);
292 return -1;
293 }
294
295 /* Initialize the memory region configuration. */
296 memset ((void *)&memRegInfo, 0, sizeof(Qmss_MemRegInfo));
297
298 /* Memory Region 1 Configuration for single core heaps. */
299 memRegInfo.descBase = (uint32_t *)l2_global_address((uint32_t)host_region);
300 memRegInfo.descSize = SIZE_HOST_DESC;
301 memRegInfo.descNum = NUM_HOST_DESC;
302 memRegInfo.manageDescFlag = Qmss_ManageDesc_MANAGE_DESCRIPTOR;
303 memRegInfo.memRegion = Qmss_MemRegion_MEMORY_REGION1;
304
305 /* Set the start index correctly to account for the shared descriptors. */
306 memRegInfo.startIndex = 0;
307
308 /* Initialize and inset the memory region. */
309 result = Qmss_insertMemoryRegion (&memRegInfo);
310 if (result < QMSS_SOK)
311 {
312 printf ("Error inserting memory region: %d\n", result);
313 return -1;
314 }
315
316 /* Initialize CPPI CPDMA */
317 result = Cppi_init (&cppiGblCfgParams);
318 if (result != CPPI_SOK)
319 {
320 printf ("Error initializing Queue Manager SubSystem error code : %d\n", result);
321 return -1;
322 }
323
324 /* CPPI and Queue Manager are initialized. */
325 printf ("Debug: Queue Manager and CPPI are initialized.\n");
326 return 0;
327}
328 157
329/** 158/**
330 * @b Description 159 * @b Description
@@ -2349,7 +2178,7 @@ static int32_t test_pktLibraryFree(void)
2349 2178
2350 /* This is my application queue. */ 2179 /* This is my application queue. */
2351 appQueueInfo.qMgr = 0; 2180 appQueueInfo.qMgr = 0;
2352 appQueueInfo.qNum = 900; 2181 appQueueInfo.qNum = APP_QUEUE1;
2353 2182
2354 /* Get the application queue handle.*/ 2183 /* Get the application queue handle.*/
2355 appQueueHnd = Qmss_getQueueHandle(appQueueInfo); 2184 appQueueHnd = Qmss_getQueueHandle(appQueueInfo);
@@ -2404,7 +2233,7 @@ static int32_t test_pktLibraryFree(void)
2404 2233
2405 /* This is my application queue. */ 2234 /* This is my application queue. */
2406 appQueueInfo.qMgr = 0; 2235 appQueueInfo.qMgr = 0;
2407 appQueueInfo.qNum = 900; 2236 appQueueInfo.qNum = APP_QUEUE1;
2408 2237
2409 /* Get the application queue handle.*/ 2238 /* Get the application queue handle.*/
2410 appQueueHnd = Qmss_getQueueHandle(appQueueInfo); 2239 appQueueHnd = Qmss_getQueueHandle(appQueueInfo);
@@ -2541,6 +2370,13 @@ int32_t test_pktLibSuperHeaps(void)
2541 } 2370 }
2542 System_printf ("Debug: Super Heap has been created with handle 0x%p\n", superHeapHandle); 2371 System_printf ("Debug: Super Heap has been created with handle 0x%p\n", superHeapHandle);
2543 2372
2373
2374 /* Get the current heap statistics. */
2375 Pktlib_getHeapStats(memberHeaps[0], &startStats[0]);
2376 Pktlib_getHeapStats(memberHeaps[1], &startStats[1]);
2377 Pktlib_getHeapStats(memberHeaps[2], &startStats[2]);
2378
2379
2544 /* Check: If we can find the Super Heap. */ 2380 /* Check: If we can find the Super Heap. */
2545 if (Pktlib_findHeapByName("SuperHeap") != superHeapHandle) 2381 if (Pktlib_findHeapByName("SuperHeap") != superHeapHandle)
2546 { 2382 {
@@ -3691,7 +3527,7 @@ static int32_t test_pktLibDeleteHeaps (void)
3691 * @retval 3527 * @retval
3692 * Error - <0 3528 * Error - <0
3693 */ 3529 */
3694static int32_t test_pktLibrary(void) 3530int32_t test_pktLibrary(void)
3695{ 3531{
3696 if (Pktlib_findHeapByName("My Test Heap") != myHeap) 3532 if (Pktlib_findHeapByName("My Test Heap") != myHeap)
3697 return -1; 3533 return -1;
@@ -3741,7 +3577,7 @@ static int32_t test_pktLibrary(void)
3741 * @retval 3577 * @retval
3742 * Error - <0 3578 * Error - <0
3743 */ 3579 */
3744static int32_t benchmark_pktLibrary(void) 3580int32_t benchmark_pktLibrary(void)
3745{ 3581{
3746 Ti_Pkt* pkt0; 3582 Ti_Pkt* pkt0;
3747 Ti_Pkt* pkt1; 3583 Ti_Pkt* pkt1;
@@ -4002,254 +3838,3 @@ static int32_t benchmark_pktLibrary(void)
4002 return 0; 3838 return 0;
4003} 3839}
4004 3840
4005/**
4006 * @b Description
4007 * @n
4008 * Entry Point for the test code.
4009 *
4010 * @retval
4011 * 0 - Success
4012 * @retval
4013 * <0 - Error
4014 */
4015int main (void)
4016{
4017 uint32_t coreNum;
4018 Pktlib_HeapCfg heapCfg;
4019 int32_t errCode;
4020 uint32_t startAddress;
4021 uint32_t endAddress;
4022 uint32_t permissions;
4023 uint32_t index;
4024 CSL_MpuHandle hMpu;
4025 Rm_Result rmResult;
4026 Qmss_StartCfg qmssCfg;
4027 Cppi_StartCfg cppiCfg;
4028
4029 /* Get the core Number. */
4030 coreNum = CSL_chipReadReg (CSL_CHIP_DNUM);
4031
4032 /* Synchronize all the cores. */
4033 Ipc_start();
4034
4035 /* Is this core the system initialization core? */
4036 if (coreNum == SYSTEM_INIT_CORE)
4037 {
4038 /* Debug Message: */
4039 System_printf ("****************************************\n");
4040 System_printf ("****** Packet Library Unit Test ********\n");
4041 System_printf ("****************************************\n");
4042
4043 /* Initialize the resource manager with the specified table. */
4044 rmResult = Rm_init (&rmResourceTable[0]);
4045 if (rmResult != RM_OK)
4046 {
4047 System_printf ("Error: Initialization of the RM failed error code: %d\n", rmResult);
4048 return -1;
4049 }
4050 System_printf ("Debug: RM Initialization was successful\n");
4051
4052 /* YES. Only the system initialization core is responsible for system initialization
4053 * and executing all the non shared heap tests. */
4054 if (system_init() < 0)
4055 return -1;
4056
4057 /* Start the QMSS Driver: For the TMDXEVM6614LXE we start the QMSS with
4058 * the resource manager we had instantiated. For the other devices we
4059 * simply start with no PDK resource manager. */
4060 /* Display the Version Information for all the PDK Drivers */
4061 System_printf ("Debug: %s\n", Rm_getVersionStr());
4062 System_printf ("Debug: %s\n", Qmss_getVersionStr());
4063 System_printf ("Debug: %s\n", Cppi_getVersionStr());
4064
4065 /* Initialize the configurations */
4066 memset ((void *)&qmssCfg, 0, sizeof(Qmss_StartCfg));
4067
4068 /* Populate the QMSS configuration. */
4069 qmssCfg.rmHandle = Rm_getHandle();
4070
4071 /* Start the QMSS with the specified configuration. */
4072 if (Qmss_startCfg(&qmssCfg) != QMSS_SOK)
4073 return -1;
4074
4075 memset ((void *)&cppiCfg, 0, sizeof(Cppi_StartCfg));
4076
4077 /* Populate the CPPI configuration. */
4078 cppiCfg.rmHandle = Rm_getHandle();
4079
4080 /* Start the CPPI with the resource manager. */
4081 Cppi_startCfg(&cppiCfg);
4082
4083 /* Open the handle to the MPU2: Ensure the permissions are passed to the Queue Manager
4084 * Memory sections. If this is NOT done the threshold feature for queue will not work. */
4085 hMpu = CSL_MPU_Open (2);
4086 for (index = 0; index < 16; index++)
4087 {
4088 /* Get the MPU Programmability information. */
4089 CSL_MPU_GetProgrammableAddressInfo (hMpu, 0, &startAddress, &endAddress, &permissions);
4090
4091 /* Enable all the permissions. */
4092 permissions |= CSL_FMK (MPU_FIXED_MPPA_UX, 1) |
4093 CSL_FMK (MPU_FIXED_MPPA_UW, 1) |
4094 CSL_FMK (MPU_FIXED_MPPA_UR, 1) |
4095 CSL_FMK (MPU_FIXED_MPPA_SX, 1) |
4096 CSL_FMK (MPU_FIXED_MPPA_SW, 1) |
4097 CSL_FMK (MPU_FIXED_MPPA_SR, 1);
4098
4099 /* Set the MPU Programmability information. */
4100 CSL_MPU_SetProgrammableAddressInfo (hMpu, 0, startAddress, endAddress, permissions);
4101
4102 /* Get the MPU Programmability information. */
4103 CSL_MPU_GetProgrammableAddressInfo (hMpu, 0, &startAddress, &endAddress, &permissions);
4104
4105 /* Display it */
4106 System_printf ("Debug: Start Address 0x%x\n", startAddress);
4107 System_printf ("Debug: End Address 0x%x\n", endAddress);
4108 System_printf ("Debug: Permissions 0x%x\n", permissions);
4109 }
4110
4111 /* Initialize the Shared Heaps. */
4112 Pktlib_sharedHeapInit();
4113
4114 /* Initialize the heap configuration */
4115 memset((void *)&heapCfg, 0 , sizeof(Pktlib_HeapCfg));
4116
4117 /* Populate the heap configuration */
4118 heapCfg.name = "My Test Heap";
4119 heapCfg.memRegion = Qmss_MemRegion_MEMORY_REGION1;
4120 heapCfg.sharedHeap = 0;
4121 heapCfg.useStarvationQueue = 0;
4122 heapCfg.dataBufferSize = MAX_DATA_SIZE;
4123 heapCfg.numPkts = 16;
4124 heapCfg.numZeroBufferPackets = 64;
4125 heapCfg.dataBufferPktThreshold = 0;
4126 heapCfg.zeroBufferPktThreshold = 0;
4127 heapCfg.heapInterfaceTable.data_malloc = myMalloc;
4128 heapCfg.heapInterfaceTable.data_free = myFree;
4129
4130 /* Create the Local Heap with specified configuration. */
4131 myHeap = Pktlib_createHeap(&heapCfg, &errCode);
4132 if (myHeap == NULL)
4133 {
4134 System_printf ("Error: Unable to create the heap error code %d\n", errCode);
4135 return -1;
4136 }
4137
4138 /* Test the packet Library API */
4139 if (test_pktLibrary() < 0)
4140 {
4141 System_printf ("Error: PACKET Library Unit Testing FAILED\n");
4142 return -1;
4143 }
4144
4145 /* Benchmark the Packet Library with a use-case. */
4146 if (benchmark_pktLibrary() < 0)
4147 {
4148 System_printf ("Error: BENCHMARKING Packet Library FAILED\n");
4149 return -1;
4150 }
4151
4152 {
4153 Pktlib_HeapHandle sharedHeapHandle;
4154 Pktlib_HeapStats startStats;
4155 Pktlib_HeapStats endStats;
4156
4157 /* Initialize the heap configuration */
4158 memset((void *)&heapCfg, 0 , sizeof(Pktlib_HeapCfg));
4159
4160 /* Populate the heap configuration */
4161 heapCfg.name = "MySharedHeap";
4162 heapCfg.memRegion = Qmss_MemRegion_MEMORY_REGION1;
4163 heapCfg.sharedHeap = 1;
4164 heapCfg.useStarvationQueue = 0;
4165 heapCfg.dataBufferSize = SHARED_MAX_DATA_SIZE;
4166 heapCfg.numPkts = 16;
4167 heapCfg.numZeroBufferPackets = 16;
4168 heapCfg.dataBufferPktThreshold = 0;
4169 heapCfg.zeroBufferPktThreshold = 0;
4170 heapCfg.heapInterfaceTable.data_malloc = mySharedMemoryMalloc;
4171 heapCfg.heapInterfaceTable.data_free = mySharedMemoryFree;
4172
4173 /* Create Shared Heap with specified configuration. */
4174 sharedHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
4175 if (sharedHeapHandle == NULL)
4176 {
4177 System_printf ("Error: Unable to create the shared heap error code %d\n", errCode);
4178 return -1;
4179 }
4180
4181 /* Get the heap statistics: Before we run the tests. */
4182 Pktlib_getHeapStats(sharedHeapHandle, &startStats);
4183
4184 /* Execute the Shared Heap Tests */
4185 if (test_pktLibrarySharedHeaps(sharedHeapHandle) < 0)
4186 {
4187 System_printf ("Error: SHARED HEAP Packet Library FAILED\n");
4188 return -1;
4189 }
4190
4191 /* Get the heap statistics: At the end of the test */
4192 Pktlib_getHeapStats(sharedHeapHandle, &endStats);
4193
4194 /* Check for memory leaks: */
4195 if ((startStats.numPacketsinGarbage != endStats.numPacketsinGarbage) ||
4196 (startStats.numFreeDataPackets != endStats.numFreeDataPackets) ||
4197 (startStats.numZeroBufferPackets != endStats.numZeroBufferPackets))
4198 return -1;
4199 }
4200
4201 /* Debug Message: */
4202 System_printf ("Debug: All tests passed\n");
4203
4204 /* Test passed. */
4205 return 0;
4206 }
4207 else
4208 {
4209 /* Start the DSP/ARM Resource Manager for each core: */
4210
4211 /* Initialize the resource manager with the specified table. */
4212 rmResult = Rm_start ();
4213 if (rmResult != RM_OK)
4214 {
4215 System_printf ("Error: RM Startup failed error code: %d\n", rmResult);
4216 return -1;
4217 }
4218
4219 /* On each core we need to start the QMSS before we can proceed with using it. */
4220
4221 /* Display the Version Information for all the PDK Drivers */
4222 System_printf ("Debug: %s\n", Rm_getVersionStr());
4223 System_printf ("Debug: %s\n", Qmss_getVersionStr());
4224 System_printf ("Debug: %s\n", Cppi_getVersionStr());
4225
4226
4227 /* Initialize the configurations */
4228 memset ((void *)&qmssCfg, 0, sizeof(Qmss_StartCfg));
4229
4230 /* Populate the QMSS configuration. */
4231 qmssCfg.rmHandle = Rm_getHandle();
4232
4233 /* Start the QMSS with the specified configuration. */
4234 if (Qmss_startCfg(&qmssCfg) != QMSS_SOK)
4235 return -1;
4236
4237
4238 /* Initialize the CPPI Configuration. */
4239 memset ((void *)&cppiCfg, 0, sizeof(Cppi_StartCfg));
4240
4241 /* Populate the CPPI configuration. */
4242 cppiCfg.rmHandle = Rm_getHandle();
4243
4244 /* Start the CPPI with the resource manager. */
4245 Cppi_startCfg(&cppiCfg);
4246
4247 /* Test the Packet Library Shared Heaps. */
4248 if (test_pktLibrarySharedHeaps(NULL) < 0)
4249 return -1;
4250
4251 /* Debug Message: */
4252 System_printf ("Debug: Shared Heap Test Passed.\n");
4253 }
4254}
4255
diff --git a/ti/runtime/pktlib/test/pktlib_test.h b/ti/runtime/pktlib/test/pktlib_test.h
new file mode 100644
index 0000000..00d3258
--- /dev/null
+++ b/ti/runtime/pktlib/test/pktlib_test.h
@@ -0,0 +1,102 @@
1/**
2 * @file pktlibTest.h
3 *
4 * @brief
5 * Test Code to test the packet library
6 *
7 * \par
8 * NOTE:
9 * (C) Copyright 2012 Texas Instruments, Inc.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 *
18 * Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the
21 * distribution.
22 *
23 * Neither the name of Texas Instruments Incorporated nor the names of
24 * its contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 *
39 */
40
41#ifndef __PKTLIB_TEST_H__
42#define __PKTLIB_TEST_H__
43#include <stdio.h>
44#include <stdint.h>
45
46/* BIOS/XDC Include Files. */
47#include <xdc/std.h>
48#include <xdc/cfg/global.h>
49#include <xdc/runtime/IHeap.h>
50#include <xdc/runtime/System.h>
51#include <xdc/runtime/Error.h>
52#include <xdc/runtime/Memory.h>
53#include <ti/sysbios/BIOS.h>
54#include <ti/sysbios/knl/Task.h>
55#include <ti/sysbios/heaps/HeapBuf.h>
56#include <ti/sysbios/heaps/HeapMem.h>
57#include <ti/sysbios/family/c64p/Hwi.h>
58
59/* Packet Library Include Files. */
60#include <ti/runtime/pktlib/pktlib.h>
61
62/* CSL Include Files */
63#include <ti/csl/csl_chip.h>
64#include <ti/csl/csl_tsc.h>
65#include <ti/csl/csl_cacheAux.h>
66
67
68
69/* This is the Number of host descriptors which are available & configured
70 * in the memory region for this test. */
71#define NUM_HOST_DESC 256
72
73/* This is the size of each descriptor. */
74#define SIZE_HOST_DESC 64
75
76/* Maximum Data Size of each buffer */
77#define MAX_DATA_SIZE 1024
78
79/* Core responsible for system initialization. */
80#define SYSTEM_INIT_CORE 0
81
82/* Number of descriptors which are available in the shared memory */
83#define SHARED_NUM_HOST_DESC 32
84
85/* This is the size of each descriptor in the shared memory */
86#define SHARED_SIZE_HOST_DESC 64
87
88/* Maximum Data Size of each buffer in the shared memory */
89#define SHARED_MAX_DATA_SIZE 256
90
91/* Hardcoded Queue being used within PKTLIB */
92#define APP_QUEUE1 910
93#define APP_QUEUE2 1000
94
95uint8_t* myMalloc(uint32_t size);
96void myFree(uint8_t* ptr, uint32_t size);
97uint8_t* mySharedMemoryMalloc(uint32_t size);
98void mySharedMemoryFree(uint8_t* ptr, uint32_t size);
99int32_t benchmark_pktLibrary(void);
100int32_t test_pktLibrary(void);
101uint32_t l2_global_address (uint32_t addr);
102#endif
diff --git a/ti/runtime/pktlib/test/test_sharedHeaps.c b/ti/runtime/pktlib/test/test_sharedHeaps.c
index c073aec..8442973 100644
--- a/ti/runtime/pktlib/test/test_sharedHeaps.c
+++ b/ti/runtime/pktlib/test/test_sharedHeaps.c
@@ -45,7 +45,7 @@
45 45
46/* CSL Chip Functional Layer */ 46/* CSL Chip Functional Layer */
47#include <ti/csl/csl_chip.h> 47#include <ti/csl/csl_chip.h>
48 48#include <pktlib_test.h>
49/********************************************************************** 49/**********************************************************************
50 *********************** Test Shared Heap Functions ******************* 50 *********************** Test Shared Heap Functions *******************
51 **********************************************************************/ 51 **********************************************************************/
@@ -63,7 +63,7 @@
63int32_t test_pktLibrarySharedHeaps(Pktlib_HeapHandle sharedHeapHandle) 63int32_t test_pktLibrarySharedHeaps(Pktlib_HeapHandle sharedHeapHandle)
64{ 64{
65 uint32_t coreNum; 65 uint32_t coreNum;
66 Ti_Pkt* pkt; 66 Ti_Pkt* pkt,testPkt;
67 Ti_Pkt* pClonePkt; 67 Ti_Pkt* pClonePkt;
68 Qmss_QueueHnd queueHandle; 68 Qmss_QueueHnd queueHandle;
69 uint8_t isAllocated; 69 uint8_t isAllocated;
@@ -75,8 +75,8 @@ int32_t test_pktLibrarySharedHeaps(Pktlib_HeapHandle sharedHeapHandle)
75 /* Debug Message: */ 75 /* Debug Message: */
76 printf ("------------------------------------------------------\n"); 76 printf ("------------------------------------------------------\n");
77 77
78 /* Open a well-defined application queue (in this case 1000) */ 78 /* Open a well-defined application queue (in this case APP_QUEUE2) */
79 queueHandle = Qmss_queueOpen(Qmss_QueueType_GENERAL_PURPOSE_QUEUE, 1000, &isAllocated); 79 queueHandle = Qmss_queueOpen(Qmss_QueueType_GENERAL_PURPOSE_QUEUE, APP_QUEUE2, &isAllocated);
80 if (queueHandle == NULL) 80 if (queueHandle == NULL)
81 return NULL; 81 return NULL;
82 82
@@ -128,6 +128,13 @@ int32_t test_pktLibrarySharedHeaps(Pktlib_HeapHandle sharedHeapHandle)
128 } 128 }
129 else 129 else
130 { 130 {
131 testPkt = Pktlib_allocPacket(sharedHeapHandle, packetSize);
132 if (testPkt == NULL)
133 return -1;
134
135 /* Cleanup the packet we are done. */
136 Pktlib_freePacket(testPkt);
137
131 /* This is the system initialization core: */ 138 /* This is the system initialization core: */
132 printf ("Debug (Core %d): Waiting for the packet to arrive.\n", coreNum); 139 printf ("Debug (Core %d): Waiting for the packet to arrive.\n", coreNum);
133 140
diff --git a/ti/runtime/pktlib/tiSetenv.bat b/ti/runtime/pktlib/tiSetenv.bat
new file mode 100644
index 0000000..4316c89
--- /dev/null
+++ b/ti/runtime/pktlib/tiSetenv.bat
@@ -0,0 +1,54 @@
1@REM ******************************************************************************
2@REM * FILE PURPOSE: Wrapper for setting PDK setup environment
3@REM ******************************************************************************
4@REM * FILE NAME: tiSetenv.bat
5@REM *
6@REM * DESCRIPTION:
7@REM * Configures and sets up the Build Environment for NWAL based on internal TI
8@REM * tool chain locations
9@REM *
10@REM * Copyright (C) 2011 Texas Instruments, Inc.
11@REM *****************************************************************************
12@echo off
13REM This is the base location for the various tools.
14
15@REM CODE GEN TOOL LOCATION. TO BE PROVIDED BY USER
16REM set C6X_GEN_INSTALL_PATH="C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.8"
17REM set C6X_GEN_INSTALL_PATH=t:\c6xx\cgen7_2_06\c6000\cgtools
18set C6X_GEN_INSTALL_PATH=T:\c6xx\cgen7_2_04\c6000\cgtools
19REM set C6X_GEN_INSTALL_PATH="C:/Program Files (x86)/Texas Instruments/C6000 Code Generation Tools 7.3.3"
20
21@REM XDC Tools location: Optional only needed for gmake. For msys or cygwin build not needed
22set XDC_INSTALL_PATH=t:/gen/xdc/xdctools_3_22_04_46
23REM set XDC_INSTALL_PATH=C:/ti/xdctools_3_23_03_53
24
25REM In the case of Linux based build only two steps required
26REM export PDK_INSTALL_PATH=$PWD
27REM export C6X_GEN_INSTALL_PATH="c:/Program Files/Texas Instruments/ccsv5/C6000 Code Generation Tools 7.2.4"
28
29@REM Environment Variable which control STATIC Analysis of the code
30set STATIC_ANALYZE_PATH=T:\gen\coverity\prevent-mingw-3.8.0
31
32set XDC_ECLIPSE_PLUGIN_INSTALL_PATH=T:/gen/xdc/xdc_eclipse_plugin_gen/20091203
33
34set CG_XML_BIN_INSTALL_PATH=T:\SDOApps\cg_xml\cg_xml_v2_20_00\bin
35set DOXYGEN_INSTALL_PATH=T:\Doxygen\doxygen\1.5.1-p1\bin
36set HTML_HELP_WORKSHOP_INSTALL_PATH=T:\Doxygen\HTML_Help_Workshop\10-01-2007
37set INSTALL_JAMMER_DIR=T:\gen\InstallJammer\v1_2_05
38set PDK_INSTALL_PATH="c:/ti/pdk_tci6614_1_0_0_11/packages"
39REM set PDK_INSTALL_PATH="c:/ti/pdk_tci6614_1_00_00_09/packages"
40set PKTLIB_INSTALL_PATH=C:/data/project/transport-SDK/pktlib
41
42:SUCCESS
43@echo on
44@echo PKTLIB Environment Configured for TI Shared Server
45@echo -----------------------------------------------
46@echo off
47goto DONE
48
49:ERROR
50@echo on
51@echo Error configuring PKTLIB Environment
52@echo -----------------------------------------------
53
54:DONE
diff --git a/ti/runtime/pktlib/tiSetenv_k2h.bat b/ti/runtime/pktlib/tiSetenv_k2h.bat
new file mode 100644
index 0000000..d74148c
--- /dev/null
+++ b/ti/runtime/pktlib/tiSetenv_k2h.bat
@@ -0,0 +1,51 @@
1@REM ******************************************************************************
2@REM * FILE PURPOSE: Wrapper for setting PDK setup environment
3@REM ******************************************************************************
4@REM * FILE NAME: tiSetenv.bat
5@REM *
6@REM * DESCRIPTION:
7@REM * Configures and sets up the Build Environment for NWAL based on internal TI
8@REM * tool chain locations
9@REM *
10@REM * Copyright (C) 2013 Texas Instruments, Inc.
11@REM *****************************************************************************
12@echo off
13REM This is the base location for the various tools.
14
15@REM CODE GEN TOOL LOCATION. TO BE PROVIDED BY USER
16set C6X_GEN_INSTALL_PATH=T:\c6xx\cgen7_2_04\c6000\cgtools
17
18@REM XDC Tools location: Optional only needed for gmake. For msys or cygwin build not needed
19REM set XDC_INSTALL_PATH=t:/gen/xdc/xdctools_3_22_04_46
20set XDC_INSTALL_PATH=C:/ti/xdctools_3_23_03_53
21
22REM In the case of Linux based build only two steps required
23REM export PDK_INSTALL_PATH=$PWD
24REM export C6X_GEN_INSTALL_PATH="c:/Program Files/Texas Instruments/ccsv5/C6000 Code Generation Tools 7.2.4"
25
26@REM Environment Variable which control STATIC Analysis of the code
27set STATIC_ANALYZE_PATH=T:\gen\coverity\prevent-mingw-3.8.0
28
29set XDC_ECLIPSE_PLUGIN_INSTALL_PATH=T:/gen/xdc/xdc_eclipse_plugin_gen/20091203
30
31set CG_XML_BIN_INSTALL_PATH=T:\SDOApps\cg_xml\cg_xml_v2_20_00\bin
32set DOXYGEN_INSTALL_PATH=T:\Doxygen\doxygen\1.5.1-p1\bin
33set HTML_HELP_WORKSHOP_INSTALL_PATH=T:\Doxygen\HTML_Help_Workshop\10-01-2007
34set INSTALL_JAMMER_DIR=T:\gen\InstallJammer\v1_2_05
35REM set PDK_INSTALL_PATH="C:/ti/pdk_keystone2_1_00_00_05/packages"
36set PDK_INSTALL_PATH="C:/data/project/keystone-2-csl-lld"
37set PKTLIB_INSTALL_PATH=C:/data/project/transport-SDK/pktlib
38set SOC=K2H
39:SUCCESS
40@echo on
41@echo PKTLIB Environment Configured for TI Shared Server
42@echo -----------------------------------------------
43@echo off
44goto DONE
45
46:ERROR
47@echo on
48@echo Error configuring PKTLIB Environment
49@echo -----------------------------------------------
50
51:DONE