summaryrefslogtreecommitdiff
path: root/sys/dev/ic
AgeCommit message (Collapse)Author
2014-02-11fix endianness of fc4 type registration (again), and don't bother printingJonathan Matthew
the fc4 types for fabric ports we find
2014-02-10Build isp2xxx firmware into separate object files so we only includeJonathan Matthew
one copy when both isp(4) and qla(4) are enabled. This is a temporary measure until qla(4) takes over completely. looked at by miod@ and kettenis@
2014-02-06missing define for qla2100 supportJonathan Matthew
2014-02-06Almost-working QLA2100 support. This appears to be the best I can do forJonathan Matthew
now. The one 2100 card I have doesn't work at all with isp(4). I can get it to see devices on the fabric, but it can't log in to them, and it can't see loop devices at all.
2014-02-05Avoid calling delay(9) between checking and clearing the interrupt status bits.Mark Kettenis
ok jmatthew@
2014-02-05Punt on handling responses if we haven't allocated the response queue yet.Mark Kettenis
Otherwise a spurious interrupt might make us dereference a null-pointer. This is especially important for ISP2200 cards with Open Firmware, where the card is running a full firmware and the response queue "in" pointer is non-zero when we take over. ok jmatthew@
2014-02-03use the same option as isp(4) to build without firmware.Jonathan Matthew
stub out the firmware loading code and don't include the firmware files when ISP_NOFIRMWARE is defined.
2014-02-02carve up qla_attach() into bits we can use to process loop and fabric changesJonathan Matthew
later on.
2014-02-02Rearrange interrupt register processing for 2200s. The mailbox semaphoreJonathan Matthew
seems to be disconnected from the interrupt status register, so we shouldn't wait until the interrupt status is nonzero to check it. This makes onboard FC controllers in Sun systems work better. tested on a blade1k (by kettenis@) and a v880.
2014-02-01On sparc64, use the WWNs from Open Firmware, as the onboard ISP2200 that canMark Kettenis
be found on some Sun hardware doesn't have an NVRAM. ok jmatthew@
2014-01-30the option bit for controlling fast posting is in icb_fw_options, notJonathan Matthew
icb_xfwoptions. one of my qla2200 cards seems to have this enabled in its nvram, so it wasn't getting io completions.
2014-01-30don't do a register test mailbox command before resetting the chip.Jonathan Matthew
kettenis@ found that this causes problems on sparc64 machines that boot off isp2200s.
2014-01-30Set port and node WWN in scsi_link structure when we successfully probe aMark Kettenis
target. ok jmatthew@, dlg@
2014-01-26Quoting an old commit message:Miod Vallat
``Callers of scsi_iopool_init() ought to set up the pool member in struct scsi_link accordingly, for bad things will happen without (and this was a real pita to debug).''
2014-01-24treat C_SCSIXFER as a reference count and use it as a guard to pool_put.David Gwynne
fixes cd panics where the free_xfer path is called after scsi_done calls xfer_put.
2014-01-22fix endianness for FC4 type registrationJonathan Matthew
2014-01-22dont piggyback on C_PRIVATEXFER because it must not touch splx.David Gwynne
because im using it while the system is up and running i need the xfer free path to take the right locks, which PRIVATEXFER doesnt. invent a new C_SCSIXFER flag that provides the safety needed. this fixes issues people have had installing from atapiscsi(4) cdrom devices. bug spelunking and tailq corruption identified by jsing@ ok jsing@
2014-01-21add a missing printf argumentJonathan Gray
ok jmatthew@
2014-01-21Add support for ISP2200 based adapters.Jonathan Matthew
This involves a bit of a hack in the interrupt processing path, where we ignore the interrupt status if we're expecting a mailbox command to complete, but we don't have the mailbox semaphore and the response ring hasn't moved. Typically next time through, the interrupt status is the same and we have the semaphore so we can read the results.
2014-01-21The semaphore register does need to be cleared when clearing interrupts,Jonathan Matthew
but only for interrupts that return information through mailbox registers.
2014-01-21Stop using 23xx-specific interrupt status codes everywhere. Instead, classifyJonathan Matthew
into one of 4 types in qla_read_isr.
2014-01-20With 2K login firmware, the login option bits are in mbox register 10.Jonathan Matthew
These need to be explicitly set to 0, otherwise the firmware might not do the process login and so leave us unable to talk to the device.
2014-01-20bzero to memsetDavid Gwynne
2014-01-20bcopy to memcpyDavid Gwynne
2014-01-19Better interrupt handler return values. 1 if the chip said it wanted anJonathan Matthew
interrupt, 0 if it didn't. "makes sense" dlg@
2014-01-19Introduce qla(4), a new driver for Qlogic fibre channel HBAs (only ISP23xxJonathan Matthew
so far). Works reasonably well now, so it's going in the tree so others can try it out. with some help and fixes from dlg@, general encouragement from basically everyone
2014-01-18move the declaration of ncr53c9x_scsi_cmd into the .c file, its the onlyDavid Gwynne
place that uses it.
2014-01-18replace XS_NO_CCB with an iopool around the ecb_pool.David Gwynne
take advantage of pool_setipl while here.
2014-01-18get rid of a XS_NO_CCB thats caused by a failure to allocate theDavid Gwynne
thing that stores state for luns. instead of checking and allocating it in the scsi_cmd path, and doing weird things all over the place to free it (eg, there's a timeout that ran every 10m to gc luns), use the scsi_probe and scsi_free things the midlayer calls.
2014-01-18instead of having every bit of glue set up and attach an identicalDavid Gwynne
scsi_adapter struct, just do it once in the chip code. ok krw@
2014-01-18move atapiscsi to iopools by making the entire ata layer use them too.David Gwynne
this would have been difficult before because the ata completion paths try to be helfpul by freeing xfers on the adapters behalf, whch doesn't work in the new world scsi model where the layer that allocated the thing is responsible for freeing it, and expects to get it back and maybe use it again. however, deraadt@ added magic flags for hibernate that im now using to keep ata xfers for the scsi layers. committing this now so itll be tested. i cant think of a better time to handle fallout from diffs like this than hackathons. discussed with deraadt@
2014-01-18move away from XS_NO_CCB to iopools. all instances of this driver share aDavid Gwynne
single pool, which we now layer iopools on top of and share in the same way. tweaks and testing by miod@
2014-01-18replace XS_NO_CCB with iopools.David Gwynne
compiled and tweaked by martin@
2014-01-18take advantage of pool_setipl and PR_ZERO to avoid doing work theDavid Gwynne
subsystem provides for us now when dealing with the xfer pool. ok krw@
2014-01-17if the hardware is too busy or its queues are too full, return XS_BUSY,David Gwynne
not XS_NO_CCB. discussed with krw@ who agrees
2014-01-17if the hardware is too busy or its queues are too full, return XS_BUSY,David Gwynne
not XS_NO_CCB. discussed with krw@ who agrees
2014-01-17a polled command timing out isnt a software resource shortage, itsDavid Gwynne
a driver stuffup. aac is XS_NO_CCB clean now.
2014-01-17remove a XS_NO_CCB case by moving aac to iopools.David Gwynne
eyes and ok by krw@ jmatthew@
2014-01-17replace aacminphys with scsi_minphys. both are just wrappers aroundDavid Gwynne
minphys.
2014-01-17aacvar advertises a public api which is only used inside aac.c. make itDavid Gwynne
"private" so i dont feel bad about changing it.
2014-01-02disable MSI for Samsung XP941.Gilles Chehade
This is so I can use the machine to figure out the others things on it, the quirk will go away when interrupt routing gets fixed. ok dlg@, jmatthew@
2013-12-31tedu the diagnostic code to detect the presence of the defective Xterasys XN-152Brad Smith
32-bit PCI NIC in a 64-bit PCI slot. The code has never been enabled, never will be and is unused / unmaintained. Update the man page to not indicate there is a possibility of the driver detecting this hardware issue. Input about the man page and Ok chris@
2013-12-28The few network drivers that called their children's (ie. mii PHYTheo de Raadt
drivers) activate functions at DVACT_RESUME time do not need to do so, since their PHYs are repaired by IFF_UP.
2013-12-25Instead of deciding which iockbc port is the keyboard port, and which one is theMiod Vallat
mouse port, depending upon the system time, match what the prom is doing and actually probe for a keyboard on both ports, and decide the first port with a keyboard is the keyboard port. If no keyboard is found, but a mouse is found, decide the keyboard port is the empty one. If no device is found, then we can try and pick the defaults, depending upon the system we are running on, as this used to be the case (i.e. coping with Fuel having keyboard on port 1 and mouse on port 0 when connecting devices according to the chassis' markings). This is necessary because different IO9 board revisions on Tezro come with different wirings, and we can not tell these boards apart. Discussed with "nullnilaki" (nullnilaki on gmail) who is the lucky owner of an Onyx 350 with correct wiring and a Tezro with inverted wiring. Tested on Octane and Fuel with all combinations of devices connected (mouse only, keyboard only, keyboard and mouse) in both ports, glass and serial console. XXX We probably want to allow for more pckbd attachment flexibility on non-x86 XXX platforms eventually (at least where the PS/2 slots are really independent, XXX so that we can attach pckbd to any port and better cope with human error XXX when connecting devices.
2013-12-09At resume, do not spin flushing characters in from the chip. There shouldn'tTheo de Raadt
be any characters. If the chip is not actually there for some reason, we'd be spinning so early in the resume sequence, we'd probably go mad trying to find the reason.. ok kettenis request: people with serial ports on their laptops, try to run a "cu" over a suspend/resume cycle, and see if you see "input noise"
2013-12-09At suspend/resume time cope with timeouts, DTR on resume in a busTheo de Raadt
bus-independent fashion. ok kettenis
2013-12-09timeout_del unconditionallyTheo de Raadt
2013-12-08Fix rtsx_read_cfg() return value check in rtsx_attach(). Diff from dhill.Stefan Sperling
Bug didn't have any bad effects since rtsx doesn't support SDIO at present.
2013-12-06Add a DVACT_WAKEUP op to the *_activate() API. This is called after theTheo de Raadt
kernel resumes normal (non-cold, able to run processes, etc) operation. Previously we were relying on specific DVACT_RESUME op's in drivers creating callback/threads themselves, but that has become too common, indicating the need for a built-in mechanism. ok dlg kettenis, tested by a sufficient amount of people
2013-12-04mfi_refresh_sensors calls mfi_ioctl_vol which calls mfi_bio_getitall, whichDavid Gwynne
replaces pointers in the softc and all sorts of fun stuff. this protects the call to bio_getitall with the sc_lock the ioctl path uses, so we dont get panics like those reported on bugs@ recently. ok deraadt@