|
- /*
- * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
- * Description: the definition of stars
- */
-
- #ifndef CCE_RUNTIME_RT_STARS_DEFINE_H
- #define CCE_RUNTIME_RT_STARS_DEFINE_H
-
- #include "base.h"
-
- #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE)
- extern "C" {
- #endif
-
- #pragma pack(push)
- #pragma pack (1)
-
- typedef struct tagStarsSqeHeader {
- uint8_t type : 6;
- uint8_t l1Lock : 1;
- uint8_t l1Unlock : 1;
-
- uint8_t ie : 2;
- uint8_t preP : 2;
- uint8_t postP : 2;
- uint8_t wrCqe : 1;
- uint8_t reserved : 1;
-
- uint16_t blockDim;
-
- uint16_t rtStreamId;
- uint16_t taskId;
- } rtStarsSqeHeader_t;
-
- typedef struct tagStarsDsaSqe {
- // 0-7 bytes
- rtStarsSqeHeader_t sqeHeader;
- // 8-11 bytes
- uint32_t start : 1;
- uint32_t functionType : 3;
- uint32_t dataType : 3;
- uint32_t algoType : 3;
- uint32_t paramVldBitmap : 5;
- uint32_t paramAddrValBitmap : 7;
- uint32_t reserved0 : 10;
- // 12-15 bytes
- uint16_t sqeIndex;
- uint8_t kernelCredit;
- uint8_t reserved1;
- // 16-31 bytes
- uint32_t dsaCfgResultAddrLow;
- uint32_t dsaCfgResultAddrHigh;
- uint32_t dsaCfgStateAddrLow;
- uint32_t dsaCfgStateAddrHigh;
- // 32-47 bytes
- uint32_t dsaCfgParamAddrLow;
- uint32_t dsaCfgParamAddrHigh;
- uint32_t dsaCfgSeedLow;
- uint32_t dsaCfgSeedHigh;
- // 48-63 bytes
- uint32_t dsaCfgNumberLow;
- uint32_t dsaCfgNumberHigh;
- uint32_t reserved2[2];
- } rtStarsDsaSqe_t;
-
- // ffts+ type
- typedef enum tagFftsPlusType {
- RT_FFTS_PLUS_TYPE_RES1 = 2, // Reserved
- RT_FFTS_PLUS_TYPE_RES2 = 3, // Reserved
- RT_FFTS_PLUS_TYPE = 4, // FFTS+ mode
- } rtFftsPlusType_t;
-
- // ffts+ sqe
- typedef struct tagFftsPlusSqe {
- // 0-7 bytes
- rtStarsSqeHeader_t sqeHeader;
- // 8-11 bytes
- uint16_t fftsType : 3;
- uint16_t reserved1 : 9;
- uint16_t wrrRatio : 4;
- uint16_t reserved2;
- // 12-15 bytes
- uint16_t sqeIndex;
- uint8_t kernelCredit;
- uint8_t reserved4;
- // 16-23 bytes
- uint32_t stackPhyBaseL;
- uint32_t stackPhyBaseH;
- // 24-31 bytes
- uint16_t totalContextNum;
- uint16_t readyContextNum;
- uint16_t preloadContextNum;
- uint16_t reserved5;
- // 32-35 bytes
- uint16_t reserved6;
- uint16_t prefetchOstNum : 5;
- uint16_t reserved9 : 3;
- uint16_t cmaintOstNum : 5;
- uint16_t reserved10 : 3;
- // 36-39 bytes
- uint16_t aicPrefetchLower : 5;
- uint16_t reserved11 : 3;
- uint16_t aicPrefetchUpper : 5;
- uint16_t reserved12 : 3;
- uint16_t aivPrefetchLower : 5;
- uint16_t reserved13 : 3;
- uint16_t aivPrefetchUpper : 5;
- uint16_t reserved14 : 3;
- // 40-47 bytes
- uint32_t contextAddressBaseL;
- uint32_t contextAddressBaseH : 17;
- uint32_t reserved15 : 15;
- // 48-63 bytes
- uint32_t reserved16[4];
- } rtFftsPlusSqe_t;
-
- typedef struct tagCmoTaskInfo {
- uint8_t qos;
- uint8_t partId;
- uint8_t pmg;
- uint8_t reserved;
- uint16_t cmoType;
- uint16_t opCode;
- uint16_t numInner;
- uint16_t numOuter;
- uint32_t logicId;
- uint32_t lengthInner;
- uint64_t sourceAddr;
- uint32_t striderOuter;
- uint32_t striderInner;
- } rtCmoTaskInfo_t;
-
- typedef struct tagBarrierCmoInfo {
- uint16_t cmoType; // 0 is barrier, 1 is invalid, Prefetch is 2, Write_back is 3, FE/GE only use invalid type.
- uint32_t logicId;
- } rtBarrierCmoInfo_t;
-
- #define RT_CMO_MAX_BARRIER_NUM 6U // 6U is max support
- typedef struct tagBarrierTaskInfo {
- uint8_t logicIdNum;
- rtBarrierCmoInfo_t cmoInfo[RT_CMO_MAX_BARRIER_NUM];
- } rtBarrierTaskInfo_t;
-
- #pragma pack(pop)
-
- #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE)
- }
- #endif
- #endif // CCE_RUNTIME_RT_STARS_DEFINE_H
|