On 15/04/2017 15:44, Haojian Zhuang wrote: > 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.
Hi, you need to use WRITE SAME, with a zero payload and the UNMAP bit set in the command descriptor, in order to achieve a "secure" erase functionality. UNMAP is only an advisory command, and does not guarantee that the blocks are unmapped. Discard can use either WRITE SAME or UNMAP. Also, > // 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", The debug message is now wrong. Paolo _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel