Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/mps/mpsvar.h
Show All 27 Lines | |||||
* Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD | * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD | ||||
* | * | ||||
* $FreeBSD$ | * $FreeBSD$ | ||||
*/ | */ | ||||
#ifndef _MPSVAR_H | #ifndef _MPSVAR_H | ||||
#define _MPSVAR_H | #define _MPSVAR_H | ||||
#define MPS_DRIVER_VERSION "21.01.00.00-fbsd" | #define MPS_DRIVER_VERSION "21.02.00.00-fbsd" | ||||
#define MPS_DB_MAX_WAIT 2500 | #define MPS_DB_MAX_WAIT 2500 | ||||
#define MPS_REQ_FRAMES 1024 | #define MPS_REQ_FRAMES 1024 | ||||
#define MPS_EVT_REPLY_FRAMES 32 | #define MPS_EVT_REPLY_FRAMES 32 | ||||
#define MPS_REPLY_FRAMES MPS_REQ_FRAMES | #define MPS_REPLY_FRAMES MPS_REQ_FRAMES | ||||
#define MPS_CHAIN_FRAMES 2048 | #define MPS_CHAIN_FRAMES 2048 | ||||
#define MPS_MAXIO_PAGES (-1) | #define MPS_MAXIO_PAGES (-1) | ||||
#define MPS_SENSE_LEN SSD_FULL_SIZE | #define MPS_SENSE_LEN SSD_FULL_SIZE | ||||
#define MPS_MSI_COUNT 1 | #define MPS_MSI_COUNT 1 | ||||
#define MPS_SGE64_SIZE 12 | #define MPS_SGE64_SIZE 12 | ||||
#define MPS_SGE32_SIZE 8 | #define MPS_SGE32_SIZE 8 | ||||
#define MPS_SGC_SIZE 8 | #define MPS_SGC_SIZE 8 | ||||
#define CAN_SLEEP 1 | #define CAN_SLEEP 1 | ||||
#define NO_SLEEP 0 | #define NO_SLEEP 0 | ||||
#define MPS_PERIODIC_DELAY 1 /* 1 second heartbeat/watchdog check */ | #define MPS_PERIODIC_DELAY 1 /* 1 second heartbeat/watchdog check */ | ||||
#define MPS_ATA_ID_TIMEOUT 5 /* 5 second timeout for SATA ID cmd */ | #define MPS_ATA_ID_TIMEOUT 5 /* 5 second timeout for SATA ID cmd */ | ||||
#define MPS_MISSING_CHECK_DELAY 10 /* 10 seconds between missing check */ | |||||
#define MPS_SCSI_RI_INVALID_FRAME (0x00000002) | #define MPS_SCSI_RI_INVALID_FRAME (0x00000002) | ||||
#define MPS_STRING_LENGTH 64 | #define MPS_STRING_LENGTH 64 | ||||
#define DEFAULT_SPINUP_WAIT 3 /* seconds to wait for spinup */ | #define DEFAULT_SPINUP_WAIT 3 /* seconds to wait for spinup */ | ||||
#include <sys/endian.h> | #include <sys/endian.h> | ||||
/* | /* | ||||
* host mapping related macro definitions | * host mapping related macro definitions | ||||
*/ | */ | ||||
#define MPS_MAPTABLE_BAD_IDX 0xFFFFFFFF | #define MPS_MAPTABLE_BAD_IDX 0xFFFFFFFF | ||||
#define MPS_DPM_BAD_IDX 0xFFFF | #define MPS_DPM_BAD_IDX 0xFFFF | ||||
#define MPS_ENCTABLE_BAD_IDX 0xFF | #define MPS_ENCTABLE_BAD_IDX 0xFF | ||||
#define MPS_MAX_MISSING_COUNT 0x0F | #define MPS_MAX_MISSING_COUNT 0x0F | ||||
#define MPS_DEV_RESERVED 0x20000000 | #define MPS_DEV_RESERVED 0x20000000 | ||||
#define MPS_MAP_IN_USE 0x10000000 | #define MPS_MAP_IN_USE 0x10000000 | ||||
#define MPS_RAID_CHANNEL 1 | |||||
#define MPS_MAP_BAD_ID 0xFFFFFFFF | #define MPS_MAP_BAD_ID 0xFFFFFFFF | ||||
/* | /* | ||||
* WarpDrive controller | * WarpDrive controller | ||||
*/ | */ | ||||
#define MPS_CHIP_WD_DEVICE_ID 0x007E | #define MPS_CHIP_WD_DEVICE_ID 0x007E | ||||
#define MPS_WD_LSI_OEM 0x80 | #define MPS_WD_LSI_OEM 0x80 | ||||
#define MPS_WD_HIDE_EXPOSE_MASK 0x03 | #define MPS_WD_HIDE_EXPOSE_MASK 0x03 | ||||
Show All 20 Lines | |||||
/** | /** | ||||
* struct dev_mapping_table - device mapping information | * struct dev_mapping_table - device mapping information | ||||
* @physical_id: SAS address for drives or WWID for RAID volumes | * @physical_id: SAS address for drives or WWID for RAID volumes | ||||
* @device_info: bitfield provides detailed info about the device | * @device_info: bitfield provides detailed info about the device | ||||
* @phy_bits: bitfields indicating controller phys | * @phy_bits: bitfields indicating controller phys | ||||
* @dpm_entry_num: index of this device in device persistent map table | * @dpm_entry_num: index of this device in device persistent map table | ||||
* @dev_handle: device handle for the device pointed by this entry | * @dev_handle: device handle for the device pointed by this entry | ||||
* @channel: target channel | |||||
* @id: target id | * @id: target id | ||||
* @missing_count: number of times the device not detected by driver | * @missing_count: number of times the device not detected by driver | ||||
* @hide_flag: Hide this physical disk/not (foreign configuration) | * @hide_flag: Hide this physical disk/not (foreign configuration) | ||||
* @init_complete: Whether the start of the day checks completed or not | * @init_complete: Whether the start of the day checks completed or not | ||||
*/ | */ | ||||
struct dev_mapping_table { | struct dev_mapping_table { | ||||
u64 physical_id; | u64 physical_id; | ||||
u32 device_info; | u32 device_info; | ||||
u32 phy_bits; | u32 phy_bits; | ||||
u16 dpm_entry_num; | u16 dpm_entry_num; | ||||
u16 dev_handle; | u16 dev_handle; | ||||
u8 reserved1; | u16 reserved1; | ||||
u8 channel; | |||||
u16 id; | u16 id; | ||||
u8 missing_count; | u8 missing_count; | ||||
u8 init_complete; | u8 init_complete; | ||||
u8 TLR_bits; | u8 TLR_bits; | ||||
u8 reserved2; | u8 reserved2; | ||||
}; | }; | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 156 Lines • ▼ Show 20 Lines | #define MPS_FLAGS_WD_AVAILABLE (1 << 6) | ||||
int use_phynum; | int use_phynum; | ||||
uint64_t chain_alloc_fail; | uint64_t chain_alloc_fail; | ||||
struct sysctl_ctx_list sysctl_ctx; | struct sysctl_ctx_list sysctl_ctx; | ||||
struct sysctl_oid *sysctl_tree; | struct sysctl_oid *sysctl_tree; | ||||
char fw_version[16]; | char fw_version[16]; | ||||
struct mps_command *commands; | struct mps_command *commands; | ||||
struct mps_chain *chains; | struct mps_chain *chains; | ||||
struct callout periodic; | struct callout periodic; | ||||
struct callout device_check_callout; | |||||
struct mpssas_softc *sassc; | struct mpssas_softc *sassc; | ||||
char tmp_string[MPS_STRING_LENGTH]; | char tmp_string[MPS_STRING_LENGTH]; | ||||
TAILQ_HEAD(, mps_command) req_list; | TAILQ_HEAD(, mps_command) req_list; | ||||
TAILQ_HEAD(, mps_command) high_priority_req_list; | TAILQ_HEAD(, mps_command) high_priority_req_list; | ||||
TAILQ_HEAD(, mps_chain) chain_list; | TAILQ_HEAD(, mps_chain) chain_list; | ||||
TAILQ_HEAD(, mps_command) tm_list; | TAILQ_HEAD(, mps_command) tm_list; | ||||
int replypostindex; | int replypostindex; | ||||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Lines | #define MPS_FLAGS_WD_AVAILABLE (1 << 6) | ||||
uint8_t *dpm_flush_entry; | uint8_t *dpm_flush_entry; | ||||
Mpi2DriverMappingPage0_t *dpm_pg0; | Mpi2DriverMappingPage0_t *dpm_pg0; | ||||
uint16_t max_devices; | uint16_t max_devices; | ||||
uint16_t max_enclosures; | uint16_t max_enclosures; | ||||
uint16_t max_expanders; | uint16_t max_expanders; | ||||
uint8_t max_volumes; | uint8_t max_volumes; | ||||
uint8_t num_enc_table_entries; | uint8_t num_enc_table_entries; | ||||
uint8_t num_rsvd_entries; | uint8_t num_rsvd_entries; | ||||
uint8_t num_channels; | |||||
uint16_t max_dpm_entries; | uint16_t max_dpm_entries; | ||||
uint8_t is_dpm_enable; | uint8_t is_dpm_enable; | ||||
uint8_t track_mapping_events; | uint8_t track_mapping_events; | ||||
uint32_t pending_map_events; | uint32_t pending_map_events; | ||||
uint8_t mt_full_retry; | |||||
uint8_t mt_add_device_failed; | |||||
/* FW diag Buffer List */ | /* FW diag Buffer List */ | ||||
mps_fw_diagnostic_buffer_t | mps_fw_diagnostic_buffer_t | ||||
fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_COUNT]; | fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_COUNT]; | ||||
/* Event Recording IOCTL support */ | /* Event Recording IOCTL support */ | ||||
uint32_t events_to_record[4]; | uint32_t events_to_record[4]; | ||||
mps_event_entry_t recorded_events[MPS_EVENT_QUEUE_SIZE]; | mps_event_entry_t recorded_events[MPS_EVENT_QUEUE_SIZE]; | ||||
▲ Show 20 Lines • Show All 332 Lines • ▼ Show 20 Lines | |||||
void mpssas_handle_reinit(struct mps_softc *sc); | void mpssas_handle_reinit(struct mps_softc *sc); | ||||
void mps_base_static_config_pages(struct mps_softc *sc); | void mps_base_static_config_pages(struct mps_softc *sc); | ||||
void mps_wd_config_pages(struct mps_softc *sc); | void mps_wd_config_pages(struct mps_softc *sc); | ||||
int mps_mapping_initialize(struct mps_softc *); | int mps_mapping_initialize(struct mps_softc *); | ||||
void mps_mapping_topology_change_event(struct mps_softc *, | void mps_mapping_topology_change_event(struct mps_softc *, | ||||
Mpi2EventDataSasTopologyChangeList_t *); | Mpi2EventDataSasTopologyChangeList_t *); | ||||
int mps_mapping_is_reinit_required(struct mps_softc *); | |||||
void mps_mapping_free_memory(struct mps_softc *sc); | void mps_mapping_free_memory(struct mps_softc *sc); | ||||
int mps_config_set_dpm_pg0(struct mps_softc *, Mpi2ConfigReply_t *, | int mps_config_set_dpm_pg0(struct mps_softc *, Mpi2ConfigReply_t *, | ||||
Mpi2DriverMappingPage0_t *, u16 ); | Mpi2DriverMappingPage0_t *, u16 ); | ||||
void mps_mapping_exit(struct mps_softc *); | void mps_mapping_exit(struct mps_softc *); | ||||
void mps_mapping_check_devices(struct mps_softc *, int); | void mps_mapping_check_devices(void *); | ||||
int mps_mapping_allocate_memory(struct mps_softc *sc); | int mps_mapping_allocate_memory(struct mps_softc *sc); | ||||
unsigned int mps_mapping_get_sas_id(struct mps_softc *, uint64_t , u16); | unsigned int mps_mapping_get_tid(struct mps_softc *, uint64_t , u16); | ||||
unsigned int mps_mapping_get_sas_id_from_handle(struct mps_softc *sc, | unsigned int mps_mapping_get_tid_from_handle(struct mps_softc *sc, | ||||
u16 handle); | u16 handle); | ||||
unsigned int mps_mapping_get_raid_id(struct mps_softc *sc, u64 wwid, | unsigned int mps_mapping_get_raid_tid(struct mps_softc *sc, u64 wwid, | ||||
u16 handle); | u16 volHandle); | ||||
unsigned int mps_mapping_get_raid_id_from_handle(struct mps_softc *sc, | unsigned int mps_mapping_get_raid_tid_from_handle(struct mps_softc *sc, | ||||
u16 volHandle); | u16 volHandle); | ||||
void mps_mapping_enclosure_dev_status_change_event(struct mps_softc *, | void mps_mapping_enclosure_dev_status_change_event(struct mps_softc *, | ||||
Mpi2EventDataSasEnclDevStatusChange_t *event_data); | Mpi2EventDataSasEnclDevStatusChange_t *event_data); | ||||
void mps_mapping_ir_config_change_event(struct mps_softc *sc, | void mps_mapping_ir_config_change_event(struct mps_softc *sc, | ||||
Mpi2EventDataIrConfigChangeList_t *event_data); | Mpi2EventDataIrConfigChangeList_t *event_data); | ||||
int mps_mapping_dump(SYSCTL_HANDLER_ARGS); | int mps_mapping_dump(SYSCTL_HANDLER_ARGS); | ||||
int mps_mapping_encl_dump(SYSCTL_HANDLER_ARGS); | int mps_mapping_encl_dump(SYSCTL_HANDLER_ARGS); | ||||
▲ Show 20 Lines • Show All 49 Lines • Show Last 20 Lines |