summaryrefslogtreecommitdiffstats
path: root/sys/dev/mfi
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2013-04-08 17:46:45 +0000
committermarkj <markj@FreeBSD.org>2013-04-08 17:46:45 +0000
commita0696b397d54d11a134b0d601561b8b3a89a74c5 (patch)
tree5f91eff0d0ed32759dc5ded30064257f5ee6a7fd /sys/dev/mfi
parent3b1d7ef89c2c487d251c919e6ae498f60926e0d6 (diff)
downloadFreeBSD-src-a0696b397d54d11a134b0d601561b8b3a89a74c5.zip
FreeBSD-src-a0696b397d54d11a134b0d601561b8b3a89a74c5.tar.gz
Add support for getting and setting BBU properties related to battery
relearning. Specifically, add subcommands to mfiutil(8) which allow the user to set the BBU and autolearn modes when the firmware supports it, and add a subcommand which kicks off a battery relearn. Reviewed by: sbruno, rstone Tested by: sbruno Approved by: rstone (co-mentor) MFC after: 2 weeks Sponsored by: Sandvine Incorporated
Diffstat (limited to 'sys/dev/mfi')
-rw-r--r--sys/dev/mfi/mfi_debug.c9
-rw-r--r--sys/dev/mfi/mfireg.h12
2 files changed, 21 insertions, 0 deletions
diff --git a/sys/dev/mfi/mfi_debug.c b/sys/dev/mfi/mfi_debug.c
index 4aec4f7..be42ec0 100644
--- a/sys/dev/mfi/mfi_debug.c
+++ b/sys/dev/mfi/mfi_debug.c
@@ -168,6 +168,15 @@ mfi_print_dcmd(struct mfi_softc *sc, device_t dev, struct mfi_command *cm)
case MFI_DCMD_LD_MAP_GET_INFO:
opcode = "LD_MAP_GET_INFO";
break;
+ case MFI_DCMD_BBU_START_LEARN:
+ opcode = "BBU_START_LEARN";
+ break;
+ case MFI_DCMD_BBU_GET_PROP:
+ opcode = "BBU_GET_PROP";
+ break;
+ case MFI_DCMD_BBU_SET_PROP:
+ opcode = "BBU_SET_PROP";
+ break;
default:
opcode = "UNKNOWN";
break;
diff --git a/sys/dev/mfi/mfireg.h b/sys/dev/mfi/mfireg.h
index 52ddafe..8f88f10 100644
--- a/sys/dev/mfi/mfireg.h
+++ b/sys/dev/mfi/mfireg.h
@@ -234,6 +234,9 @@ typedef enum {
MFI_DCMD_BBU_GET_STATUS = 0x05010000,
MFI_DCMD_BBU_GET_CAPACITY_INFO =0x05020000,
MFI_DCMD_BBU_GET_DESIGN_INFO = 0x05030000,
+ MFI_DCMD_BBU_START_LEARN = 0x05040000,
+ MFI_DCMD_BBU_GET_PROP = 0x05050100,
+ MFI_DCMD_BBU_SET_PROP = 0x05050200,
MFI_DCMD_CLUSTER = 0x08000000,
MFI_DCMD_CLUSTER_RESET_ALL = 0x08010100,
MFI_DCMD_CLUSTER_RESET_LD = 0x08010200
@@ -1367,6 +1370,15 @@ struct mfi_bbu_state {
uint8_t reserved[21];
} __packed;
+struct mfi_bbu_properties {
+ uint32_t auto_learn_period;
+ uint32_t next_learn_time;
+ uint8_t learn_delay_interval;
+ uint8_t auto_learn_mode;
+ uint8_t bbu_mode;
+ uint8_t reserved[21];
+} __packed;
+
union mfi_bbu_status_detail {
struct mfi_ibbu_state ibbu;
struct mfi_bbu_state bbu;
OpenPOWER on IntegriCloud