summaryrefslogtreecommitdiff
path: root/sys/dev/ic
AgeCommit message (Collapse)Author
2014-03-08Add the RX earlyoff support for older chips (8168{E-VL,EP, F}) and RXDV GATEDBrad Smith
bits for the 8168G controller. This fixes operation of the 8168G controllers. This makes reception of packets work with the 8168G controllers in the Shuttle DS47 and other systems. From FreeBSD, based on the Realtek Linux driver. ok sthen@ giovani@
2014-03-08Only attempt to load firmware if we actually have some.Mark Kettenis
2014-03-08Attempt to recover if wide and/or synchronous transfers fail.Mark Kettenis
2014-03-08A bit of spring cleaning.Mark Kettenis
2014-03-08Enable tagged queueing.Mark Kettenis
2014-03-08Check the appropriate struct member for the various SDEV_* quirks.Mark Kettenis
2014-03-08Enable DMA bursting. Not sure it actually makes things faster, but bothMark Kettenis
isp(4) and the linux qla1280 driver seem to do this.
2014-03-07Make sure a SCSI initiator ID provided by Open Firmware overrides the valueMark Kettenis
read from nvram, just like we did for isp(4).
2014-03-07Reduce the number of ccbs by a factor three since we need up to three requestMark Kettenis
entries per SCSI command.
2014-03-07Provide the appropriate default values for the SCSI initiaror ID on sgi andMark Kettenis
sparc64.
2014-03-07Duplicate enum values are a bad idea.Mark Kettenis
2014-03-05Introduce qlw(4), a new driver for QLogic ISP SCSI HBAs. For now onlyMark Kettenis
supports the PCI variants; SBUs support will follow. Works reasonably well now. Others are encouraged to test it.
2014-02-23when built without firmware, check that the chip already has firmwareJonathan Matthew
before trying to boot it, so we can explain why it's not working rather than printing cryptic errors.
2014-02-22refactor firmware loading with a function pointerTheo de Raadt
ok jmatthew
2014-02-20More turd shining; cleanup the message that prints the firmware revision andMark Kettenis
attributes. ok dlg@, jmatthew@
2014-02-20revert previous commit; didn't intend to commit those bitsMark Kettenis
2014-02-20Avoid printing the "nvram corrupt" message for onboard 2200s found on SunMark Kettenis
hardware. ok dlg@, jmatthew@
2014-02-20jsg@ pointed out i am bad at loops.David Gwynne
2014-02-20knfDavid Gwynne
2014-02-20pull the isr reads out into per chip variants we get to via pointersDavid Gwynne
in a per generation structure. this avoids code on every isr to figure out what version of the chip we are, which is silly since we know that at attach time. ok jmatthew@
2014-02-19tweak the response queue handling so it looks like qle. the importantDavid Gwynne
bit is to post to the resp_out register once outside the loop rather than inside every loop. rework the code for finding the queue registers so its done once on attach by pointing the sc at a map, rather than running big conditionals in code on every register operation based on teh chip version. tested on 2200s by me and 2312s by jmatthew@ ok jmatthew@
2014-02-19remove some dead code - all the chips we handle can do type 4 commands,Jonathan Matthew
which means we don't need to use sgl continuation command buffers. this keeps things much simpler on the iopool side of things.
2014-02-18convert printfs into a few different debug categories, leaving portJonathan Matthew
discovery stuff enabled for now.
2014-02-14remove isp24xx-related code. it doesn't work, qle(4) replaces it, andJonathan Matthew
we need the space in the i386 ramdisks. ok dlg@, krw@
2014-02-13fix previous errorneous constants (compiled against the old header)pelikan
2014-02-13Recognize SATA-III ports in dmesg.pelikan
ok millert
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