Data Structures

linkcfgdefs.h File Reference


Detailed Description

Defines constants and interfaces for configuration of DSPLINK.

============================================================================

Path:
/gpp/inc/usr/
Version:
1.65.02.09 ============================================================================
Copyright:
Copyright (C) 2002-2012, Texas Instruments Incorporated - https://www.ti.com/

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

* Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ============================================================================

#include <dsplink.h>
#include <linkcfgdefs_os.h>
Include dependency graph for linkcfgdefs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  LINKCFG_Gpp_tag
struct  LINKCFG_Dsp_tag
struct  LINKCFG_MemEntry_tag
struct  CFG_LinkDrv_tag
struct  LINKCFG_Ips_tag
struct  LINKCFG_Pool_tag
struct  LINKCFG_DataDrv_tag
struct  LINKCFG_Mqt_tag
struct  LINKCFG_RingIo_tag
struct  LINKCFG_MpList_tag
struct  LINKCFG_Mpcs_tag
struct  LINKCFG_Log_tag
struct  LINKCFG_DspConfig_tag
struct  LINKCFG_Object_tag

Typedefs

LINKCFG_Gpp

This structure defines the configuration structure for the GPP.

============================================================================

Parameters:
nameName of GPP Processor.
maxMsgqsMaximum MSGQs that can be opened on the GPP.
maxChnlQueueMaximum Queue Length for all channels created on the GPP.
poolTableIdPOOL table ID to be used for intra-GPP communication. A value of -1 indicates that no POOL is required by the GPP.
numPoolsNumber of POOLs within the pool table for the GPP.
gppOsObjectPointer to the GPP OS-specific configuration object. ============================================================================
typedef struct LINKCFG_Gpp_tag LINKCFG_Gpp
LINKCFG_Dsp

This structure defines the configuration structure for the DSP.

============================================================================

Parameters:
nameName of DSP processor.
dspArchArchitecture of the DSP.
loaderNameName of loader to be used for loading the DSP executable.
autoStartAutoStart flag indicating whether a default DSP image should be loaded on startup. Currently not supported.
execNameName of executable to load in case autostart is used.
doDspCtrlIndicates whether DSP/BIOS LINK should do the dsp control for the DSP. This depends on the DSPLink boot mode chosen.
resumeAddrThe resume address after hibernating.
resetVectorAddress of reset vector of DSP.
resetCodeSizeSize of code at DSP Reset Vector.
maduSizeMinimum addressable unit on the DSP.
cpuFreqThe frequency at which the DSP is running (in KHz). Specify -1 if the cpuFreq is not to be set from GPP-side and the default DSP/BIOS setting is to be used.
endianEndianism info of DSP.
wordSwapIndicates whether words need to be swapped while writing into the memory for the DSP.
memTableIdTable number of the MEM entries for this DSP.
memEntriesNumber of entries in the MEM table.
linkDrvIdLink Driver table identifier for this DSP.
arg1Platform specific argument.
arg2Platform specific argument.
arg3Platform specific argument.
arg4Platform specific argument.
arg5Platform specific argument. ============================================================================
typedef struct LINKCFG_Dsp_tag LINKCFG_Dsp
LINKCFG_MemEntry

This structure defines an entry in the MEM table.

============================================================================

Parameters:
entryEntry number in the memory table.
nameName identifying the memory region.
physAddrPhysical address of the memory region.
dspVirtAddrDSP virtual address of the memory region.
gppVirtAddrGPP virtual address of the memory region. If specified as -1, the GPP virtual address is assumed to be invalid, and shall be set internally within the DSPLINK driver.
sizeSize of the memory region.
sharedFlag indicating whether the memory region is shared between GPP and DSP.
syncdFlag indicating whether the memory region is synchonized between GPP and DSP. ============================================================================
typedef struct LINKCFG_MemEntry_tag LINKCFG_MemEntry
LINKCFG_LinkDrv

This structure defines the configuration information for the physical link driver.

============================================================================

Parameters:
nameName of the physical link driver.
hshkPollCountPoll count to be used for the handshake between GPP and DSP. The GPP spins in a loop for number of iterations equal to the handshake poll count or till the DSP completes its handshake. A value of -1 indicates infinite wait.
memEntryMEM Entry for the memory area used by this physical link. This field is optional and can be specified as -1 in case a MEM entry is not required.
ipsTableIdIPS table ID.
numIpsEntriesNumber of IPS table entries for this link driver.
poolTableIdPOOL table ID.
numPoolsNumber of POOLs within the pool table for this link driver.
dataTableIdTable number of the data driver(s) used with this DSP.
numDataDriversNumber of data drivers used with this DSP.
mqtIdThe ID of the MQT which is to be used for this DSP.
ringIoTableIdTable number of the RINGIO object(s) for this DSP.
mplistTableIdTable number of the MPLIST object(s) for this DSP.
mpcsTableIdTable number of the MPCS object(s) for this DSP. ============================================================================
typedef struct CFG_LinkDrv_tag LINKCFG_LinkDrv
LINKCFG_Ips

