summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/LsiScsiDxe/LsiScsi.h
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/LsiScsiDxe/LsiScsi.h')
-rw-r--r--OvmfPkg/LsiScsiDxe/LsiScsi.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h
index 05deeed379..6ecf523f5a 100644
--- a/OvmfPkg/LsiScsiDxe/LsiScsi.h
+++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h
@@ -14,6 +14,11 @@
typedef struct {
//
+ // Allocate 32 UINT32 entries for the script and it's sufficient for
+ // 16 instructions.
+ //
+ UINT32 Script[32];
+ //
// The max size of CDB is 32.
//
UINT8 Cdb[32];
@@ -25,6 +30,18 @@ typedef struct {
// Count (DBC), a 24-bit register, so the maximum is 0xFFFFFF (16MB-1).
//
UINT8 Data[SIZE_64KB];
+ //
+ // For SCSI Message In phase
+ //
+ UINT8 MsgIn[2];
+ //
+ // For SCSI Message Out phase
+ //
+ UINT8 MsgOut;
+ //
+ // For SCSI Status phase
+ //
+ UINT8 Status;
} LSI_SCSI_DMA_BUFFER;
typedef struct {
@@ -34,6 +51,7 @@ typedef struct {
EFI_PCI_IO_PROTOCOL *PciIo;
UINT8 MaxTarget;
UINT8 MaxLun;
+ UINT32 StallPerPollUsec;
LSI_SCSI_DMA_BUFFER *Dma;
EFI_PHYSICAL_ADDRESS DmaPhysical;
VOID *DmaMapping;
@@ -46,6 +64,9 @@ typedef struct {
#define LSI_SCSI_FROM_PASS_THRU(PassThruPtr) \
CR (PassThruPtr, LSI_SCSI_DEV, PassThru, LSI_SCSI_DEV_SIGNATURE)
+#define LSI_SCSI_DMA_ADDR(Dev, MemberName) \
+ ((UINT32)(Dev->DmaPhysical + OFFSET_OF (LSI_SCSI_DMA_BUFFER, MemberName)))
+
//
// Probe, start and stop functions of this driver, called by the DXE core for