summaryrefslogtreecommitdiffstats
path: root/sys/dev/asr
Commit message (Collapse)AuthorAgeFilesLines
* Don't zero 'Info' after setting it up in the ASR_IOCTL_COMPAT case.brian2010-11-251-2/+2
| | | | MFC after: 2 days
* MFp4: Large set of CAM inprovements.mav2010-01-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Unify bus reset/probe sequence. Whenever bus attached at boot or later, CAM will automatically reset and scan it. It allows to remove duplicate code from many drivers. - Any bus, attached before CAM completed it's boot-time initialization, will equally join to the process, delaying boot if needed. - New kern.cam.boot_delay loader tunable should help controllers that are still unable to register their buses in time (such as slow USB/ PCCard/ CardBus devices), by adding one more event to wait on boot. - To allow synchronization between different CAM levels, concept of requests priorities was extended. Priorities now split between several "run levels". Device can be freezed at specified level, allowing higher priority requests to pass. For example, no payload requests allowed, until PMP driver enable port. ATA XPT negotiate transfer parameters, periph driver configure caching and so on. - Frozen requests are no more counted by request allocation scheduler. It fixes deadlocks, when frozen low priority payload requests occupying slots, required by higher levels to manage theit execution. - Two last changes were holding proper ATA reinitialization and error recovery implementation. Now it is done: SATA controllers and Port Multipliers now implement automatic hot-plug and should correctly recover from timeouts and bus resets. - Improve SCSI error recovery for devices on buses without automatic sense reporting, such as ATAPI or USB. For example, it allows CAM to wait, while CD drive loads disk, instead of immediately return error status. - Decapitalize diagnostic messages and make them more readable and sensible. - Teach PMP driver to limit maximum speed on fan-out ports. - Make boot wait for PMP scan completes, and make rescan more reliable. - Fix pass driver, to return CCB to user level in case of error. - Increase number of retries in cd driver, as device may return several UAs.
* Unmark the ASR Compat IOCTLs as BURN_BRIDGES, per scottl@imp2009-05-091-2/+0
|
* Replace all calls to minor() with dev2unit().ed2008-09-271-1/+1
| | | | | | | | | | | | | | | After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere. This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware. Reviewed by: kib
* Prepare for future integration between CAM and newbus. xpt_bus_registerscottl2007-06-171-1/+1
| | | | | | | now takes a device_t to be the parent of the bus that is being created. Most SIMs have been updated with a reasonable argument, but a few exceptions just pass NULL for now. This argument isn't used yet and the newbus integration likely won't be ready until after 7.0-RELEASE.
* Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM willscottl2007-04-151-1/+2
| | | | | | | | | | | use to synchornize and protect all data objects that are used for that SIM. Drivers that are not yet MPSAFE register Giant and operate as usual. RIght now, no drivers are MPSAFE, though a few will be changed in the coming week as this work settles down. The driver API has changed, so all CAM drivers will need to be recompiled. The userland API has not changed, so tools like camcontrol do not need to be recompiled.
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-231-1/+1
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed.mjacob2006-12-111-0/+2
| | | | | PR: 106543 MFC after: 3 days
* Sweep kernel replacing suser(9) calls with priv(9) calls, assigningrwatson2006-11-061-1/+2
| | | | | | | | | | | | | specific privilege names to a broad range of privileges. These may require some future tweaking. Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
* 2nd and final commit that moves us to CAM_NEW_TRAN_CODEmjacob2006-11-021-20/+0
| | | | | | as the default. Reviewed by multitudes.
* The first of 3 major steps to move the CAM layer forward to usingmjacob2006-10-311-4/+35
| | | | | | | | | | | | | | | | | | | | | the CAM_NEW_TRAN_CODE that has been in the tree for some years now. This first step consists solely of adding to or correcting CAM_NEW_TRAN_CODE pieces in the kernel source tree such that a both a GENERIC (at least on i386) and a LINT build with CAM_NEW_TRAN_CODE as an option will compile correctly and run (at least with some the h/w I have). After a short settle time, the other pieces (making CAM_NEW_TRAN_CODE the default and updating libcam and camcontrol) will be brought in. This will be an incompatible change in that the size of structures related to XPT_PATH_INQ and XPT_{GET,SET}_TRAN_SETTINGS change in both size and content. However, basic system operation and basic system utilities work well enough with this change. Reviewed by: freebsd-scsi and specific stakeholders
* Remove stale MAINTAINERmarkm2006-07-091-2/+0
| | | | OK'd by: scottl
* Remove various bits of conditional Alpha code and fixup a few comments.jhb2006-05-121-5/+0
|
* Give the asr softc list global a proper name.scottl2006-02-121-5/+5
|
* Squash a couple more invalid long casts.scottl2006-02-051-2/+2
|
* Squash another use of vtophys. Instead of creating separate busdma objectsscottl2006-02-041-39/+42
| | | | | for doing static memory transfers, start collecting them into a single object.
* Add the start of busdma infrastructure to this driver. Convert thescottl2006-02-041-10/+111
| | | | ASR_resetIOPR function to use it.
* Now that the U32 type is a really 32-bits wide, eliminate a bunch of otherscottl2006-02-041-7/+7
| | | | bad assumptions and long values.
* Give correct definitions to some basic types.scottl2006-02-041-2/+2
|
* Fix a possible memory leak in asr_attach.scottl2006-02-041-5/+12
|
* Don't allocate an asr_ccb in asr_attach, it hasn't been needed for years.scottl2006-01-141-9/+1
|
* Replace bogus code with real code.scottl2006-01-141-10/+4
|
* Rename driver_t variables. Use device_printf() instead of homerolled printf.scottl2006-01-141-39/+39
| | | | Use the provided softc instead of rolling our own.
* Fix -Wundef from compiling the amd64 LINT.ru2005-12-041-2/+2
|
* Only create the rdpti alias if the asr device creation succeeds.scottl2005-04-291-1/+2
|
* Make life easier on those trying to use the asr utilities by automaticallyscottl2005-04-011-0/+1
| | | | | | creating the /dev/dpti%d entry that the software expects. This is just a band-aid until either someone (hopefully) rewrites the utilities, or all asr/dpt cards in existance get blasted into the sun.
* Bring back some of the ioctl junk that was removed in rev 1.59 as acognet2005-03-171-2/+121
| | | | | | | i386-only kernel option, ASR_COMPAT, and under BURN_BRIDGES. It is really ugly, but raidutils depends on it. Discussed with: scottl
* Use BUS_PROBE_DEFAULT for pci probe return valueimp2005-03-051-1/+1
|
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-0614-14/+22
|
* - Set the CAM status to CAM_SCSI_STATUS_ERROR rather than CAM_REQ_CMPmarius2004-08-021-11/+8
| | | | | | | | | | | | | | in case of a CHECK CONDITION. - Make this driver return SCSI status information. - While here, factor out the clearing of the CAM status from every element of the switch statement to only once before the switch. This fixes burning CDs with recent cdrecord 2.01 alpha versions and burners attached to asr(4) controllers but there could have been other applications and da(4) etc. also affected. Reviewed by: gibbs, scottl MFC after: 2 weeks
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-7/+7
| | | | Bump __FreeBSD_version accordingly.
* Add missing <sys/module.h> includesphk2004-05-301-0/+1
|
* Update the version history in the driver to note everything that has happenedscottl2004-05-051-5/+10
| | | | over the last three weeks.
* Roto-till the ioctl code. Remove all the groping around in the x86 BIOSscottl2004-05-051-109/+10
| | | | | | | segment, remove the groping around in the Option ROM segments, remove the bogus tests for bcopy vs. copyout. There really is no reason for a management app to know these things other than to create l33t info tables for the user.
* Convert the asr driver to use the bus_space API. This does not representscottl2004-05-051-89/+151
| | | | | | a significant functional change, but it further cleans up the code and brings it closer to being portable. Thanks to Don Bowman for helping to test this.
* Fix a typo from rev 1.56 that somehow escaped my testing.scottl2004-05-041-10/+10
|
* Remove the static reservation of the asr major numberscottl2004-05-021-2/+0
|
* Remove the defAlignLong and getAlignLong macros. I guess that the originalscottl2004-05-021-103/+91
| | | | | | | intent was to make sure that message structs allocated off of the stack were 4-byte aligned. However, the macros as defined did absolutely nothing. And since I2O forces you to manually copy messages down to the hardware, there really is no point of enforced alignment anyways.
* Remove the bogus printing of the asr control device major number. Alsoscottl2004-05-021-2/+1
| | | | | | | rename the control device from rasr%d to asr%d. This starts us down the path of divorcing ourselves from a very bogus design in the management apps. Since the apps are open source now, they will likely be updated and fixed before 5.3.
* Correctly test *Reply_Ptr in ASR_resetIOP(). Thanks to dhartmei for pointingscottl2004-05-011-1/+1
| | | | this out.
* Re-indent some silly sub-blocks in asr_attach().scottl2004-05-011-147/+129
|
* Remove ASR_get_sc() and reference the softc in the dev_t. For some nefariousscottl2004-05-011-23/+8
| | | | | reason, the I2O protocol requires knowledge of all I2O devices in the system, so we can't get rid of the evil linked-list of softc's yet.
* Remove the DOMINO and MODE0 device attachments. They never did anything.scottl2004-05-011-128/+20
| | | | Remove a bunch of obfuscating macros.
* More whitespace style cleanups, also remove unneeded (void *) casts for bzero().scottl2004-05-011-33/+30
|
* Many more style cleanups. Switch complex macros to being inline functions.scottl2004-05-011-150/+139
| | | | | | Put @includes in a better spot. Fix many cases of 2 space indents and spaces between a function name and the parens. Use KASSERT instead of a home-rolled ASSERT. Remove some undeeded caddr casts.
* Get rid of a bunch of useless macros. STATIC becomes static, INLINE becomesscottl2004-05-011-367/+227
| | | | | __inline where appropriate and gets nuked elsewhere, IN/OUT/INOUT go away. Reformat code affected by this.
* Fix the build. opt_asr.h is gone.njl2004-04-221-1/+0
| | | | Beer or equivalent to? njl
* Remove more sead code.scottl2004-04-211-91/+2
|
* Don't indent preprocessor tokens.scottl2004-04-211-70/+70
|
* Remove ASR_MEASURE_PERFORMANCE. It hasn't been able to compile in severalscottl2004-04-211-354/+0
| | | | years.
OpenPOWER on IntegriCloud