This structure defines the configuration information for the Inter-processor Signaling Component.

============================================================================

Parameters:
nameName of the IPS component.
numIpsEventsNumber of events supported by the IPS.
memEntryMEM entry for the memory area used for this IPS component. This field is optional and can be specified as -1 in case a MEM entry is not required.
gppIntIdInterrupt Number to used by the IPS on GPP-side.
dspIntIdInterrupt Number to used by the IPS on DSP-side.
dspIntVectorIdInterrupt Vector Number to used by the IPS on DSP-side.
arg1First IPS-specific optional argument.
arg2Second IPS-specific optional argument. ============================================================================
typedef struct LINKCFG_Ips_tag LINKCFG_Ips
LINKCFG_Pool

This structure defines the configuration information for a buffer pool, from which buffers for use with DSPLINK can be allocated through the POOL interface(s).

============================================================================

Parameters:
nameName of the pool.
memEntryMEM Entry for the memory area used by this buffer pool. This field is optional and can be specified as -1 in case a MEM entry is not required.
poolSizeSize of the buffer pool.
ipsIdID of the IPS used (if any). A value of -1 indicates that no IPS is required by the pool.
ipsEventNoIPS Event number associated with POOL (if any). A value of -1 indicates that no IPS is required by the pool.
poolMemEntryPool memory region section ID.
arg1First optional pool-specific argument.
arg2Second optional pool-specific argument. ============================================================================
typedef struct LINKCFG_Pool_tag LINKCFG_Pool
LINKCFG_DataDrv

This structure defines the configuration structure for the data streaming driver using the CHNL component.

============================================================================

Parameters:
nameName of the data transfer driver.
baseChnlIdBase channel ID for this data driver.
numChannelsNumber of logical channels for this data driver.
maxBufSizeMaximum size of data buffer supported by this data driver. If no limit is imposed by the driver, a value of -1 can be specified.
memEntryMEM entry for the memory area for data streaming driver. This field is optional and can be specified as -1 in case a MEM entry is not required.
poolIdIdentifier for the pool from where buffers are allocated.
queuePerChnlBuffer Queue length on each channel supported by the data driver.
ipsIdID of the IPS to be used (if any). A value of -1 indicates that no IPS is required by the data driver.
ipsEventNoIPS Event number associated with data driver (if any). A value of -1 indicates that no IPS is required by the data driver.
arg1First optional data driver specific argument. The significance of this argument is specific to a data driver.
arg2Second optional data driver specific argument 2. The significance of this argument is specific to a data driver. ============================================================================
typedef struct LINKCFG_DataDrv_tag LINKCFG_DataDrv
LINKCFG_Mqt

This structure defines the configuration structure for the Message Queue Transport.

============================================================================

Parameters:
nameName of the MQT.
memEntryMEM entry id for the memory area used by this MQT. This field is optional and can be specified as -1 in case a MEM entry is not required.
maxMsgSizeMaximum size of message supported by MQT. May be -1 if there is no limit on maximum message size for the MQT.
ipsIdID of the IPS to be used (if any). A value of -1 indicates that no IPS is required by the MQT.
ipsEventNoIPS Event number associated with MQT (if any). A value of -1 indicates that no IPS is required by the MQT.
arg1First optional argument for this MQT. The significance of this argument is specific to the MQT.
arg2Second optional argument for this MQT. The significance of this argument is specific to the MQT. ============================================================================
typedef struct LINKCFG_Mqt_tag LINKCFG_Mqt
LINKCFG_RingIo

This structure defines the configuration structure for the RingIO component.

============================================================================

Parameters:
nameName of the RingIO.
memEntryMEM entry ID for the memory area used by this RingIO.
maxEntriesMaximum number of RingIO instances supported by the RingIO.
ipsIdID of the IPS to be used.
ipsEventNoIPS Event number associated with the RingIO. ============================================================================
typedef struct LINKCFG_RingIo_tag LINKCFG_RingIo
LINKCFG_MpList

This structure defines the configuration structure for the MPLIST component.

============================================================================

Parameters:
nameName of the MPLIST.
memEntryMEM entry ID for the memory area used by this MPLIST.
maxEntriesMaximum number of MPLIST instances supported by the MPLIST.
ipsIdID of the IPS to be used (if any). A value of -1 indicates that no IPS is required by the MPLIST.
ipsEventNoIPS Event number associated with MPLIST (if any). A value of -1 indicates that no IPS is required by the MPLIST. ============================================================================
typedef struct LINKCFG_MpList_tag LINKCFG_MpList
LINKCFG_Mpcs

