18146Sdufault# SCSI mode page data base.
28146Sdufault
38146Sdufault# Copyright (c) 1995 HD Associates
476999Sjoerg# Copyright (c) 2001 The FreeBSD Project
58146Sdufault# (contact: dufault@hda.com)
68146Sdufault# All rights reserved.
78146Sdufault# 
88146Sdufault# Redistribution and use in source and binary forms, with or without
98146Sdufault# modification, are permitted provided that the following conditions
108146Sdufault# are met:
118146Sdufault# 1. Redistributions of source code must retain the above copyright
128146Sdufault#    notice, this list of conditions and the following disclaimer.
138146Sdufault# 2. Redistributions in binary form must reproduce the above copyright
148146Sdufault#    notice, this list of conditions and the following disclaimer in the
158146Sdufault#    documentation and/or other materials provided with the distribution.
168146Sdufault# 3. The name of HD Associates
178146Sdufault#    may not be used to endorse or promote products derived from this software
188146Sdufault#    without specific prior written permission.
198146Sdufault# 
208146Sdufault# THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES ``AS IS'' AND
218146Sdufault# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
228146Sdufault# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
238146Sdufault# ARE DISCLAIMED.  IN NO EVENT SHALL HD ASSOCIATES BE LIABLE
248146Sdufault# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
258146Sdufault# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
268146Sdufault# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
278146Sdufault# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
288146Sdufault# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
298146Sdufault# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
308146Sdufault# SUCH DAMAGE.
3164382Skbyanc#
3264382Skbyanc# $FreeBSD$
3364382Skbyanc#
348146Sdufault# The ordering is alphabetical by page name, as it appears in the SCSI spec.
358146Sdufault
3667817Smjacob# 'i' is a byte-sized integral types, followed by a field width of 
3767817Smjacob#  1 through 4 (1 to 4 bytes).
3867817Smjacob#
3967817Smjacob# 'b' is a bit-sized integral type
4067817Smjacob# 't' is a bitfield type- followed by a bit field width
4167817Smjacob#
4267817Smjacob# 'c' values are character arrays
4367817Smjacob# 'z' values are null-padded strings
4467817Smjacob#
4567817Smjacob#
4667817Smjacob# '*' suppresses assignment (for 'seeking').
4767817Smjacob# Bitfields are MSB to LSB.
4867817Smjacob
4967817Smjacob
508146Sdufault# ALL DEVICE TYPES
518146Sdufault
5264382Skbyanc0x0a "Control Mode Page" {
53225950Sken	{TST} t3
54225950Sken	{TMF_ONLY} t1
55225950Sken	{DPICZ} t1
56225950Sken	{D_SENSE} t1
57225950Sken	{GLTSD} t1
588299Sdufault	{RLEC} t1
598299Sdufault	{Queue Algorithm Modifier} t4
60225950Sken	{NUAR} t1
61225950Sken	{QErr} t2
628299Sdufault	{DQue} t1
638299Sdufault	{EECA} t1
64225950Sken	{RAC} t1
65225950Sken	{UA_INTLCK_CTRL} t2
66225950Sken	{SWP} t1
678299Sdufault	{RAENP} t1
688299Sdufault	{UAAENP} t1
698299Sdufault	{EAENP} t1
70225950Sken	{ATO} t1
71225950Sken	{TAS} t1
72225950Sken	{ATMPE} t1
73225950Sken	{RWWP} t1
74225950Sken	{Reserved} *t1
75225950Sken	{Autoload Mode} t3
768146Sdufault	{Ready AEN Holdoff Period} i2
77225950Sken	{Busy Timeout Period} i2
78225950Sken	{Extended Self-Test Completion Time} i2
798146Sdufault}
808146Sdufault
8164382Skbyanc0x02 "Disconnect-Reconnect Page" {
828146Sdufault	{Buffer Full Ratio} i1
838146Sdufault	{Buffer Empty Ratio} i1
848146Sdufault	{Bus Inactivity Limit} i2
858146Sdufault	{Disconnect Time Limit} i2
868146Sdufault	{Connect Time Limit} i2
878146Sdufault	{Maximum Burst Size} i2
888299Sdufault	{Reserved} *t6
898299Sdufault	{DTDC} t2
908146Sdufault	{Reserved} *i1
918146Sdufault	{Reserved} *i1
928146Sdufault	{Reserved} *i1
938146Sdufault}
948146Sdufault
95234376Smav0x15 "Extended Page";
96234376Smav
97234376Smav0x16 "Extended Device-Type Specific Page";
98234376Smav
99234376Smav0x1c "Informational Exceptions Control Page" {
100234376Smav	{PERF} t1
101234376Smav	{Reserved} *t1
102234376Smav	{EBF} t1
103234376Smav	{EWasc} t1
104234376Smav	{DExcpt} t1
105234376Smav	{TEST} t1
106234376Smav	{EBACKERR} t1
107234376Smav	{LogErr} t1
108234376Smav	{Reserved} *t4
109234376Smav	{MRIE} b4
110234376Smav	{Interval Timer} i4
111234376Smav	{Report Count} i4
112234376Smav}
113234376Smav
11464382Skbyanc0x09 "Peripheral Device Page" {
1158146Sdufault	{Interface Identifier} i2
1168146Sdufault	{Reserved} *i1
1178146Sdufault	{Reserved} *i1
1188146Sdufault	{Reserved} *i1
1198146Sdufault	{Reserved} *i1
1208146Sdufault}
1218146Sdufault
122234376Smav0x1a "Power Condition Page" {
12376999Sjoerg	{Reserved} *i1
12476999Sjoerg	{Reserved} *t6
12576999Sjoerg	{Idle} t1
12676999Sjoerg	{Standby} t1
12776999Sjoerg	{Idle Condition Timer} i4
12876999Sjoerg	{Standby Condition Timer} i4
12976999Sjoerg}
1308146Sdufault
131234376Smav0x18 "Protocol-Specific LUN Page";
132234376Smav
133234376Smav0x19 "Protocol-Specific Port Page";
134234376Smav
1358146Sdufault# DIRECT ACCESS DEVICES
13664382Skbyanc0x08 "Caching Page" {
13731562Stegge	{IC} t1
13831562Stegge	{ABPF} t1
13931562Stegge	{CAP} t1
14031562Stegge	{DISC} t1
14131562Stegge	{SIZE} t1
1428299Sdufault	{WCE} t1
1438299Sdufault	{MF} t1
1448299Sdufault	{RCD} t1
1458299Sdufault	{Demand Retention Priority} t4
1468299Sdufault	{Write Retention Priority} t4
1478146Sdufault	{Disable Pre-fetch Transfer Length} i2
14817766Smpp	{Minimum Pre-fetch} i2
1498146Sdufault	{Maximum Pre-fetch} i2
1508146Sdufault	{Maximum Pre-fetch Ceiling} i2
1518146Sdufault}
1528146Sdufault
15364382Skbyanc0x05 "Flexible Disk Page" {
1548146Sdufault	{Transfer rate} i2
1558146Sdufault	{Number of heads} i1
1568146Sdufault	{Sectors per track} i1
1578146Sdufault	{Data bytes per sector} i2
1588146Sdufault	{Number of cylinders} i2
1598146Sdufault	{Starting cylinder-write precompensation} i2
1608146Sdufault	{Starting cylinder-reduced write current} i2
1618146Sdufault	{Drive step rate} i2
1628146Sdufault	{Drive step pulse width} i1
1638146Sdufault	{Head settle delay} i2
1648146Sdufault	{Motor on delay} i1
1658146Sdufault	{Motor off delay} i1
1668299Sdufault	{TRDY} t1
1678299Sdufault	{SSN} t1
1688299Sdufault	{MO} t1
1698299Sdufault	{Reserved} *t5
1708299Sdufault	{Reserved} *t4
1718299Sdufault	{SPC} t4
1728146Sdufault	{Write Compensation} i1
1738146Sdufault	{Head load delay} i1
1748146Sdufault	{Head unload delay} i1
1758299Sdufault	{Pin 34} t4
1768299Sdufault	{Pin 2} t4
1778299Sdufault	{Pin 4} t4
1788299Sdufault	{Pin 1} t4
1798146Sdufault	{Medium rotation rate} i2
1808146Sdufault	{Reserved} *i1
1818146Sdufault	{Reserved} *i1
1828146Sdufault}
1838146Sdufault
18464382Skbyanc0x03 "Format Device Page" {
1858146Sdufault	{Tracks per Zone} i2
1868146Sdufault	{Alternate Sectors per Zone} i2
1878146Sdufault	{Alternate Tracks per Zone} i2
1888146Sdufault	{Alternate Tracks per Logical Unit} i2
1898146Sdufault	{Sectors per Track} i2
1908146Sdufault	{Data Bytes per Physical Sector} i2
1918146Sdufault	{Interleave} i2
1928146Sdufault	{Track Skew Factor} i2
1938146Sdufault	{Cylinder Skew Factor} i2
1948299Sdufault	{SSEC} t1
1958299Sdufault	{HSEC} t1
1968299Sdufault	{RMB} t1
1978299Sdufault	{SURF} t1
1988299Sdufault	{Reserved} *t4
1998146Sdufault}
2008146Sdufault
20164382Skbyanc0x0b "Medium Types Supported Page" {
2028146Sdufault	{Reserved} *i1
2038146Sdufault	{Reserved} *i1
2048146Sdufault	{Medium type one supported} i1
2058146Sdufault	{Medium type two supported} i1
2068146Sdufault	{Medium type three supported} i1
2078146Sdufault	{Medium type four supported} i1
2088146Sdufault}
2098146Sdufault
2108146Sdufault# Notch page (0x0c)
21164382Skbyanc0x0c "Notch and Partition Page";
2128146Sdufault
21364382Skbyanc0x01 "Read-Write Error Recovery Page" {
2148299Sdufault	{AWRE (Auto Write Reallocation Enbld)} t1
2158299Sdufault	{ARRE (Auto Read Reallocation Enbld)} t1
2168299Sdufault	{TB (Transfer Block)} t1
2178299Sdufault	{RC (Read Continuous)} t1
2188299Sdufault	{EER (Enable Early Recovery)} t1
2198299Sdufault	{PER (Post Error)} t1
2208299Sdufault	{DTE (Disable Transfer on Error)} t1
2218299Sdufault	{DCR (Disable Correction)} t1
2228146Sdufault	{Read Retry Count} i1
2238146Sdufault	{Correction Span} i1
2248146Sdufault	{Head Offset Count} i1
2258146Sdufault	{Data Strobe Offset Count} i1
2268146Sdufault	{Reserved} *i1
2278146Sdufault	{Write Retry Count} i1
2288146Sdufault	{Reserved} *i1
2298146Sdufault	{Recovery Time Limit} i2
2308146Sdufault}
2318146Sdufault
23264382Skbyanc0x04 "Rigid Disk Drive Geometry Page" {
2338146Sdufault	{Number of Cylinders} i3
2348146Sdufault	{Number of Heads} i1
2358146Sdufault	{Starting Cylinder-Write Precompensation} i3
2368146Sdufault	{Starting Cylinder-Reduced Write Current} i3
2378146Sdufault	{Drive Step Rate} i2
2388146Sdufault	{Landing Zone Cylinder} i3
2398299Sdufault	{Reserved} *t6
2408299Sdufault	{RPL} t2
2418146Sdufault	{Rotational Offset} i1
2428146Sdufault	{Reserved} *i1
2438146Sdufault	{Medium Rotation Rate} i2
2448146Sdufault	{Reserved} *i1
2458146Sdufault	{Reserved} *i1
2468146Sdufault}
2478146Sdufault
24864382Skbyanc0x07 "Verify Error Recovery Page" {
2498299Sdufault	{Reserved} *t4
2508299Sdufault	{EER} t1
2518299Sdufault	{PER} t1
2528299Sdufault	{DTE} t1
2538299Sdufault	{DCR} t1
2548146Sdufault	{Verify Retry Count} i1
2558146Sdufault	{Verify Correction Span} i1
2568146Sdufault	{Reserved} *i1
2578146Sdufault	{Reserved} *i1
2588146Sdufault	{Reserved} *i1
2598146Sdufault	{Reserved} *i1
2608146Sdufault	{Reserved} *i1
2618146Sdufault	{Verify Recovery Time Limit} i2
2628146Sdufault}
26313077Sjoerg
26464382Skbyanc0x0E "CD-ROM Audio Control Parameters Page" {
26513077Sjoerg	{Reserved} *t5
26613077Sjoerg	{Immed} t1
26713077Sjoerg	{SOTC} t1
26813077Sjoerg	{Reserved} *t1
26913077Sjoerg	{Reserved} *i2
27013077Sjoerg	{APRVal} t1
27113077Sjoerg	{Reserved} *t3
27213077Sjoerg	{Format of LBAs / sec.} t4
27313077Sjoerg	{Logical Blocks per Second of Audio Playback} i2
27413077Sjoerg	{Reserved} *t4
27513077Sjoerg	{Output Port 0 Channel Selection} t4
27613077Sjoerg	{Output Port 0 Volume} i1
27713077Sjoerg	{Reserved} *t4
27813077Sjoerg	{Output Port 1 Channel Selection} t4
27913077Sjoerg	{Output Port 1 Volume} i1
28013077Sjoerg	{Reserved} *t4
28113077Sjoerg	{Output Port 2 Channel Selection} t4
28213077Sjoerg	{Output Port 2 Volume} i1
28313077Sjoerg	{Reserved} *t4
28413077Sjoerg	{Output Port 3 Channel Selection} t4
28513077Sjoerg	{Output Port 3 Volume} i1
28613077Sjoerg}
28721812Sjoerg
28867817Smjacob# SEQUENTIAL ACCESS DEVICES
28967817Smjacob0x10 "Device Configuration Page" {
29021812Sjoerg	{Reserved} *t1
29121812Sjoerg	{Change Active Partition} t1
29221812Sjoerg	{Change Active Format} t1
29321812Sjoerg	{Active Format} t5
29421812Sjoerg	{Active Partition} i1
29521812Sjoerg	{Write Buffer Full Ratio} i1
29621812Sjoerg	{Write Buffer Empty Ratio} i1
29721812Sjoerg	{Write Delay Time} i2
29821812Sjoerg	{Data Buffer Recovery} t1
29921812Sjoerg	{Block Identifiers Support} t1
30021812Sjoerg	{Report Setmarks} t1
30164382Skbyanc	{Automatic Velocity Control} t1
30221812Sjoerg	{Stop on Consecutive Filemarks} t2
30321812Sjoerg	{Recover Buffer Order} t1
30421812Sjoerg	{Report Early-Warning} t1
30521812Sjoerg	{Gap Size} i1
30621812Sjoerg	{EOD Defined} t3
30721812Sjoerg	{Enable EOD Generation} t1
30821812Sjoerg	{Synchronize at Early-Warning} t1
30921812Sjoerg	{Reserved} *t3
31021812Sjoerg	{Buffer Size at Early-Warning} i3
31121812Sjoerg	{Select Data Compression Algorithm} i1
31267817Smjacob	{Reserved} *t5
31367817Smjacob	{SCSI-3 Associated Write Protect} t1
31467817Smjacob	{SCSI-3 Persistent Write Protect} t1
31567817Smjacob	{SCSI-3 Permanent Write Protect} t1
31621812Sjoerg}
31764382Skbyanc
31867817Smjacob0x0f "Data Compression Page" {
31967817Smjacob	{Data Compression Enabled} t1
32067817Smjacob	{Date Compression Capable} t1
32167817Smjacob	{Reserved} *t6
32267817Smjacob	{Data Decompression Capable} t1
32367817Smjacob	{Data Decompression Report on Exception} t2
32467817Smjacob	{Reserved} *t5
32567817Smjacob	{Compression Algorithm} i4
32667817Smjacob	{Decompression Algorithm} i4
32767817Smjacob	{Reserved} *i4
32867817Smjacob}
32967817Smjacob
330136422Sbms# Removable devices
331136422Sbms0x1b "Removable Block Access Capacities Page" {
332136422Sbms	{System Floppy Type Device} t1
333136422Sbms	{Supports Reporting Format Progress} t1
334136422Sbms	{Reserved} *t6
335136422Sbms	{Non CD Optical Device} t1
336136422Sbms	{Single or Multiple LUN Supported} t1
337136422Sbms	{Reserved} *t3
338136422Sbms	{Total Logical Units Supported} t3
339136422Sbms	{Reserved} *i8
340136422Sbms}
341136422Sbms
34291196Sjoerg# CD-ROM (and CD-R[W]) devices
34391196Sjoerg0x2a "CD capabilities and mechanical status page" {
34491196Sjoerg	{Reserved} *t4
34591196Sjoerg	{Method 2} t1
34691196Sjoerg	{CD-RW Read} t1
34791196Sjoerg	{CD-R Read} t1
34891196Sjoerg	{Reserved} *t4
34991196Sjoerg	{Test Write} t1
35091196Sjoerg	{CD-RW Write} t1
35191196Sjoerg	{CD-R Write} t1
35291196Sjoerg	{Reserved} *t1
35391196Sjoerg	{Multi Session} t1
35491196Sjoerg	{Mode 2 Form 2} t1
35591196Sjoerg	{Mode 2 Form 1} t1
35691196Sjoerg	{Digital Port (2)} t1
35791196Sjoerg	{Digital Port (1)} t1
35891196Sjoerg	{Composite} t1
35991196Sjoerg	{Audio Play} t1
36091196Sjoerg	{Read Bar Code} t1
36191196Sjoerg	{UPC} t1
36291196Sjoerg	{ISRC} t1
36391196Sjoerg	{C2 Pointers are supported} t1
36491196Sjoerg	{R-W De-interleaved & corrected} t1
36591196Sjoerg	{R-W Supported} t1
36691196Sjoerg	{CD-DA Stream is Accurate} t1
36791196Sjoerg	{CD-DA Commands Supported} t1
36891196Sjoerg	{Loading Mechanism Type} t3
36991196Sjoerg	{Reserved} *t1
37091196Sjoerg	{Eject} t1
37191196Sjoerg	{Prevent Jumper} t1
37291196Sjoerg	{Lock State} t1
37391196Sjoerg	{Lock} t1
37491196Sjoerg	{Reserved} *t4
37591196Sjoerg	{S/W Slot Selection} t1
37691196Sjoerg	{Changer Supports Disc Present reporting} t1
37791196Sjoerg	{Separate Channel Mute Supported} t1
37891196Sjoerg	{Separate volume levels per channel} t1
37991196Sjoerg	{Maximum Read Speed Supported (kBps)} i2
38091196Sjoerg	{Number of Volume Leves Supported} i2
38191196Sjoerg	{Buffer Size supported by Drive (KB)} i2
38291196Sjoerg	{Current Read Speed Selected (kBps)} i2
38391196Sjoerg	{Reserved} *i1
38491196Sjoerg	{Reserved} *t2
38591196Sjoerg	{Length} t2
38691196Sjoerg	{LSBF} t1
38791196Sjoerg	{RCK} t1
38891196Sjoerg	{BCK} t1
38991196Sjoerg	{Reserved} *t1
39091196Sjoerg	{Maximum Write Speed Supported (kBps)} i2
39191196Sjoerg	{Current Write Speed Supported (kBps)} i2
39291196Sjoerg};
39391196Sjoerg
39464382Skbyanc0x00 "Vendor-Specific";
395