History log of /freebsd-10-stable/sys/dev/asr/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
275982 21-Dec-2014 smh

MFC r274819:
Prevent overflow issues in timeout processing

MFC r274852:
Fix build with asr driver

Sponsored by: Multiplay

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


255871 25-Sep-2013 scottl

Re-do r255853. Along with adding back the API/ABI changes from the
original, this hides the contents of cam_compat.h from ktrace/kdump/truss,
avoiding problems there. There are no user-servicable parts in there, so
no need for those tools to be groping around in there.

Approved by: re


255865 25-Sep-2013 gjb

Revert r255853 pending fixes to build errors in usr.bin/kdump

Approved by: re (implicit)


255853 24-Sep-2013 scottl

Update the CAM API for FreeBSD 10:

- Remove the timeout_ch field. It's been deprecated since FreeBSD 7.0;
MPSAFE drivers should be managing their own timeout storage. The
remaining non-MPSAFE drivers have been modified to also manage their own
storage, and should be considered for updating to MPSAFE (or removal)
during the FreeBSD 10.x lifecycle.

- Add fields related to soft timeouts and quality of service, to be used
in upcoming work.

- Add room for more flags in the CCB header and path_inq structures.

- Begin support for extended 64-bit LUNs.

- Bump the CAM version number to 0x18, but add compat shims. Tested with
camcontrol and smartctl.

Reviewed by: nathanw, ken, kib
Approved by: re
Obtained from: Netflix


254263 12-Aug-2013 scottl

Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI
command register. The lazy BAR allocation code in FreeBSD sometimes
disables this bit when it detects a range conflict, and will re-enable
it on demand when a driver allocates the BAR. Thus, the bit is no longer
a reliable indication of capability, and should not be checked. This
results in the elimination of a lot of code from drivers, and also gives
the opportunity to simplify a lot of drivers to use a helper API to set
the busmaster enable bit.

This changes fixes some recent reports of disk controllers and their
associated drives/enclosures disappearing during boot.

Submitted by: jhb
Reviewed by: jfv, marius, achadd, achim
MFC after: 1 day


234503 20-Apr-2012 dim

Replace homegrown list implementation in sys/dev/asr/asr.c with
STAILQ(). While here, fix another clang warning about a switch which
tests an enum type for a regular integer value.

Submitted by: jhb
MFC after: 1 week


232854 12-Mar-2012 scottl

Convert a number of drivers to obtaining their parent DMA tag from their
PCI device attachment.


226350 13-Oct-2011 marius

Merge from r225950:

Set the sense residual properly.

Reviewed by: ken


218909 21-Feb-2011 brucec

Fix typos - remove duplicate "the".

PR: bin/154928
Submitted by: Eitan Adler <lists at eitanadler.com>
MFC after: 3 days


215843 25-Nov-2010 brian

Don't zero 'Info' after setting it up in the ASR_IOCTL_COMPAT case.

MFC after: 2 days


203108 28-Jan-2010 mav

MFp4: Large set of CAM inprovements.

- 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.


191939 09-May-2009 imp

Unmark the ASR Compat IOCTLs as BURN_BRIDGES, per scottl@


183397 27-Sep-2008 ed

Replace all calls to minor() with dev2unit().

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


170872 17-Jun-2007 scottl

Prepare for future integration between CAM and newbus. xpt_bus_register
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.


168752 15-Apr-2007 scottl

Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will
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.


166901 23-Feb-2007 piso

o break newbus api: add a new argument of type driver_filter_t to
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@


165102 11-Dec-2006 mjacob

Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed.

PR: 106543
MFC after: 3 days


164033 06-Nov-2006 rwatson

Sweep kernel replacing suser(9) calls with priv(9) calls, assigning
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>


163896 02-Nov-2006 mjacob

2nd and final commit that moves us to CAM_NEW_TRAN_CODE
as the default.

Reviewed by multitudes.


163816 31-Oct-2006 mjacob

The first of 3 major steps to move the CAM layer forward to using
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


160207 09-Jul-2006 markm