This structure defines the configuration structure for the MPCS component.

============================================================================

Parameters:
nameName of the MPCS.
memEntryMEM entry ID for the memory area used by this MPCS.
maxEntriesMaximum number of MPCS instances supported by the MPCS.
ipsIdID of the IPS to be used (if any). A value of -1 indicates that no IPS is required by the MPCS.
ipsEventNoIPS Event number associated with MPCS (if any). A value of -1 indicates that no IPS is required by the MPCS. ============================================================================
typedef struct LINKCFG_Mpcs_tag LINKCFG_Mpcs
LINKCFG_Log

This structure defines the configuration structure for the LOG component.

============================================================================

Parameters:
gdMsgqPutGPP->DSP MSG Transfer - MSGQ_put call.
gdMsgqSendIntGPP->DSP MSG Transfer - GPP sends interrupt.
gdMsgqIsrGPP->DSP MSG Transfer - DSP receives interrupt.
gdMsgqQueGPP->DSP MSG Transfer - Message queued at DSP.
dgMsgqPutDSP->GPP MSG Transfer - MSGQ_put call.
dgMsgqSendIntDSP->GPP MSG Transfer - DSP sends interrupt.
dgMsgqIsrDSP->GPP MSG Transfer - GPP receives interrupt.
dgMsgqQueDSP->GPP MSG Transfer - Message queued at GPP.
gdChnlIssueStartGPP->DSP CHNL Transfer - Entering inside ISSUE call.
gdChnlIssueQueGPP->DSP CHNL Transfer - ISSUE: Buffer is queued in internal structure on GPP.
gdChnlIssueComplGPP->DSP CHNL Transfer - ISSUE call completed.
gdChnlXferStartGPP->DSP CHNL Transfer - Initiating a buffer transfer by GPP.
gdChnlXferProcessGPP->DSP CHNL Transfer - Actual transfer of buffer is going to take place.
gdChnlXferComplGPP->DSP CHNL Transfer - Buffer transfer is complete.
gdChnlReclStartGPP->DSP CHNL Transfer - Entering RECLAIM call.
gdChnlReclPendGPP->DSP CHNL Transfer - RECLAIM: Wait on a semaphore.
gdChnlReclPostGPP->DSP CHNL Transfer - RECLAIM: Posting the Semaphore.
gdChnlReclComplGPP->DSP CHNL Transfer - RECLAIM call completed.
dgChnlIssueQueDSP->GPP CHNL Transfer - ISSUE: Buffer is queued in internal structure on DSP.
dgChnlXferStartDSP->GPP CHNL Transfer - Initiating a buffer transfer by DSP.
dgChnlXferProcessDSP->GPP CHNL Transfer - Actual transfer of buffer is going to take place.
dgChnlXferComplDSP->GPP CHNL Transfer - Buffer transfer is complete.
dgChnlReclPendDSP->GPP CHNL Transfer - RECLAIM: Wait on a semaphore.
dgChnlReclPostDSP->GPP CHNL Transfer - RECLAIM: Posting the Semaphore.
msgIdRangeStartMSG ID range: lower limit.
msgIdRangeEndMSG ID range: upper limit. ============================================================================
typedef struct LINKCFG_Log_tag LINKCFG_Log
LINKCFG_DspConfig

Defines the object containing all configuration items for DSPs.

============================================================================

Parameters:
dspObjectDSP object.
numDrvsNumber of link Drv specified in configuration database.
linkDrvObjectsPointer to the array of link Drv objects.
numMemTablesNumber of MEM tables specified in configuration database.
memTablesPointer to the array of memory information table arrays.
numIpsTablesNumber of IPS tables.
ipsTablesPointer to the array of IPS table arrays.
numPoolTablesNumber of POOL tables.
poolTablesPointer to the array of POOL table arrays.
numDataTablesNumber of data tables.
dataTablesPointer to the array data table arrays.
numMqtsNumber of Message Queue Transports.
mqtObjectsPointer to the array of MQT objects.
numRingIoNumber of RingIO tables.
ringIoObjectsPointer to the array of RingIO tables.
numMpListNumber of MPLIST tables.
mplistObjectsPointer to the array of MPLIST tables.
numMpcsNumber of MPCS tables.
mpcsObjectsPointer to the array of MPCS tables.
logObjectPointer to the LOG object. ============================================================================
typedef struct
LINKCFG_DspConfig_tag 
LINKCFG_DspConfig
LINKCFG_Object

