lkml.org 
[lkml]   [2008]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] ata: Define new commands from ATA8
Updated comment below.

On Tue, Aug 5, 2008 at 1:26 PM, Matthew Wilcox <matthew@wil.cx> wrote:
> From: Matthew Wilcox <willy@linux.intel.com>
>
> Later patches require knowledge of some commands which aren't currently
> defined. While I'm at it, add all the commands that are in ATA8 and
> reorder the existing commands to be in the same order as ATA8.
>
> Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
> ---
> include/linux/ata.h | 97 ++++++++++++++++++++++++++++++++++----------------
> 1 files changed, 66 insertions(+), 31 deletions(-)
>
> diff --git a/include/linux/ata.h b/include/linux/ata.h
> index 1c622e2..3815431 100644
> --- a/include/linux/ata.h
> +++ b/include/linux/ata.h
> @@ -149,58 +149,93 @@ enum {
> ATA_REG_IRQ = ATA_REG_NSECT,
>
> /* ATA device commands */
> - ATA_CMD_DEV_RESET = 0x08, /* ATAPI device reset */
> + ATA_CMD_CFA_ERASE_SECTORS = 0xC0,
> + ATA_CMD_CFA_REQUEST_EXT_ERROR = 0x03,
> + ATA_CMD_CFA_TRANSLATE_SECTOR = 0x87,
> + ATA_CMD_CFA_WRITE_MULTI_WITHOUT_ERASE = 0xCD,
> + ATA_CMD_CFA_WRITE_SECTORS_WITHOUT_ERASE = 0x38,
> + ATA_CMD_CHK_MEDIA_CARD_TYPE = 0xD1,
> ATA_CMD_CHK_POWER = 0xE5, /* check power mode */
> - ATA_CMD_STANDBY = 0xE2, /* place in standby power mode */
> - ATA_CMD_IDLE = 0xE3, /* place in idle power mode */
> + ATA_CMD_CONFIG_STREAM = 0x51,
> + ATA_CMD_CONF_OVERLAY = 0xB1,
> + ATA_CMD_DEV_RESET = 0x08, /* ATAPI device reset */
> + ATA_CMD_DLOAD_MCODE = 0x92,
> ATA_CMD_EDD = 0x90, /* execute device diagnostic */
> ATA_CMD_FLUSH = 0xE7,
> ATA_CMD_FLUSH_EXT = 0xEA,
> ATA_CMD_ID_ATA = 0xEC,
> ATA_CMD_ID_ATAPI = 0xA1,
> - ATA_CMD_READ = 0xC8,
> - ATA_CMD_READ_EXT = 0x25,
> - ATA_CMD_WRITE = 0xCA,
> - ATA_CMD_WRITE_EXT = 0x35,
> - ATA_CMD_WRITE_FUA_EXT = 0x3D,
> + ATA_CMD_IDLE = 0xE3, /* place in idle power mode */
> + ATA_CMD_IDLEIMMEDIATE = 0xE1,
> + ATA_CMD_NVCACHE = 0xB6,
> + ATA_CMD_NOP = 0x00,
> + ATA_CMD_PACKET = 0xA0,
> + ATA_CMD_PMP_READ = 0xE4, /* aka READ BUFFER */
> + ATA_CMD_READ = 0xC8, /* aka READ DMA */
> + ATA_CMD_READ_EXT = 0x25, /* aka READ DMA EXT */
> + ATA_CMD_READ_QUEUED = 0xC7,
> + ATA_CMD_READ_QUEUED_EXT = 0x26,
> ATA_CMD_FPDMA_READ = 0x60,
> - ATA_CMD_FPDMA_WRITE = 0x61,
> - ATA_CMD_PIO_READ = 0x20,
> - ATA_CMD_PIO_READ_EXT = 0x24,
> - ATA_CMD_PIO_WRITE = 0x30,
> - ATA_CMD_PIO_WRITE_EXT = 0x34,
> + ATA_CMD_READ_LOG_EXT = 0x2F,
> + ATA_CMD_READ_LOG_DMA_EXT= 0x47,
> ATA_CMD_READ_MULTI = 0xC4,
> ATA_CMD_READ_MULTI_EXT = 0x29,
> - ATA_CMD_WRITE_MULTI = 0xC5,
> - ATA_CMD_WRITE_MULTI_EXT = 0x39,
> - ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE,
> - ATA_CMD_SET_FEATURES = 0xEF,
> - ATA_CMD_SET_MULTI = 0xC6,
> - ATA_CMD_PACKET = 0xA0,
> - ATA_CMD_VERIFY = 0x40,
> - ATA_CMD_VERIFY_EXT = 0x42,
> - ATA_CMD_STANDBYNOW1 = 0xE0,
> - ATA_CMD_IDLEIMMEDIATE = 0xE1,
> - ATA_CMD_SLEEP = 0xE6,
> - ATA_CMD_INIT_DEV_PARAMS = 0x91,
> ATA_CMD_READ_NATIVE_MAX = 0xF8,
> ATA_CMD_READ_NATIVE_MAX_EXT = 0x27,
> + ATA_CMD_PIO_READ = 0x20, /* aka READ SECTOR(S) */
> + ATA_CMD_PIO_READ_EXT = 0x24, /* aka READ SECTOR(S) EXT */
> + ATA_CMD_READ_STREAM_DMA_EXT = 0x2A,
> + ATA_CMD_READ_STREAM_EXT = 0x2B,
> + ATA_CMD_VERIFY = 0x40, /* aka READ VERIFY SECTOR(S) */
> + ATA_CMD_VERIFY_EXT = 0x42, /* aka READ VERIFY SECTOR(S) EXT */
> + ATA_CMD_SEC_DISABLE_PASSWORD = 0xF6,
> + ATA_CMD_SEC_ERASE_PREPARE = 0xF3,
> + ATA_CMD_SEC_ERASE_UNIT = 0xF4,
> + ATA_CMD_SEC_FREEZE_LOCK = 0xF5,
> + ATA_CMD_SEC_SET_PASSWORD = 0xF1,
> + ATA_CMD_SEC_UNLOCK = 0xF2,
> + ATA_CMD_SERVICE = 0xA2,
> + ATA_CMD_SET_FEATURES = 0xEF,
> ATA_CMD_SET_MAX = 0xF9,
> ATA_CMD_SET_MAX_EXT = 0x37,
> - ATA_CMD_READ_LOG_EXT = 0x2f,
> - ATA_CMD_PMP_READ = 0xE4,
> - ATA_CMD_PMP_WRITE = 0xE8,
> - ATA_CMD_CONF_OVERLAY = 0xB1,
> - ATA_CMD_SEC_FREEZE_LOCK = 0xF5,
> + ATA_CMD_SET_MULTI = 0xC6,
> + ATA_CMD_SLEEP = 0xE6,
> + ATA_CMD_SMART = 0xB0,
> + ATA_CMD_STANDBY = 0xE2, /* place in standby power mode */
> + ATA_CMD_STANDBYNOW1 = 0xE0,
> + ATA_CMD_TRUSTED_NON_DATA = 0x5B,
> + ATA_CMD_TRUSTED_RECEIVE = 0x5C,
> + ATA_CMD_TRUSTED_RECEIVE_DMA = 0x5D,
> + ATA_CMD_TRUSTED_SEND = 0x5E,
> + ATA_CMD_TRUSTED_SEND_DMA = 0x5F,
> + ATA_CMD_PMP_WRITE = 0xE8, /* aka WRITE BUFFER */
> + ATA_CMD_WRITE = 0xCA, /* aka WRITE DMA */
> + ATA_CMD_WRITE_EXT = 0x35, /* aka WRITE DMA EXT */
> + ATA_CMD_WRITE_FUA_EXT = 0x3D, /* aka WRITE DMA FUA EXT */
> + ATA_CMD_WRITE_DMA_QUEUED = 0xCC,
> + ATA_CMD_WRITE_DMA_QUEUED_EXT = 0x36,
> + ATA_CMD_WRITE_DMA_QUEUED_FUA_EXT = 0x3E,
> + ATA_CMD_FPDMA_WRITE = 0x61, /* aka WRITE FPDMA QUEUED */
> + ATA_CMD_WRITE_LOG_EXT = 0x3F,
> + ATA_CMD_WRITE_LOG_DMA_EXT = 0x57,
> + ATA_CMD_WRITE_MULTI = 0xC5,
> + ATA_CMD_WRITE_MULTI_EXT = 0x39,
> + ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE,
> + ATA_CMD_PIO_WRITE = 0x30, /* aka WRITE SECTOR(S) */
> + ATA_CMD_PIO_WRITE_EXT = 0x34, /* aka WRITE SECTOR(S) EXT */
> + ATA_CMD_WRITE_STREAM_DMA_EXT = 0x3A,
> + ATA_CMD_WRITE_STREAM_EXT = 0x3B,
> + ATA_CMD_WRITE_UNCORRECTABLE_EXT = 0x45,
>
> /* READ_LOG_EXT pages */
> ATA_LOG_SATA_NCQ = 0x10,
>
> - /* READ/WRITE LONG (obsolete) */
> + /* Obsolete */

Since these diagnostic commands could be confused with the new "long
sector" commands, should the comment say:

/* Obsolete LBA28 diagnostic commands, in LBA48 replaced by
ATA_WRITE_UNC_EXT, etc. */

> ATA_CMD_READ_LONG = 0x22,
> ATA_CMD_READ_LONG_ONCE = 0x23,
> ATA_CMD_WRITE_LONG = 0x32,
> ATA_CMD_WRITE_LONG_ONCE = 0x33,
> + ATA_CMD_INIT_DEV_PARAMS = 0x91,
>
> /* SETFEATURES stuff */
> SETFEATURES_XFER = 0x03,
> --
> 1.5.6.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>



--
Greg Freemyer
Litigation Triage Solutions Specialist
http://www.linkedin.com/in/gregfreemyer
First 99 Days Litigation White Paper -
http://www.norcrossgroup.com/forms/whitepapers/99%20Days%20whitepaper.pdf

The Norcross Group
The Intersection of Evidence & Technology
http://www.norcrossgroup.com


\
 
 \ /
  Last update: 2008-08-05 22:25    [W:0.104 / U:3.624 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site