<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 129.75pt 72.0pt 129.7pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoPlainText">I have concern for this patch.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">It will make the implementation of XhcControlTransfer() no longer following the UEFI specification requirements on the EFI_USB2_HC_PROTOCOL.ControlTransfer() service:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Section 17.1.7 of UEFI spec Release 2.10:<o:p></o:p></p>
<p class="MsoPlainText">EFI_INVALID_PARAMETER is returned if one of the following conditions is satisfied:<o:p></o:p></p>
<p class="MsoPlainText">...<o:p></o:p></p>
<p class="MsoPlainText"><span lang="ZH-CN" style="font-family:DengXian">•</span> MaximumPacketLength is not valid. If DeviceSpeed is EFI_USB_SPEED_LOW, then MaximumPacketLength<o:p></o:p></p>
<p class="MsoPlainText">  must be 8. If DeviceSpeed is EFI_USB_SPEED_FULL or EFI_USB_SPEED_HIGH, then MaximumPac-<o:p></o:p></p>
<p class="MsoPlainText">  ketLength must be 8, 16, 32, or 64. If DeviceSpeed is EFI_USB_SPEED_SUPER, then MaximumPacketLength<o:p></o:p></p>
<p class="MsoPlainText">  must be 512.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">My take is that it will need a UEFI spec update to integrate this proposed change.<o:p></o:p></p>
<p class="MsoPlainText">Sorry Liming, could you help on the process of raising opens with regard to the UEFI specification? Thanks in advance.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Best Regards,<o:p></o:p></p>
<p class="MsoPlainText">Hao Wu<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> -----Original Message-----</p>
<p class="MsoPlainText">> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sean</p>
<p class="MsoPlainText">> Rhodes</p>
<p class="MsoPlainText">> Sent: Monday, December 5, 2022 5:18 PM</p>
<p class="MsoPlainText">> To: devel@edk2.groups.io</p>
<p class="MsoPlainText">> Cc: Rhodes, Sean <sean@starlabs.systems>; Wu, Hao A</p>
<p class="MsoPlainText">> <hao.a.wu@intel.com>; Ni, Ray <ray.ni@intel.com></p>
<p class="MsoPlainText">> Subject: [edk2-devel] [PATCH 4/4] MdeModulePkg/UsbBusDxe: Adjust the</p>
<p class="MsoPlainText">> MaxPacketLength to real world values</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> Adjusts the requirements for the MaxPacketLength to match what is seen on</p>
<p class="MsoPlainText">> real world devices that do not follow the USB specification.</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> This fixes enumeration on the multiple USB 3 devices made by SanDisk,</p>
<p class="MsoPlainText">> Integral, Kingston and other generic brands.</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> Cc: Hao A Wu <<a href="mailto:hao.a.wu@intel.com"><span style="color:windowtext;text-decoration:none">hao.a.wu@intel.com</span></a>></p>
<p class="MsoPlainText">> Cc: Ray Ni <<a href="mailto:ray.ni@intel.com"><span style="color:windowtext;text-decoration:none">ray.ni@intel.com</span></a>></p>
<p class="MsoPlainText">> Signed-off-by: Sean Rhodes <<a href="mailto:sean@starlabs.systems"><span style="color:windowtext;text-decoration:none">sean@starlabs.systems</span></a>></p>
<p class="MsoPlainText">> ---</p>
<p class="MsoPlainText">>  MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 11 ++++-------</p>
<p class="MsoPlainText">>  1 file changed, 4 insertions(+), 7 deletions(-)</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c</p>
<p class="MsoPlainText">> b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c</p>
<p class="MsoPlainText">> index 62535cad54..043b7d4cea 100644</p>
<p class="MsoPlainText">> --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c</p>
<p class="MsoPlainText">> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c</p>
<p class="MsoPlainText">> @@ -906,19 +906,16 @@ XhcControlTransfer (</p>
<p class="MsoPlainText">>      return EFI_INVALID_PARAMETER;</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>    }</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -  if ((MaximumPacketLength != 8)  && (MaximumPacketLength != 16) &&</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -      (MaximumPacketLength != 32) && (MaximumPacketLength != 64) &&</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -      (MaximumPacketLength != 512)</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -      )</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -  {</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> +  // Check for valid maximum packet size</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> +  if ((DeviceSpeed == EFI_USB_SPEED_SUPER) && (MaximumPacketLength ></p>
<p class="MsoPlainText">> 1024)) {</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>      return EFI_INVALID_PARAMETER;</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>    }</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -  if ((DeviceSpeed == EFI_USB_SPEED_LOW) && (MaximumPacketLength !=</p>
<p class="MsoPlainText">> 8)) {</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> +  if ((DeviceSpeed == EFI_USB_SPEED_HIGH) && (MaximumPacketLength ></p>
<p class="MsoPlainText">> 512)) {</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>      return EFI_INVALID_PARAMETER;</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>    }</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -  if ((DeviceSpeed == EFI_USB_SPEED_SUPER) && (MaximumPacketLength !=</p>
<p class="MsoPlainText">> 512)) {</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> +  if ((DeviceSpeed == EFI_USB_SPEED_FULL) && (MaximumPacketLength ></p>
<p class="MsoPlainText">> 64)) {</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>      return EFI_INVALID_PARAMETER;</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">>    }</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> --</p>
<p class="MsoPlainText">> 2.37.2</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText">> -=-=-=-=-=-=</p>
<p class="MsoPlainText">> Groups.io Links: You receive all messages sent to this group.</p>
<p class="MsoPlainText">> View/Reply Online (#96951): <a href="https://edk2.groups.io/g/devel/message/96951">
<span style="color:windowtext;text-decoration:none">https://edk2.groups.io/g/devel/message/96951</span></a></p>
<p class="MsoPlainText">> Mute This Topic: <a href="https://groups.io/mt/95465401/1768737">
<span style="color:windowtext;text-decoration:none">https://groups.io/mt/95465401/1768737</span></a></p>
<p class="MsoPlainText">> Group Owner: <a href="mailto:devel+owner@edk2.groups.io">
<span style="color:windowtext;text-decoration:none">devel+owner@edk2.groups.io</span></a></p>
<p class="MsoPlainText">> Unsubscribe: <a href="https://edk2.groups.io/g/devel/unsub">
<span style="color:windowtext;text-decoration:none">https://edk2.groups.io/g/devel/unsub</span></a> [hao.a.wu@intel.com]</p>
<p class="MsoPlainText">> -=-=-=-=-=-=</p>
<p class="MsoPlainText">> </p>
<p class="MsoPlainText"><o:p> </o:p></p>
</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/97060">View/Reply Online (#97060)</a> |    |  <a target="_blank" href="https://groups.io/mt/95465401/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>