UINT64 *Prp;\r
VOID *PrpListHost;\r
UINTN PrpListNo;\r
+ UINT32 Data;\r
\r
//\r
// check the data fields in Packet parameter.\r
//\r
// Currently we only support PRP for data transfer, SGL is NOT supported.\r
//\r
- ASSERT ((Sq->Opc & BIT15) == 0);\r
- if ((Sq->Opc & BIT15) != 0) {\r
+ ASSERT (Sq->Psdt == 0);\r
+ if (Sq->Psdt != 0) {\r
DEBUG ((EFI_D_ERROR, "NvmExpressPassThru: doesn't support SGL mechanism\n"));\r
return EFI_UNSUPPORTED;\r
}\r
// Ring the submission queue doorbell.\r
//\r
Private->SqTdbl[Qid].Sqt ^= 1;\r
-\r
+ Data = ReadUnaligned32 ((UINT32*)&Private->SqTdbl[Qid]);\r
PciIo->Mem.Write (\r
PciIo,\r
EfiPciIoWidthUint32,\r
NVME_BAR,\r
NVME_SQTDBL_OFFSET(Qid, Private->Cap.Dstrd),\r
1,\r
- &Private->SqTdbl[Qid]\r
+ &Data\r
);\r
\r
Status = gBS->CreateEvent (\r
NvmeDumpStatus(Cq);\r
DEBUG_CODE_END();\r
\r
+ Data = ReadUnaligned32 ((UINT32*)&Private->CqHdbl[Qid]);\r
PciIo->Mem.Write (\r
PciIo,\r
EfiPciIoWidthUint32,\r
NVME_BAR,\r
NVME_CQHDBL_OFFSET(Qid, Private->Cap.Dstrd),\r
1,\r
- &Private->CqHdbl[Qid]\r
+ &Data\r
);\r
\r
EXIT:\r