X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fatapi.h;h=7667e97aa8960e85eb24c9d4105e8372c5baaf0f;hb=b42be88af0bc84e967d06820ebc9a86a67e2bebc;hp=f202d6db9537302314c350f60cb38c3d25398702;hpb=f97c2c116e958d0e87e7303fc1d00fdf0b148893;p=palacios.git diff --git a/palacios/src/devices/atapi.h b/palacios/src/devices/atapi.h index f202d6d..7667e97 100644 --- a/palacios/src/devices/atapi.h +++ b/palacios/src/devices/atapi.h @@ -17,11 +17,91 @@ * redistribute, and modify it as specified in the file "V3VEE_LICENSE". */ +#ifndef __DEVICES_ATAPI_H__ +#define __DEVICES_ATAPI_H__ + #define ATAPI_PACKET_SIZE 12 #include "atapi-types.h" +/* ACS-2 T13/2015-D Table B.2 Command codes */ +#define ATAPI_NOP 0x00 +#define CFA_REQ_EXT_ERROR_CODE 0x03 +#define ATAPI_DSM 0x06 +#define ATAPI_DEVICE_RESET 0x08 +#define ATAPI_RECAL 0x10 +#define ATAPI_READ 0x20 +#define ATAPI_READ_ONCE 0x21 +#define ATAPI_READ_EXT 0x24 +#define ATAPI_READDMA_EXT 0x25 +#define ATAPI_READDMA_QUEUED_EXT 0x26 +#define ATAPI_READ_NATIVE_MAX_EXT 0x27 +#define ATAPI_MULTREAD_EXT 0x29 +#define ATAPI_WRITE 0x30 +#define ATAPI_WRITE_ONCE 0x31 +#define ATAPI_WRITE_EXT 0x34 +#define ATAPI_WRITEDMA_EXT 0x35 +#define ATAPI_WRITEDMA_QUEUED_EXT 0x36 +#define ATAPI_SET_MAX_EXT 0x37 +#define ATAPI_SET_MAX_EXT 0x37 +#define CFA_WRITE_SECT_WO_ERASE 0x38 +#define ATAPI_MULTWRITE_EXT 0x39 +#define ATAPI_WRITE_VERIFY 0x3C +#define ATAPI_VERIFY 0x40 +#define ATAPI_VERIFY_ONCE 0x41 +#define ATAPI_VERIFY_EXT 0x42 +#define ATAPI_SEEK 0x70 +#define CFA_TRANSLATE_SECTOR 0x87 +#define ATAPI_DIAGNOSE 0x90 +#define ATAPI_SPECIFY 0x91 +#define ATAPI_DOWNLOAD_MICROCODE 0x92 +#define ATAPI_STANDBYNOW2 0x94 +#define ATAPI_IDLEIMMEDIATE2 0x95 +#define ATAPI_STANDBY2 0x96 +#define ATAPI_SETIDLE2 0x97 +#define ATAPI_CHECKPOWERMODE2 0x98 +#define ATAPI_SLEEPNOW2 0x99 +#define ATAPI_PACKETCMD 0xA0 +#define ATAPI_PIDENTIFY 0xA1 +#define ATAPI_QUEUED_SERVICE 0xA2 +#define ATAPI_SMART 0xB0 +#define CFA_ACCESS_METADATA_STORAGE 0xB8 +#define CFA_ERASE_SECTORS 0xC0 +#define ATAPI_MULTREAD 0xC4 +#define ATAPI_MULTWRITE 0xC5 +#define ATAPI_SETMULT 0xC6 +#define ATAPI_READDMA 0xC8 +#define ATAPI_READDMA_ONCE 0xC9 +#define ATAPI_WRITEDMA 0xCA +#define ATAPI_WRITEDMA_ONCE 0xCB +#define ATAPI_WRITEDMA_QUEUED 0xCC +#define CFA_WRITE_MULTI_WO_ERASE 0xCD +#define ATAPI_GETMEDIASTATUS 0xDA +#define ATAPI_DOORLOCK 0xDE +#define ATAPI_DOORUNLOCK 0xDF +#define ATAPI_STANDBYNOW1 0xE0 +#define ATAPI_IDLEIMMEDIATE 0xE1 +#define ATAPI_STANDBY 0xE2 +#define ATAPI_SETIDLE1 0xE3 +#define ATAPI_READ_BUFFER 0xE4 +#define ATAPI_CHECKPOWERMODE1 0xE5 +#define ATAPI_SLEEPNOW1 0xE6 +#define ATAPI_FLUSH_CACHE 0xE7 +#define ATAPI_WRITE_BUFFER 0xE8 +#define ATAPI_FLUSH_CACHE_EXT 0xEA +#define ATAPI_IDENTIFY 0xEC +#define ATAPI_MEDIAEJECT 0xED +#define ATAPI_SETFEATURES 0xEF +#define IBM_SENSE_CONDITION 0xF0 +#define ATAPI_SECURITY_SET_PASS 0xF1 +#define ATAPI_SECURITY_UNLOCK 0xF2 +#define ATAPI_SECURITY_ERASE_PREPARE 0xF3 +#define ATAPI_SECURITY_ERASE_UNIT 0xF4 +#define ATAPI_SECURITY_FREEZE_LOCK 0xF5 +#define CFA_WEAR_LEVEL 0xF5 +#define ATAPI_SECURITY_DISABLE 0xF6 + /* ATAPI sucks... * The OS will write to the cylinder register the number of bytes it wants to read * however the device can change that value @@ -723,3 +803,5 @@ static void atapi_identify_device(struct ide_drive * drive) { /* Disabled until command packet DMA is fixed */ drive_id->dma_ultra = 0x2020; // Ultra_DMA_Mode_5_Selected | Ultra_DMA_Mode_5_Supported; } + +#endif