summaryrefslogtreecommitdiffstats
path: root/sys (follow)
Commit message (Collapse)AuthorAgeFilesLines
* glxpcib(4) invokes pcibattach assuming pcib doesn't need more than amiod2012-08-181-15/+38
| | | | | | | | | | `struct device' as its softc. This is not the case on loongson, and the glxpcib softc gets subtly corrupted, causing a kernel panic when attempting to select the glxpcib timecounter as the current timecounter. Skirt this by not using the pcib softc fields if we are invoked from glxpcib - it is not really worth putting pcib_softc in a header for the sake of MI glxpcib code.
* Properly initialize the IOMMU control and status register for pyro(4).kettenis2012-08-172-3/+14
| | | | Fixes DMA problems spotted on the v445.
* Turns out interrupts for Ebus devices are wired to the *other* PCI Expres leafkettenis2012-08-172-35/+34
| | | | | on the v445 (compared to the v215/v245). Generalize the code to allow for arbitrary wirings. Makes the serial console on the v445 work.
* 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!
* Fix possible panic while switching from STA mode into hostap/ibss modes.stsp2012-08-171-1/+2
| | | | | | | | | ieee80211_create_ibss() resets the set of supported rates but failed to update the index into the rate set array accordingly. If the rate configured during STA operation didn't belong to the newly configured rate set the system ran into an assertion ("bogus xmit rate %u setup") while trying to create the IBSS. ok fgsch@
* 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-167-63/+7
| | | | 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
|
* remove pool hiwat call. hiwat is less useful than it used to be.tedu2012-08-161-2/+1
| | | | less greedy pools are nicer pools.
* 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
|
* use Lk for links;jmc2012-08-158-24/+32
|
* we're not going to loop in rxeof here as well so remove the leftoversmikeb2012-08-151-2/+14
| | | | from brad, ok jsg
* Enable IPv6 autoconfprivacy by defaultsperreault2012-08-151-1/+4
| | | | | | | diff originally by stsp@ "please commit it" deraadt@ "don't care" stsp@ "don't like" bluhm@
* add oce and mfii; ok deraadt dlgmikeb2012-08-151-1/+3
|
* 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@
* Add framework support for controlling symbol visibility in sharedmatthew2012-08-141-9/+30
| | | | | | | objects, inspired by NetBSD. Discussed with kurt, kettenis, and millert. ok kettenis
* 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@
* enable mfii(4).dlg2012-08-142-2/+4
| | | | ok deraadt@
* 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@