Remove stale MAINTAINER

OK'd by: scottl


158471 12-May-2006 jhb

Remove various bits of conditional Alpha code and fixup a few comments.


155562 12-Feb-2006 scottl

Give the asr softc list global a proper name.


155331 05-Feb-2006 scottl

Squash a couple more invalid long casts.


155307 04-Feb-2006 scottl

Squash another use of vtophys. Instead of creating separate busdma objects
for doing static memory transfers, start collecting them into a single
object.


155286 04-Feb-2006 scottl

Add the start of busdma infrastructure to this driver. Convert the
ASR_resetIOPR function to use it.


155284 04-Feb-2006 scottl

Now that the U32 type is a really 32-bits wide, eliminate a bunch of other
bad assumptions and long values.


155278 04-Feb-2006 scottl

Give correct definitions to some basic types.


155274 04-Feb-2006 scottl

Fix a possible memory leak in asr_attach.


154365 14-Jan-2006 scottl

Don't allocate an asr_ccb in asr_attach, it hasn't been needed for years.


154364 14-Jan-2006 scottl

Replace bogus code with real code.


154363 14-Jan-2006 scottl

Rename driver_t variables. Use device_printf() instead of homerolled printf.
Use the provided softc instead of rolling our own.


153084 04-Dec-2005 ru

Fix -Wundef from compiling the amd64 LINT.


145658 29-Apr-2005 scottl

Only create the rdpti alias if the asr device creation succeeds.


144505 01-Apr-2005 scottl

Make life easier on those trying to use the asr utilities by automatically
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.


143729 17-Mar-2005 cognet

Bring back some of the ioctl junk that was removed in rev 1.59 as a
i386-only kernel option, ASR_COMPAT, and under BURN_BRIDGES.
It is really ugly, but raidutils depends on it.

Discussed with: scottl


143163 05-Mar-2005 imp

Use BUS_PROBE_DEFAULT for pci probe return value


139749 06-Jan-2005 imp

Start each of the license/copyright comments with /*-, minor shuffle of lines


133041 02-Aug-2004 marius

- Set the CAM status to CAM_SCSI_STATUS_ERROR rather than CAM_REQ_CMP
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


130585 16-Jun-2004 phk

Do the dreaded s/dev_t/struct cdev */
Bump __FreeBSD_version accordingly.


129879 30-May-2004 phk

Add missing <sys/module.h> includes


128964 05-May-2004 scottl

Update the version history in the driver to note everything that has happened
over the last three weeks.


128945 05-May-2004 scottl

Roto-till the ioctl code. Remove all the groping around in the x86 BIOS
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.


128944 05-May-2004 scottl

Convert the asr driver to use the bus_space API. This does not represent
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.


128908 04-May-2004 scottl

Fix a typo from rev 1.56 that somehow escaped my testing.


128813 02-May-2004 scottl

Remove the static reservation of the asr major number


128812 02-May-2004 scottl

Remove the defAlignLong and getAlignLong macros. I guess that the original
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.


128807 02-May-2004 scottl

Remove the bogus printing of the asr control device major number. Also
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.


128794 01-May-2004 scottl

Correctly test *Reply_Ptr in ASR_resetIOP(). Thanks to dhartmei for pointing
this out.


128793 01-May-2004 scottl

Re-indent some silly sub-blocks in asr_attach().


128792 01-May-2004 scottl

Remove ASR_get_sc() and reference the softc in the dev_t. For some nefarious
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.


128791 01-May-2004 scottl

Remove the DOMINO and MODE0 device attachments. They never did anything.
Remove a bunch of obfuscating macros.


128787 01-May-2004 scottl

More whitespace style cleanups, also remove unneeded (void *) casts for bzero().


128786 01-May-2004 scottl

Many more style cleanups. Switch complex macros to being inline functions.
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.


128784 01-May-2004 scottl

Get rid of a bunch of useless macros. STATIC becomes static, INLINE becomes
__inline where appropriate and gets nuked elsewhere, IN/OUT/INOUT go away.
Reformat code affected by this.


