Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Apr 1999 17:11:54 -0600 (MDT)
From:      "Kenneth D. Merry" <ken@plutotech.com>
To:        wilko@yedi.iaf.nl (Wilko Bulte)
Cc:        freebsd-scsi@FreeBSD.ORG
Subject:   Re: Getting Pioneer CD changer to work
Message-ID:  <199904082311.RAA12752@panzer.plutotech.com>
In-Reply-To: <199904082152.XAA04131@yedi.iaf.nl> from Wilko Bulte at "Apr 8, 1999 11:52:57 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Wilko Bulte wrote...
> As Kenneth D. Merry wrote ...
> > Wilko Bulte wrote...
> > > As Kenneth D. Merry wrote ...
> > > > Wilko Bulte wrote...
> > > > > As Kenneth D. Merry wrote ...
> > > > > > Wilko Bulte wrote...
> > > > > > > As Kenneth D. Merry wrote ...
> > > > > > > > Wilko Bulte wrote...
> > > > FWIW, Justin and I have been talking about making the CD and DA drivers
> > > > attach to devices "no matter what", for the most part.  (unless they say
> > > > something like "logical unit not supported")
> > > 
> > > To be honest I never saw the point in doing a READ CAPACITY etc on a CD
> > > drive. If it responds to an inquiry OK, does not produce sense codes
> > > like hardware error I'd conclude we have a working drive on our hands.
> > > But that might be too simplistic.
> > 
> > We have to do a read capacity if we're going to mount the CD at all.  The
> > read capacity provides two critical pieces of information:  the
> > sector/block size of the device, and the size of the device.  Both are
> > needed for the disklabel and for mounting filesystems.
> 
> OK, sounds like I need another beer ;-) I confused the READ CAPACITY with
> the READ TOC (see below)
> 
> The only thing that could go I think is the warning/error that occurs 
> when no CD is loaded in the drive during probe.

I think it's useful to have a message that tells you that there's no CD
present, and why the driver thinks that that's the case.

> > Now the read capacity may not be necessary on attach, but it must be done
> > before we can open the CD.  I think it's generally worthwhile to do on
> > attach as well.
> 
> It should not hurt. Maybe a 'silent' one in case of an empty drive?

See above.  In any case, it's already a stripped-down, one-line
informational message.

> > > > That means that the probing should happen sequentially, not in parallel.
> > > > So your timeout should be the time it takes for one LUN to probe, not all
> > > > of them.
> > > 
> > > OK. I just went back to the driver. I put the original driver in the tree
> > > again and just added the 0xb0 ASC the drive reports during probe when no
> > > magazine/cds are loaded. I left all the timeouts alone for now. 
> > > 
> > > Will test this later tonight when it has completed a complete magazine
> > > test cycle.
> 
> In the meantime it has proven to work OK with the default timeouts, and
> only the 0xb0 line in.

Good!

> > > > You can put a quirk entry in the CD driver to make sure the CD driver sees
> > > > even LUN 0 as part of a changer, but I don't think it'll have any noticable
> > > > effect on the way things work.
> > > 
> > > It has no problems detecting the 6 LUNs. 
> > 
> > The CD driver will detect all 6 LUNs with or without a quirk.  The only
> > reason for a quirk entry is that the various LUNs of the changer will not
> > be seen/grouped as a changer until the CD driver sees a LUN greater than 1.
> > 
> > Once a group of CD devices is recognized as a changer, I/O to any of those
> > devices goes through the changer scheduler in the CD driver.  The changer
> > scheduler schedules I/O to each LUN in a changer, makes sure one LUN can't
> > hog the changer if there is outstanding I/O to another LUN, etc.
> > 
> > I don't think it's really necessary to have a quirk entry, though, since
> > all the LUNs will be put in the changer scheduler before any I/O goes to
> > LUN 1 of the device.
> 
> That is what I meant. It works with or without the quirk entry. I tried
> both. Interestingly enough there is a quirk entry for Pioneer already, but
> my drive has a slightly different inquiry string:
> 
>         {
>                 { T_CDROM, SIP_MEDIA_REMOVABLE, "PIONEER", "CD-ROM
> DRM-604X",
>                   "*"}, /* quirks */ CD_Q_CHANGER
>         },
>         {
>                 { T_CDROM, SIP_MEDIA_REMOVABLE, "PIONEER", "CD-ROM DRM-600",
>                   "*"}, /* quirks */ CD_Q_CHANGER
>         },
> 
> I'm not sure if it is worthwhile to put a quirk in the driver for this
> drive. Maybe if I can get info on why READ TOCs etc fail.. Just sent
> mail to Pioneer in Belgium to ask for a SCSI implementation manual for this
> drive. Lets be optimistic..

Hmm, well, my guess is that the 604 is just a newer version of the drive
you have.  I haven't heard any complaints from any 604 owners about read
toc problems, so my guess is that it's a SCSI-2 drive.

> > > > > A mount of a plain iso9660 cd produced a new interesting message:
> > > > > 
> > > > > Apr  8 00:52:46 p100 /kernel: (cd3:isp0:0:5:3): READ TOC/PMA/ATIP {MMC
> > > > > Proposed}. CDB: 43 60 0 0 0 0 0 0 4 0 
> > > > > Apr  8 00:52:46 p100 /kernel: (cd3:isp0:0:5:3): ILLEGAL REQUEST asc:20,0
> > > > > Apr  8 00:52:46 p100 /kernel: (cd3:isp0:0:5:3): ILLEGAL REQUEST asc:20,0
> > > > > Apr  8 00:52:46 p100 /kernel: (cd3:isp0:0:5:3): Invalid command operation
> > > > > code
> > > > > 
> > > > > Makes me wonder, especially because the Pioneer firmware claims to be CCS
> > > > > only. There is a little dipswitch claiming to select SCSI-2 mode but it
> > > > > does not have any obvious effect. I guess this is a pre-SCSI-2 firmware rev
> > > > > and it does not have the standard SCSI cmds for optical devices. They were
> > > > > introduced in SCSI-2 IIRC. Really a funky piece of hardware ;-)
> > > > 
> > > > Yeah, definitely makes me wonder.  I wonder how you get the table of
> > > > contents off the thing, since that is the standard CDROM TOC command that
> > > > should work on most any CDROM..
> > > 
> > > 'Most any' appears to be the right term for it ;) I'll experiment a bit
> > > more. Just go a solid system lockup by running a 'dd if=/dev/rcd0a' and
> > > a 'mount /dev/cd1a ...' at the same time. Only ping still works. Hmm.
> > > More testing to do I guess
> > 
> > Hmm, interesting.  What happens if you just try the DD?  Can you break into
> > the debugger when the machine locks up?
> 
> I made a new kernel with the debugger in. I'll have it run overnight to see
> if it re-occurs. In the meantime there was also a spontaneous reboot. No 
> panic as far as I can see. I'll try to reproduce.. Just the DD seems
> to work just fine.

Hmm, sounds strange indeed.

Ken
-- 
Kenneth Merry
ken@plutotech.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904082311.RAA12752>