This commit is contained in:
Christian Hergert 2026-08-26 22:50:44 +00:00 committed by GitHub
commit 69d3be5998
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 20 additions and 1 deletions

View file

@ -4427,7 +4427,7 @@ ScsiDiskFuaMode (
UINT8 HostAdapterStatus; UINT8 HostAdapterStatus;
UINT8 TargetStatus; UINT8 TargetStatus;
UINT8 SenseDataLength; UINT8 SenseDataLength;
UINT8 Buffer[CACHE_MODE_PAGE_LEN]; UINT8 *Buffer;
UINT32 BufferLength; UINT32 BufferLength;
EFI_STATUS ReturnStatus; EFI_STATUS ReturnStatus;
BOOLEAN DpoFua; BOOLEAN DpoFua;
@ -4437,6 +4437,12 @@ ScsiDiskFuaMode (
BufferLength = CACHE_MODE_PAGE_LEN; BufferLength = CACHE_MODE_PAGE_LEN;
DpoFua = TRUE; DpoFua = TRUE;
WriteCaching = TRUE; WriteCaching = TRUE;
Buffer = AllocateAlignedBuffer (ScsiDiskDevice, BufferLength);
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
ZeroMem (Buffer, BufferLength);
// //
// Execute Mode Sense Command here to get the support of FUA // Execute Mode Sense Command here to get the support of FUA
// through Mode page. FUA support locates in Mode parameter // through Mode page. FUA support locates in Mode parameter
@ -4460,6 +4466,7 @@ ScsiDiskFuaMode (
// //
// Mode Sense Command fails // Mode Sense Command fails
// //
FreeAlignedBuffer (Buffer, CACHE_MODE_PAGE_LEN);
return EFI_DEVICE_ERROR; return EFI_DEVICE_ERROR;
} }
@ -4471,6 +4478,7 @@ ScsiDiskFuaMode (
// //
// Return page is not right // Return page is not right
// //
FreeAlignedBuffer (Buffer, CACHE_MODE_PAGE_LEN);
return EFI_DEVICE_ERROR; return EFI_DEVICE_ERROR;
} }
@ -4497,6 +4505,7 @@ ScsiDiskFuaMode (
} }
ScsiDiskDevice->FuaMode = DpoFua || WriteCaching; ScsiDiskDevice->FuaMode = DpoFua || WriteCaching;
FreeAlignedBuffer (Buffer, CACHE_MODE_PAGE_LEN);
return EFI_SUCCESS; return EFI_SUCCESS;
} }

View file

@ -36,6 +36,8 @@
DEFINE SOURCE_DEBUG_ENABLE = FALSE DEFINE SOURCE_DEBUG_ENABLE = FALSE
DEFINE CC_MEASUREMENT_ENABLE = TRUE DEFINE CC_MEASUREMENT_ENABLE = TRUE
DEFINE DEBUG_TO_MEM = FALSE DEFINE DEBUG_TO_MEM = FALSE
# Allow OVMF to enumerate and boot from PCI UFS logical units.
DEFINE UFS_ENABLE = TRUE
!include OvmfPkg/Include/Dsc/OvmfTpmDefines.dsc.inc !include OvmfPkg/Include/Dsc/OvmfTpmDefines.dsc.inc
@ -987,6 +989,10 @@
MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
!if $(UFS_ENABLE) == TRUE
MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf
MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf
!endif
MdeModulePkg/Bus/Pci/CxlDxe/CxlDxe.inf MdeModulePkg/Bus/Pci/CxlDxe/CxlDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf

View file

@ -244,6 +244,10 @@ INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf
INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
!if $(UFS_ENABLE) == TRUE
INF MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf
INF MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf
!endif
INF MdeModulePkg/Bus/Pci/CxlDxe/CxlDxe.inf INF MdeModulePkg/Bus/Pci/CxlDxe/CxlDxe.inf
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf