📄 skgeasf.h
字号:
SK_U8 Status; SK_U8 OldStatus; SK_U32 OldCmdReg; SK_U8 SendIndex; SK_U8 ReceiveIndex; SK_U8 SendLength; SK_U8 ReceiveLength; SK_U8 ExpectResponse; SK_U8 Cycles; SK_U64 Time; SK_U8 ReceiveBuf [ASF_HCI_REC_BUF_SIZE]; SK_U8 TransmitBuf [ASF_HCI_TRA_BUF_SIZE]; SK_TIMER AsfTimerHci;} STR_HCI;/* * ASF specific adapter context structure */typedef struct s_AsfData{ SK_U8 CurrentMacAddr[6]; SK_U8 IpAddress[4]; SK_TIMER AsfTimer; SK_TIMER AsfTimerWrSpi; SK_U8 StateHci; SK_U8 StateWrSpi; SK_U8 DriverVersion [5]; SK_U8 FlashFwVersion [5]; SK_U8 FlashFwRev; SK_U8 FileFwVersion [5]; SK_U8 FileFwRev;//VSz SK_U8 FlashBuffer [ASF_FLASH_SIZE]; SK_U8 VpdConfigBuf [ASF_VPD_CONFIG_SIZE]; STR_ASF_MIB Mib; STR_HCI Hci; SK_U8 GlHciState; SK_U8 LastGlHciState; SK_U8 InitState; SK_U8 VpdInitOk; SK_U32 FwError; SK_U8 CpuAlive; SK_U16 FwWdIntervall; SK_U16 FwRamSize; SK_U8 ActivePort; SK_U8 PrefPort; SK_U8 FwVersionString [80]; SK_U8 NewGuid; SK_U8 OpMode; // ASF or IPMI operation mode - see SkAsfInit SK_U8 ChipMode; // relevant for ASF or IPMI operation mode SK_U8 DualMode;}SK_ASF_DATA;#define MAX_EVENT_DATA 8struct _STR_EVENT_DATA { struct _STR_EVENT_DATA *next; SK_U8 SensorType; // SNMP (Specific Trap) SK_U8 Type; // SNMP (Specific Trap) SK_U8 Offset; // SNMP (Specific Trap) SK_U8 SourceType; // PET SK_U8 Severity; // PET SK_U8 SensorDevice; // PET SK_U8 SensorNumber; // PET SK_U8 Entity; // PET SK_U8 EntityInstance; // PET SK_U8 DataLen; SK_U8 Data [MAX_EVENT_DATA]; // PET};typedef struct _STR_EVENT_DATA STR_EVENT_DATA;/* Functions provided by SkGeAsf *//* ANSI/C++ compliant function prototypes *//* * Public Function prototypes */extern int SkAsfDeInit(SK_AC *pAC, SK_IOC IoC );extern int SkAsfInit (SK_AC *pAC , SK_IOC IoC , int level);extern int SkAsfSuspend (SK_AC *pAC , SK_IOC IoC);extern int SkAsfResume (SK_AC *pAC , SK_IOC IoC);extern int SkAsfDeInitStandBy( SK_AC *pAC, SK_IOC IoC );extern int SkAsfInitStandBy( SK_AC *pAC, SK_IOC IoC, int Level );extern int SkAsfGet (SK_AC *pAC , SK_IOC IoC , SK_U8 *pBuf, unsigned int *pLen);extern int SkAsfPreSet (SK_AC *pAC , SK_IOC IoC , SK_U8 *pBuf, unsigned int *pLen);extern int SkAsfSet (SK_AC *pAC , SK_IOC IoC , SK_U8 *pBuf, unsigned int *pLen);extern int SkAsfEvent (SK_AC *pAC , SK_IOC IoC , SK_U32 Event , SK_EVPARA Param);extern int SkAsfSetOid(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, SK_U32 Inst, SK_U8 *pBuf, unsigned int *pLen);extern void SkAsfTriggerPetFrames (SK_IOC IoC, SK_U32 *TmpVal32);extern int SkAsfPreSetOid(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, SK_U32 Inst, SK_U8 *pBuf, unsigned int *pLen);extern int SkAsfGetOid(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, SK_U32 Inst, SK_U8 *pBuf, unsigned int *pLen);extern int SkAsfRestorePattern(SK_AC *pAC , SK_IOC IoC);SK_I8 SkAsfReadSpiConfigData( SK_AC *pAC );SK_I8 SkAsfWriteSpiConfigData( SK_AC *pAC );SK_I8 SkAsfUpdateSpiConfigData(SK_AC *pAC, SK_U8 *data , SK_U32 off , SK_U32 len, SK_U32 ClrCnt );SK_I8 SkAsfUpdateConfDat( SK_AC *pAC, SK_U8 Pig, SK_U16 RegOffs, SK_U8 ByteEnable, SK_U32 Val, SK_U8 ForceNewEntry );SK_I8 SkAsfReadConfDat( SK_AC *pAC, SK_U8 Pig, SK_U16 RegOffs, SK_U8 ByteEnable, SK_U32 *Val );SK_I8 SkAsfWriteDeferredFlash( SK_AC *pAC, SK_IOC IoC );SK_I8 SkAsfStartWriteDeferredFlash( SK_AC *pAC, SK_IOC IoC );void SkAsfTimer( SK_AC *pAC, SK_IOC IoC );void SkAsfShowMib( SK_AC *pAC );void AsfResetCpu( SK_AC *pAC, SK_IOC IoC );void AsfRunCpu( SK_AC *pAC, SK_IOC IoC );SK_U8 AsfCheckAliveCpu( SK_AC *pAC, SK_IOC IoC );SK_I8 SkAsfSeprom2Mib( SK_AC *pAC, SK_IOC IoC );SK_I8 SkAsfMib2Seprom( SK_AC *pAC, SK_IOC IoC );SK_U8 AsfSmartResetCpu( SK_AC *pAC, SK_IOC IoC, SK_U8 Cold );SK_U8 AsfSmartResetStateCpu( SK_AC *pAC, SK_IOC IoC );SK_U8 AsfCpuState( SK_AC *pAC, SK_IOC Ioc );SK_U8 AsfHciGetData( SK_AC *pAC, SK_U8 **pHciRecBuf );SK_U8 AsfHciGetState( SK_AC *pAC );SK_U8 AsfHciSendCommand( SK_AC *pAC, SK_IOC IoC, SK_U8 Command, SK_U8 Par1, SK_U8 Par2, SK_U8 ExpectResponse, SK_U8 Wait, SK_U8 Retry );SK_U8 AsfHciSendData( SK_AC *pAC, SK_IOC IoC, SK_U8 *Buffer, SK_U8 ExpectResponse, SK_U8 Wait, SK_U8 Retry );SK_U8 AsfHciSendMessage( SK_AC *pAC, SK_IOC IoC, SK_U8 *message, SK_U8 length, SK_U8 ExpectResponse, SK_U8 Wait );void AsfLockSpi( SK_AC *pAC, SK_IOC IoC );void AsfUnlockSpi( SK_AC *pAC, SK_IOC IoC );void SkAsfHci( SK_AC *pAC, SK_IOC IoC, SK_U8 ToEna );void AsfWatchCpu( SK_AC *pAC, SK_IOC IoC, SK_U32 par );void AsfEnable(SK_AC *pAC, SK_IOC IoC );void AsfDisable(SK_AC *pAC, SK_IOC IoC );void AsfSetOsPresentBit( SK_AC *pAC, SK_IOC IoC );void AsfResetOsPresentBit( SK_AC *pAC, SK_IOC IoC );void AsfEnableFlushFifo( SK_AC *pAC, SK_IOC IoC );void AsfDisableFlushFifo( SK_AC *pAC, SK_IOC IoC);void AsfSetUpPattern(SK_AC *pAC, SK_IOC IoC, SK_U8 port );SK_I8 AsfWritePatternRam( SK_AC *pAC, SK_IOC IoC, SK_U8 Port, SK_U8 PatternId1, SK_U8 PatternId2, SK_U8 Length1, SK_U8 Length2, SK_U8 *pMask1, SK_U8 *pPattern1, SK_U8 *pMask2, SK_U8 *pPattern2 );SK_I8 AsfWritePatternRamEx( SK_AC *pAC, SK_IOC IoC, SK_U8 Port, SK_U8 PatternId, SK_U8 Length1, SK_U8 *pMask1, SK_U8 *pPattern1 );SK_I8 YlciEnablePattern (SK_AC *pAC, SK_IOC IoC, SK_U8 port, SK_U8 pattno );SK_I8 YlciDisablePattern (SK_AC *pAC, SK_IOC IoC, SK_U8 port, SK_U8 pattno );// ACPI and "ASF!" stuffSK_I8 SkAsfAcpi( SK_AC *pAC, SK_IOC IoC, SK_U8 *pImage );//SK_I8 SkAsfAcpiRsdt( SK_AC *pAC, SK_IOC IoC, SK_U8 *pImage, HANDLE SectionHandle, SK_U32 PhysAddr );//SK_I8 SkAsfAcpiXsdt( SK_AC *pAC, SK_IOC IoC, SK_U8 *pImage, HANDLE SectionHandle, SK_U64 PhysAddr );//SK_I8 SkAsfAcpiAsf( SK_AC *pAC, SK_IOC IoC, SK_U8 *pImage, HANDLE SectionHandle, SK_U32 PhysAddr );SK_I8 SkAsfPatchAsfTable( SK_AC *pAC, SK_IOC IoC, SK_U8 *pImage, SK_U8 *pAsfTable, SK_U32 TableLength );SK_I8 SkAsfPatchGuid( SK_AC *pAC, SK_IOC IoC, SK_U8 *pImage, SK_U8 *pGuid );void SkAsfExamineAsfTable( SK_AC *pAC, SK_IOC IoC, SK_U8 *pAsf, SK_U32 TableLength );SK_I8 SkAsfSendRmcpData(SK_AC *pAC, SK_IOC IoC,SK_U8 *pData, SK_U8 Length );// ipmiSK_I8 AsfWriteIpmiPattern(SK_AC *pAC, SK_IOC IoC, SK_U8 port);/* in file skspilole.c */void spi_init_pac( SK_AC *pAC );// for cleaning up smbus registervoid AsfSetSMBusRegister(SK_IOC IoC);#define SKERR_ASF_E001 (SK_ERRBASE_ASF)#define SKERR_ASF_E001MSG "SkAsfInit() error: wrong HCI version"#define SKERR_ASF_E002 (SKERR_ASF_E001+1)#define SKERR_ASF_E002MSG "SkAsfInit() error: flash read"#define SKERR_ASF_E003 (SKERR_ASF_E001+2)#define SKERR_ASF_E003MSG "SkAsfInit() error: flash erase"#define SKERR_ASF_E004 (SKERR_ASF_E001+3)#define SKERR_ASF_E004MSG "SkAsfInit() error: flash write"#define SKERR_ASF_E005 (SKERR_ASF_E001+4)#define SKERR_ASF_E005MSG "SkAsfInit() error: map FW image"#define SKERR_ASF_E006 (SKERR_ASF_E001+5)#define SKERR_ASF_E006MSG "SkAsfInit() error: flash reread"#define SKERR_ASF_E007 (SKERR_ASF_E001+6)#define SKERR_ASF_E007MSG "SkAsfInit() error: flash compare"#define SKERR_ASF_E008 (SKERR_ASF_E001+7)#define SKERR_ASF_E008MSG "SkAsfInit() flash successfully updated"#define SKERR_ASF_E009 (SKERR_ASF_E001+8)#define SKERR_ASF_E009MSG "SkAsfInit() updating flash"#define ASF_YEC_YTB_BASE_WOL_CTRL1 ((SK_U32)0x0f20) // YTB WOL CTRL register link 1#define ASF_YEC_PATTRAM_CLUSTER_BYTES ((SK_U8)4) // 4 bytes is a word#define ASF_YEC_PATTRAM_CLUSTER_WORDS ((SK_U8)4) // 4 words in a cluster#define ASF_YEC_PATTRAM_CLUSTER_SIZE ((SK_U8)64) // pattern ram has 64 cluster#define ASF_YEC_PATTERN_ENA1 (ASF_YEC_YTB_BASE_WOL_CTRL1 + 0x02) // enable pattern register, width:8#define ASF_YEC_PATTERN_LENGTH_R1_L (ASF_YEC_YTB_BASE_WOL_CTRL1 + 0x10) // pattern length register, pattern 0-3, width: 4x8#define ASF_YEC_PATTERN_LENGTH_R1_H (ASF_YEC_YTB_BASE_WOL_CTRL1 + 0x14) // pattern length register, pattern 4-6, width: 3x8#define ASF_YEC_PATTERN_MATCHENA1 (ASF_YEC_YTB_BASE_WOL_CTRL1 + 0x0b) // ASF/PME match enable register, width: 8#define ASF_YEC_PATTERN_CTRL1 (ASF_YEC_YTB_BASE_WOL_CTRL1 + 0x00) // match result, match control, wol ctrl and status#define ASF_YEC_YTB_BASE_MACRXFIFO1 ((SK_U32)0x0c40) // base of receive MAC fifo registers, port 1#define ASF_YEC_MAC_FIFO_CTRL1 (ASF_YEC_YTB_BASE_MACRXFIFO1 + 0x08) // control/test Rx MAC, link1, 32 bit#define ASF_YEC_MAC_FIFO_FLUSHMASK1 (ASF_YEC_YTB_BASE_MACRXFIFO1 + 0x0c) // flush mask register Rx MAC, link1, 32 bit#define ASF_YEC_MAC_FIFO_FLUSHTHRES1 (ASF_YEC_YTB_BASE_MACRXFIFO1 + 0x10) // Rx MAC FIFO Flush Threshold, link1, 32 bit#define ASF_YLCI_MACRXFIFOTHRES 8 // mac rx threshold in qwords#define ASF_PATTERN_ID_RSP 4#define ASF_PATTERN_ID_ARP 5#define ASF_PATTERN_ID_RMCP 6// Yukon Extreme#define ASF_YEX_YTB_BASE_WOL_CTRL1 ((SK_U32)0x0f20) // YTB WOL CTRL register link 1#define ASF_YEX_PATTRAM_CLUSTER_BYTES ((SK_U8)4) // 4 bytes is a word#define ASF_YEX_PATTRAM_CLUSTER_WORDS ((SK_U8)4) // 4 words in a cluster#define ASF_YEX_PATTRAM_CLUSTER_SIZE ((SK_U8)64) // pattern ram has 64 cluster#define ASF_YEX_PATTERN_ENA1 (ASF_YEX_YTB_BASE_WOL_CTRL1 + 0x02) // enable pattern register, width:8#define ASF_YEX_PATTERN_LENGTH_R1_L (ASF_YEX_YTB_BASE_WOL_CTRL1 + 0x10) // pattern length register, pattern 0-3, width: 4x8#define ASF_YEX_PATTERN_LENGTH_R1_H (ASF_YEX_YTB_BASE_WOL_CTRL1 + 0x14) // pattern length register, pattern 4-6, width: 3x8#define ASF_YEX_PATTERN_LENGTH_R1_EH (ASF_YEX_YTB_BASE_WOL_CTRL1 + 0x18) // pattern length register, pattern 7-8, width: 3x8#define ASF_YEX_PATTERN_MATCHENA1 (ASF_YEX_YTB_BASE_WOL_CTRL1 + 0x0c) // ASF/PME match enable register, width: 8#define ASF_YEX_PATTERN_CTRL1 (ASF_YEX_YTB_BASE_WOL_CTRL1 + 0x00) // match result, match control, wol ctrl and status#ifdef USE_ASF_DASH_FW#define ASF_DASH_PATTERN_NUM_MAC 0#define ASF_DASH_PATTERN_NUM_MUL 1#define ASF_DASH_PATTERN_NUM_BDC 2#define ASF_DASH_PATTERN_NUM_ICMPV6 3#else#define ASF_DASH_PATTERN_NUM_ICMP 0#define ASF_DASH_PATTERN_NUM_ARP 1#define ASF_DASH_PATTERN_NUM_RMCP 5#define ASF_DASH_PATTERN_NUM_RSP 6#define ASF_DASH_PATTERN_NUM_TCP1 7#define ASF_DASH_PATTERN_NUM_TCP2 8#endif#ifdef USE_ASF_DASH_FW#pragma pack(1)typedef struct _STR_YASF_CANON{/* Version 1100 = 1.100*/ SK_U16 StructVersion;/* Pattern A */ SK_U8 PatA_Enabled;/* Pattern B */ SK_U16 PatB_FrameType; SK_U16 PatB_Port; SK_U8 PatB_ComStr[6]; SK_U16 PatB_PDUType; SK_U8 PatB_OID1[14]; SK_U8 PatB_OID2[14]; SK_U8 PatB_OID3[14]; SK_U8 PatB_IndexCounter; SK_U8 PatB_Enabled;/* Pattern C */ SK_U16 PatC_FrameType; SK_U16 PatC_Port; SK_U8 PatC_ComStr[6]; SK_U16 PatC_PDUType; SK_U8 PatC_OID1[14]; SK_U8 PatC_OID2[14]; SK_U8 PatC_OID3[14]; SK_U8 PatC_IndexCounter; SK_U8 PatC_Enabled;/* Pattern D */ SK_U16 PatD_FrameType; SK_U16 PatD_Port; SK_U8 PatD_ComStr[6]; SK_U16 PatD_PDUType; SK_U8 PatD_OID1[14]; SK_U8 PatD_OID2[14]; SK_U8 PatD_OID3[14]; SK_U8 PatD_IndexCounter; SK_U8 PatD_Enabled;/* Pattern E */ SK_U16 PatE_FrameType; SK_U16 PatE_Port; SK_U8 PatE_ComStr[6]; SK_U16 PatE_PDUType; SK_U8 PatE_OID1[14]; SK_U8 PatE_OID2[14]; SK_U8 PatE_OID3[14]; SK_U8 PatE_IndexCounter; SK_U8 PatE_Enabled; /* Pattern F */ SK_U16 PatF_FrameType; SK_U16 PatF_Port; SK_U8 PatF_ComStr[6]; SK_U16 PatF_PDUType; SK_U8 PatF_OID1[14]; SK_U8 PatF_OID2[14]; SK_U8 PatF_OID3[14]; SK_U8 PatF_IndexCounter; SK_U8 PatF_Enabled; /* Pattern G */ SK_U16 PatG_FrameType; SK_U16 PatG_Port; SK_U8 PatG_ComStr[6]; SK_U16 PatG_PDUType; SK_U8 PatG_OID1[14]; SK_U8 PatG_OID2[14]; SK_U8 PatG_OID3[14]; SK_U8 PatG_IndexCounter; SK_U8 PatG_Enabled; /* Pattern H */ SK_U8 PatH_Enabled; /* Pattern J */ SK_U8 PatJ_Enabled; /* Pattern K */ SK_U16 PatK_FrameType; SK_U8 PatK_VerALength; SK_U8 PatK_ProtID; SK_U16 PatK_Port; SK_U8 PatK_Enabled;/* Pattern L */ SK_U16 PatL_FrameType; SK_U8 PatL_VerALength; SK_U8 PatL_ProtID; SK_U16 PatL_Port; SK_U8 PatL_Ver; SK_U8 PatL_PacketLen[3]; SK_U8 PatL_NextExt[3]; SK_U16 PatL_LangTagLen; SK_U8 PatL_LangTag[5]; SK_U8 PatL_PRListLen[2]; SK_U16 PatL_ServTypeLen; SK_U8 PatL_ServType[20]; SK_U16 PatL_ScopeListLen; SK_U8 PatL_Scope[5]; SK_U8 PatL_Enabled;/* Pattern M */ SK_U16 PatM_FrameType; SK_U8 PatM_VerALength; SK_U8 PatM_ProtID; SK_U16 PatM_Port; SK_U8 PatM_PacketHdr[2]; SK_U8 PatM_Ver; SK_U8 PatM_OpCode[2]; SK_U8 PatM_Enabled;/* Pattern N */ SK_U16 PatN_FrameType; SK_U8 PatN_VerALength; SK_U8 PatN_ProtID; SK_U16 PatN_Port; SK_U8 PatN_Enabled;/* Pattern P */ SK_U8 PatP_Enabled;/* Pattern Q */ SK_U16 PatQ_FrameType; SK_U8 PatQ_ProtID; SK_U16 PatQ_Port; SK_U8 PatQ_Enabled;/* Pattern R */ SK_U8 PatR_Enabled;} STR_YASF_CANON;typedef struct _DRIVER_INTERFACE{ int DownloadToFwElements; char ElementArrayDl[26]; char ElementArrayEn[26]; STR_YASF_CANON New_Pattern;} DRIVER_INTERFACE;#endif#endif /* _INC_SKGEASF_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -