All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@hp.com>
To: Alexander Graf <agraf@suse.de>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] ide: fix ATAPI read drive structure command
Date: Mon, 02 Jun 2008 08:58:55 -0600	[thread overview]
Message-ID: <1212418735.6656.32.camel@lappy> (raw)
In-Reply-To: <13EAABC4-ED0C-4B91-9DF4-9486F0A1259E@suse.de>


Hi Alex,

On Mon, 2008-06-02 at 12:33 +0200, Alexander Graf wrote:
> On May 28, 2008, at 9:48 PM, Alex Williamson wrote:


> 
> See below for comments. I haven't tested the patch though, all
> comments are purely based on looking at the patch and mmc-2 spec.

FWIW, I'm working off this draft of the MMC-6 spec that google was able
to find online:

http://www.t10.org/ftp/t10/drafts/mmc6/mmc6r01.pdf

> Great job so far,

Thanks, I still need to look into sg_raw to see how the internal length
field works, but a couple comments...


> > +static void ide_dvd_read_structure(IDEState *s)
> > +{
> > +    const uint8_t *packet = s->io_buffer;
> > +    uint8_t *buf =s->io_buffer;
> > +    int format = packet[7];
> > +    int max_len = ube16_to_cpu(packet + 8);
> 
> 
> These look like function parameters to me.

If you don't think it's too redundant to pass IDEState and the rest,
because I'll need IDEState to call ide_atapi_cmd_*().  Perhaps the
callee could do those, but it looks like it could become ugly pretty
quick.


> > +
> > +                memset(buf, 0, max_len);
> > +                buf[4] = 1;   // DVD-ROM, part version 1
> > +                buf[5] = 0xf; // 120mm disc, maximum rate
> > unspecified
> 
> 
> I guess this means "minimum rate"?

I'm not sure exactly what "Not specified" means, but it's a valid option
in the table I'm looking (Table 409).  I assume this has more to do with
writing than reading.

> > 
> > +                buf[6] = 0;   // one layer, embossed data
> 
> 
> Layer type should be 1 (R/O Layer).

Layer type 1 is a recordable area, which implies DVD-R to me.  Embossed
means that it's pre-recorded and read-only, at least as I read it.

> > +
> > +            if (!MEDIA_IS_DVD(s)) {
> > +                if (format < 0xc0)
> > +                    ide_atapi_cmd_error(s, SENSE_ILLEGAL_REQUEST,
> > +                                        ASC_INCOMPATIBLE_FORMAT);
> > +                else
> > +                    ide_atapi_cmd_error(s, SENSE_ILLEGAL_REQUEST,
> > +
> >                                        ASC_INV_FIELD_IN_CMD_PACKET);
> > +                break;
> 
> 
> I can't seem to find that in the Spec. In MMC-2 I found:
> 
> 
> When a READ DVD STRUCTURE Command is issued for CD media, with format
> codes 00h - FEh, the 
> command shall be terminated with CHECK CONDITION status, sense key set
> to ILLEGAL REQUEST and the 
> additional sense code set to CANNOT READ MEDIUM- INCOMPATIBLE FORMAT.

Here's where I got that interpretation (6.22.2.5):

        When the Drive/media combination does not support the specified
        Format code, the command shall be terminated with CHECK
        CONDITION status and SK/ASC/ASCQ shall be set to ILLEGAL
        REQUEST/INVALID FIELD IN CDB.
        
        If a READ DISC STRUCTURE command is issued for media that is not
        consistent with this command and the format code is in the range
        00h – BFh, the command shall be terminated with CHECK CONDITION
        status and SK/ASC/ASCQ shall be set to ILLEGAL REQUEST/CANNOT
        READ MEDIUM/INCOMPATIBLE FORMAT.
        
        If there is no medium or an incompatible medium is installed, a
        request for Format FFh shall be fulfilled using a Drive specific
        media type.

Maybe I shouldn't be basing this on a draft spec?  I'll try to play with
sg_raw and clean up the rest.  Thanks for the comments,

Alex

-- 
Alex Williamson                             HP Open Source & Linux Org.

  reply	other threads:[~2008-06-02 14:59 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-27  5:25 [Qemu-devel] [PATCH] ide: fix ATAPI read drive structure command Alex Williamson
2008-05-27  7:46 ` Alexander Graf
2008-05-28 19:48   ` Alex Williamson
2008-06-02 10:33     ` Alexander Graf
2008-06-02 14:58       ` Alex Williamson [this message]
2008-06-02 15:42         ` Alexander Graf
2008-06-02 22:12           ` [Qemu-devel] [PATCH] ide: fix ATAPI read drive structure command (v3) Alex Williamson
2008-06-02 22:45             ` Alex Williamson
2008-06-03 13:48               ` Alexander Graf
2008-06-03 14:21                 ` Alex Williamson
2008-06-03 18:01                   ` Carlo Marcelo Arenas Belon
2008-06-03 16:59               ` Anthony Liguori
2008-06-04 12:30                 ` Alex Williamson
2008-06-04 14:35                   ` Anthony Liguori
2008-06-04 14:49                     ` Alex Williamson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1212418735.6656.32.camel@lappy \
    --to=alex.williamson@hp.com \
    --cc=agraf@suse.de \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.