public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Christer Weinigel <christer@weinigel.se>
To: Linus Torvalds <torvalds@osdl.org>
Cc: James Bottomley <James.Bottomley@SteelEye.com>,
	Jens Axboe <axboe@suse.de>, Dave Jones <davej@redhat.com>,
	linux-scsi@vger.kernel.org
Subject: Re: cd burning with plextor drives.
Date: 30 Jul 2006 18:02:39 +0200	[thread overview]
Message-ID: <m3y7ubqdwg.fsf@zoo.weinigel.se> (raw)
In-Reply-To: <Pine.LNX.4.64.0607291045540.4168@g5.osdl.org>

Linus Torvalds <torvalds@osdl.org> writes:

> On Sat, 29 Jul 2006, James Bottomley wrote:
> > There are certain CDs that just require vendor specific magic to
> > work ... even cdrecord has no choice but to do this.
> 
> IF that is actually true (and if you were told this by Joerg, I would 
> double- and triple-check it from some other source), then in the end you 
> do end up having to have a per-device translation table, and it probably 
> shouldn't be in the kernel.

Joerg is correct about this.  I just went through the cdrecord sources
(from Fedora Core 5 with a DVD patch) and took a quick look at what
commands and mode pages were used by the different files.  I've
probably missed a few things, but this ought to give you and idea
about what is needed to burn a CD:

drv_philips.c -- Philips/Yamaha/Ricoh/Plasmon

    Commands:

    0xE2 -- Philips First Writeable Address
    0xE4 -- Philips Reserve Track
    0xE6 -- Philips Write Track
    0xE7 -- Philips Medium Load/Unload
    0xE9 -- Philips Fixation
    0xEC -- Philips Recover?
    0xEE -- Philips Read Session Info

    Mode pages:

    0x21 -- Philips Write Track Info?
    0x23 -- Philips speed select
    0x31 -- Yamaha speed select

scsi_mmc.c - MMC-3

    Commands:

    0x46 -- MMC Get Configuration

drv_7501.c -- Masushita CW-7501

    Commands:

    0x01 - Rezero Unit
    0xE2 -- Set Mode?
    0xE3 -- Fixate/Finalize
    0xE6 -- Write DAO
    0xE7 -- Reserve Track
    0xE9 -- Read Trackinfo

    Mode pages:

    0x20 -- Speed control
    0x21 -- MCN?
    0x22 -- ISRC
    0x23 -- Dummy / Write information
    0x24 -- CD-R Disk Information

scsi_cdr.c -- pre-MMC standard functions up to MMC-2

    Commands:
    
    0x00 -- Test Unit Ready
    0x01 -- Rezero Unit
    0x03 -- Request Sense
    0x04 -- Format Unit
    0x08 -- Read 6
    0x0B -- Seek 6
    0x0D -- Qic02 Sysgen SC4000?
    0x0a -- Write 6
    0x12 -- Inquiry
    0x15 -- Mode Select 10
    0x1B -- Start/Stop Unit
    0x1E -- Prevent/Allow Medium Removal
    0x1a -- Mode Sense 10
    0x25 -- Read Capacity
    0x28 -- Read 10
    0x2B -- Seek 10
    0x2a -- Write 10
    0x35 -- Flush Cache
    0x3B -- Write Buffer
    0x3C -- Read Buffer
    0x42 -- Read Subchannel
    0x43 -- Read TOC
    0x44 -- Read Header
    0x51 -- Read Disk Info
    0x52 -- Read Track Info
    0x53 -- Reserve Track
    0x54 -- Send OPC
    0x55 -- Mode Select 10
    0x59 -- Read Master Cue Sheet
    0x5A -- Mode Sense 10
    0x5B -- Close Track/Session
    0x5C -- Read Buffer Cap(acity?)
    0x5D -- Send Cue Sheet
    0xA1 -- Blank Unit
    0xA6 -- Medium Load/Unload
    0xAA -- Write XG5?
    0xAD -- Read DVD Structure
    0xB6 -- Set Streaming?
    0xBB -- Set CD Speed
    0xBF -- Send DVD Structure
    0xE5 -- Read Track Info Philips

    Except for 0x0D and the last bunch these commands are probably pretty
    generic for all CDROM drives.

