172c59e2dSPeter Dufault# SCSI mode page data base. 272c59e2dSPeter Dufault 372c59e2dSPeter Dufault# Copyright (c) 1995 HD Associates 4a1d80830SJoerg Wunsch# Copyright (c) 2001 The FreeBSD Project 572c59e2dSPeter Dufault# (contact: dufault@hda.com) 672c59e2dSPeter Dufault# All rights reserved. 772c59e2dSPeter Dufault# 872c59e2dSPeter Dufault# Redistribution and use in source and binary forms, with or without 972c59e2dSPeter Dufault# modification, are permitted provided that the following conditions 1072c59e2dSPeter Dufault# are met: 1172c59e2dSPeter Dufault# 1. Redistributions of source code must retain the above copyright 1272c59e2dSPeter Dufault# notice, this list of conditions and the following disclaimer. 1372c59e2dSPeter Dufault# 2. Redistributions in binary form must reproduce the above copyright 1472c59e2dSPeter Dufault# notice, this list of conditions and the following disclaimer in the 1572c59e2dSPeter Dufault# documentation and/or other materials provided with the distribution. 1672c59e2dSPeter Dufault# 3. The name of HD Associates 1772c59e2dSPeter Dufault# may not be used to endorse or promote products derived from this software 1872c59e2dSPeter Dufault# without specific prior written permission. 1972c59e2dSPeter Dufault# 2072c59e2dSPeter Dufault# THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES ``AS IS'' AND 2172c59e2dSPeter Dufault# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2272c59e2dSPeter Dufault# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2372c59e2dSPeter Dufault# ARE DISCLAIMED. IN NO EVENT SHALL HD ASSOCIATES BE LIABLE 2472c59e2dSPeter Dufault# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2572c59e2dSPeter Dufault# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2672c59e2dSPeter Dufault# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2772c59e2dSPeter Dufault# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2872c59e2dSPeter Dufault# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2972c59e2dSPeter Dufault# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3072c59e2dSPeter Dufault# SUCH DAMAGE. 317e32b20dSKelly Yancey# 327e32b20dSKelly Yancey# $FreeBSD$ 337e32b20dSKelly Yancey# 3472c59e2dSPeter Dufault# The ordering is alphabetical by page name, as it appears in the SCSI spec. 3572c59e2dSPeter Dufault 3614a78063SMatt Jacob# 'i' is a byte-sized integral types, followed by a field width of 3714a78063SMatt Jacob# 1 through 4 (1 to 4 bytes). 3814a78063SMatt Jacob# 3914a78063SMatt Jacob# 'b' is a bit-sized integral type 4014a78063SMatt Jacob# 't' is a bitfield type- followed by a bit field width 4114a78063SMatt Jacob# 4214a78063SMatt Jacob# 'c' values are character arrays 4314a78063SMatt Jacob# 'z' values are null-padded strings 4414a78063SMatt Jacob# 4514a78063SMatt Jacob# 4614a78063SMatt Jacob# '*' suppresses assignment (for 'seeking'). 4714a78063SMatt Jacob# Bitfields are MSB to LSB. 4814a78063SMatt Jacob 4914a78063SMatt Jacob 5072c59e2dSPeter Dufault# ALL DEVICE TYPES 5172c59e2dSPeter Dufault 527e32b20dSKelly Yancey0x0a "Control Mode Page" { 53*1cc052e8SKenneth D. Merry {TST} t3 54*1cc052e8SKenneth D. Merry {TMF_ONLY} t1 55*1cc052e8SKenneth D. Merry {DPICZ} t1 56*1cc052e8SKenneth D. Merry {D_SENSE} t1 57*1cc052e8SKenneth D. Merry {GLTSD} t1 58314a2585SPeter Dufault {RLEC} t1 59314a2585SPeter Dufault {Queue Algorithm Modifier} t4 60*1cc052e8SKenneth D. Merry {NUAR} t1 61*1cc052e8SKenneth D. Merry {QErr} t2 62314a2585SPeter Dufault {DQue} t1 63314a2585SPeter Dufault {EECA} t1 64*1cc052e8SKenneth D. Merry {RAC} t1 65*1cc052e8SKenneth D. Merry {UA_INTLCK_CTRL} t2 66*1cc052e8SKenneth D. Merry {SWP} t1 67314a2585SPeter Dufault {RAENP} t1 68314a2585SPeter Dufault {UAAENP} t1 69314a2585SPeter Dufault {EAENP} t1 70*1cc052e8SKenneth D. Merry {ATO} t1 71*1cc052e8SKenneth D. Merry {TAS} t1 72*1cc052e8SKenneth D. Merry {ATMPE} t1 73*1cc052e8SKenneth D. Merry {RWWP} t1 74*1cc052e8SKenneth D. Merry {Reserved} *t1 75*1cc052e8SKenneth D. Merry {Autoload Mode} t3 7672c59e2dSPeter Dufault {Ready AEN Holdoff Period} i2 77*1cc052e8SKenneth D. Merry {Busy Timeout Period} i2 78*1cc052e8SKenneth D. Merry {Extended Self-Test Completion Time} i2 7972c59e2dSPeter Dufault} 8072c59e2dSPeter Dufault 817e32b20dSKelly Yancey0x02 "Disconnect-Reconnect Page" { 8272c59e2dSPeter Dufault {Buffer Full Ratio} i1 8372c59e2dSPeter Dufault {Buffer Empty Ratio} i1 8472c59e2dSPeter Dufault {Bus Inactivity Limit} i2 8572c59e2dSPeter Dufault {Disconnect Time Limit} i2 8672c59e2dSPeter Dufault {Connect Time Limit} i2 8772c59e2dSPeter Dufault {Maximum Burst Size} i2 88314a2585SPeter Dufault {Reserved} *t6 89314a2585SPeter Dufault {DTDC} t2 9072c59e2dSPeter Dufault {Reserved} *i1 9172c59e2dSPeter Dufault {Reserved} *i1 9272c59e2dSPeter Dufault {Reserved} *i1 9372c59e2dSPeter Dufault} 9472c59e2dSPeter Dufault 957e32b20dSKelly Yancey0x09 "Peripheral Device Page" { 9672c59e2dSPeter Dufault {Interface Identifier} i2 9772c59e2dSPeter Dufault {Reserved} *i1 9872c59e2dSPeter Dufault {Reserved} *i1 9972c59e2dSPeter Dufault {Reserved} *i1 10072c59e2dSPeter Dufault {Reserved} *i1 10172c59e2dSPeter Dufault} 10272c59e2dSPeter Dufault 103a1d80830SJoerg Wunsch0x1a "Power Control" { 104a1d80830SJoerg Wunsch {Reserved} *i1 105a1d80830SJoerg Wunsch {Reserved} *t6 106a1d80830SJoerg Wunsch {Idle} t1 107a1d80830SJoerg Wunsch {Standby} t1 108a1d80830SJoerg Wunsch {Idle Condition Timer} i4 109a1d80830SJoerg Wunsch {Standby Condition Timer} i4 110a1d80830SJoerg Wunsch} 11172c59e2dSPeter Dufault 11272c59e2dSPeter Dufault# DIRECT ACCESS DEVICES 1137e32b20dSKelly Yancey0x08 "Caching Page" { 1140ee6e540STor Egge {IC} t1 1150ee6e540STor Egge {ABPF} t1 1160ee6e540STor Egge {CAP} t1 1170ee6e540STor Egge {DISC} t1 1180ee6e540STor Egge {SIZE} t1 119314a2585SPeter Dufault {WCE} t1 120314a2585SPeter Dufault {MF} t1 121314a2585SPeter Dufault {RCD} t1 122314a2585SPeter Dufault {Demand Retention Priority} t4 123314a2585SPeter Dufault {Write Retention Priority} t4 12472c59e2dSPeter Dufault {Disable Pre-fetch Transfer Length} i2 125e2fbcabdSMike Pritchard {Minimum Pre-fetch} i2 12672c59e2dSPeter Dufault {Maximum Pre-fetch} i2 12772c59e2dSPeter Dufault {Maximum Pre-fetch Ceiling} i2 12872c59e2dSPeter Dufault} 12972c59e2dSPeter Dufault 1307e32b20dSKelly Yancey0x05 "Flexible Disk Page" { 13172c59e2dSPeter Dufault {Transfer rate} i2 13272c59e2dSPeter Dufault {Number of heads} i1 13372c59e2dSPeter Dufault {Sectors per track} i1 13472c59e2dSPeter Dufault {Data bytes per sector} i2 13572c59e2dSPeter Dufault {Number of cylinders} i2 13672c59e2dSPeter Dufault {Starting cylinder-write precompensation} i2 13772c59e2dSPeter Dufault {Starting cylinder-reduced write current} i2 13872c59e2dSPeter Dufault {Drive step rate} i2 13972c59e2dSPeter Dufault {Drive step pulse width} i1 14072c59e2dSPeter Dufault {Head settle delay} i2 14172c59e2dSPeter Dufault {Motor on delay} i1 14272c59e2dSPeter Dufault {Motor off delay} i1 143314a2585SPeter Dufault {TRDY} t1 144314a2585SPeter Dufault {SSN} t1 145314a2585SPeter Dufault {MO} t1 146314a2585SPeter Dufault {Reserved} *t5 147314a2585SPeter Dufault {Reserved} *t4 148314a2585SPeter Dufault {SPC} t4 14972c59e2dSPeter Dufault {Write Compensation} i1 15072c59e2dSPeter Dufault {Head load delay} i1 15172c59e2dSPeter Dufault {Head unload delay} i1 152314a2585SPeter Dufault {Pin 34} t4 153314a2585SPeter Dufault {Pin 2} t4 154314a2585SPeter Dufault {Pin 4} t4 155314a2585SPeter Dufault {Pin 1} t4 15672c59e2dSPeter Dufault {Medium rotation rate} i2 15772c59e2dSPeter Dufault {Reserved} *i1 15872c59e2dSPeter Dufault {Reserved} *i1 15972c59e2dSPeter Dufault} 16072c59e2dSPeter Dufault 1617e32b20dSKelly Yancey0x03 "Format Device Page" { 16272c59e2dSPeter Dufault {Tracks per Zone} i2 16372c59e2dSPeter Dufault {Alternate Sectors per Zone} i2 16472c59e2dSPeter Dufault {Alternate Tracks per Zone} i2 16572c59e2dSPeter Dufault {Alternate Tracks per Logical Unit} i2 16672c59e2dSPeter Dufault {Sectors per Track} i2 16772c59e2dSPeter Dufault {Data Bytes per Physical Sector} i2 16872c59e2dSPeter Dufault {Interleave} i2 16972c59e2dSPeter Dufault {Track Skew Factor} i2 17072c59e2dSPeter Dufault {Cylinder Skew Factor} i2 171314a2585SPeter Dufault {SSEC} t1 172314a2585SPeter Dufault {HSEC} t1 173314a2585SPeter Dufault {RMB} t1 174314a2585SPeter Dufault {SURF} t1 175314a2585SPeter Dufault {Reserved} *t4 17672c59e2dSPeter Dufault} 17772c59e2dSPeter Dufault 1787e32b20dSKelly Yancey0x0b "Medium Types Supported Page" { 17972c59e2dSPeter Dufault {Reserved} *i1 18072c59e2dSPeter Dufault {Reserved} *i1 18172c59e2dSPeter Dufault {Medium type one supported} i1 18272c59e2dSPeter Dufault {Medium type two supported} i1 18372c59e2dSPeter Dufault {Medium type three supported} i1 18472c59e2dSPeter Dufault {Medium type four supported} i1 18572c59e2dSPeter Dufault} 18672c59e2dSPeter Dufault 18772c59e2dSPeter Dufault# Notch page (0x0c) 1887e32b20dSKelly Yancey0x0c "Notch and Partition Page"; 18972c59e2dSPeter Dufault 1907e32b20dSKelly Yancey0x01 "Read-Write Error Recovery Page" { 191314a2585SPeter Dufault {AWRE (Auto Write Reallocation Enbld)} t1 192314a2585SPeter Dufault {ARRE (Auto Read Reallocation Enbld)} t1 193314a2585SPeter Dufault {TB (Transfer Block)} t1 194314a2585SPeter Dufault {RC (Read Continuous)} t1 195314a2585SPeter Dufault {EER (Enable Early Recovery)} t1 196314a2585SPeter Dufault {PER (Post Error)} t1 197314a2585SPeter Dufault {DTE (Disable Transfer on Error)} t1 198314a2585SPeter Dufault {DCR (Disable Correction)} t1 19972c59e2dSPeter Dufault {Read Retry Count} i1 20072c59e2dSPeter Dufault {Correction Span} i1 20172c59e2dSPeter Dufault {Head Offset Count} i1 20272c59e2dSPeter Dufault {Data Strobe Offset Count} i1 20372c59e2dSPeter Dufault {Reserved} *i1 20472c59e2dSPeter Dufault {Write Retry Count} i1 20572c59e2dSPeter Dufault {Reserved} *i1 20672c59e2dSPeter Dufault {Recovery Time Limit} i2 20772c59e2dSPeter Dufault} 20872c59e2dSPeter Dufault 2097e32b20dSKelly Yancey0x04 "Rigid Disk Drive Geometry Page" { 21072c59e2dSPeter Dufault {Number of Cylinders} i3 21172c59e2dSPeter Dufault {Number of Heads} i1 21272c59e2dSPeter Dufault {Starting Cylinder-Write Precompensation} i3 21372c59e2dSPeter Dufault {Starting Cylinder-Reduced Write Current} i3 21472c59e2dSPeter Dufault {Drive Step Rate} i2 21572c59e2dSPeter Dufault {Landing Zone Cylinder} i3 216314a2585SPeter Dufault {Reserved} *t6 217314a2585SPeter Dufault {RPL} t2 21872c59e2dSPeter Dufault {Rotational Offset} i1 21972c59e2dSPeter Dufault {Reserved} *i1 22072c59e2dSPeter Dufault {Medium Rotation Rate} i2 22172c59e2dSPeter Dufault {Reserved} *i1 22272c59e2dSPeter Dufault {Reserved} *i1 22372c59e2dSPeter Dufault} 22472c59e2dSPeter Dufault 2257e32b20dSKelly Yancey0x07 "Verify Error Recovery Page" { 226314a2585SPeter Dufault {Reserved} *t4 227314a2585SPeter Dufault {EER} t1 228314a2585SPeter Dufault {PER} t1 229314a2585SPeter Dufault {DTE} t1 230314a2585SPeter Dufault {DCR} t1 23172c59e2dSPeter Dufault {Verify Retry Count} i1 23272c59e2dSPeter Dufault {Verify Correction Span} i1 23372c59e2dSPeter Dufault {Reserved} *i1 23472c59e2dSPeter Dufault {Reserved} *i1 23572c59e2dSPeter Dufault {Reserved} *i1 23672c59e2dSPeter Dufault {Reserved} *i1 23772c59e2dSPeter Dufault {Reserved} *i1 23872c59e2dSPeter Dufault {Verify Recovery Time Limit} i2 23972c59e2dSPeter Dufault} 240647d6579SJoerg Wunsch 2417e32b20dSKelly Yancey0x0E "CD-ROM Audio Control Parameters Page" { 242647d6579SJoerg Wunsch {Reserved} *t5 243647d6579SJoerg Wunsch {Immed} t1 244647d6579SJoerg Wunsch {SOTC} t1 245647d6579SJoerg Wunsch {Reserved} *t1 246647d6579SJoerg Wunsch {Reserved} *i2 247647d6579SJoerg Wunsch {APRVal} t1 248647d6579SJoerg Wunsch {Reserved} *t3 249647d6579SJoerg Wunsch {Format of LBAs / sec.} t4 250647d6579SJoerg Wunsch {Logical Blocks per Second of Audio Playback} i2 251647d6579SJoerg Wunsch {Reserved} *t4 252647d6579SJoerg Wunsch {Output Port 0 Channel Selection} t4 253647d6579SJoerg Wunsch {Output Port 0 Volume} i1 254647d6579SJoerg Wunsch {Reserved} *t4 255647d6579SJoerg Wunsch {Output Port 1 Channel Selection} t4 256647d6579SJoerg Wunsch {Output Port 1 Volume} i1 257647d6579SJoerg Wunsch {Reserved} *t4 258647d6579SJoerg Wunsch {Output Port 2 Channel Selection} t4 259647d6579SJoerg Wunsch {Output Port 2 Volume} i1 260647d6579SJoerg Wunsch {Reserved} *t4 261647d6579SJoerg Wunsch {Output Port 3 Channel Selection} t4 262647d6579SJoerg Wunsch {Output Port 3 Volume} i1 263647d6579SJoerg Wunsch} 264459cd7dcSJoerg Wunsch 26514a78063SMatt Jacob# SEQUENTIAL ACCESS DEVICES 26614a78063SMatt Jacob0x10 "Device Configuration Page" { 267459cd7dcSJoerg Wunsch {Reserved} *t1 268459cd7dcSJoerg Wunsch {Change Active Partition} t1 269459cd7dcSJoerg Wunsch {Change Active Format} t1 270459cd7dcSJoerg Wunsch {Active Format} t5 271459cd7dcSJoerg Wunsch {Active Partition} i1 272459cd7dcSJoerg Wunsch {Write Buffer Full Ratio} i1 273459cd7dcSJoerg Wunsch {Write Buffer Empty Ratio} i1 274459cd7dcSJoerg Wunsch {Write Delay Time} i2 275459cd7dcSJoerg Wunsch {Data Buffer Recovery} t1 276459cd7dcSJoerg Wunsch {Block Identifiers Support} t1 277459cd7dcSJoerg Wunsch {Report Setmarks} t1 2787e32b20dSKelly Yancey {Automatic Velocity Control} t1 279459cd7dcSJoerg Wunsch {Stop on Consecutive Filemarks} t2 280459cd7dcSJoerg Wunsch {Recover Buffer Order} t1 281459cd7dcSJoerg Wunsch {Report Early-Warning} t1 282459cd7dcSJoerg Wunsch {Gap Size} i1 283459cd7dcSJoerg Wunsch {EOD Defined} t3 284459cd7dcSJoerg Wunsch {Enable EOD Generation} t1 285459cd7dcSJoerg Wunsch {Synchronize at Early-Warning} t1 286459cd7dcSJoerg Wunsch {Reserved} *t3 287459cd7dcSJoerg Wunsch {Buffer Size at Early-Warning} i3 288459cd7dcSJoerg Wunsch {Select Data Compression Algorithm} i1 28914a78063SMatt Jacob {Reserved} *t5 29014a78063SMatt Jacob {SCSI-3 Associated Write Protect} t1 29114a78063SMatt Jacob {SCSI-3 Persistent Write Protect} t1 29214a78063SMatt Jacob {SCSI-3 Permanent Write Protect} t1 29314a78063SMatt Jacob} 29414a78063SMatt Jacob 29514a78063SMatt Jacob0x0f "Data Compression Page" { 29614a78063SMatt Jacob {Data Compression Enabled} t1 29714a78063SMatt Jacob {Date Compression Capable} t1 29814a78063SMatt Jacob {Reserved} *t6 29914a78063SMatt Jacob {Data Decompression Capable} t1 30014a78063SMatt Jacob {Data Decompression Report on Exception} t2 30114a78063SMatt Jacob {Reserved} *t5 30214a78063SMatt Jacob {Compression Algorithm} i4 30314a78063SMatt Jacob {Decompression Algorithm} i4 30414a78063SMatt Jacob {Reserved} *i4 305459cd7dcSJoerg Wunsch} 3067e32b20dSKelly Yancey 307e023b6f9SBruce M Simpson# Removable devices 308e023b6f9SBruce M Simpson0x1b "Removable Block Access Capacities Page" { 309e023b6f9SBruce M Simpson {System Floppy Type Device} t1 310e023b6f9SBruce M Simpson {Supports Reporting Format Progress} t1 311e023b6f9SBruce M Simpson {Reserved} *t6 312e023b6f9SBruce M Simpson {Non CD Optical Device} t1 313e023b6f9SBruce M Simpson {Single or Multiple LUN Supported} t1 314e023b6f9SBruce M Simpson {Reserved} *t3 315e023b6f9SBruce M Simpson {Total Logical Units Supported} t3 316e023b6f9SBruce M Simpson {Reserved} *i8 317e023b6f9SBruce M Simpson} 318e023b6f9SBruce M Simpson 31955626753SJoerg Wunsch# CD-ROM (and CD-R[W]) devices 32055626753SJoerg Wunsch0x2a "CD capabilities and mechanical status page" { 32155626753SJoerg Wunsch {Reserved} *t4 32255626753SJoerg Wunsch {Method 2} t1 32355626753SJoerg Wunsch {CD-RW Read} t1 32455626753SJoerg Wunsch {CD-R Read} t1 32555626753SJoerg Wunsch {Reserved} *t4 32655626753SJoerg Wunsch {Test Write} t1 32755626753SJoerg Wunsch {CD-RW Write} t1 32855626753SJoerg Wunsch {CD-R Write} t1 32955626753SJoerg Wunsch {Reserved} *t1 33055626753SJoerg Wunsch {Multi Session} t1 33155626753SJoerg Wunsch {Mode 2 Form 2} t1 33255626753SJoerg Wunsch {Mode 2 Form 1} t1 33355626753SJoerg Wunsch {Digital Port (2)} t1 33455626753SJoerg Wunsch {Digital Port (1)} t1 33555626753SJoerg Wunsch {Composite} t1 33655626753SJoerg Wunsch {Audio Play} t1 33755626753SJoerg Wunsch {Read Bar Code} t1 33855626753SJoerg Wunsch {UPC} t1 33955626753SJoerg Wunsch {ISRC} t1 34055626753SJoerg Wunsch {C2 Pointers are supported} t1 34155626753SJoerg Wunsch {R-W De-interleaved & corrected} t1 34255626753SJoerg Wunsch {R-W Supported} t1 34355626753SJoerg Wunsch {CD-DA Stream is Accurate} t1 34455626753SJoerg Wunsch {CD-DA Commands Supported} t1 34555626753SJoerg Wunsch {Loading Mechanism Type} t3 34655626753SJoerg Wunsch {Reserved} *t1 34755626753SJoerg Wunsch {Eject} t1 34855626753SJoerg Wunsch {Prevent Jumper} t1 34955626753SJoerg Wunsch {Lock State} t1 35055626753SJoerg Wunsch {Lock} t1 35155626753SJoerg Wunsch {Reserved} *t4 35255626753SJoerg Wunsch {S/W Slot Selection} t1 35355626753SJoerg Wunsch {Changer Supports Disc Present reporting} t1 35455626753SJoerg Wunsch {Separate Channel Mute Supported} t1 35555626753SJoerg Wunsch {Separate volume levels per channel} t1 35655626753SJoerg Wunsch {Maximum Read Speed Supported (kBps)} i2 35755626753SJoerg Wunsch {Number of Volume Leves Supported} i2 35855626753SJoerg Wunsch {Buffer Size supported by Drive (KB)} i2 35955626753SJoerg Wunsch {Current Read Speed Selected (kBps)} i2 36055626753SJoerg Wunsch {Reserved} *i1 36155626753SJoerg Wunsch {Reserved} *t2 36255626753SJoerg Wunsch {Length} t2 36355626753SJoerg Wunsch {LSBF} t1 36455626753SJoerg Wunsch {RCK} t1 36555626753SJoerg Wunsch {BCK} t1 36655626753SJoerg Wunsch {Reserved} *t1 36755626753SJoerg Wunsch {Maximum Write Speed Supported (kBps)} i2 36855626753SJoerg Wunsch {Current Write Speed Supported (kBps)} i2 36955626753SJoerg Wunsch}; 37055626753SJoerg Wunsch 3717e32b20dSKelly Yancey0x00 "Vendor-Specific"; 372