#ifndef TIDEFS_H
#define TIDEFS_H
#include <dev/pms/freebsd/driver/common/osenv.h>
#include <dev/pms/freebsd/driver/common/ostypes.h>
#include <dev/pms/freebsd/driver/common/osdebug.h>
#define PORTAL_ADD_MASK 0x00000001
#define MAX_LL_LAYER_MEM_DESCRIPTORS 64
typedef enum
{
tiSuccess,
tiError,
tiBusy,
tiIONoDevice,
tiMemoryTooLarge,
tiMemoryNotAvail,
tiInvalidHandle,
tiNotSupported,
tiReject,
tiIncorrectLun,
tiDeviceBusy,
} tiStatus_t;
#define TI_DMA_MEM 0x00000000
#define TI_CACHED_MEM 0x00000001
#define TI_CACHED_DMA_MEM 0x00000002
#define TI_DMA_MEM_CHIP 0x00000003
#define TI_LOC_HOST 0x00000000
#define TI_LOC_ON_CHIP 0x00000004
#define TI_LOC_ON_CARD 0x00000008
typedef enum
{
tiSgl=0,
tiSglList=0x80000000,
tiExtHdr
}tiSglType_t;
typedef enum
{
tiSingleMutexLockPerPort,
tiOneMutexLockPerQueue
}tiMutexType_t;
typedef enum
{
tiInterruptContext,
tiNonInterruptContext
}tiIntContextType_t;
typedef enum
{
tiPortPanic,
tiPortResetComplete,
tiPortNameServerDown,
tiPortLinkDown,
tiPortLinkUp,
tiPortStarted,
tiPortStopped,
tiPortShutdown,
tiPortDiscoveryReady,
tiPortResetNeeded,
tiEncryptOperation,
tiModePageOperation
} tiPortEvent_t;
typedef enum
{
tiEncryptGetInfo,
tiEncryptSetMode,
tiEncryptKekAdd,
tiEncryptDekInvalidate,
tiEncryptKekStore,
tiEncryptKekLoad,
tiEncryptAttribRegUpdate,
tiEncryptDekAdd,
tiEncryptOperatorManagement,
tiEncryptSelfTest,
tiEncryptSetOperator,
tiEncryptGetOperator
} tiEncryptOp_t;
typedef enum
{
tiOMNotSupported,
tiOMIllegalParam,
tiOMKENUnwrapFail,
tiOMNvramOpFailure,
} tiOperatorManagementStatus_t;
typedef enum
{
tiIOSuccess,
tiIOOverRun,
tiIOUnderRun,
tiIOFailed,
tiIODifError,
tiIOEncryptError,
} tiIOStatus_t;
typedef enum
{
tiSMPSuccess,
tiSMPAborted,
tiSMPFailed,
} tiSMPStatus_t;
typedef enum
{
tiDetailBusy,
tiDetailNotValid,
tiDetailNoLogin,
tiDetailAbortLogin,
tiDetailAbortReset,
tiDetailAborted,
tiDetailDifMismatch,
tiDetailDifAppTagMismatch,
tiDetailDifRefTagMismatch,
tiDetailDifCrcMismatch,
tiDetailDekKeyCacheMiss,
tiDetailCipherModeInvalid,
tiDetailDekIVMismatch,
tiDetailDekRamInterfaceError,
tiDetailDekIndexOutofBounds,
tiDetailOtherError,
tiDetailOtherErrorNoRetry,
} tiIOStatusDetail_t;
#define IOCTL_ERR_STATUS_OK 0x00
#define IOCTL_ERR_STATUS_MORE_DATA 0x01
#define IOCTL_ERR_STATUS_NO_MORE_DATA 0x02
#define IOCTL_ERR_STATUS_INVALID_CODE 0x03
#define IOCTL_ERR_STATUS_INVALID_DEVICE 0x04
#define IOCTL_ERR_STATUS_NOT_RESPONDING 0x05
#define IOCTL_ERR_STATUS_INTERNAL_ERROR 0x06
#define IOCTL_ERR_STATUS_NOT_SUPPORTED 0x07
#define IOCTL_ERR_FW_EVENTLOG_DISABLED 0x08
#define IOCTL_MJ_FATAL_ERROR_SOFT_RESET_TRIG 0x72
#define IOCTL_MJ_FATAL_ERR_CHK_SEND_TRUE 0x77
#define IOCTL_MJ_FATAL_ERR_CHK_SEND_FALSE 0x76
#define IOCTL_ERROR_NO_FATAL_ERROR 0x77
#define ADAPTER_WWN_START_OFFSET 0x804
#define ADAPTER_WWN_END_OFFSET 0x80b
#define ADAPTER_WWN_SPC_START_OFFSET 0x704
#define ADAPTER_WWN_SPC_END_OFFSET 0x70b
#define IOCTL_CALL_SUCCESS 0x00
#define IOCTL_CALL_FAIL 0x01
#define IOCTL_CALL_PENDING 0x02
#define IOCTL_CALL_INVALID_CODE 0x03
#define IOCTL_CALL_INVALID_DEVICE 0x04
#define IOCTL_CALL_TIMEOUT 0x08
#define DIF_INSERT 0
#define DIF_VERIFY_FORWARD 1
#define DIF_VERIFY_DELETE 2
#define DIF_VERIFY_REPLACE 3
#define DIF_UDT_SIZE 6
#define INI_LGN_STATE_FREE 0x00000000
#define INI_LGN_STATE_LOGIN 0x00000001
#define INI_LGN_STATE_FAIL 0x00000002
#define INI_LGN_STATE_OTHERS 0x0000000F
#define TI_ENCRYPT_SEC_MODE_FACT_INIT 0x00000000
#define TI_ENCRYPT_SEC_MODE_A 0x40000000
#define TI_ENCRYPT_SEC_MODE_B 0x80000000
#define TI_ENCRYPT_ATTRIB_ALLOW_SMF 0x00000200
#define TI_ENCRYPT_ATTRIB_AUTH_REQ 0x00000100
#define TI_ENCRYPT_ATTRIB_CIPHER_XTS 0x00000002
#define TI_ENCRYPT_ATTRIB_CIPHER_ECB 0x00000001
#define TI_ENCRYPT_STATUS_NO_NVRAM 0x00000001
#define TI_ENCRYPT_STATUS_NVRAM_ERROR 0x00000002
#define TI_ENCRYPT_STATUS_ENGINE_ERROR 0x00000004
#define TI_ENCRYPT_MODE_XTS_AES 0x00400000
#define TI_ENCRYPT_MODE_ECB_AES 0x00000000
#define TI_PLAINTEXT 0
#define TI_ENCRYPTED_KEK_PMCA 1
#define TI_ENCRYPTED_KEK_PMCB 2
#define TI_DEK_TABLE_KEY_SIZE16 0
#define TI_DEK_TABLE_KEY_SIZE24 1
#define TI_DEK_TABLE_KEY_SIZE32 2
#define TI_DEK_TABLE_KEY_SIZE40 3
#define TI_DEK_TABLE_KEY_SIZE48 4
#define TI_DEK_TABLE_KEY_SIZE56 5
#define TI_DEK_TABLE_KEY_SIZE64 6
#define TI_DEK_TABLE_KEY_SIZE72 7
#define TI_DEK_TABLE_KEY_SIZE80 8
#define TI_KEK_BLOB_SIZE 48
#define TI_KEK_MAX_TABLE_ENTRIES 8
#define TI_DEK_MAX_TABLES 2
#define TI_DEK_MAX_TABLE_ENTRIES (1024*4)
#define TI_DEK_BLOB_SIZE 80
#define tiModePageGet 1
#define tiModePageSet 2
#define TI_SAS_PROTOCOL_TIMER_CONFIG_PAGE 0x04
#define TI_INTERRUPT_CONFIGURATION_PAGE 0x05
#define TI_ENCRYPTION_GENERAL_CONFIG_PAGE 0x20
#define TI_ENCRYPTION_DEK_CONFIG_PAGE 0x21
#define TI_ENCRYPTION_CONTROL_PARM_PAGE 0x22
#define TI_ENCRYPTION_HMAC_CONFIG_PAGE 0x23
#define TI_ENCRYPTION_TEST_TYPE_BIST 0x01
#define TI_ENCRYPTION_TEST_TYPE_HMAC 0x02
#define TI_SHA_ALG_1 0x04
#define TI_SHA_ALG_256 0x08
#define TI_SHA_ALG_224 0x10
#define TI_SHA_ALG_512 0x20
#define TI_SHA_ALG_384 0x40
#define TI_SHA_1_DIGEST_SIZE 20
#define TI_SHA_256_DIGEST_SIZE 32
#define TI_SHA_224_DIGEST_SIZE 28
#define TI_SHA_512_DIGEST_SIZE 64
#define TI_SHA_384_DIGEST_SIZE 48
#define SCSI_STAT_GOOD 0x00
#define SCSI_STAT_CHECK_CONDITION 0x02
#define SCSI_STAT_CONDITION_MET 0x04
#define SCSI_STAT_BUSY 0x08
#define SCSI_STAT_INTERMEDIATE 0x10
#define SCSI_STAT_INTER_CONDIT_MET 0x14
#define SCSI_STAT_RESV_CONFLICT 0x18
#define SCSI_STAT_COMMANDTERMINATED 0x22
#define SCSI_STAT_TASK_SET_FULL 0x28
#define SCSI_STAT_ACA_ACTIVE 0x30
#define SCSI_STAT_TASK_ABORTED 0x40
#define SCSI_SENSE_KEY_NO_SENSE 0x00
#define SCSI_SENSE_KEY_RECOVERED_ERROR 0x01
#define SCSI_SENSE_KEY_NOT_READY 0x02
#define SCSI_SENSE_KEY_MEDIUM_ERROR 0x03
#define SCSI_SENSE_KEY_HARDWARE_ERROR 0x04
#define SCSI_SENSE_KEY_ILLEGAL_REQUEST 0x05
#define SCSI_SENSE_KEY_UNIT_ATTENTION 0x06
#define SCSI_SENSE_KEY_DATA_PROTECT 0x07
#define SCSI_SENSE_KEY_BLANK_CHECK 0x08
#define SCSI_SENSE_KEY_UNIQUE 0x09
#define SCSI_SENSE_KEY_COPY_ABORTED 0x0A
#define SCSI_SENSE_KEY_ABORTED_COMMAND 0x0B
#define SCSI_SENSE_KEY_EQUAL 0x0C
#define SCSI_SENSE_KEY_VOL_OVERFLOW 0x0D
#define SCSI_SENSE_KEY_MISCOMPARE 0x0E
#define SCSI_SENSE_KEY_RESERVED 0x0F
typedef enum
{
tiSoftReset,
tiHardReset,
tiAutoReset
} tiReset_t;
#define NORMAL_ASSIGN_MASK 0x00000000
#define FORCE_PERSISTENT_ASSIGN_MASK 0x00000001
#define AUTO_LOGIN_MASK 0x00000000
#define NO_AUTO_LOGIN_MASK 0x00000002
#define AG_ABORT_TASK 1
#define AG_ABORT_TASK_SET 2
#define AG_CLEAR_ACA 3
#define AG_CLEAR_TASK_SET 4
#define AG_LOGICAL_UNIT_RESET 5
#define AG_TARGET_WARM_RESET 6
#define AG_TARGET_COLD_RESET 7
#define AG_TASK_REASSIGN 8
#define AG_QUERY_TASK 9
typedef enum
{
tiIntrEventTypeCnxError,
tiIntrEventTypeDiscovery,
tiIntrEventTypeTransportRecovery,
tiIntrEventTypeTaskManagement,
tiIntrEventTypeDeviceChange,
tiIntrEventTypeLogin,
tiIntrEventTypeLocalAbort
} tiIntrEventType_t;
typedef enum
{
tiCnxUp,
tiCnxDown
} tiCnxEventStatus_t;
typedef enum
{
tiDiscOK,
tiDiscFailed
} tiDiscEventStatus_t;
typedef enum
{
tiLoginOK,
tiLoginFailed,
tiLogoutOK,
tiLogoutFailed
} tiLoginEventStatus_t;
typedef enum
{
tiRecOK,
tiRecFailed,
tiRecStarted
} tiRecEventStatus_t;
typedef enum
{
tiTMOK,
tiTMFailed
} tiTMEventStatus_t;
typedef enum
{
tiDeviceRemoval,
tiDeviceArrival,
tiDeviceLoginReceived
} tiDevEventStatus_t;
typedef enum
{
tiAbortOK,
tiAbortFailed,
tiAbortDelayed,
tiAbortInProgress
} tiAbortEventStatus_t;
#define TASK_UNTAGGED 0
#define TASK_SIMPLE 1
#define TASK_ORDERED 2
#define TASK_HEAD_OF_QUEUE 3
#define TASK_ACA 4
typedef enum
{
tiDirectionIn = 0x0000,
tiDirectionOut = 0x0001
}tiDataDirection_t;
typedef enum
{
tiNVRAMSuccess = 0x0000,
tiNVRAMWriteFail = 0x0001,
tiNVRAMReadFail = 0x0002,
tiNVRAMNotFound = 0x0003,
tiNVRAMAccessTimeout = 0x0004
}tiEncryptSubEvent_t;
#define IOCTL_EVT_SEV_OFF 0x00
#define IOCTL_EVT_SEV_ALWAYS_ON 0x01
#define IOCTL_EVT_SEV_ERROR 0x02
#define IOCTL_EVT_SEV_WARNING 0x03
#define IOCTL_EVT_SEV_INFORMATIONAL 0x04
#define IOCTL_EVT_SEV_DEBUG_L1 0x05
#define IOCTL_EVT_SEV_DEBUG_L2 0x06
#define IOCTL_EVT_SEV_DEBUG_L3 0x07
#define IOCTL_EVT_SRC_HW 0xF0000000
#define IOCTL_EVT_SRC_ITSDK 0x0F000000
#define IOCTL_EVT_SRC_FW 0x00F00000
#define IOCTL_EVT_SRC_TD_LAYER 0x000F0000
#define IOCTL_EVT_SRC_TARGET 0x0000F000
#define IOCTL_EVT_SRC_OSLAYER 0x00000F00
#define IOCTL_EVT_SRC_RESERVED 0x000000F0
#define IOCTL_EVT_SRC_RESERVED1 0x0000000F
#define IOCTL_EVT_SRC_HW_SHIFTER 28
#define IOCTL_EVT_SRC_ITSDK_SHIFTER 24
#define IOCTL_EVT_SRC_FW_SHIFTER 20
#define IOCTL_EVT_SRC_COMMON_LAYER_SHIFTER 16
#define IOCTL_EVT_SRC_TARGET_SHIFTER 12
#define IOCTL_EVT_SRC_OSLAYER_SHIFTER 8
#define IOCTL_EVT_SRC_RESERVED_SHIFTER 4
#define IOCTL_EVT_SRC_RESERVED1_SHIFTER 0
#define EVENTLOG_MAX_MSG_LEN 110
#define EVENT_ID_MAX 0xffffffff
#define DISCOVERY_IN_PROGRESS 0xFFFFFFFF
#define TI_SSP_INDIRECT_CDB_SIZE 64
#define TI_SCSI_INITIATOR_DIF 0x00000001
#define TI_SCSI_INITIATOR_ENCRYPT 0x00000002
#define TI_SCSI_INITIATOR_INDIRECT_CDB 0x00000004
typedef enum
{
tiTgtEventTypeCnxError,
tiTgtEventTypeDeviceChange
} tiTgtEventType_t;
#define TI_SCSI_TARGET_DIF 0x00000001
#define TI_SCSI_TARGET_MIRROR 0x00000002
#define TI_SCSI_TARGET_ENCRYPT 0x00000004
#endif