drv_jvc.c -- JVR/TEAC

    Commands:

    0x2A -- Write 10
    0xB3 -- Set Limits
    0xC4 -- Read PMA
    0xC7 -- Read Disk Info
    0xE0 -- Buffer Inquiry
    0xE1 -- Write PMA
    0xE3 -- Freeze
    0xE4 -- Clear Subcode
    0xE6 -- Next Write Address
    0xEC -- Optimize Power
    0xEF -- Read Peak Buffer Capacity

    Commands 0xC1, 0xC3, 0xC6, 0xCE, 0xCF and 0xDF are also in the
    code but are never used.

    Mode Pages:

    0x00 -- Select Sector Size
    0x21 -- Dummy Selection
    0x31 -- Speed Selection

drv_mmc.c -- SCSI-3/mmc conforming drives

    Commands:

    0x3B -- Yamaha Write Buffer With Parameter
    0xBB -- Yamaha Force Speed
    0xE9 -- Plextor Drive Mode
    0xEB -- Plextor Get Speed List
    0xED -- Plextor Drive Mode 2
    0xF5 -- Plextor Read BPC

    Mode Pages:

    0x05 -- CD/DVD Write Parameters, Speed Select
    0x2A -- MMC mode page
    0x30 -- Ricoh Mode Page (burn-free and read speed control)
    0x31 -- Yamaha Tattoo Page

drv_sony.c -- Sony

    Commands:

    0xE0 -- Write Start
    0xE1 -- Write Continue
    0xE2 -- Discontinue
    0xEC -- Read Buffer Capacity
    0xF0 -- Close Track
    0xF1 -- Finalize
    0xF2 -- Flush
    0xF3 -- Reserve Track
    0xF5 -- Write Track
    0xF6 -- Recover
    0xF8 -- Set Write Parameter 

    Mode Pages:

    0x20 -- Mastering Information
    0x22 -- Disk Information
    0x23 -- Track Information
    0x31 -- Drive Speed

 /Christer

-- 
"Just how much can I get away with and still go to heaven?"

Freelance consultant specializing in device driver programming for Linux 
Christer Weinigel <christer@weinigel.se>  http://www.weinigel.se

  reply	other threads:[~2006-07-30 16:02 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-29  4:52 cd burning with plextor drives Dave Jones
2006-07-29 11:12 ` Jens Axboe
2006-07-29 13:40   ` James Bottomley
2006-07-29 15:39     ` Christer Weinigel
2006-07-29 17:06     ` Linus Torvalds
2006-07-29 17:30       ` James Bottomley
2006-07-29 17:49         ` Linus Torvalds
2006-07-30 16:02           ` Christer Weinigel [this message]
2006-07-30 19:57             ` Linus Torvalds
2006-07-30 20:18               ` Christian Iversen
2006-07-31  0:12               ` Christer Weinigel
2006-07-31 20:32                 ` Linus Torvalds
2006-07-31 20:38                   ` Dave Jones
2006-07-31 20:41                   ` Jens Axboe
2006-07-31 20:46                     ` Linus Torvalds
2006-08-01  6:54                       ` Jens Axboe
2006-07-29 18:39       ` Douglas Gilbert
2006-07-29 18:54         ` Linus Torvalds
2006-07-29 20:12           ` Douglas Gilbert
2006-07-29 20:33             ` Linus Torvalds
2006-07-29 20:53               ` Linus Torvalds
2006-07-29 22:13                 ` Arjan van de Ven
2006-07-30  5:57                   ` Matthew Wilcox
2006-07-30  9:38               ` Rogier Wolff
2006-07-30 18:02               ` Douglas Gilbert
2006-07-30 20:06                 ` Linus Torvalds
2006-07-29 21:40           ` Christer Weinigel
2006-07-30  5:56             ` Linus Torvalds
2006-07-29 17:04   ` Linus Torvalds
2006-07-29 17:22     ` Dave Jones
2006-07-30 10:21       ` Rogier Wolff
2006-07-30 10:31         ` Arjan van de Ven
2006-07-30 11:09         ` Steve McIntyre
2006-07-31  9:33       ` Jens Axboe
2006-07-31  9:32     ` Jens Axboe

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=m3y7ubqdwg.fsf@zoo.weinigel.se \
    --to=christer@weinigel.se \
    --cc=James.Bottomley@SteelEye.com \
    --cc=axboe@suse.de \
    --cc=davej@redhat.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox