Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Apr 2019 18:27:55 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r345849 - in head/sys: cam/ata sys
Message-ID:  <201904031827.x33IRtT7099120@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Wed Apr  3 18:27:54 2019
New Revision: 345849
URL: https://svnweb.freebsd.org/changeset/base/345849

Log:
  List few more ATA commands.
  
  MFC after:	1 week

Modified:
  head/sys/cam/ata/ata_all.c
  head/sys/sys/ata.h

Modified: head/sys/cam/ata/ata_all.c
==============================================================================
--- head/sys/cam/ata/ata_all.c	Wed Apr  3 17:04:38 2019	(r345848)
+++ head/sys/cam/ata/ata_all.c	Wed Apr  3 18:27:54 2019	(r345849)
@@ -215,8 +215,10 @@ ata_op_string(struct ata_cmd *cmd)
 	case 0xe5: return ("CHECK_POWER_MODE");
 	case 0xe6: return ("SLEEP");
 	case 0xe7: return ("FLUSHCACHE");
-	case 0xe8: return ("WRITE_PM");
+	case 0xe8: return ("WRITE_BUFFER/PM");
+	case 0xe9: return ("READ_BUFFER_DMA");
 	case 0xea: return ("FLUSHCACHE48");
+	case 0xeb: return ("WRITE_BUFFER_DMA");
 	case 0xec: return ("ATA_IDENTIFY");
 	case 0xed: return ("MEDIA_EJECT");
 	case 0xef:
@@ -581,7 +583,12 @@ ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, ui
 	if (cmd == ATA_READ_DMA ||
 	    cmd == ATA_READ_DMA_QUEUED ||
 	    cmd == ATA_WRITE_DMA ||
-	    cmd == ATA_WRITE_DMA_QUEUED)
+	    cmd == ATA_WRITE_DMA_QUEUED ||
+	    cmd == ATA_TRUSTED_RECEIVE_DMA ||
+	    cmd == ATA_TRUSTED_SEND_DMA ||
+	    cmd == ATA_DOWNLOAD_MICROCODE_DMA ||
+	    cmd == ATA_READ_BUFFER_DMA ||
+	    cmd == ATA_WRITE_BUFFER_DMA)
 		ataio->cmd.flags |= CAM_ATAIO_DMA;
 	ataio->cmd.command = cmd;
 	ataio->cmd.features = features;
@@ -607,7 +614,8 @@ ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, ui
 	    cmd == ATA_WRITE_DMA_QUEUED_FUA48 ||
 	    cmd == ATA_WRITE_STREAM_DMA48 ||
 	    cmd == ATA_DATA_SET_MANAGEMENT ||
-	    cmd == ATA_READ_LOG_DMA_EXT)
+	    cmd == ATA_READ_LOG_DMA_EXT ||
+	    cmd == ATA_WRITE_LOG_DMA_EXT)
 		ataio->cmd.flags |= CAM_ATAIO_DMA;
 	ataio->cmd.command = cmd;
 	ataio->cmd.features = features;

Modified: head/sys/sys/ata.h
==============================================================================
--- head/sys/sys/ata.h	Wed Apr  3 17:04:38 2019	(r345848)
+++ head/sys/sys/ata.h	Wed Apr  3 18:27:54 2019	(r345849)
@@ -393,6 +393,12 @@ struct ata_params {
 #define ATA_READ_LOG_DMA_EXT            0x47    /* read log DMA ext - PIO Data-In */
 #define	ATA_ZAC_MANAGEMENT_IN		0x4a	/* ZAC management in */
 #define		ATA_ZM_REPORT_ZONES	0x00	/* report zones */
+#define	ATA_WRITE_LOG_DMA_EXT		0x57	/* WRITE LOG DMA EXT */
+#define	ATA_TRUSTED_NON_DATA		0x5b	/* TRUSTED NON-DATA */
+#define	ATA_TRUSTED_RECEIVE		0x5c	/* TRUSTED RECEIVE */
+#define	ATA_TRUSTED_RECEIVE_DMA		0x5d	/* TRUSTED RECEIVE DMA */
+#define	ATA_TRUSTED_SEND		0x5c	/* TRUSTED SEND */
+#define	ATA_TRUSTED_SEND_DMA		0x5d	/* TRUSTED SEND DMA */
 #define ATA_READ_FPDMA_QUEUED           0x60    /* read DMA NCQ */
 #define ATA_WRITE_FPDMA_QUEUED          0x61    /* write DMA NCQ */
 #define ATA_NCQ_NON_DATA		0x63	/* NCQ non-data command */
@@ -417,6 +423,8 @@ struct ata_params {
 #define		ATA_ZM_FINISH_ZONE	0x02	/* finish zone */
 #define		ATA_ZM_OPEN_ZONE	0x03	/* open zone */
 #define		ATA_ZM_RWP		0x04	/* reset write pointer */
+#define	ATA_DOWNLOAD_MICROCODE		0x92	/* DOWNLOAD MICROCODE */
+#define	ATA_DOWNLOAD_MICROCODE_DMA	0x93	/* DOWNLOAD MICROCODE DMA */
 #define ATA_PACKET_CMD                  0xa0    /* packet command */
 #define ATA_ATAPI_IDENTIFY              0xa1    /* get ATAPI params*/
 #define ATA_SERVICE                     0xa2    /* service command */
@@ -439,8 +447,11 @@ struct ata_params {
 #define ATA_CHECK_POWER_MODE            0xe5    /* device power mode */
 #define ATA_SLEEP                       0xe6    /* sleep */
 #define ATA_FLUSHCACHE                  0xe7    /* flush cache to disk */
+#define	ATA_WRITE_BUFFER		0xe8    /* write buffer */
 #define ATA_WRITE_PM                    0xe8    /* write portmultiplier */
+#define	ATA_READ_BUFFER_DMA		0xe9    /* read buffer DMA */
 #define ATA_FLUSHCACHE48                0xea    /* flush cache to disk */
+#define	ATA_WRITE_BUFFER_DMA		0xeb    /* write buffer DMA */
 #define ATA_ATA_IDENTIFY                0xec    /* get ATA params */
 #define ATA_SETFEATURES                 0xef    /* features command */
 #define         ATA_SF_ENAB_WCACHE      0x02    /* enable write cache */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201904031827.x33IRtT7099120>