]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/Scsi.h
Add TPM2 related header file.
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Scsi.h
index aa097fd214aadca270fd2852834eb2f863475ddb..3c8f31a7613dc3e8570e287f263a02bc23c48cea 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Support for SCSI-2 standard\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
+  Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
   are licensed and made available under the terms and conditions of the BSD License         \r
   which accompanies this distribution.  The full text of the license may be found at        \r
   http://opensource.org/licenses/bsd-license.php                                            \r
@@ -48,7 +48,9 @@
 #define EFI_SCSI_OP_MEDIA_REMOVAL   0x1e\r
 #define EFI_SCSI_OP_READ6           0x08\r
 #define EFI_SCSI_OP_READ10          0x28\r
+#define EFI_SCSI_OP_READ16          0x88\r
 #define EFI_SCSI_OP_READ_CAPACITY   0x25\r
+#define EFI_SCSI_OP_READ_CAPACITY16 0x9e\r
 #define EFI_SCSI_OP_READ_DEFECT     0x37\r
 #define EFI_SCSI_OP_READ_LONG       0x3e\r
 #define EFI_SCSI_OP_REASSIGN_BLK    0x07\r
@@ -66,6 +68,7 @@
 #define EFI_SCSI_OP_VERIFY          0x2f\r
 #define EFI_SCSI_OP_WRITE6          0x0a\r
 #define EFI_SCSI_OP_WRITE10         0x2a\r
+#define EFI_SCSI_OP_WRITE16         0x8a\r
 #define EFI_SCSI_OP_WRITE_VERIFY    0x2e\r
 #define EFI_SCSI_OP_WRITE_LONG      0x3f\r
 #define EFI_SCSI_OP_WRITE_SAME      0x41\r
 //\r
 #define EFI_SCSI_TYPE_UNKNOWN       0x1F  ///< Unknown or no device type\r
 \r
+//\r
+// Page Codes for INQUIRY command\r
+//\r
+#define EFI_SCSI_PAGE_CODE_SUPPORTED_VPD    0x00\r
+#define EFI_SCSI_PAGE_CODE_BLOCK_LIMITS_VPD 0xB0\r
+\r
 #pragma pack(1)\r
 ///\r
 /// Standard INQUIRY data format\r
@@ -206,6 +215,44 @@ typedef struct {
   UINT8 Reserved_5_95[95 - 5 + 1];\r
 } EFI_SCSI_INQUIRY_DATA;\r
 \r
+///\r
+/// Supported VPD Pages VPD page\r
+///\r
+typedef struct {\r
+  UINT8 Peripheral_Type : 5;\r
+  UINT8 Peripheral_Qualifier : 3;\r
+  UINT8 PageCode;\r
+  UINT8 PageLength2;\r
+  UINT8 PageLength1;\r
+  UINT8 SupportedVpdPageList[0x100];\r
+} EFI_SCSI_SUPPORTED_VPD_PAGES_VPD_PAGE;\r
+\r
+///\r
+/// Block Limits VPD page\r
+///\r
+typedef struct {\r
+  UINT8 Peripheral_Type : 5;\r
+  UINT8 Peripheral_Qualifier : 3;\r
+  UINT8 PageCode;\r
+  UINT8 Reserved_2;\r
+  UINT8 PageLength;\r
+  UINT8 Reserved_4_5[2];\r
+  UINT8 OptimalTransferLengthGranularity2;\r
+  UINT8 OptimalTransferLengthGranularity1;\r
+  UINT8 MaximumTransferLength4;\r
+  UINT8 MaximumTransferLength3;\r
+  UINT8 MaximumTransferLength2;\r
+  UINT8 MaximumTransferLength1;\r
+  UINT8 OptimalTransferLength4;\r
+  UINT8 OptimalTransferLength3;\r
+  UINT8 OptimalTransferLength2;\r
+  UINT8 OptimalTransferLength1;\r
+  UINT8 MaximumPrefetchXdreadXdwriteTransferLength4;\r
+  UINT8 MaximumPrefetchXdreadXdwriteTransferLength3;\r
+  UINT8 MaximumPrefetchXdreadXdwriteTransferLength2;\r
+  UINT8 MaximumPrefetchXdreadXdwriteTransferLength1;\r
+} EFI_SCSI_BLOCK_LIMITS_VPD_PAGE;\r
+\r
 ///\r
 /// Error codes 70h and 71h sense data format\r
 ///\r
@@ -240,6 +287,27 @@ typedef struct {
   UINT8 BlockSize0;\r
 } EFI_SCSI_DISK_CAPACITY_DATA;\r
 \r
+typedef struct {\r
+  UINT8 LastLba7;\r
+  UINT8 LastLba6;\r
+  UINT8 LastLba5;\r
+  UINT8 LastLba4;\r
+  UINT8 LastLba3;\r
+  UINT8 LastLba2;\r
+  UINT8 LastLba1;\r
+  UINT8 LastLba0;\r
+  UINT8 BlockSize3;\r
+  UINT8 BlockSize2;\r
+  UINT8 BlockSize1;\r
+  UINT8 BlockSize0;\r
+  UINT8 Protection;\r
+  UINT8 LogicPerPhysical;\r
+  UINT8 LowestAlignLogic2;  \r
+  UINT8 LowestAlignLogic1;    \r
+  UINT8 Reserved[16];  \r
+} EFI_SCSI_DISK_CAPACITY_DATA16;\r
+\r
+\r
 #pragma pack()\r
 \r
 //\r