summaryrefslogtreecommitdiffstats
path: root/sys/dev/mpt
Commit message (Collapse)AuthorAgeFilesLines
* Code cleanup: use mpt_prt instead of device_printf.mjacob2002-09-245-222/+171
|
* Parameterize MPT_MAX_REQUESTS based upon device type (FC has Global Creditsmjacob2002-09-234-82/+99
| | | | | | | | of 1024- Ultra4 256). Rename 'requests' tag to 'request_pool' for clarity. Make sure we do correct xpt_freeze_simq/CAM_RELEASE_SIMQ if we run out of chip resources. MFC after: 6 days
* Wads more cleanup...mjacob2002-09-231-176/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In mpttimeout, call mpt_intr just on the offchance that we missed an interrupt. We can check to see whether or not the command that is timing out got completed. When we *do* decide to timeout a command, set the command state to REQ_TIMEOUT and then invoke another timeout (hz/10)- mpttimeout2. This allows us to catch a couple cases we've seen where the command we timed out on in fact is ready to be completed by the firmware. In any case, it's only after mpttimeout2 is called that we actually take down the private state and free the request itself. CAM has been notified in mpttimeout anyway. This whole area should be redone, but that will take 105% of my available game time for this month. Fix a couple of missing (and not useful, at presnet) CAMLOCK_2_MPTLOCK and MPTLOCK_2_CAMLOCK locations. Split mpt_notify into mpt_ctlop, which handles all reply completions that have 0x800000000 or'd into the ContextID. This function can, in fact, call mpt_event_notify_reply, which handles the traditional async event notifications. While we're at it, put in the extremely important (but currently untested) code that send back an Ack to an Event Notification (if the Event Notification is marked with AckRequired). Note that an Ack also generates another ctlop completion, tra la. Fix up mpt_done substantially to try and get how we plug into CAM correctly done. Remove bogus CAM_RELEASE_SIMQ settings. Do some cleanups in mpt_action that are related to speed negotiation for Ultra4 cards. This is an area that is still quite fragile and worrisome as config data being read back often doesn't make sense or jibe with the documentation. At any rate, after these changes were done, I was finally able to get Lars Eggert's dual 320M disk system to stay up under load all weekend- hopefully we're in good enough for now shape. MFC after: 1 week
* Recognize the single channel 2Gb card (FC919)- thanks to LSI Logic formjacob2002-09-231-2/+14
| | | | | | | | | pointing this out. In mpt_intr, don't try and pop a reply queue element out *unless* the interrupt status says you might have one. MFC after: 1 week
* We do not need to expose mpt_notify outside of mpt_freebsd.c.mjacob2002-09-231-1/+0
| | | | MFC after: 1 week
* When freeing a request, zero out the sequence number.mjacob2002-09-231-2/+3
| | | | | | | | | | | | Define the CFG_DAGA_OFF offset as 128 bytes instead of 40- gives us a more reasonable headroom. When reading a config page, zero out the entire request area- not just the length of the request. This is because we cleverly (cheezily) return configuration data back into the allocated request area, so it's nice to make sure we start with a clean area to write on. MFC after: 1 week
* Don't do transition locking (i.e., CAM->MPT->CAM)- Peter claimed that ia64mjacob2002-09-031-0/+10
| | | | | | chokes the chicken with this. Submitted by: wemm@freebsd.org
* Fix things so that:mjacob2002-09-014-34/+278
| | | | | | | | | a) we don't believe what the board tells us all the time (if the BIOS hasn't run, port page 2 and port page 0 tend to be garbage) b) add the missing code to set parameters for the SPI cards. MFC after: 0 days
* Sigh. Ken Merry convinced me that my attempts to DTRT were wrong.mjacob2002-08-3010-321/+220
| | | | | | | | Replace dual copyright with a plain BSD style copyright assigned to LSI Logic. This is still within the intents of express consent from LSI. MFC after: 2 days
* Add 909A PCI id.mjacob2002-08-301-1/+9
| | | | MFC after: 2 days
* Add an additional copyright (with the express consent of LSI Logic) thatmjacob2002-08-3010-0/+310
| | | | | | | | | specifically allows for (via 'BSD Style' licensing) source && binary redistribution. Pointy hat to: Matt, for not getting this done ahead of time. MFC after: 2 days
* Do some minor cleanups found during backport to RELENG_4.mjacob2002-08-233-25/+24
|
* Pick a cleaner method (and put in a separate function) for findingmjacob2002-08-231-21/+43
| | | | the peer device on a dual board.
* A chunk of cleanup, both stylistic and substantive.mjacob2002-08-206-330/+1021
| | | | | | | | We now also read configuration information for the SCSI cards- this allows us to try and say what the speed settings now are. Start, but not yet complete, the process of reorgs && #defines so that we can backport to RELENG_4 pretty soon.
* Add support for the LSI-Logic Fusion/MP architecture.mjacob2002-08-1116-0/+7920
This is an architecture that present a thing message passing interface to the OS. You can query as to how many ports and what kind are attached and enable them and so on. A less grand view is that this is just another way to package SCSI (SPI or FC) and FC-IP into a one-driver interface set. This driver support the following hardware: LSI FC909: Single channel, 1Gbps, Fibre Channel (FC-SCSI only) LSI FC929: Dual Channel, 1-2Gbps, Fibre Channel (FC-SCSI only) LSI 53c1020: Single Channel, Ultra4 (320M) (Untested) LSI 53c1030: Dual Channel, Ultra4 (320M) Currently it's in fair shape, but expect a lot of changes over the next few weeks as it stabilizes. Credits: The driver is mostly from some folks from Jeff Roberson's company- I've been slowly migrating it to broader support that I it came to me as. The hardware used in developing support came from: FC909: LSI-Logic, Advansys (now Connetix) FC929: LSI-Logic 53c1030: Antares Microsystems (they make a very fine board!) MFC after: 3 weeks
OpenPOWER on IntegriCloud