This structure defines the configuration structure for the system.

============================================================================

Parameters:
gppObjectPointer to the GPP specific configuration object.
linkObjectsDSP/BIOS LINK configuration structures. ============================================================================
typedef struct LINKCFG_Object_tag LINKCFG_Object

Enumerations

DSP_BootMode

This structure defines the configuration structure for the GPP.

============================================================================

Parameters:
DSP_BootMode_Boot_NoPwrThis is backward compatible with the default false i.e. DSPLINK_BOOT_MODE. Wherein DSPLink does not do power management of DSP PROC_attach will put DSP in local reset. It will not power up the DSP. PROC_start will set entry point for DSP i.e. c_int00 and release DSP from reset. PROC_stop will put DSP in local reset. PROC_detach will not power down the DSP.
DSP_BootMode_Boot_PwrThis is backward compatible with the default true i.e. DSPLINK_BOOT_MODE. Wherein DSPLink does power management of DSP PROC_attach will put DSP in local reset. It will power up the DSP. PROC_start will set entry point for DSP i.e. c_int00 and release DSP from reset. PROC_stop will put DSP in local reset. PROC_detach will power down the DSP.
DSP_BootMode_NoLoad_NoPwrThis is added to support DSPLINK_NOLOAD_MODE. PROC_attach will put DSP in local reset. It will not power up the DSP. PROC_start will set entry point for DSP i.e. c_int00 and release DSP from reset PROC_stop will put DSP in local reset. PROC_detach will not power down the DSP.
DSP_BootMode_NoLoad_PwrThis is added to support DSPLINK_NOLOAD_MODE. PROC_attach will put DSP in local reset. It will power up the DSP. PROC_start will set entry point for DSP i.e. c_int00 and release DSP from reset PROC_stop will put DSP in local reset. PROC_detach will power down the DSP.
DSP_BootMode_NoBootThis is added to support DSPLINK_NOBOOT_MODE PROC_attach will not put DSP in local reset. It will not power up the DSP. PROC_start will not set entry point for DSP i.e. c_int00 and not release DSP from reset PROC_stop will not put DSP in local reset. PROC_detach will not power down the DSP.

============================================================================

enum  DSP_BootMode {
  DSP_BootMode_Boot_NoPwr = 0x0,
  DSP_BootMode_Boot_Pwr,
  DSP_BootMode_NoLoad_NoPwr,
  DSP_BootMode_NoLoad_Pwr,
  DSP_BootMode_NoBoot
}
Endianism

Enumeration of data endianism.

============================================================================

Parameters:
Endianism_DefaultDefault endianism - no conversion required.
Endianism_BigBig endian.
Endianism_LittleLittle endian. ============================================================================
enum  Endianism {
  Endianism_Default = 1u,
  Endianism_Big = 2u,
  Endianism_Little = 3u
}
DspArch

Enumerates the various architectures of DSP supported by DSP/BIOS LINK.

============================================================================

Parameters:
DspArch_UnknownIt indicates that the architecture is not supported.
DspArch_C55xIt indicates that the architecture is C55x.
DspArch_C64xIt indicates that the architecture is C64x.
DspArch_C64x_Bios5It indicates that the architecture is C64x and the DSP OS version is DSP/BIOS 5.xx.
DspArch_C64x_Bios6It indicates that the architecture is C64x and the DSP OS version is DSP/BIOS 6.xx. ============================================================================
enum  DspArch {
  DspArch_Unknown = 0u,
  DspArch_C55x = 1u,
  DspArch_C64x = 2u,
  DspArch_C64x_Bios5 = 3u,
  DspArch_C64x_Bios6 = 4u
}

Typedef Documentation

typedef struct LINKCFG_Gpp_tag LINKCFG_Gpp
typedef struct LINKCFG_Dsp_tag LINKCFG_Dsp
typedef struct LINKCFG_Ips_tag LINKCFG_Ips
typedef struct LINKCFG_Mqt_tag LINKCFG_Mqt
typedef struct LINKCFG_Log_tag LINKCFG_Log

Enumeration Type Documentation

Enumerator:
DSP_BootMode_Boot_NoPwr 
DSP_BootMode_Boot_Pwr 
DSP_BootMode_NoLoad_NoPwr 
DSP_BootMode_NoLoad_Pwr 
DSP_BootMode_NoBoot 
enum Endianism
Enumerator:
Endianism_Default 
Endianism_Big 
Endianism_Little 
enum DspArch
Enumerator:
DspArch_Unknown 
DspArch_C55x 
DspArch_C64x 
DspArch_C64x_Bios5 
DspArch_C64x_Bios6 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2012, Texas Instruments Incorporated