summaryrefslogtreecommitdiffstats
path: root/sys/dev (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cleanup mpii_get_ioc_pg8 mess, no functional changemikeb2012-08-171-51/+26
|
* Fix typos in DPRINTF() so error messages refer to correct *hci.krw2012-08-172-4/+4
| | | | Spotted by Artturi Alm. Thanks!
* update to firmware 1.4.55 via freebsd revision 236212.dlg2012-08-172-15026/+15133
|
* add support for "physical devices" on skinny controllers.dlg2012-08-173-20/+204
| | | | | | | | | | | these controllers let you specify disks that should be accessed directly rather than be part of logical volumes. apparently you can plug in things like tape drives too. anyway, physical devices are exposed via a separate scsibus attached to mfi. ok mikeb@
* display board model and firmware revision like mfi/mfii do; ok dlgmikeb2012-08-161-84/+66
|
* we are past the point where timecounters may disappeartedu2012-08-164-36/+4
| | | | ok miod
* we're not going to loop in rxeof here as well so remove the leftoversmikeb2012-08-161-9/+5
| | | | from brad, ok jsg
* revert previous; wrong diffmikeb2012-08-161-14/+2
|
* mfii_exec_done clears ccb_cookie, so mfii_exec should test that, notdlg2012-08-161-2/+2
| | | | ccb_done.
* fix mfi_poll by having it do delays between loops, and breaking ondlg2012-08-161-35/+47
| | | | | | | timeouts. how embarrassment. implement mfi_exec for doing sync executions of commands in process contexts and cut mfi_mgmt over to it.
* rework mfi_poll so it will do all the completions on a ccb includingdlg2012-08-161-47/+45
| | | | | | | calling the done handler. this makes it consistently complete scsi io with all the proper error checking.
* stop passing mfi_softc around as a member of the ccb, consistently give itdlg2012-08-162-40/+34
| | | | as the first argument to functions. like mfii.
* scrub ccbs when we're about to use them, not when we put them backdlg2012-08-161-8/+16
| | | | | on the free list. ccbs can be reused, so we dont want old state screwing up new commands.
* move the dma syncs for the ccb data into ccb_done, so we can do it oncedlg2012-08-161-24/+10
| | | | rather than put the code everywhere.
* fix up the dma sync for the command frame in mfi_done.dlg2012-08-161-2/+3
|
* white space, no real changesdlg2012-08-161-22/+22
|
* move completions of ccbs out of the postq mutex. avoids the unlikely butdlg2012-08-161-2/+8
| | | | | still possible deadlock that can occur if a completion starts a polled command.
* replace the SLIST for ccbs with a SIMPLEQ so i can add stuff to the enddlg2012-08-161-7/+7
| | | | of ccb lists.
* rewrite the mfii_mgmt path to be a bit more... symmetrical.dlg2012-08-161-153/+133
|
* we're not going to loop in rxeof here as well so remove the leftoversmikeb2012-08-151-2/+14
| | | | from brad, ok jsg
* Remove the old ioctl interface which has been disabled for overjsg2012-08-152-290/+2
| | | | | | six years (since bioctl support was added). ok krw@ dlg@
* whitespace cleanup; no binary changemikeb2012-08-141-34/+34
|
* use scsi_get_link to find out the name of a child device for bioctl ratherdlg2012-08-142-13/+13
| | | | | | than snoop scsi commands and copy it in an io path. no functional change, but the code has one less XXX now.
* expose the max number of logical volumes the hardware supports as the widthdlg2012-08-142-14/+8
| | | | | | | | | | | | | | of its scsibus. only advertise 1 lun on logical volumes instead of letting the midlayer fix it up to 8. give every target on the bus max_cmds openings. iopools means they will properly share access to them. this in particular is useful on skinny controllers which only advertise 31 command slots. if you have 16 volumes, theyll only get 1 opening each with the old maths. this way round the ones that are busy will share the slots. tested on a perc5 with two volumes and hard workloads.
* regendcoppa2012-08-142-6/+6
|
* Replace the encoded character in the device name: Clang doesn't like it.dcoppa2012-08-141-2/+2
| | | | | From Brad. OK jsg@
* dont maintain tables of all the pci subtypes just so we can print thingsdlg2012-08-141-85/+25
| | | | | like "Dell PERC 5/i" in dmesg. the firmware on the board knows its own name so we can use that instead. saves some bytes in the kernel.
* print the boards name (eg, perc 5/i) according to the firmware like mfii.dlg2012-08-141-6/+6
| | | | ok deraadt@
* gc sc_flags now that the iop struct can tell us where the different IDBsdlg2012-08-142-5/+2
| | | | | | are. noted by haesbaert@
* oops, dont claim FUSION is an iop type we will support in mfi(4)dlg2012-08-141-3/+2
|
* move knowledge of the location of the inbound doorbell out of code indlg2012-08-142-15/+16
| | | | | | transition_firmware into a member of the iop structures. ok mikeb@ haesbaert@
* wire in mfii(4)dlg2012-08-141-1/+6
| | | | ok by mikeb@ haesbaert@ deraadt@ matthew@
* introduce mfii(4), a driver for the generation of megaraid sas boardsdlg2012-08-141-0/+1393
| | | | | | | | | | | | | | | | | | | | | | | after the ones currently supported by mfi(4). mfii is to mfi what mpii is to mpi. it is also strange in that it reuses bits of both mfi(4) and mpii(4) hardware structures. the register layout is sort of like mfi, but the majority of the messaging (post and completion paths) are like mpii. the new logical disk io message is the same as the scsi io command in mpii with an extra raid context bit on the end. other operating systems have supported the new hardware in their existing megaraid sas drivers by cutting them in half and using a metric buttload of function pointers at pretty much every driver entry point to switch between the non-fusion behaviour and the fusion behavior. the only really common code seems to be the handling of the management commands before branching off into the chip specific message handling to move it on and off the hardware. i'll deal with abstracting the mgmt stuff out later. this is working so im getting it in now to polish further in the tree. ok by mikeb@ haesbaert@ deraadt@ matthew@
* split the definitions of the hardware out into a separate file so it candlg2012-08-142-1656/+1677
| | | | | | | | | be reused by a driver for the recent megaraid sas fusion boards. mikeb was also interested in doing this a while back to make working on mpii.c easier. ok by mikeb@ haesbaert@ deraadt@ matthew@
* sync a comment with reality and remove an error path duplicate; from bradmikeb2012-08-131-9/+2
|
* get rid of the last foo_lo and foo_hi bits i could find in the hardwaredlg2012-08-132-23/+11
| | | | | | | | | | structures and use htole64 instead of htole32(addr >> 32); htole32(addr); gets rid of "handy" stack variables to get the dva to 64bits. sprinkle some more byte swaps for things that should have it. tested on a perc5 (xscale)
* do appropriate bus_dmamapy_syncs around the pcq/completion ring.dlg2012-08-132-4/+16
| | | | tested on a perc5 (xscale)
* replace uint32_ts for hi and lo addresses in the mfi_init_ hardwaredlg2012-08-132-43/+22
| | | | | | | | | descriptors with single uint64_ts. theyre not some weird middle endian thing. this makes the code more readable. add some missing htole32s to the code while here. tested on a perc5 (xscale).
* Make sure snooping is enabled on Intel 7 Series HD Audio.kettenis2012-08-121-1/+2
| | | | Tested by naddy@.
* Fix state tracking for the error ccb, and pay attention when the READ_LOG_EXTjmatthew2012-08-111-3/+6
| | | | | | | | command used in ncq error recovery fails. Fixes 'ccb->ccb_xa.state == ATA_S_ONCHIP' assertion failures when talking to dying disks. broken disk supplied by Aidan Rowe ok dlg@
* Add support for another 82599 SFP+ card. Original diff and tests bymikeb2012-08-113-4/+8
| | | | | Chris Maxwell <chris ! maxwell () hootsuite.com> ok jsg
* regenmikeb2012-08-112-2/+7
|
* another 82599mikeb2012-08-111-1/+2
|
* the producer/consumer values are used by the device, which is littledlg2012-08-111-4/+4
| | | | | | endian. do appropriate byteswapping for when the host cpu uses them. tested on a perc5 (xscale) in an amd64.
* simplify pckbc_xt_translation()shadchin2012-08-103-30/+18
| | | | | | | | * call only for set translation on (once in /sys/dev/pckbd.c) therefore we can delete unused code. * change behavior (more standard) - return zero on success ok miod@
* cleanup some #define's and #ifdef'smikeb2012-08-102-85/+69
|
* regendcoppa2012-08-102-4/+17
|
* Add O2 Micro OZ776 Hubdcoppa2012-08-101-1/+6
| | | | Ok jsg@
* cleanup ixgbe_start routine; from brad, ok jsgmikeb2012-08-101-35/+21
|
* don't compile rss functions in unless OCE_RSS is specifiedmikeb2012-08-092-2/+6
|