128544 22-Apr-2004 njl

Fix the build. opt_asr.h is gone.

Beer or equivalent to? njl


128536 21-Apr-2004 scottl

Remove more sead code.


128535 21-Apr-2004 scottl

Don't indent preprocessor tokens.


128532 21-Apr-2004 scottl

Remove ASR_MEASURE_PERFORMANCE. It hasn't been able to compile in several
years.


128531 21-Apr-2004 scottl

Use offsetof() instead of hand-rolling something equivalent.


128512 21-Apr-2004 scottl

Remove all of the old __FreeBSD_version code that provided FreeBSD 2.2.x and
3.x shims.


128511 21-Apr-2004 scottl

Begin the slow, painful process of cleaning up asr. This eliminates many of the
bogus casts of NULL. It also distracts me while I procrastinate on useful work.


127135 17-Mar-2004 njl

Convert callers to the new bus_alloc_resource_any(9) API.

Submitted by: Mark Santcroos <marks@ripe.net>
Reviewed by: imp, dfr, bde


126080 21-Feb-2004 phk

Device megapatch 4/6:

Introduce d_version field in struct cdevsw, this must always be
initialized to D_VERSION.

Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing
four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.


120478 26-Sep-2003 phk

Remove code previously under #ifdef ASR_VERY_BROKEN

Ok'ed by: scottl


119690 02-Sep-2003 jhb

Use PCIR_BAR(x) instead of PCIR_MAPS.

Glanced over by: imp, gibbs
Tested by: i386 LINT


119418 24-Aug-2003 obrien

Use __FBSDID().
Also some minor style cleanups.


119277 22-Aug-2003 imp

Prefer new location of pci include files (which have only been in the
tree for two or more years now), except in a few places where there's
code to be compatible with older versions of FreeBSD.


113580 16-Apr-2003 phk

Include <sys/ioccom.h> instead of <sys/disklabel.h>


111815 03-Mar-2003 phk

Gigacommit to improve device-driver source compatibility between
branches:

Initialize struct cdevsw using C99 sparse initializtion and remove
all initializations to default values.

This patch is automatically generated and has been tested by compiling
LINT with all the fields in struct cdevsw in reverse order on alpha,
sparc64 and i386.

Approved by: re(scottl)


111748 02-Mar-2003 des

More low-hanging fruit: kill caddr_t in calls to wakeup(9) / [mt]sleep(9).


111419 24-Feb-2003 obrien

<machine/vmparam.h> is the right place to get KERNBASE, so don't special
platform case it (or use alternate spellings).


111119 19-Feb-2003 imp

Back out M_* changes, per decision of the TRB.

Approved by: trb


109623 21-Jan-2003 alfred

Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.


108533 01-Jan-2003 schweikh

Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,
especially in troff files.


108328 27-Dec-2002 rwatson

Use UID_ and GID_ constants instead of hard-coded numeric values
with make_dev(). Use OPERATOR instead of implicit WHEEL to match
other storage devices. Use a mode of 0640 to be consistent
with other storage devices.

Submitted by: kris
Reviewed by: scottl


106515 06-Nov-2002 jhb

Use a bandaid to fix a warning. However, this driver is very, very far
from being MI in any fashion. It currently "assumes" that it can get
a kernel virtual address for a phyiscal address by adding KERNBASE to the
physical address. It also tries to read values out of a the PC BIOS on
all archs. It also uses "manual" inb() and outb()'s to talk to the mcclock
device which just happens to be at that location on both i386 and alpha.
This driver should likely be i386-only.


102291 22-Aug-2002 archie

Replace (ab)uses of "NULL" where "0" is really meant.


96655 15-May-2002 brian

Remove an extraneous )

Not approved by: maintainer

I'm guessing that this is trivial enough to sidestep approval.


96615 14-May-2002 obrien

`unexpand -a' should be run _before_ sed 's/^#define /#define^I/g'.


96614 14-May-2002 obrien

Tighten up the defined()'s.


96554 14-May-2002 obrien

unexpand -a everything


96551 14-May-2002 obrien

First pass of style(9) for #define's.


93593 01-Apr-2002 jhb

Change the suser() API to take advantage of td_ucred as well as do a
general cleanup of the API. The entire API now consists of two functions
similar to the pre-KSE API. The suser() function takes a thread pointer
as its only argument. The td_ucred member of this thread must be valid
so the only valid thread pointers are curthread and a few kernel threads
such as thread0. The suser_cred() function takes a pointer to a struct
ucred as its first argument and an integer flag as its second argument.
The flag is currently only used for the PRISON_ROOT flag.

Discussed on: smp@


93506 01-Apr-2002 alfred

Remove erronious destroy_dev. Not sure what the author's intent was here
but this makes the driver not panic my -current box.

Approved by: scottl


92739 20-Mar-2002 alfred

Remove __P.


91277 26-Feb-2002 imp

If we're going to ifdef out the only reference to asr_drvinit, then
go ahead and ifdef out the function too.


87826 13-Dec-2001 obrien

Convert C++ style comments to proper C ones.
Clean up C comments just a tad.
Fix ID's.


87816 13-Dec-2001 jhb

Use C comments instead of C++ comments.

Reported by: gcc30


85751 30-Oct-2001 scottl

Put a Band-Aid over the asr driver so that it hopefully won't cause
panics until the author comes up with a real fix.


83366 12-Sep-2001 julian

KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after: ha ha ha ha


82092 21-Aug-2001 scottl

Fresh code drop from the vendor. This fixes some critical bugs and adds
support for a new class of controllers. Also adjust MAINTAINER at the
approval of msmith.

Obtained from: mark_salyzyn@adaptec.com


75102 03-Apr-2001 ps

Fix probing on the alpha. It still causes the alpha to panic during
attach.


75062 01-Apr-2001 scottl

Make an attempt to get the asr driver to compile on Alpha by fixing some i386
specific bogons. Compile with -O0, as anything higher gives the compiler
a fit. No idea if this driver will actually work on Alpha, though.


74810 26-Mar-2001 phk

Send the remains (such as I have located) of "block major numbers" to
the bit-bucket.


73280 01-Mar-2001 markm

Turn on interrupt-entropy harvesting for all/any mass storage devices
I could find. I have no doubt missed a couple.

Interrupt entropy harvesting is still conditional on the
kern.random.sys.harvest_interrupt sysctl.


72760 20-Feb-2001 kris

Typo fixes: prefered -> preferred
There are some others in contributed/external code I haven't touched.


71999 04-Feb-2001 phk

Mechanical change to use <sys/queue.h> macro API instead of
fondling implementation details.

Created with: sed(1)
Reviewed by: md5(1)


69548 03-Dec-2000 dwmalone

Use M_ZERO.

Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>
Approved by: mark_salyzyn@adaptec.com


67893 29-Oct-2000 phk

Move suser() and suser_xxx() prototypes and a related #define from
<sys/proc.h> to <sys/systm.h>.

Correctly document the #includes needed in the manpage.

Add one now needed #include of <sys/systm.h>.
Remove the consequent 48 unused #includes of <sys/proc.h>.


67164 15-Oct-2000 phk

Remove unneeded #include <machine/clock.h>


66190 21-Sep-2000 msmith

Fix a race in ASR_ccbAdd and ASR_ccbRemove, which were both manipulating
the ccb queue without masking interrupts.

Submitted by: Petr Lampa <lampa@fee.vutbr.cz>


65343 01-Sep-2000 msmith

Move the 'asr' driver to cdev major 154, since 97 is already taken.


65313 01-Sep-2000 msmith

Add MAINTAINER tag to aid updaters in finding the responsible parties.


65312 01-Sep-2000 msmith

Add the 'asr' driver, supplied by Mark Salyzyn of Adaptec (nee DPT).
This provides support for the Adaptec SCSI RAID controller family,
as well as the DPT SmartRAID V and VI families.

The driver will be maintained by Mark and Adaptec, and any changes
should be referred to the MAINTAINER.