List few more ATA commands.

MFC after:	1 week
This commit is contained in:
Alexander Motin 2019-04-03 18:27:54 +00:00
parent 90cf61e8a5
commit 9345f88f8c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=345849
2 changed files with 22 additions and 3 deletions

View File

@ -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, uint8_t features,
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, uint16_t features,
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;

View File

@ -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 */