summaryrefslogtreecommitdiffstats
path: root/sys/dev/mfi
Commit message (Collapse)AuthorAgeFilesLines
* Change Dell's gen2 catch-all from Dell PERC H700/H800 to Dell PERC Gen2ambrisko2008-12-152-2/+3
| | | | | | and bump the driver version from 2 to 3 and fix the related style problem. Suggested by: LSI
* Sort the PCI device's and make the catch-all for new Dellambrisko2008-12-121-6/+6
| | | | | | | | cards only apply to Dell. This gets rid of the duplicate catch-all that I introduced that jkim caught. Prompted by: jkim Reviewed by: jkim
* Add in some more device ID's and a generic catch-all.ambrisko2008-12-121-0/+3
| | | | Submitted by: LSI
* Change new card identification names.ambrisko2008-12-031-4/+4
| | | | | Submitted by: LSI MFC after: 3 days
* Fix the maximum transfer size for mfi(4) disk devices to not exceed thejhb2008-11-171-1/+2
| | | | | | | maximum number of scatter/gather elements supported in the bus dma tag. Reviewed by: scottl MFC after: 1 week
* Fix compile. I was in the wrong tree when I tested it :-(ambrisko2008-11-141-2/+2
| | | | Pointed out by: Andrzej
* When running a 32bit app. on amd64, ensure the bits above 32bitambrisko2008-11-141-0/+15
| | | | are zero for the copyout. Confirmed by LSI.
* One more piece to add to make sense data work for a user app. from LSI.ambrisko2008-11-131-0/+10
| | | | | Submitted by: LSI MFC after: 3 days
* - Fix from jhb for failing I/O request when bus_dmamap_load fails.ambrisko2008-11-125-30/+85
| | | | | | | | | | | | | | - Fix to ioctl path in which the length could be 0 which means no data in/out from LSI. - Fix to ioctl path in which the data in the sense data space of the ioctl packet is a really a pointer to some location in user-space. From LSI re-worked a bit by me. - Add HW support for next gen cards from LSI. Thanks to LSI for their support! Submitted by: jhb, LSI MFC after: 3 days
* Fix style nit: s/^ }/}/ in two places.imp2008-08-231-2/+2
|
* Tweak the output of event log messages from the controller:jhb2008-06-261-283/+48
| | | | | | | | | | | - Each log entry contains a text description in the "description" field of the entry. The existing decode logic always ended up duplicating information that was already in the description string. This made the logs overly verbose. Now we just print out the description string. - Add some simple parsing of the timestamp and event classes. Reviewed by: ambrisko, scottl MFC after: 2 weeks
* Adjust the handling of pending log events during boot:jhb2008-06-261-50/+75
| | | | | | | | | | | | | | | | | - Fetch events from the controller in batches of 15 rather than a single event at a time. - When fetching events from the controller, honor the event class and locale settings (via hw.mfi tunables). This also allows the firmware to skip over unwanted log entries resulting in fewer requests to the controller if there many unwanted log entries since the last clean shutdown. - Don't drop the driver mutex while decoding an event. - If we get an error other than MFI_STAT_NOT_FOUND (basically EOF for hitting the end of the event log) then emit a warning and bail on processing further log entries. Reviewed by: ambrisko, scottl MFC after: 2 weeks
* Add support to talk to the LSI ioctl path on with FreeBSD 32 bit app'sambrisko2008-05-282-0/+62
| | | | | | | | | | | on amd64. Note the only difference is the iovec32 part so I use the native structure for everything else. Also I plan to MFC all the changes in -current to 7-stable and 6-stable shortly since I've been running them. This does not include the cam changes. MFC after: 3 days
* Add support for management apps. Work around an apparent firmware bug thatscottl2008-05-122-8/+126
| | | | results in hung i/o if more than 128 commands are scheduled for an array.
* Replace callout_init(..., 1) with callout_init(..., CALLOUT_MPSAFE) forkris2008-04-161-1/+1
| | | | | | | better grep-compliance and to standardize with the rest of the kernel. Reviewed by: jhb MFC after: 1 week
* Add in a compat. mode so you can either open the card's deviceambrisko2008-03-221-0/+9
| | | | | node or directly open mfi0 and specify the card you want to talk to in the ioctl.
* Fix some bugs in dealing with DCMD'd without data. MegaCli was sendingambrisko2008-02-022-58/+94
| | | | | | | | | down some DCMD's without any data. Thanks to Dell and LSI for helping to provide clues to figure out this problem. Now MegaCli can upgrade the firmware and should work identical when run on Linux. Reviewed by: scottl, LSI MFC after: 1 day
* Add Dell's sub-vendor id to identify PERC6 RAID controller which has LSIambrisko2007-12-191-0/+1
| | | | vendor id's.
* I incorrectly assumed the log buffer started from the beginning when itambrisko2007-12-191-7/+3
| | | | | | is actually a circular log. Deal with it rolling around. Fortunately, the log area is big and I haven't seen any roll over yet. Update and get rid of the obsolete comment.
* Play better with CAM so that there aren't so many spurious warnings at boot.scottl2007-10-121-17/+14
|
* Update the MFI driver to support new "1078" series of hardware. Thisscottl2007-08-254-24/+221
| | | | | | | | includes the upcoming Dell PERC6 series. Many thanks to LSI for contributing this code. Submitted by: LSI Approved by: re
* Fix a few nits relative to the previous changes:jhb2007-08-132-2/+9
| | | | | | | | | | - Don't leak the config lock if detach() fails due to the controller char dev being open. - Close a race between detach() and a process opening the controller char dev. MFC after: 1 week Approved by: re (bmah)
* Teach the mfi(4) driver to handle requests from userland managementjhb2007-08-135-29/+217
| | | | | | | | applications to add and remove volumes. MFC after: 1 week Approved by: re (bmah) Reviewed by: ambrisko, scottl
* Prepare for future integration between CAM and newbus. xpt_bus_registerscottl2007-06-171-1/+1
| | | | | | | now takes a device_t to be the parent of the bus that is being created. Most SIMs have been updated with a reasonable argument, but a few exceptions just pass NULL for now. This argument isn't used yet and the newbus integration likely won't be ready until after 7.0-RELEASE.
* Add in a couple of things:ambrisko2007-06-042-19/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - In the ioctl path let command get queued up and return when complete _without_ blocking the driving waiting for the response. This way the driver doesn't "lock up" for ~30s during a flash command. Submitted by scottl. - Add a guard so that if a DCMD of 0 is sent down the ioctl path don't send it to the controller. Return with a status of OK. This is a little strange since MegaCli doesn't seem to like something and will issue some DCMD of 0. This doesn't happen under Linux. So the emulation needs to be improved but I'm not sure what. Another strange thing is that when a DCMD of 0 gets issued under i386 the controller returns OK but in amd64 the context is messed up. - Add a guard so the context has to be with-in the legal limit so we get a reasonable error assertion versus random panic. It's going to be a challenge to figure out why MegaCli is not totally happy and then sends some bogus commands. This means that flashing firmware via the Linux tool won't work since it generates a DCMD of 0 when it should be opening the firmware for a flash update. Without this problem flashing works fine. This means there is no publicly available tool to upgrade the RAID firmware under FreeBSD right now. I plan to MFC all of the mfi changes to 6.X shortly. This might not include the SCSI pass-through changes. Submitted by: scottl Reviewed by: scottl MFC after: 3 days
* Catch up to driver changes required for the mfip sub-driver.scottl2007-05-163-4/+27
|
* Add the 'mfip' sub-driver for gaining SCSI-passthrough access to devicesscottl2007-05-161-0/+389
| | | | on an MFI controller.
* Collapse the mfi_ld object. Add an ioctl to help management apps mapscottl2007-05-105-44/+79
| | | | array Id's to FreeBSD device names.
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-231-1/+1
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Remove a PCI ID entry that conflicts with the AMR driver.scottl2007-01-231-1/+0
|
* Add PCI Id's for upcoming controllers.scottl2007-01-171-1/+3
| | | | | Obtained from: LSI Corp. MFC After: 3 days
* Up the event class reporting from 10 (basically, nothing) to EVT_CLASS_INFO.scottl2007-01-071-1/+1
| | | | Submitted by: Doug Ambrisko
* Make sure that all of the fields in the header are clean. It was possible forscottl2007-01-021-5/+9
| | | | unsafe flags to leak from one command to another.
* Some relatively minor changes and bug fixes:ambrisko2006-12-143-65/+54
| | | | | | | | | | | | | | | | | 1) s/mi/mfi/ in FreeBSD ioctl path 2) add in "\n" on various failure messages 3) cap the length of time to abort an AEN command 4) fix passing sense data back to user to make Dell's Linux firmware upgrade tool happy. 5) bump the MFI_POLL_TIMEOUT_SECS from 10s to 50s since the firmware flash command can take ~40s to return. This is some clean-up and enables RAID firmware to updated via Dell's tool. Note Dell's tool requires the updates to the Linux emulator that has been done in -current with TLS etc. I need to discuss with scottl how to better submit mfi commands to the firmware via the ioctl path so we don't do it in polled mode.
* Change the internal API for polled commands. Calling mfi_polled_commandscottl2006-11-181-83/+39
| | | | | | | | | after calling mfi_mapcmd is no longer needed, so long as the MFI_CMD_POLLED flag is set. This change eliminates the possibility of a polled command getting posted twice to the driver. This is turn fixes panics on shutdown when INVARIANTS is set. Sponsored by: Ironport
* - Add in FreeBSD native ioctl that models the Linux version.ambrisko2006-11-143-7/+206
| | | | | | | | - Add a translation so the Linux ioctl's don't conflict with the FreeBSD definition. - Assume Linux 32bit emulation on amd64. This was tested on i386 and amd64 with the 32bit Linux MegaCli. Eventually we should do a 32bit native FreeBSD translation app.
* Remove some debugging code that accidentally crept in.scottl2006-10-161-3/+1
|
* - Add a command validator for use in debugging.scottl2006-10-165-53/+425
| | | | | | | | - Fix the locking protocol to eliminate races between normal I/O and AENs. - Various small improvements and usability tweaks. Sponsored by: IronPort Portions Submitted by: Doug Ambrisko
* Skip the AEN event command that is always hanging out on the card.scottl2006-09-271-0/+2
| | | | Submitted by: Doug Ambrisko
* Fix a bad #include statmentscottl2006-09-271-1/+1
|
* Add a command debugging module and a periodic watchdog timer.scottl2006-09-253-0/+287
| | | | Sponsored by: IronPort
* Allow hw.mfi.event_locale/hw.mfi.event_class to be set via loader.ambrisko2006-09-201-2/+8
| | | | | If an event doesn't match the criteria then don't print it. Some events are not saved in the log (<0 class events).
* Change some variable names and update some comments to help clarify somescottl2006-09-202-36/+33
| | | | confusing issues.
* Change the class from uint8_t to int8_t so people can filter on >0ambrisko2006-09-071-1/+1
| | | | events.
* Change the event log dump on initial boot to use get_event versusambrisko2006-09-072-68/+117
| | | | | | | | | AEN. This makes the boot messages cleaner. I now know how this structure works so I can implement it versus guessing. Remove the not ready type code since it is ready now. I added the time stamp/locale/class so people can parse messages better. Create a sysctl so that we can set the locale/class level.
* Remove old debugging code from the interrupt handler.scottl2006-09-071-11/+4
|
* Change mfi_add_ld to "immediate command" mode since we need to enumerateambrisko2006-06-301-4/+7
| | | | | | potential boot disks during the probe so they are read for mount root. Reviewed by: ps, scottl
* Fix a potential problem when mfi_get_log_state and onlyps2006-06-201-2/+4
| | | | | release a command if one was allocated. Also release the command in mfi_shutdown.
* Instead of using scsi probes to do device discovery, use the firmwareps2006-06-205-214/+178
| | | | | | commands to grab the device listing. This resolves issues using multiple volumes, where each volume was actually internally pointing to target 0.
* Fix a typo when getting the log_state and set the flags on theps2006-06-201-1/+1
| | | | | command to signify it is being polled and expecting data to be dma'd from the card.
OpenPOWER on IntegriCloud