If bit TPZ and bit TPRZ are set, the erase feature is implemented.
If bit TPZ is set and bit TPRZ is clear, the discard feature is
implemented. And discard is a non-secure variant of the erase
functionality.

So the detecting operation of EFI_ERASE_BLOCK_PROTOCOL, we should
consider to support both functionality. Since discard functionality is
only supported in some UFS devices.

And both of these two features are relied on UNMAP command.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Haojian Zhuang <haojian.zhu...@linaro.org>
---
 MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c 
b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c
index b5eff25..6e12e4f 100644
--- a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c
+++ b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c
@@ -5400,11 +5400,11 @@ DetermineInstallEraseBlock (
   if (CommandStatus == EFI_SUCCESS) {
     //
     // Universal Flash Storage (UFS) Version 2.0
-    // Section 11.3.9.2
+    // Section 11.3.9.2 & Section 12.2.3
     // Bits TPE and TPRZ should both be set to enable the erase feature on UFS.
+    // Setting bit TPE and clearing bit TPRZ to enable the discard feature on 
UFS.
     //
-    if (((CapacityData16->LowestAlignLogic2 & BIT7) == 0) ||
-        ((CapacityData16->LowestAlignLogic2 & BIT6) == 0)) {
+    if ((CapacityData16->LowestAlignLogic2 & BIT7) == 0) {
       DEBUG ((
         EFI_D_VERBOSE,
         "ScsiDisk EraseBlock: Either TPE or TPRZ is not set: 0x%x.\n",
-- 
2.7.4

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to