bin/160581: mfiutil(8) doesn' t properly detect dead battery with mfiutil show battery

Garrett Cooper gcooper at
Sun Sep 11 01:00:29 UTC 2011

The following reply was made to PR bin/160581; it has been noted by GNATS.

From: Garrett Cooper <gcooper at>
To: Mark <markjdb at>
Cc: bug-followup at
Subject: Re: bin/160581: mfiutil(8) doesn&#39;t properly detect dead battery
 with mfiutil show battery
Date: Sat, 10 Sep 2011 17:34:19 -0700 (PDT)

 On Sat, 10 Sep 2011, Mark wrote:
 > Hi Garrett,
 > It looks like mfi(4) is missing a mask or several for the fw_status
 > field when it tries to grab info about the battery backup. Maybe the
 > attached patch can help a bit in figuring out what mfiutil is
 > ignoring. I don't know if there's a publicly available datasheet for
 > the firmware; I couldn't find it last time I tried. Maybe jhb@ has
 > access to one. There's nothing useful in LSI's FreeBSD or Linux
 > drivers - probably the opcodes and masks are just hardcoded into
 > MegaCLI.
 > If there's no way to figure out the masks from a datasheet, it'll
 > probably be necessary to disassemble MegaCLI or something. I can try
 > and figure it out, but I don't have access to a machine with an LSI
 > controller right now, so it'd be tricky. =(
 Hi Mark,
  	That's exactly what I tried before, but didn't include in my PR 
 email. Here's what I got:
 $ sudo mfiutil show battery
 mfi0: Battery State:
       Manufacture Date: 9/19/2009
          Serial Number: 1022
           Manufacturer: LS1111001B
                  Model: 3598301
              Chemistry: LION
        Design Capacity: 1215 mAh
   Full Charge Capacity: 417 mAh
       Current Capacity: 415 mAh
          Charge Cycles: 58
         Current Charge: 100%
         Design Voltage: 3700 mV
        Current Voltage: 4049 mV
            Temperature: 43 C
                 Status:Firmware status: 3072 <-- HERE
  	LSI's copy of the driver is unfortunately unhelpful here, and I 
 tried ktrace'ing/truss'ing the driver to no avail. I guess the next step 
 is to hack the driver and dump the ioctl output sent via MegaCLI 
 (shouldn't be too hard).

More information about the freebsd-bugs mailing list