sata_defs.h revision a022fe3e0bc959fae460b8b5b818cd1265bf4c66
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * CDDL HEADER START
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * The contents of this file are subject to the terms of the
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Common Development and Distribution License (the "License").
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * You may not use this file except in compliance with the License.
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * See the License for the specific language governing permissions
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * and limitations under the License.
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * When distributing Covered Code, include this CDDL HEADER in each
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * If applicable, add the following below this CDDL HEADER, with the
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * fields enclosed by brackets "[]" replaced with your own identifying
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * information: Portions Copyright [yyyy] [name of copyright owner]
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * CDDL HEADER END
4e54023805e14cf984b9f0041df73c16334a7a88ls * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Use is subject to license terms.
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#pragma ident "%Z%%M% %I% %E% SMI"
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlfextern "C" {
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Common ATA commands (subset)
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_RECAL 0x10 /* restore cmd, 4 bits step rate */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * ATA/ATAPI disk commands (subset)
a022fe3e0bc959fae460b8b5b818cd1265bf4c66ls#define SATAC_DOWNLOAD_MICROCODE 0x92 /* Download microcode */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_ID_PACKET_DEVICE 0xa1 /* ATAPI identify packet device */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_INIT_DEVPARMS 0x91 /* initialize device parameters */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRITE_DMA 0xca /* write (multiple) w/DMA */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_RDSEC_EXT 0x24 /* read sector extended (LBA48) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_READ_DMA_EXT 0x25 /* read DMA extended (LBA48) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_RDMULT_EXT 0x29 /* read multiple extended (LBA48) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRSEC_EXT 0x34 /* read sector extended (LBA48) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRITE_DMA_EXT 0x35 /* read DMA extended (LBA48) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRMULT_EXT 0x39 /* read multiple extended (LBA48) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_READ_DMA_QUEUED 0xc7 /* read DMA / may be queued */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_READ_DMA_QUEUED_EXT 0x26 /* read DMA ext / may be queued */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRITE_DMA_QUEUED 0xcc /* read DMA / may be queued */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRITE_DMA_QUEUED_EXT 0x36 /* read DMA ext / may be queued */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRITE_PM_REG 0xe8 /* write port mult reg */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_READ_FPDMA_QUEUED 0x60 /* First-Party-DMA read queued */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_WRITE_FPDMA_QUEUED 0x61 /* First-Party-DMA write queued */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_LOG_PAGE_10 0x10 /* log page 0x10 - SATA error */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Power Managment Commands (subset)
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATAC_CHECK_POWER_MODE 0xe5 /* check power mode */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_PWRMODE_ACTIVE 0xFF /* active or idle mode, rev7 spec */
c03acfcad7780db4ddf763511a82026680b3b2c1ls * SMART FEATURES Subcommands
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * SET FEATURES Subcommands
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * SET FEATURES transfer mode values
a022fe3e0bc959fae460b8b5b818cd1265bf4c66ls * Download microcode subcommands
a022fe3e0bc959fae460b8b5b818cd1265bf4c66ls#define SATA_DOWNLOAD_MCODE_TEMP 1 /* Revert on/ reset/pwr cycle */
a022fe3e0bc959fae460b8b5b818cd1265bf4c66ls#define SATA_DOWNLOAD_MCODE_SAVE 7 /* No offset, keep mcode */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Generic ATA definitions */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Identify Device data
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Although bot ATA and ATAPI devices' Identify Data has the same lenght,
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * some words have different meaning/content and/or are irrelevant for
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * other type of device.
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Following is the ATA Device Identify data layout
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlftypedef struct sata_id {
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* OFFSET COMMENT */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_sectors; /* 6 # of sectors/track (obsolete) */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_validinfo; /* 53 bit0: wds 54-58, bit1: 64-70 */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_cursectrk; /* 56 # of current sectors/track */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_cursccp[2]; /* 57 current sectors capacity */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_addrsec[2]; /* 60 LBA only: no of addr secs */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_advpiomode; /* 64 advanced PIO modes supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_minmwdma; /* 65 min multi-word dma cycle info */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_recmwdma; /* 66 rec multi-word dma cycle info */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_minpioflow; /* 68 min PIO cycle info w/flow ctl */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_majorversion; /* 80 major versions supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_minorversion; /* 81 minor version number supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_cmdset83; /* 83 more command sets supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_cmdset84; /* 84 more command sets supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_erasetimex; /* 90 enhanced security erase time */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_adv_pwr_mgmt; /* 91 advanced power management time */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_master_pwd; /* 92 master password revision code */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_acoustic; /* 94 accoustic management values */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_stream_min_sz; /* 95 stream minimum request size */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_stream_xfer_d; /* 96 streaming transfer time (DMA) */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_stream_lat; /* 97 streaming access latency */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_streamperf[2]; /* 98-99 streaming performance gran. */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_addrsecxt[4]; /* 100 extended max LBA sector */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_stream_xfer_p; /* 104 streaming transfer time (PIO) */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_seek_delay; /* 107 inter-seek delay time (usecs) */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_resv_wwn[4]; /* 112-115 reserved for WWN ext. */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_incits; /* 116 reserved for INCITS TR-37-2004 */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_words_lsec[2]; /* 117-118 words per logical sector */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_cmdset119; /* 119 more command sets supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls ushort_t ai_curmedser[30]; /* 176-205 current media serial # */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Device: general config bits - word 0 */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATA_TYPE_MASK 0x8001 /* ATA Device type mask */
789ba267e4ebc05727329e0351a5c1a8243e962bpawelw#define SATA_INCOMPLETE_DATA 0x0004 /* Incomplete Identify Device data */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Device: common capability bits - word 49 */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Device: ai_validinfo (word 53) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_VALIDINFO_88 0x0004 /* word 88 supported fields valid */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Device: ai_majorversion (word 80) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MAJVER_6 0x0040 /* ATA/ATAPI-6 version supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MAJVER_4 0x0010 /* ATA/ATAPI-4 version supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Device: command set supported/enabled bits - words 83 and 86 */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_RW_DMA_QUEUED_CMD 0x0002 /* R/W DMA Queued supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_DWNLOAD_MCODE_CMD 0x0001 /* Download Microcode CMD supp/enbld */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Device: command set supported/enabled bits - words 82 and 85 */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SMART_SUPPORTED 0x0001 /* SMART feature set is supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_WRITE_CACHE 0x0020 /* Write Cache supported/enabled */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_LOOK_AHEAD 0x0040 /* Look Ahead supported/enabled */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_DEVICE_RESET_CMD 0x0200 /* Device Reset CMD supported/enbld */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_READ_BUFFER_CMD 0x2000 /* Read Buffer CMD supported/enbld */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_WRITE_BUFFER_CMD 0x1000 /* Write Buffer CMD supported/enbld */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SMART_ENABLED 0x0001 /* SMART feature set is enabled */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* Identify Device: command set supported/enabled bits - words 84 & 87 */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SMART_SELF_TEST_SUPPORTED 0x0002 /* SMART self-test supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_SEL_MASK 0x0700 /* Multiword DMA selected */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_2_SEL 0x0400 /* Multiword DMA mode 2 selected */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_1_SEL 0x0200 /* Multiword DMA mode 1 selected */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_0_SEL 0x0100 /* Multiword DMA mode 0 selected */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_2_SUP 0x0004 /* Multiword DMA mode 2 supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_1_SUP 0x0002 /* Multiword DMA mode 1 supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_MDMA_0_SUP 0x0001 /* Multiword DMA mode 0 supported */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* Identify Device: command set supported/enabled bits - word 206 */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* All are SCT Command Transport support */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SCT_CMD_TRANS_LNG_SECT_SUP 0x0002 /* Long Sector Access */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SCT_CMD_TRANS_WR_SAME_SUP 0x0004 /* Write Same */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SCT_CMD_TRANS_ERR_RCOV_SUP 0x0008 /* Error Recovery Control */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SCT_CMD_TRANS_FEAT_CTL_SUP 0x0010 /* Features Control */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_SCT_CMD_TRANS_DATA_TBL_SUP 0x0020 /* Data Tables supported */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_DISK_SECTOR_SIZE 512 /* HD physical sector size */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Packet Device data definitions (ATAPI devices) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* Identify Packet Device: general config bits - word 0 */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_ID_PKT_SZ 0x0003 /* Packet size mask */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_ID_PKT_12B 0x0000 /* Packet size 12 bytes */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_ID_PKT_16B 0x0001 /* Packet size 16 bytes */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_ID_DRQ_TYPE 0x0060 /* DRQ asserted in 3ms after pkt */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_ATAPI_ID_DRQ_INTR 0x0020 /* Obsolete in ATA/ATAPI 7 */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_ID_DEV_TYPE 0x0f00 /* device type/command set mask */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_DIRACC_DEV 0x0000 /* Direct Access device */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SATA_ATAPI_SQACC_DEV 0x0100 /* Sequential access dev (tape ?) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Status bits from ATAPI Interrupt reason register (AT_COUNT) register
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_I_RELEASE 0x04 /* Release for ATAPI overlap */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* ATAPI feature reg definitions */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * ATAPI IDENTIFY_DRIVE capabilities word
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * ATAPI signature bits
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_SIG_HI 0xeb /* in high cylinder register */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_SIG_LO 0x14 /* in low cylinder register */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* These values are pre-set for CD_ROM/DVD ? */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ATAPI_MAX_BYTES_PER_DRQ 0xf800 /* 16 bits - 2KB ie 62KB */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* SATA Capabilites bits (word 76) */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* SATA Features Supported (word 78) - not used */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* SATA Features Enabled (word 79) - not used */
4e54023805e14cf984b9f0041df73c16334a7a88ls * Generic NCQ related defines
4e54023805e14cf984b9f0041df73c16334a7a88ls#define FIS_TYPE_REG_H2D 0x27 /* Reg FIS - Host to Device */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Status bits from AT_STATUS register
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_STATUS_DSC 0x10 /* seek operation complete */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf * Status bits from AT_ERROR register
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ERROR_ICRC 0x80 /* CRC data transfer error detected */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ERROR_UNC 0x40 /* uncorrectable data error */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ERROR_EOM 0x02 /* end of media (Packet cmds) */
c03acfcad7780db4ddf763511a82026680b3b2c1ls * Bits from the device control register
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf/* device_reg */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#define SATA_ADH_LBA 0x40 /* addressing in LBA mode not chs */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SCSI_LOG_PAGE_HDR_LEN 4 /* # bytes of a SCSI log page header */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define SCSI_LOG_PARAM_HDR_LEN 4 /* # byttes of a SCSI log param hdr */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* Number of log entries per extended selftest log block */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* Number of entries per SCSI LOG SENSE SELFTEST RESULTS page */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* Length of a SCSI LOG SENSE SELFTEST RESULTS parameter */
37a077ef1920ee044b2887247b2a802e726d3368ls * SATA NCQ error recovery page (0x10)
c03acfcad7780db4ddf763511a82026680b3b2c1ls * SMART data structures
c03acfcad7780db4ddf763511a82026680b3b2c1ls uint8_t smart_selftest_log_failing_lba[4]; /* from LSB to MSB */
c03acfcad7780db4ddf763511a82026680b3b2c1ls smart_selftest_log_entries[NUM_SMART_SELFTEST_LOG_ENTRIES];
c03acfcad7780db4ddf763511a82026680b3b2c1ls struct smart_ext_selftest_log_entry smart_ext_selftest_log_entries[19];
c03acfcad7780db4ddf763511a82026680b3b2c1ls uint8_t read_log_ext_vers[2]; /* general purpose log version */
489f952b4388bd1ea1feff97164a4416e0c621eals uint8_t read_log_ext_nblks[255][2]; /* # of blks @ log addr index+1 */
c03acfcad7780db4ddf763511a82026680b3b2c1ls * SMART specific data
c03acfcad7780db4ddf763511a82026680b3b2c1ls * These eventually need to go to a generic scsi hearder file
c03acfcad7780db4ddf763511a82026680b3b2c1ls * for now they will reside here
c03acfcad7780db4ddf763511a82026680b3b2c1ls uint8_t param_values[1]; /* # of bytes defined by param_len */
c03acfcad7780db4ddf763511a82026680b3b2c1ls/* param_ctrl_flag fields */
c03acfcad7780db4ddf763511a82026680b3b2c1ls#define LOG_CTRL_ETC 0x10 /* enable threshold comparison */
66f9d5cb3cc0652e2d9d1366fb950efbe4ca2f24mlf#endif /* _SATA_DEFS_H */