FreeBSD Man Pages

CD(9) FreeBSD Kernel Developer's Manual CD(9)
NAMEcd -- CDROM driver for the CAM SCSI subsystem
DESCRIPTION
The cd device driver provides a read only interface for CDROM drives
(SCSI type 5) and WORM drives (SCSI type 4) that support CDROM type com-
mands. Some drives do not behave as the driver expects. See the QUIRKS
section for information on possible flags.
QUIRKS
Each CD-ROM device can have different interpretations of the SCSI spec.
This can lead to drives requiring special handling in the driver. The
following is a list of quirks that the driver recognize.
CD_Q_NO_TOUCH This flag tell the driver not to probe the drive at
attach time to see if there is a disk in the drive and
find out what size it is. This flag is currently unim-
plemented in the CAM cd driver.
CD_Q_BCD_TRACKS This flag is for broken drives that return the track
numbers in packed BCD instead of straight decimal. If
the drive seems to skip tracks (tracks 10-15 are
skipped) then you have a drive that is in need of this
flag.
CD_Q_NO_CHANGER This flag tells the driver that the device in question
is not a changer. This is only necessary for a CDROM
device with multiple luns that are not a part of a
changer.
CD_Q_CHANGER This flag tells the driver that the given device is a
multi-lun changer. In general, the driver will figure
this out automatically when it sees a LUN greater than
0. Setting this flag only has the effect of telling the
driver to run the initial read capacity command for LUN
0 of the changer through the changer scheduling code.
CD_Q_10_BYTE_ONLY
This flag tells the driver that the given device only
accepts 10 byte MODE SENSE/MODE SELECT commands. In
general these types of quirks should not be added to the
cd(4) driver. The reason is that the driver does sev-
eral things to attempt to determine whether the drive in
question needs 10 byte commands. First, it issues a CAM
Path Inquiry command to determine whether the protocol
that the drive speaks typically only allows 10 byte com-
mands. (ATAPI and USB are two prominent examples of
protocols where you generally only want to send 10 byte
commands.) Then, if it gets an ILLEGAL REQUEST error
back from a 6 byte MODE SENSE or MODE SELECT command, it
attempts to send the 10 byte version of the command
instead. The only reason you would need a quirk is if
your drive uses a protocol (e.g., SCSI) that typically
does not have a problem with 6 byte commands.
FILES
/sys/cam/scsi/scsi_cd.c is the driver source file.
SEE ALSOcd(4), scsi(4)HISTORY
The cd manual page first appeared in FreeBSD 2.2.
AUTHORS
This manual page was written by John-Mark Gurney <gurney_j@efn.org>. It
was updated for CAM and FreeBSD 3.0 by Kenneth Merry <ken@FreeBSD.org>.
FreeBSD 10.1 September 2, 2003 FreeBSD 10.1