Deleted Added
full compact
57c57
< __FBSDID("$FreeBSD: head/sys/dev/mfi/mfireg.h 184897 2008-11-12 22:44:50Z ambrisko $");
---
> __FBSDID("$FreeBSD: head/sys/dev/mfi/mfireg.h 196200 2009-08-13 23:18:45Z scottl $");
92c92
< #define MFI_RMI 0x2 /* reply message interrupt */
---
> #define MFI_RMI 0x2 /* reply message interrupt */
153a154,173
> MFI_DCMD_PR_GET_STATUS = 0x01070100,
> MFI_DCMD_PR_GET_PROPERTIES = 0x01070200,
> MFI_DCMD_PR_SET_PROPERTIES = 0x01070300,
> MFI_DCMD_PR_START = 0x01070400,
> MFI_DCMD_PR_STOP = 0x01070500,
> MFI_DCMD_TIME_SECS_GET = 0x01080201,
> MFI_DCMD_FLASH_FW_OPEN = 0x010f0100,
> MFI_DCMD_FLASH_FW_DOWNLOAD = 0x010f0200,
> MFI_DCMD_FLASH_FW_FLASH = 0x010f0300,
> MFI_DCMD_FLASH_FW_CLOSE = 0x010f0400,
> MFI_DCMD_PD_GET_LIST = 0x02010000,
> MFI_DCMD_PD_GET_INFO = 0x02020000,
> MFI_DCMD_PD_STATE_SET = 0x02030100,
> MFI_DCMD_PD_REBUILD_START = 0x02040100,
> MFI_DCMD_PD_REBUILD_ABORT = 0x02040200,
> MFI_DCMD_PD_CLEAR_START = 0x02050100,
> MFI_DCMD_PD_CLEAR_ABORT = 0x02050200,
> MFI_DCMD_PD_GET_PROGRESS = 0x02060000,
> MFI_DCMD_PD_LOCATE_START = 0x02070100,
> MFI_DCMD_PD_LOCATE_STOP = 0x02070200,
157a178
> MFI_DCMD_LD_INIT_START = 0x03060100,
161a183,184
> MFI_DCMD_CFG_MAKE_SPARE = 0x04040000,
> MFI_DCMD_CFG_REMOVE_SPARE = 0x04050000,
162a186,188
> MFI_DCMD_BBU_GET_STATUS = 0x05010000,
> MFI_DCMD_BBU_GET_CAPACITY_INFO =0x05020000,
> MFI_DCMD_BBU_GET_DESIGN_INFO = 0x05030000,
247a274,276
> MFI_STAT_DIAG_FAILED,
> MFI_STAT_BOOT_MSG_PENDING,
> MFI_STAT_FOREIGN_CONFIG_INCOMPLETE,
305a335
> #define MR_LD_CACHE_MASK 0x7f
306a337,346
> #define MR_LD_CACHE_POLICY_READ_AHEAD_NONE 0
> #define MR_LD_CACHE_POLICY_READ_AHEAD_ALWAYS MR_LD_CACHE_READ_AHEAD
> #define MR_LD_CACHE_POLICY_READ_AHEAD_ADAPTIVE \
> (MR_LD_CACHE_READ_AHEAD | MR_LD_CACHE_READ_ADAPTIVE)
> #define MR_LD_CACHE_POLICY_WRITE_THROUGH 0
> #define MR_LD_CACHE_POLICY_WRITE_BACK MR_LD_CACHE_WRITE_BACK
> #define MR_LD_CACHE_POLICY_IO_CACHED \
> (MR_LD_CACHE_ALLOW_WRITE_CACHE | MR_LD_CACHE_ALLOW_READ_CACHE)
> #define MR_LD_CACHE_POLICY_IO_DIRECT 0
>
322a363
> #define MFI_MAX_PD 256
869,874c910,913
< struct {
< uint32_t rbld : 1;
< uint32_t patrol : 1;
< uint32_t clear : 1;
< uint32_t reserved: 29;
< } active;
---
> uint32_t active;
> #define MFI_PD_PROGRESS_REBUILD (1<<0)
> #define MFI_PD_PROGRESS_PATROL (1<<1)
> #define MFI_PD_PROGRESS_CLEAR (1<<2)
893,894c932,933
< uint16_t fw_state;
< uint8_t disable_for_removal;
---
> uint16_t fw_state; /* MFI_PD_STATE_* */
> uint8_t disabled_for_removal;
921c960
< uint8_t scsi_dev_type;
---
> uint8_t scsi_dev_type; /* 0 = disk */
929,932c968
< uint8_t data;
< /*
< struct mfi_pd_address addr[];
< */
---
> struct mfi_pd_address addr[0];
934a971,980
> enum mfi_pd_state {
> MFI_PD_STATE_UNCONFIGURED_GOOD = 0x00,
> MFI_PD_STATE_UNCONFIGURED_BAD = 0x01,
> MFI_PD_STATE_HOT_SPARE = 0x02,
> MFI_PD_STATE_OFFLINE = 0x10,
> MFI_PD_STATE_FAILED = 0x11,
> MFI_PD_STATE_REBUILD = 0x14,
> MFI_PD_STATE_ONLINE = 0x18
> };
>
988a1035,1037
> #define MFI_LD_PARAMS_INIT_NO 0
> #define MFI_LD_PARAMS_INIT_QUICK 1
> #define MFI_LD_PARAMS_INIT_FULL 2
998c1047
< #define MFI_LD_PORGRESS_RECON (1<<3)
---
> #define MFI_LD_PROGRESS_RECON (1<<3)
1031,1040d1079
< union mfi_spare_type {
< struct {
< uint8_t is_dedicate :1;
< uint8_t is_revertable :1;
< uint8_t is_encl_affinity :1;
< uint8_t reserved :5;
< } v;
< uint8_t type;
< } __packed;
<
1044c1083,1086
< union mfi_spare_type spare_type;
---
> uint8_t spare_type;
> #define MFI_SPARE_DEDICATED (1 << 0)
> #define MFI_SPARE_REVERTIBLE (1 << 1)
> #define MFI_SPARE_ENCL_AFFINITY (1 << 2)
1047c1089
< uint16_t array_refd[MAX_ARRAYS];
---
> uint16_t array_ref[MAX_ARRAYS];
1050d1091
< #define MAX_ROW_SIZE 32
1058,1059c1099,1100
< union mfi_pd_ref ref;
< uint16_t fw_state;
---
> union mfi_pd_ref ref; /* 0xffff == missing drive */
> uint16_t fw_state; /* MFI_PD_STATE_* */
1064c1105
< } pd[MAX_ROW_SIZE];
---
> } pd[0];
1076,1081c1117,1119
< uint8_t data;
< /*
< struct mfi_array array[];
< struct mfi_ld_config ld[];
< struct mfi_spare spare[];
< */
---
> struct mfi_array array[0];
> struct mfi_ld_config ld[0];
> struct mfi_spare spare[0];
1083a1122,1228
> struct mfi_bbu_capacity_info {
> uint16_t relative_charge;
> uint16_t absolute_charge;
> uint16_t remaining_capacity;
> uint16_t full_charge_capacity;
> uint16_t run_time_to_empty;
> uint16_t average_time_to_empty;
> uint16_t average_time_to_full;
> uint16_t cycle_count;
> uint16_t max_error;
> uint16_t remaining_capacity_alarm;
> uint16_t remaining_time_alarm;
> uint8_t reserved[26];
> } __packed;
>
> struct mfi_bbu_design_info {
> uint32_t mfg_date;
> uint16_t design_capacity;
> uint16_t design_voltage;
> uint16_t spec_info;
> uint16_t serial_number;
> uint16_t pack_stat_config;
> uint8_t mfg_name[12];
> uint8_t device_name[8];
> uint8_t device_chemistry[8];
> uint8_t mfg_data[8];
> uint8_t reserved[17];
> } __packed;
>
> struct mfi_ibbu_state {
> uint16_t gas_guage_status;
> uint16_t relative_charge;
> uint16_t charger_system_state;
> uint16_t charger_system_ctrl;
> uint16_t charging_current;
> uint16_t absolute_charge;
> uint16_t max_error;
> uint8_t reserved[18];
> } __packed;
>
> struct mfi_bbu_state {
> uint16_t gas_guage_status;
> uint16_t relative_charge;
> uint16_t charger_status;
> uint16_t remaining_capacity;
> uint16_t full_charge_capacity;
> uint8_t is_SOH_good;
> uint8_t reserved[21];
> } __packed;
>
> union mfi_bbu_status_detail {
> struct mfi_ibbu_state ibbu;
> struct mfi_bbu_state bbu;
> };
>
> struct mfi_bbu_status {
> uint8_t battery_type;
> #define MFI_BBU_TYPE_NONE 0
> #define MFI_BBU_TYPE_IBBU 1
> #define MFI_BBU_TYPE_BBU 2
> uint8_t reserved;
> uint16_t voltage;
> int16_t current;
> uint16_t temperature;
> uint32_t fw_status;
> #define MFI_BBU_STATE_PACK_MISSING (1 << 0)
> #define MFI_BBU_STATE_VOLTAGE_LOW (1 << 1)
> #define MFI_BBU_STATE_TEMPERATURE_HIGH (1 << 2)
> #define MFI_BBU_STATE_CHARGE_ACTIVE (1 << 0)
> #define MFI_BBU_STATE_DISCHARGE_ACTIVE (1 << 0)
> uint8_t pad[20];
> union mfi_bbu_status_detail detail;
> } __packed;
>
> enum mfi_pr_state {
> MFI_PR_STATE_STOPPED = 0,
> MFI_PR_STATE_READY = 1,
> MFI_PR_STATE_ACTIVE = 2,
> MFI_PR_STATE_ABORTED = 0xff
> };
>
> struct mfi_pr_status {
> uint32_t num_iteration;
> uint8_t state;
> uint8_t num_pd_done;
> uint8_t reserved[10];
> };
>
> enum mfi_pr_opmode {
> MFI_PR_OPMODE_AUTO = 0,
> MFI_PR_OPMODE_MANUAL = 1,
> MFI_PR_OPMODE_DISABLED = 2
> };
>
> struct mfi_pr_properties {
> uint8_t op_mode;
> uint8_t max_pd;
> uint8_t reserved;
> uint8_t exclude_ld_count;
> uint16_t excluded_ld[MFI_MAX_LD];
> uint8_t cur_pd_map[MFI_MAX_PD / 8];
> uint8_t last_pd_map[MFI_MAX_PD / 8];
> uint32_t next_exec;
> uint32_t exec_freq;
> uint32_t clear_freq;
> };
>