summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp
Commit message (Collapse)AuthorAgeFilesLines
* Begin the process of moving info to sysctl stuff for FreeBSDmjacob2006-09-262-1/+47
| | | | by providing OIDs for WWNN/WWPN and Initiator ID.
* Restore multi-version cleanliness.mjacob2006-09-031-3/+11
|
* add a newbus method for obtaining the bus's bus_dma_tag_t... This isjmg2006-09-031-2/+3
| | | | | | | | | | | | | required by arches like sparc64 (not yet implemented) and sun4v where there are seperate IOMMU's for each PCI bus... For all other arches, it will end up returning NULL, which makes it a no-op... Convert a few drivers (the ones we've been working w/ on sun4v) to the new convection... Eventually all drivers will need to replace the parent tag of NULL, w/ bus_get_dma_tag(dev), though dev is usually different for each driver, and will require hand inspection... Reviewed by: scottl (earlier version)
* More ispfwfunc definitions funnies which break pre-7.0 builds.mjacob2006-09-013-2/+4
|
* Add missing pre-7.0 firmware pointer. Oops.mjacob2006-09-011-0/+3
|
* fix bug in 2322 receive sequencer f/w loadmjacob2006-09-011-3/+3
|
* Fix RELENG_4 code version- isp_roles wasn't getting initialized somjacob2006-08-212-3/+6
| | | | | | | | | it ended up defaulting to ISP_ROLE_NONE. My testing hadn't caught it because I was deliberatly setting role via ioctl. Thanks to user Toni for lending me an alpha to test this on. MFC after: 0 days
* Fix 2KLOGIN code to specify *ibits* (not *obits*) so that themjacob2006-08-141-60/+77
| | | | | | | | | | | | | | | | | | | | | | | | | options field in register 10 will be deterministic, not random. Correct the number of input bits for EXECUTE_FIRMWARE 0..1 to 0..2- the 2322 and 24XX cards use mailbox register 2 to specify whether the f/w being executed is freshly loaded or not. Correct the number of input bits for {READ,WRITE}_RAM_WORD_EXTENDED so that register 8 gets picked up. Fix the indexing and offset for the 2322 f/w download so that it correctly puts the different code segments where they belong. Move VERIFY_CHECKSUM to be the 'else' clause to 2322 f/w downloads- the EXECUTE_FIRMWARE command for 2322 and 24XX cards will tell you if the f/w checksum is incorrect and VERIFY_CHECKSUM only works for RISC SRAM address < 64K so you can only do a VERIFY_CHECKSUM on the first of the 3 f/w segments for the 2322. Shorten the delay for the continuation mailbox commands- 1ms is ridiculous (100us is more likely). All of the more or less is really only for the 2322/6322 cards.
* The register offset is within 4K, not 256 bytes, for some QLogic cards.mjacob2006-08-141-1/+1
|
* The macro IS_23XX should not mistakenly include 24XX cards.mjacob2006-08-141-1/+2
|
* Remove reference to PTI cards. They haven't been functioningmjacob2006-08-051-15/+0
| | | | or around for probably at least 5 years.
* Increase local reserved (high && low) storage in each commandmjacob2006-08-041-1/+1
| | | | structure from 2 to 3 words.
* Fix na_fcentry_t to not have a lun field. Fix indentation in handlymjacob2006-08-043-37/+57
| | | | | | | | | the notify structs. Fix messages in isp_got_msg_fc to print out the loop id of the sender- not the wwpn which will be synthesized later, if possible, in the outer layers. Put in debug printouts to pair a notify ack to a notify so one can see the start/close of an immediate notify event. Put in spsace for TASK MANAGEMENT response flags (which we don't do yet).
* Initialize 2300 request/response pointers in isp_reset- not inmjacob2006-08-041-7/+4
| | | | isp_fibre_init.
* Rename ioctl driven task management functions so theymjacob2006-08-042-6/+10
| | | | | don't collide with task management definitions on other platforms.
* Some rearrangement of headers to minimize diffs with outside ofmjacob2006-07-166-64/+71
| | | | | | | | FreeBSD repository and to clean up the license header so as to not pollute the license with file function. Zero all mailbox structures prior to use (just in case). Change the outgoing mailbox count for INIT_FIRMWARE to be correct.
* Don't attach 2422's yet. It just confuses everyone.mjacob2006-07-141-0/+2
|
* Add some missing braces.mjacob2006-07-141-14/+30
| | | | | | Add MEMORY_BARRIER for the few scratch dma ops that were missing them plus add a couple of hi 32 bit dma ops (we could probably allow 64 bit scratch and request/response queue dma now).
* Put in some missing target mode for 2KLOGIN f/w spots.mjacob2006-07-101-10/+24
| | | | MFC after: 1 month
* Clean up the ioctl to not process nonsense on SCSI isp cards.mjacob2006-07-101-40/+44
| | | | MFC after: 1 month
* Convert isp(4) and ispfw(4) to use firmware(9) to manage firmwaremjacob2006-07-094-8/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | loading for the QLogic cards. Because isp(4) exists before the root is mounted, it's not really possible for us to use the kernel's linker to load modules directly from disk- that's really too bad. However, the this is still a net win in in that the firmware has been split up on a per chip (and in some cases, functionality) basis, so the amount of stuff loaded *can* be substantially less than the 1.5MB of firmware images that ispfw now manages. That is, each specific f/w set is now also built as a module. For example, QLogic 2322 f/w is built as isp_2322.ko and Initiator/Target 1080 firmware is built as isp_1080_it.ko. For compatibility purposes (i.e., to perturb folks the least), we also still build all of the firmware as one ispfw.ko module. This allows us to let 'ispfw_LOAD' keep on working in existing loader.conf files. If you now want to strip this down to just the firmware for your h/w, you can then change loader.conf to load the f/w you specifically want. We also still allow for ispfw to be statically built (e.g., for PAE and sparc64). Future changes will look at f/w unloading and also role switching that then uses the kernel linker to load different ips f/w sets. MFC after: 2 months
* What the heck - make the last (most recent) 2200 f/w also domjacob2006-07-031-2/+6
| | | | Hard Loop acquisition.
* Do various fixes to support firmware loading for the 2322mjacob2006-07-035-142/+280
| | | | | | | | | | | (and by extension, the 2422). One peculiar thing I've found with the 2322 is that if you don't force it to do Hard LoopID acquisition, the firmware crashes. This took a while to figure out. While we're at it, fix various bugs having to do with NVRAM reading and option setting with respect to pieces of NVRAM.
* allow this to compile cleanly under RELENG_4mjacob2006-06-031-0/+3
|
* Don't set CAM_DEV_QFRZN when we get an ABORT_TASK. Justmjacob2006-05-301-1/+1
| | | | by itself, this makes no sense.
* Add missing case for RQSTYPE_CTIO3- neede for 64 bit target mode.mjacob2006-05-221-0/+1
|
* Remove bzero/bcopy vestigesmjacob2006-05-221-21/+87
| | | | | | | | | Be cognizant as to whether we're running 2KLogin f/w in target mode and do the appropriate loopid load based upon that. Do a first cut (seems to work, at least for amd64) at 64 bit target mode for fibre channel cards. We could probably also do it for SPI cards, but that's not supported right now.
* Remove bzero/bcopy vestiges.mjacob2006-05-221-7/+12
| | | | | Be cognizant as to whether we're running 2KLogin f/w in target mode and do the appropriate loopid load based upon that.
* remove bzero/bcopy vestigesmjacob2006-05-221-3/+3
|
* add TGT_ANY definemjacob2006-05-221-0/+1
|
* Fix longstanding bug where exec throttle is 16 bits- not 8.mjacob2006-05-221-1/+1
|
* Move a define depending on __FreeBSD_versoin to after where itmjacob2006-05-161-8/+8
| | | | | | would be defined. Submitted by: Ruslan Ermilov
* Since DELAY() was moved, most <machine/clock.h> #includes have beenphk2006-05-161-1/+0
| | | | unnecessary.
* Redo some code based upon issues found by Coverity.mjacob2006-04-214-20/+16
|
* Some more gratuitous format and name changes.mjacob2006-04-2110-555/+851
| | | | | | | Pull in some target mode changes from a private branch. Pull in some more RELENG_4 compilation changes. A lot of lines changed, but not much content change yet.
* micro fix from justinmjacob2006-03-031-3/+3
|
* propagate role of device for ISP_GET_PDBINFOmjacob2006-02-261-0/+1
|
* a) clean up some declaration stuff (i.e., make more modern with respectmjacob2006-02-1514-1133/+1140
| | | | | | | | | | | | | | | to getting rid u_int for uint and so on). b) Turn back on 64 bit DAC support. Cheeze it a bit in that we have two DMA callback functions- one when we have bus_addr_t > 4 bits in width and the other which should be normal. Even Cheezier in that we turn off setting up DMA maps to be BUS_SPACE_MAXADDR if we're in ISP_TARGET_MODE. More work on this in a week or so. c) Tested under amd64 and 1MB DFLTPHYS, sparc64, i386 (PAE, but insufficient memory to really test > 4GB). LINT check under amd64. MFC after: 1 month
* Actually, no, I had it wrong in 1.109. The arguments to bus_dma_create_tagmjacob2006-02-042-14/+4
| | | | | | | | are bus_addr_t, not bus_size_t. In any case, turn off DAC support entirely until it is revamped to actually work *correctly* for 64 bit platforms (not using a PAE definition and for both initiator and target mode).
* i386/PAE defines bus_size_t to be 32-bits when it likely should be 64-bits.scottl2006-02-041-2/+5
| | | | Fixing it is left for another day, so just hack around it for now.
* - Don't shift the clock frequency in MHz left by 8 before assigning itmarius2006-02-031-11/+7
| | | | | | | | | | | | | | to sbus_mdvec.dv_clock as sbus_mdvec.dv_clock is meant to be specified in MHz. While this was a bug it shouldn't have affected FreeBSD/sparc64 as sbus_mdvec.dv_clock is used to limit the clock rate of chips when a machine isn't able to support them at maximum speed which isn't the case for sun4u machines. - Remove the code that checks whether the clock frequency returned by sbus_get_clockfreq() is 0 and falls back to 25MHz if it is as that's already done in sbus(4). Approved by: mjacob MFC after: 3 days
* Remove use of inlines and use the functions as a library.mjacob2006-02-026-301/+312
| | | | | | | Larger code space, possibly performance hit, but more portable. Certainly less questionable use of inlining. Suggested by: des
* Make sure we don't pick up a loopid that's larger than ourmjacob2006-02-021-3/+12
| | | | | | | current portdb max (MAX_FC_TARG == 256) now that we support 2K Login f/w. MFC after: 3 days
* Hackamatic: turn off target mode on Sparc64 with KLD_MODULE- this triggersmjacob2006-01-271-0/+7
| | | | | | a compiler error I have no idea what its about. This should unbreak tinderbox for now.
* oopsmjacob2006-01-261-0/+3
|
* Put in at least an attempt to ID the 2422 (4Gb part)mjacob2006-01-261-0/+14
|
* First of several commits as this driver is dusted off and maybe broughtmjacob2006-01-2313-416/+1016
| | | | | | | | | | | | | | | | | | up to date. Principle changes for this reelase is to support 2K Port Login firmware. This allows us to support the 2322 (and 2422 4Gb) cards which only come with the 2K Port Login firmware. The 2322 should now work- but we don't have firmware sets for it in ispfw (as the change to load 2K Port Login f/w hasn't been made- that f/w is so big it has to be loaded in more than one chunk). Other changes are the beginnings of cleaning up some long standing target mode issues. The next changes here will incorporate a lot of bug fixes from others. Finally, some copyright cleanup and attempts to make the parts of the driver that are FreeBSD specific start conforming more to FreeBSD style. MFC after: 1 month
* Use uintmax_t and %j to print bus dma segment members rather than castingjhb2005-12-151-6/+7
| | | | to long long and using %ll.
* Fix -Wundef.ru2005-12-041-1/+1
|
* Add an ioctl framework for doing FC task management functions frommjacob2005-10-294-1/+73
| | | | a user space tool- useful for doing FC target mode certification.
OpenPOWER on IntegriCloud