This file provides support for the UDMAP Transfer Request (TR) functionality.
Go to the source code of this file.
UDMAP TR flags type | |
#define | CSL_UDMAP_TR_FLAGS_TYPE_1D_DATA_MOVE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_2D_DATA_MOVE ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_3D_DATA_MOVE ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE ((uint32_t) 3U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE_FORMATTING ((uint32_t) 4U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_4D_CACHE_WARM ((uint32_t) 5U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE ((uint32_t) 8U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING ((uint32_t) 9U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_2D_BLOCK_MOVE ((uint32_t) 10U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_2D_BLOCK_MOVE_REPACKING ((uint32_t) 11U) |
#define | CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING_INDIRECTION ((uint32_t) 15U) |
typedef uint32_t | CSL_UdmapTrFlagsType |
UDMAP TR flags event size | |
This enumerator specifies when an event is generated for each TR | |
#define | CSL_UDMAP_TR_FLAGS_EVENT_SIZE_COMPLETION ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FLAGS_EVENT_SIZE_ICNT1_DEC ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FLAGS_EVENT_SIZE_ICNT2_DEC ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FLAGS_EVENT_SIZE_ICNT3_DEC ((uint32_t) 3U) |
typedef uint32_t | CSL_UdmapTrFlagsEventSize |
UDMAP TR flags trigger | |
This enumerator specifies the type of trigger used to enable the TR to transfer data as specified by CSL_UdmapTrFlagsTriggerType | |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_NONE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_GLOBAL0 ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_GLOBAL1 ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_LOCAL_EVENT ((uint32_t) 3U) |
typedef uint32_t | CSL_UdmapTrFlagsTrigger |
UDMAP TR flags trigger type | |
This enumerator specifies the type of data transfer that will be enabled by receiving a trigger as specified by CSL_UdmapTrFlagsTrigger | |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_TYPE_ICNT1_DEC ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_TYPE_ICNT2_DEC ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_TYPE_ICNT3_DEC ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FLAGS_TRIGGER_TYPE_ALL ((uint32_t) 3U) |
typedef uint32_t | CSL_UdmapTrFlagsTriggerType |
UDMAP TR format flags amode | |
This enumerator specifies the addressing mode of TR that is being sent | |
#define | CSL_UDMAP_TR_FMTFLAGS_AMODE_LINEAR ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FMTFLAGS_AMODE_CIRCULAR ((uint32_t) 1U) |
typedef uint32_t | CSL_UdmapTrFmtflagsAmode |
UDMAP TR format flags amode specific amode | |
This enumerator specifies the addressing mode of TR that is being sent | |
#define | CSL_UDMAP_TR_FMTFLAGS_AMODE_SPECIFIC_AMODE_LINEAR ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FMTFLAGS_AMODE_SPECIFIC_AMODE_CBK0 ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FMTFLAGS_AMODE_SPECIFIC_AMODE_CBK1 ((uint32_t) 2U) |
typedef uint32_t | CSL_UdmapTrFmtflagsAmodeSpecificAmode |
UDMAP TR format flags direction | |
This enumerator specifies the addressing mode of TR that is being sent | |
#define | CSL_UDMAP_TR_FMTFLAGS_DIR_SRC_USES_AMODE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FMTFLAGS_DIR_DST_USES_AMODE ((uint32_t) 1U) |
typedef uint32_t | CSL_UdmapTrFmtflagsDir |
UDMAP TR format flags element type | |
This enumerator specifies the basic unit that is used for the innermost loop | |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_1 ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_1p5 ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_2 ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_3 ((uint32_t) 3U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_4 ((uint32_t) 4U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_5 ((uint32_t) 5U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_16 ((uint32_t) 6U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_32 ((uint32_t) 7U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_1_2 ((uint32_t) 8U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_1p5_2 ((uint32_t) 9U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_2_1 ((uint32_t) 10U) |
#define | CSL_UDMAP_TR_FMTFLAGS_ELYPE_2_1p5 ((uint32_t) 11U) |
typedef uint32_t | CSL_UdmapTrFmtflagsEltype |
UDMAP TR format flags dfmt | |
This enumerator specifies a manipulation of the data between how it is read and how it is sent | |
#define | CSL_UDMAP_TR_FMTFLAGS_DFMT_NO_CHANGE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FMTFLAGS_DFMT_CONSTANT_COPY ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FMTFLAGS_DFMT_TRANSPOSE ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FMTFLAGS_DFMT_REVERSE ((uint32_t) 3U) |
#define | CSL_UDMAP_TR_FMTFLAGS_DFMT_REVERSE_TRANSPOSE ((uint32_t) 4U) |
typedef uint32_t | CSL_UdmapTrFmtflagsDfmt |
UDMAP TR format cache flags operation | |
This enumerator specifies the cache operation for a cache warm TR type | |
#define | CSL_UDMAP_TR_CACHEFLAGS_OP_PREWARM_CACHE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_CACHEFLAGS_OP_PREWARM_MMU ((uint32_t) 1U) |
typedef uint32_t | CSL_UdmapTrCacheflagsOp |
UDMAP TR format flags secondary TR | |
This enumerator specifies if the TR requires an additional TR located in memory | |
#define | CSL_UDMAP_TR_FMTFLAGS_SECTR_NONE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FMTFLAGS_SECTR_64 ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FMTFLAGS_SECTR_128 ((uint32_t) 2U) |
typedef uint32_t | CSL_UdmapTrFmtflagsSectr |
UDMAP TR response status | |
This enumerator is used to determine what type of status is being returned | |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_COMPLETE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_TRANSFER_ERR ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_ABORTED_ERR ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_SUBMISSION_ERR ((uint32_t) 3U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_ERR ((uint32_t) 4U) |
typedef uint32_t | CSL_UdmapTrResponseStatus |
UDMAP TR response status submission | |
This enumerator is returned for a TR that is received that can not be run | |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_SUBMISSION_ICNT0 ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_SUBMISSION_FIFO_FULL ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_SUBMISSION_OWN ((uint32_t) 2U) |
typedef uint32_t | CSL_UdmapTrResponseStatusSubmission |
UDMAP TR response status unsupported | |
This enumerator is returned for a TR that is received that can not be run because it specifies a feature that is optional and not supported by the UTC that received the TR | |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_TR_TYPE ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_STATIC ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_EOL ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_CFG_SPECIFIC ((uint32_t) 3U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_AMODE ((uint32_t) 4U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_ELTYPE ((uint32_t) 5U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_DFMT ((uint32_t) 6U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_SECTR ((uint32_t) 7U) |
#define | CSL_UDMAP_TR_RESPONSE_STATUS_UNSUPPORTED_AMODE_SPECIFIC ((uint32_t) 8U) |
typedef uint32_t | CSL_UdmapTrResponseStatusUnsupported |
UDMAP TR EOL packet type | |
This enumerator defines the the type of EOL packet sent in configurations specific flag in the TR. This is only valid if TR type(UDMAP_TR_FLAGS_TYPE) is CSL_UDMAP_TR_FLAGS_TYPE_1D_DATA_MOVE or CSL_UDMAP_TR_FLAGS_TYPE_2D_DATA_MOVE or CSL_UDMAP_TR_FLAGS_TYPE_3D_DATA_MOVE or CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE | |
#define | CSL_UDMAP_TR_FLAGS_EOL_MATCH_SOL_EOL ((uint32_t) 0U) |
#define | CSL_UDMAP_TR_FLAGS_EOL_ICNT0 ((uint32_t) 1U) |
#define | CSL_UDMAP_TR_FLAGS_EOL_ICNT0_ICNT1 ((uint32_t) 2U) |
#define | CSL_UDMAP_TR_FLAGS_EOL_ICNT0_ICNT1_ICNT2 ((uint32_t) 3U) |
#define | CSL_UDMAP_TR_FLAGS_EOL_ICNT0_ICNT1_ICNT2_ICNT3 ((uint32_t) 4U) |
#define | CSL_UDMAP_TR_FLAGS_EOL_RESERVED ((uint32_t) 5U) |
typedef uint32_t | CSL_UdmapTrFlagsEol |
Data Structures | |
struct | CSL_UdmapTR |
CSL_UdmapTR specifies a Transfer Request. More... | |
struct | CSL_UdmapTR0 |
CSL_UdmapTR0 specifies a Type 0 (One dimensional data move) Transfer Request. More... | |
struct | CSL_UdmapTR1 |
CSL_UdmapTR1 specifies a Type 1 (Two dimensional data move) Transfer Request. More... | |
struct | CSL_UdmapTR2 |
CSL_UdmapTR2 specifies a Type 2 (Three dimensional data move) Transfer Request. More... | |
struct | CSL_UdmapTR3 |
CSL_UdmapTR3 specifies a Type 3 (Four dimensional data move) Transfer Request. More... | |
struct | CSL_UdmapTR4 |
CSL_UdmapTR4 specifies a Type 4 (Four dimensional data move with data formatting) Transfer Request. More... | |
struct | CSL_UdmapTR5 |
CSL_UdmapTR5 specifies a Type 5 (Four dimensional cache warm) Transfer Request. More... | |
struct | CSL_UdmapTR8 |
CSL_UdmapTR8 specifies a Type 8 Transfer Request. More... | |
struct | CSL_UdmapTR9 |
CSL_UdmapTR9 specifies a Type 9 Transfer Request. More... | |
struct | CSL_UdmapTR10 |
CSL_UdmapTR10 specifies a Type 10 Transfer Request. More... | |
struct | CSL_UdmapTR11 |
CSL_UdmapTR11 specifies a Type 11 Transfer Request. More... | |
struct | CSL_UdmapTR15 |
CSL_UdmapTR15 specifies a Type 15 Transfer Request. More... | |
struct | CSL_UdmapSecTR |
CSL_UdmapSecTR specifies a secondary Transfer Request. More... | |
struct | CSL_UdmapTrResponse |
struct | CSL_UdmapTdResponse |
Functions | |
struct CSL_UdmapTR_t | __attribute__ ((__packed__)) |
static CSL_UdmapTrResponseStatus | CSL_udmapTrResponseGetStatusType (const CSL_UdmapTrResponse *pTrResponse) |
Return the TR response status type. More... | |
static void | CSL_udmapGetTdResponse (uint64_t tdResponseWord, CSL_UdmapTdResponse *pTdResponse) |
Parses the TD response word. More... | |
Variables | |
uint32_t | flags |
uint16_t | icnt0 |
uint16_t | icnt1 |
uint64_t | addr |
int32_t | dim1 |
uint16_t | icnt2 |
uint16_t | icnt3 |
int32_t | dim2 |
int32_t | dim3 |
uint32_t | fmtflags |
int32_t | ddim1 |
uint64_t | daddr |
int32_t | ddim2 |
int32_t | ddim3 |
uint16_t | dicnt0 |
uint16_t | dicnt1 |
uint16_t | dicnt2 |
uint16_t | dicnt3 |
uint32_t | cacheflags |
uint32_t | rsvd [3] |
uint32_t | rsvd0 [3] |
uint32_t | rsvd1 [2] |
uint32_t | data [13] |
uint32_t | tdIndicator |
uint32_t | chId |
uint32_t | forced |
uint32_t flags |
Specifies type of TR and how the TR should be handled. It also supports the TR triggering and output events.
Flags
Status flags
uint16_t icnt0 |
Total loop iteration count for level 0 (innermost)
uint16_t icnt1 |
Total loop iteration count for level 1
uint64_t addr |
Starting address for the source data or destination data if it is a half duplex write
Address
int32_t dim1 |
Signed dimension for loop level 1 for the source data
uint16_t icnt2 |
Total loop iteration count for level 2
uint16_t icnt3 |
Total loop iteration count for level 3 (outermost)
int32_t dim2 |
Signed dimension for loop level 2
int32_t dim3 |
Signed dimension for loop level 3
uint32_t fmtflags |
Tells how the data is formatted either between the input and the output or if the data should use different addressing schemes or sizes
int32_t ddim1 |
Signed dimension for loop level 1 for the destination data
uint64_t daddr |
Starting address for the destination of the data
int32_t ddim2 |
Signed dimension for loop level 2 for the destination data
int32_t ddim3 |
Signed dimension for loop level 3 for the destination data
uint16_t dicnt0 |
Total loop iteration count for level 0 (innermost) used for destination
uint16_t dicnt1 |
Total loop iteration count for level 1 used for destination
uint16_t dicnt2 |
Total loop iteration count for level 2 used for destination
uint16_t dicnt3 |
Total loop iteration count for level 3 used for destination
uint32_t cacheflags |
Tells how the data is formatted either between the input and the output or if the data should use different addressing schemes or sizes
uint32_t rsvd[3] |
Reserved
uint32_t rsvd0[3] |
Reserved
uint32_t rsvd1[2] |
Reserved
uint32_t data[13] |
Data
uint32_t tdIndicator |
TRUE: Indicates that a teardown has completed.
uint32_t chId |
Indicates which channel the teardown completed on.
uint32_t forced |
FALSE: Indicates that the teardown was graceful and data was not lost. TRUE : Indicates that the teardown was not graceful and data was potentially lost