summaryrefslogtreecommitdiff
path: root/sys/dev/pci
AgeCommit message (Collapse)Author
2007-03-29Correct some minor whitespace issues.Christopher Pascoe
2007-03-28regenJonathan Gray
2007-03-28Fix a Marvell Entry, "SATA" -> "88SE6101 IDE"Jonathan Gray
2007-03-28While we are determining which NCQ command failed, we will need to ensureChristopher Pascoe
that we don't accidentally complete any other outstanding commands. This introduces wrappers around get_ccb and put_ccb that can temporarily stash our outstanding command state while we are issuing recovery commands. This is just the first step in NCQ recovery - for now we will reset the port on error which will permit further commands to be issued after a NCQ error. ok dlg@
2007-03-28Due to a logic inversion, we would error out any commands that had completedChristopher Pascoe
successfully and not the ones that had actually failed to complete when unable to recover from an NCQ error. ok dlg@
2007-03-28Improve output of some debugging messages.Christopher Pascoe
2007-03-28Some more safety checks on ccb state.Christopher Pascoe
2007-03-27this level of serverworks sata does not helpTheo de Raadt
2007-03-27more grammar fixups; from bret lambert and myselfJason McIntyre
2007-03-27grammar from bret lambert, and one more from me;Jason McIntyre
2007-03-27attach ahci based on the pci class and interface fields, not just on aDavid Gwynne
list of pci devices. WARNING: this will cause your disks to change name (wd -> sd) on a supported controller.
2007-03-27disable serverworks sata until it works (been busted for a year on theTheo de Raadt
G5, might work a lot better soon)
2007-03-27regenDavid Gwynne
2007-03-27silicon image 3131 and 3531David Gwynne
2007-03-24Kill the horrible hack of storing the pid in struct selinfo.Artur Grabowski
Instead, keep the proc pointer in it and put the selinfo on a list in struct proc in selrecord. Then clean up the list when leaving sys_select and sys_poll. miod@ ok, testing by many, including Bobs spamd boxes.
2007-03-23Turn AHCI_DEBUG back on for now, so we can see if any commands are timingChristopher Pascoe
out or erroring around the cache flush time.
2007-03-23Track the ATA xfer's state more closely - may help us identify why someChristopher Pascoe
are seeing a panic at halt time.
2007-03-22split userland & kernel struct sensor/sensordev so that the additionTheo de Raadt
of new fields in the future is less disruptive. This is done similar to how struct proc is handled for ps(1). ok jmc (man page changes) tested fkr simon, and more suggestions from millert
2007-03-22map the global and port register spaces.David Gwynne
2007-03-22Perform legacy emulation handover for USB1 companion controllers immediatelyChristopher Pascoe
but defer the remainder of their initialisation until after the other devices on their PCI bus have attached. This ensures that any USB2 controller has also completed its initialisation before we start to initialise the USB1 parts. This minimises the chance that a nasty SMM implementation will trash the USB1 controller's config when it performs legacy emulation handover of the USB2 part. This time without accidentally leaving the OHCI controller shutdown, and with some cosmetic fixes. ok dlg@, OHCI tests mglocker@
2007-03-22Let atascsi issue NCQ commands if the controller supports it.Christopher Pascoe
This includes a nasty hack to reduce openings and throw away command slots if the device supports a lower queue depth than the host controller does. Yes, we're thinking about a better solution.
2007-03-22import sili(4) so it can be worked on in the tree. this will support theDavid Gwynne
silicon image 3124/3132/3531 sata chipsets eventually. so far this is the autoconf glue, an actual match routine for the 3124, and interrupt establishment code. it is split up between pci and ic cos there are cardbus variants of these controllers that we can support in the future. thanks to jolan@ for the name, it was better liked than my initial suggestion of siisl(4).
2007-03-21NCQ commands generate a "Set Device Bits" FIS upon completion. Enable theChristopher Pascoe
generation of interrupts when they arrive.
2007-03-21Add support for issuing NCQ commands via AHCI.Christopher Pascoe
Because you cannot have NCQ commands active at the same time as standard (non-queued) commands, we must introduce a queueing scheme into the driver. This scheme ensures that a standard command is only issued to the drive when all currently active NCQ commands have finished, and that NCQ command issue is delayed when we have a pending standard command. Additionally, the queueing scheme adds a constraint to ensure that there are never more than two standard commands issued on a port at once. This should ensure that commands become active in the order they were submitted (regardless of their command slot number) both initially and when the port is reactivated after error recovery. These points mean that issuing a standard command effectively serialises the port, which may help us implement meaningful I/O barriers in the future.
2007-03-21Basic support for JMicron PATA.Jonathan Gray
JMB368 supported for now, multi port cards that share PATA/SATA need to do a complicated internal channel mapping dance I plan to look into next. ok grange@
2007-03-21dont print if there is a device found or not, you can figure that out byDavid Gwynne
seeing things attach to the scsibus. ok pascoe@
2007-03-21replace the array of u_int8_ts for the fis/registers with a struct to makeDavid Gwynne
it a bit easier to read. there are variations on this, but they can be defined later.
2007-03-21For now, reserve one opening so we always have a CCB free to issue a softChristopher Pascoe
reset with during error recovery. Also, ensure that that CCB has been stopped on the chip before putting it back in the pool.
2007-03-20Use ALLOCNOW flag when creating PRDT dmamap, otherwise it could fail duringChristopher Pascoe
error handling.
2007-03-20Our timeout and error handlers complete the commands for us, so we shouldChristopher Pascoe
always return ATA_COMPLETE in the polled transfer case. Also, respect the passed in timeout value when polling.
2007-03-20commit the rest of the jmicron ids. jsg has been trying to get me to addDavid Gwynne
these since last year, but i didnt see the point till the code would be useful anywhere.
2007-03-20Add support for ATA PACKET commands. This should make ATAPI cdrom drives,Christopher Pascoe
etc, just work.
2007-03-20Catch failed commands and copy the error taskfile back to the ata_cmd,Christopher Pascoe
so that atascsi can deal with it.
2007-03-20Add timeout handling for ATA commands.Christopher Pascoe
2007-03-20Spec says we can't write anything other than the global host control registerChristopher Pascoe
before we enable AHCI, so enable it before resetting saved capabilities.
2007-03-20Minor style fixup.Christopher Pascoe
2007-03-20Request "descriptor processed" interrupts only for PIO requests (inquiry,Christopher Pascoe
etc), and request that the D2H FIS at the completion of all (DMA) commands generate an interrupt. This makes each data transfer generate one interrupt instead of two and should guarantee that the interrupt that is generated actually arrives after the command has completed.
2007-03-20Calculate the residual and copy it back to the scsi_xfer, so that RW actuallyChristopher Pascoe
works. From dlg@
2007-03-20Split PRDT unload out into its own function, for symmetry.Christopher Pascoe
2007-03-20Instead of having a copy of every register that we will issue in the ata_cmd,Christopher Pascoe
simply include a pointer to the command FIS that we will issue to the device. Include another space where we can copy back an error register set from a failed command. This means that we can now build and issue arbitrary commands from atascsi, and retrieve errors back.
2007-03-20Change API for struct ata_xfer allocation to move it into the device thatChristopher Pascoe
atascsi will be driving, and add it to the AHCI CCB. This effectively gives us all the resources we need for a transfer in one hit, meaning that we don't need to worry about whether we will have a pool shortage or not enough CCBs. The SCSI mid layer should take care to never exceed the number of CCBs we have available, based on our sc_link.openings.
2007-03-19Fix some code relative to chips that don't currently work (BCM5722 &Kenneth R Westerback
BCM5756). They still don't work but when they do they won't use an inappropriate Jitter bug workaround. No effect on other chips. From Michael Chan of Broadcom, via Linux tg3 via Brad. ok reyk@
2007-03-18Backout pascoe@'s last USB change because it page faults at attachmentMarcus Glocker
time. Chris; Get your shiz fixed and tested for the next time. We have better todo then wasting our time by backing out untested stuff. OK deraadt, OK ckuethe
2007-03-18OX16PCI954K is a puc@cardbus (missed in the previous puc@cardbus commits)Michael Shalayeff
2007-03-18add OX16PCI954K puc idMichael Shalayeff
2007-03-18Perform legacy emulation handover for USB1 companion controllers immediatelyChristopher Pascoe
but defer the remainder of their initialisation until after the other devices on their PCI bus have attached. This ensures that any USB2 controller has also completed its initialisation before we start to initialise the USB1 parts. This minimises the chance that a nasty SMM implementation will trash the USB1 controller's config when it performs legacy emulation handover of the USB2 part.
2007-03-18syncReyk Floeter
2007-03-18add device IDs of the new VIA CX700 chipsetReyk Floeter
reported by brad
2007-03-17replace the VMWARE quirk that restricts the bus width to 16 targets withDavid Gwynne
one for all SPI controllers. krw has a sun machine with a 1030 that gets the bus width wrong too, so since vmware emulates that type of hardware too, we can just limit the lot of them and forget about it.
2007-03-17regenJonathan Gray