lkml.org 
[lkml]   [2004]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subject[RFC] list of SCSI commands
    Hi,
    I think the filtering mechanism needs to be refined before we can do
    useful patches. I think it will be necessary to base filtering on
    scsi_type from struct sg_scsi_id (in sg.h and scsi.h). Otherwise it will
    be impossible to get functionality and safety for all devices.

    I have compiled a long list of various SCSI commands and tried to
    categorize them. This list is focused on mmc devices (CD-RW, DVD+R).
    Many commands that are only relevant for discs are not included.

    =UNCLEAR=
    MODE SELECT should be safe for mmc devices (sometimes even required).
    However, it often is *not* safe for other devices. This is a case,
    were filtering needs to honor device types.
    0x15 MODE_SELECT
    0x55 MODE_SELECT_10
    0x01 REZERO_UNIT

    Here is a conflict between different device types. MOVE_MEDIUM for
    changers; PLAY_AUDIO_12 for mmc. Are both cases safe for read?
    0xA5 MOVE_MEDIUM

    If I understand correctly, those commands can be used to initate
    transfers between two devices. If so, read/write access to a single
    device could be used to read/write all devices on the same bus.
    0x18 COPY
    0x39 COMPARE

    I haven't found further information on the following commands. Some are
    probably vendor specific. Annotations are from cdrecord.
    -> 0x0D /* qic02 Sysgen SC4000 */
    -> 0x59 /* Read master cue */
    -> 0xB3 GPMCD_SET_LIMITS_12
    -> 0xC1
    -> 0xC2 SC_SET_SUBCODE
    -> 0xC3
    -> 0xC4 SC_READ_PMA
    -> 0xC5
    -> 0xC6
    -> 0xC7 SC_READ_DISK_INFO
    -> 0xCE
    -> 0xCF
    -> 0xD4 /* Read audio command */
    -> 0xD8 /* read audio command */
    -> 0xDF
    -> 0xE0 SC_BUFFER_INQUIRY
    -> 0xE1 SC_WRITE_PMA
    -> 0xE2
    -> 0xE3 SC_FREEZE
    -> 0xE4 SC_CLEAR_SUBCODE
    -> 0xE5
    -> 0xE6 SC_NEXT_WR_ADDRESS
    -> 0xE7
    -> 0xE9
    -> 0xEB
    -> 0xEC SC_OPC_EXECUTE
    -> 0xED
    -> 0xEE /* Read session info */
    -> 0xEF SC_READ_PEAK_BUF_CAP
    -> 0xF0
    -> 0xF1
    -> 0xF2
    -> 0xF3
    -> 0xF5
    -> 0xF6
    -> 0xF8

    =READ=
    0x00 TEST_UNIT_READY
    0x03 REQUEST_SENSE
    0x08 READ_6
    0x0B SEEK_6
    0x12 INQUIRY
    0x1A MODE_SENSE
    0x23 GPCMD_READ_FORMAT_CAPACITIES
    0x25 GPCMD_READ_CDVD_CAPACITY
    0x28 READ_10
    0x2B SEEK_10
    0x2F GPCMD_VERIFY_10
    0x3C READ_BUFFER
    0x42 GPCMD_READ_SUBCHANNEL
    0x43 GPCMD_READ_TOC_PMA_ATIP
    0x44 GPCMD_READ_HEADER //not found in spec, _sounds_ safe
    0x45 GPCMD_PLAY_AUDIO_10
    0x46 GPCMD_GET_CONFIGURATION
    0x47 GPCMD_PLAY_AUDIO_MSF
    0x4A GPCMD_GET_EVENT_STATUS_NOTIFICATION
    0x4B GPCMD_PAUSE_RESUME
    0x4E GPCMD_STOP_PLAY_SCAN
    0x51 GPCMD_READ_DISC_INFO
    0x52 GPCMD_READ_TRACK_RZONE_INFO
    0x5A MODE_SENSE_10
    -> 0x5C GPCMD_READ_BUFFER_CAPACITY
    0x88 READ_16
    0xA3 GPCMD_SEND_KEY
    0xA4 GPCMD_REPORT_KEY
    0xA6 GPCMD_LOAD_UNLOAD
    0xA7 GPCMD_SET_READ_AHEAD
    0xA8 READ_12
    0xAC GPCMD_GET_PERFORMANCE
    0xAD GPCMD_READ_DVD_STRUCTURE
    0xB6 GPCMD_SET_STREAMING
    0xB9 GPCMD_READ_CD_MSF
    0xBA GPCMD_SCAN
    0xBB GPCMD_SET_SPEED
    0xBD GPCMD_MECHANISM_STATUS
    0xBE GPCMD_READ_CD

    =WRITE=
    0x04 FORMAT_UNIT // is this safe for disks?
    0x0A WRITE_6
    0x2A WRITE_10
    0x2E GPCMD_WRITE_AND_VERIFY_10
    0x35 GPCMD_FLUSH_CACHE
    0xAA WRITE_12
    0x8a WRITE_16
    0xA1 GPCMD_BLANK
    0x53 GPCMD_RESERVE_RZONE_TRACK
    0x54 GPCMD_SEND_OPC
    0x58 GPCMD_REPAIR_RZONE_TRACK
    0x5B GPCMD_CLOSE_TRACK
    0x1E GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL
    -> 0x5D GPCMD_SEND_CUE
    -> 0x2C GPCMD_ERASE
    -> 0xBF GPCMD_SEND_DVD_STRUCTURE

    =RAWIO=
    Some modes of WRITE_BUFFER are safe even for read, others
    overwrite firmware. Misdesign.
    0x3B WRITE_BUFFER

    0x07 REASSIGN_BLOCKS
    0x16 RESERVE
    0x17 RELEASE
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:05    [W:0.026 / U:62.196 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site