cvs commit: src/sys/cam cam_ccb.h src/sys/cam/scsi scsi_cd.c scsi_da.c src/sys/dev/ata atapi-cam.c src/sys/dev/usb umass.c src/sys/dev/firewire sbp.c

Kevin Oberman oberman at
Mon Jul 28 10:58:52 PDT 2003

> Date: Sun, 27 Jul 2003 23:23:33 -0700 (PDT)
> From: Nate Lawson <nate at>
> Sender: owner-freebsd-current at
> On Sun, 27 Jul 2003, Nate Lawson wrote:
> >   Modified files:
> >     sys/cam              cam_ccb.h
> >     sys/cam/scsi         scsi_da.c scsi_cd.c
> >     sys/dev/ata          atapi-cam.c
> >     sys/dev/usb          umass.c
> >     sys/dev/firewire     sbp.c
> >   Log:
> >   Add a PATH_INQ flag, PIM_NO_6_BYTE, which indicates the SIM never wishes to
> >   receive 6 byte commands.  Add a check for this flag to da(4) and cd(4) so
> >   that they honor it.  This is a quick workaround for many devices (especially
> >   USB) that require da(4) quirks to operate.  The more complete approach is
> >   to finish the new transport code which will be aware of the SCSI version a
> >   transport implements.
> >
> >   MFC after:      1 day
> >
> >   Revision  Changes    Path
> >   1.26      +2 -1      src/sys/cam/cam_ccb.h
> >   1.80      +8 -0      src/sys/cam/scsi/scsi_cd.c
> >   1.147     +8 -0      src/sys/cam/scsi/scsi_da.c
> >   1.18      +1 -1      src/sys/dev/ata/atapi-cam.c
> >   1.58      +1 -1      src/sys/dev/firewire/sbp.c
> >   1.88      +1 -1      src/sys/dev/usb/umass.c
> This is the first step to removing many of the da(4) quirks that have
> accumulated for USB devices.  This code should remove the message:
> "READ(6)/WRITE(6) not supported, increasing minimum_cmd_size to 10." It
> should also fix USB devices which fail when receiving 6 byte commands but
> do not yet have a quirk.
> After this code is in both stable and current, current USB quirks will be
> deprecated but can be re-enabled in a pinch with a kernel option.
> Unfortunately, I only have contact information for the more recent quirks
> that were committed and so the only way to find devices that have other
> problems (i.e. NO_SYNC_CACHE) is to disable the quirks and re-enable them
> for devices that still fail.  I'm doing this as early as possible before
> 5.2 to get things sorted out and if your device fails at that point, it
> can be returned to ordinary behavior with a kernel option until I remove
> it from the deprecated section.

This looks great to me. The entire quirks system is a royal pain. It
really needs to be driven by an external file so that the kernel does
not need a re-compile for every device that requires poking something
odd, but eliminating all of the 6 bye/10 byte ones will greatly
improve life. I know such things (like pccard.conf) are ugly, but it's
better than patching the source and re-building the kernel all of the

There must be a better way. Almost anything like this that I plug into
Windows "just works". That means no driver installation or anything.
(The USB devices almost always include software, but I seldom install
it.) I just HATE it when Windows works better than FreeBSD, but
hardware can be a tough nut to crack.

Is there any hope of getting PR53094 to support the Nomad MuVo moved
to current. It will still need a quirk as it requires both
NO_SYNC_CACHE and NO_PREVENT. The pr has been around for some time but
was just assigned to joe@ about 10 days ago, so it may already be on
it's way. (I am about 250 messages behind in cvs-all, so it may
already have been committed.)
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at			Phone: +1 510 486-8634

More information about the freebsd-current mailing list