return EFI_SUCCESS;\r
}\r
\r
-/**\r
- Read Nvm Express admin queue attributes register.\r
-\r
- @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.\r
- @param Aqa The buffer used to store admin queue attributes register content.\r
-\r
- @return EFI_SUCCESS Successfully read the admin queue attributes register content.\r
- @return EFI_DEVICE_ERROR Fail to read the admin queue attributes register.\r
-\r
-**/\r
-EFI_STATUS\r
-ReadNvmeAdminQueueAttributes (\r
- IN NVME_CONTROLLER_PRIVATE_DATA *Private,\r
- IN NVME_AQA *Aqa\r
- )\r
-{\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- EFI_STATUS Status;\r
- UINT32 Data;\r
-\r
- PciIo = Private->PciIo;\r
- Status = PciIo->Mem.Read (\r
- PciIo,\r
- EfiPciIoWidthUint32,\r
- NVME_BAR,\r
- NVME_AQA_OFFSET,\r
- 1,\r
- &Data\r
- );\r
-\r
- if (EFI_ERROR(Status)) {\r
- return Status;\r
- }\r
\r
- WriteUnaligned32 ((UINT32*)Aqa, Data);\r
- return EFI_SUCCESS;\r
-}\r
\r
/**\r
Write Nvm Express admin queue attributes register.\r
return EFI_SUCCESS;\r
}\r
\r
-/**\r
- Read Nvm Express admin submission queue base address register.\r
-\r
- @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.\r
- @param Asq The buffer used to store admin submission queue base address register content.\r
-\r
- @return EFI_SUCCESS Successfully read the admin submission queue base address register content.\r
- @return EFI_DEVICE_ERROR Fail to read the admin submission queue base address register.\r
-\r
-**/\r
-EFI_STATUS\r
-ReadNvmeAdminSubmissionQueueBaseAddress (\r
- IN NVME_CONTROLLER_PRIVATE_DATA *Private,\r
- IN NVME_ASQ *Asq\r
- )\r
-{\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- EFI_STATUS Status;\r
- UINT64 Data;\r
-\r
- PciIo = Private->PciIo;\r
- Status = PciIo->Mem.Read (\r
- PciIo,\r
- EfiPciIoWidthUint32,\r
- NVME_BAR,\r
- NVME_ASQ_OFFSET,\r
- 2,\r
- &Data\r
- );\r
-\r
- if (EFI_ERROR(Status)) {\r
- return Status;\r
- }\r
-\r
- WriteUnaligned64 ((UINT64*)Asq, Data);\r
- return EFI_SUCCESS;\r
-}\r
\r
/**\r
Write Nvm Express admin submission queue base address register.\r
return EFI_SUCCESS;\r
}\r
\r
-/**\r
- Read Nvm Express admin completion queue base address register.\r
-\r
- @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.\r
- @param Acq The buffer used to store admin completion queue base address register content.\r
-\r
- @return EFI_SUCCESS Successfully read the admin completion queue base address register content.\r
- @return EFI_DEVICE_ERROR Fail to read the admin completion queue base address register.\r
-\r
-**/\r
-EFI_STATUS\r
-ReadNvmeAdminCompletionQueueBaseAddress (\r
- IN NVME_CONTROLLER_PRIVATE_DATA *Private,\r
- IN NVME_ACQ *Acq\r
- )\r
-{\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- EFI_STATUS Status;\r
- UINT64 Data;\r
-\r
- PciIo = Private->PciIo;\r
\r
- Status = PciIo->Mem.Read (\r
- PciIo,\r
- EfiPciIoWidthUint32,\r
- NVME_BAR,\r
- NVME_ACQ_OFFSET,\r
- 2,\r
- &Data\r
- );\r
-\r
- if (EFI_ERROR(Status)) {\r
- return Status;\r
- }\r
-\r
- WriteUnaligned64 ((UINT64*)Acq, Data);\r
- return EFI_SUCCESS;\r
-}\r
\r
/**\r
Write Nvm Express admin completion queue base address register.\r