<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<div>
<div>
<div style="direction: ltr;">As far as I know, EFI disk utility consumes<span id="ms-outlook-ios-cursor"></span> this new field for performance. The utility is in Intel website for external downloads.</div>
</div>
<div><br>
</div>
<div class="ms-outlook-ios-signature"></div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>发件人:</b> devel@edk2.groups.io <devel@edk2.groups.io> 代表 Michael Kubacki <michael.kubacki@outlook.com><br>
<b>发送时间:</b> Saturday, September 19, 2020 2:54:54 AM<br>
<b>收件人:</b> devel@edk2.groups.io <devel@edk2.groups.io>; Ni, Ray <ray.ni@intel.com><br>
<b>抄送:</b> Kinney, Michael D <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com><br>
<b>主题:</b> Re: [edk2-devel] [PATCH v1 1/1] MdePkg: Correct EFI_BLOCK_IO_PROTOCOL_REVISION3 value</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi Ray,<br>
<br>
Rev3 adds the UINT32 field OptimalTransferLengthGranularity field to <br>
EFI_BLOCK_IO_MEDIA. A preexisting binary Block I/O producer that uses <br>
this field will set their revision to the higher value and the only <br>
check I see in edk2 (PartitionDxe) on the revision to access this field <br>
checks for >= EFI_BLOCK_IO_PROTOCOL_REVISION3.<br>
<br>
If a binary Block I/O producer is built with the new value that is <br>
consumed by a module built with the older value it might ignore the <br>
OptimalTransferLengthGranularity field. I do not see where this is the <br>
case in edk2 other than PartitionDxe which sets the <br>
OptimalTransferLengthGranularity field to zero for Rev3.<br>
<br>
You have contributed to this code in the past so feel free to provide <br>
any further insight if needed.<br>
<br>
That said, this change was made to fix a bug in the edk2 implementation <br>
to remove a conflict with the UEFI Spec, the two should be in agreement.<br>
<br>
I suggest the change be added to the next stable tag release notes so <br>
authors of such modules are made aware they should release an update <br>
with the new revision value.<br>
<br>
Thanks,<br>
Michael<br>
<br>
On 9/17/2020 6:25 PM, Ni, Ray wrote:<br>
> Mike,<br>
> Have you evaluated the impact to the already-released module that relies on the macro value?<br>
> <br>
> Basically, you changed to a smaller value that may cause a revision3 check fail:<br>
> a released module expects the revision is bigger than 0x31, but the value is 0x1f.<br>
> <br>
> Thanks,<br>
> Ray<br>
> <br>
>> -----Original Message-----<br>
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael Kubacki<br>
>> Sent: Tuesday, September 15, 2020 2:11 AM<br>
>> To: devel@edk2.groups.io<br>
>> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Liu, Zhiguang<br>
>> <zhiguang.liu@intel.com><br>
>> Subject: [edk2-devel] [PATCH v1 1/1] MdePkg: Correct EFI_BLOCK_IO_PROTOCOL_REVISION3 value<br>
>><br>
>> From: Michael Kubacki <michael.kubacki@microsoft.com><br>
>><br>
>> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2961<br>
>><br>
>> The value of EFI_BLOCK_IO_PROTOCOL_REVISION3 is currently<br>
>> 0x00020031. However, the value assigned in the UEFI Specification<br>
>> 2.8B is ((2<<16) | (31)) which is 0x0002001F.<br>
>><br>
>> Cc: Michael D Kinney <michael.d.kinney@intel.com><br>
>> Cc: Liming Gao <gaoliming@byosoft.com.cn><br>
>> Cc: Zhiguang Liu <zhiguang.liu@intel.com><br>
>> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com><br>
>> ---<br>
>>   MdePkg/Include/Protocol/BlockIo.h | 2 +-<br>
>>   1 file changed, 1 insertion(+), 1 deletion(-)<br>
>><br>
>> diff --git a/MdePkg/Include/Protocol/BlockIo.h b/MdePkg/Include/Protocol/BlockIo.h<br>
>> index 7b332691ede3..3bd76885e11c 100644<br>
>> --- a/MdePkg/Include/Protocol/BlockIo.h<br>
>> +++ b/MdePkg/Include/Protocol/BlockIo.h<br>
>> @@ -201,7 +201,7 @@ typedef struct {<br>
>><br>
>>   #define EFI_BLOCK_IO_PROTOCOL_REVISION  0x00010000<br>
>>   #define EFI_BLOCK_IO_PROTOCOL_REVISION2 0x00020001<br>
>> -#define EFI_BLOCK_IO_PROTOCOL_REVISION3 0x00020031<br>
>> +#define EFI_BLOCK_IO_PROTOCOL_REVISION3 0x0002001F<br>
>><br>
>>   ///<br>
>>   /// Revision defined in EFI1.1.<br>
>> --<br>
>> 2.28.0.windows.1<br>
>><br>
>><br>
>><br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
<br>
<br>
<br>
<br>
<br>
</div>
</span></font></div>
</body>
</html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr> Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/65406">View/Reply Online (#65406)</a> |    |  <a target="_blank" href="https://groups.io/mt/76848612/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>