From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id D3748D80A15 for ; Wed, 16 Aug 2023 16:49:33 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=5xGPYQoblTYymet9+t/Q2g29wgpj2bBG7yxJlL8Xh9I=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1692204572; v=1; b=aPg5B74UzAapkpnrmjJp4p0YK6GRYYAAHiJTr5WfBlyPYe6KrqFHBUUaQRCVzgeM2aysOwF9 G6azDJIJ+PwnT6BA+cF6K3tG3TsdKGceSz7TzS7ncYdacv2BAq7kZ/IBtn6qQsIaXJaDqE6/uYF l+5CSQuOxu1Qtt87Id8H2laU= X-Received: by 127.0.0.2 with SMTP id WujaYY7687511x7mModVFFru; Wed, 16 Aug 2023 09:49:32 -0700 X-Received: from NAM02-BN1-obe.outbound.protection.outlook.com (NAM02-BN1-obe.outbound.protection.outlook.com [40.107.212.66]) by mx.groups.io with SMTP id smtpd.web10.165893.1692204571714072063 for ; Wed, 16 Aug 2023 09:49:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FPQjTpdN7j6zVYcAt0+HaOGGH9H8rxxfvgtWo1dSTI4yDwax+WXVqZpWP8JZYyv66oMSp2d9mUh7PlDFgw2nBpXjhC+JAGJQF54JZCxDowL1ahEDWkZ9pdXHKP/aXndI0wpKhNlVukp92nxt03HYFELOBH4grA+Tj3VgiCBofQRqKHLL2VylcpjaHy/iubqP6jx76dtaIsa/Pb75DDOCC2AjeaICRo62DFXPjTMGKJ69I3bC1fC+zRKcQVNqBVze3T4JsiL8evW586jDf41YurieEBGOjuuxYy0eImaVWuIsLwX+vOJ2sr6u3q7gb+jn22fIL/zeKY6E20klEVV53w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2GaB6gKDr5xjHUa5VEn0imIAR2ADUWEKmAfTqBD1eAg=; b=GvhL1WrKu31ewVzSmluNgV1zBrpMDXujYL8Smnx9x57mU+r/+8EkfKbLCSOHR/682rDLDCD6kfHcOFvVQ3JXANnyfkIBE8ikoQvDFJpQhS+qEcbNVmioDsSx91DIos1FsNlIkRkq5eebQEdLZOnmtehC2eqOQkzfrSLvxuD6464frpnDnoNGCx7kfhIFHgPgr7Q0H7njRd3jdv6oTzFWksXu3Bl43ZvFn/hkvVMdDXQRZWS8l8Umqv5EMyrKMklzzaX6DKjBinKI+SFKVOPTuvKz2SlSjLNw6f3O/cydCEV0VmPfInPaNLh9FvoY6MjflK0KAYaOVSp+YZk8HiKvMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from IA1PR12MB6068.namprd12.prod.outlook.com (2603:10b6:208:3ec::10) by BY5PR12MB4902.namprd12.prod.outlook.com (2603:10b6:a03:1dd::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6678.29; Wed, 16 Aug 2023 16:49:26 +0000 X-Received: from IA1PR12MB6068.namprd12.prod.outlook.com ([fe80::baf1:5f21:54f1:3ebb]) by IA1PR12MB6068.namprd12.prod.outlook.com ([fe80::baf1:5f21:54f1:3ebb%4]) with mapi id 15.20.6678.025; Wed, 16 Aug 2023 16:49:26 +0000 From: "Chesley, Brit via groups.io" To: "Wu, Hao A" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Gao, Liming" , "Ni, Ray" , "Chang, Abner" Subject: Re: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: UsbBusDxe: Rebuild Descriptor Table Thread-Topic: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: UsbBusDxe: Rebuild Descriptor Table Thread-Index: AQHZsPWQ4t+8Y8P3zEmG6icey3EW8q/TnlCggBm/PqA= Date: Wed, 16 Aug 2023 16:49:26 +0000 Message-ID: References: <20230707170709.45-1-brit.chesley@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=72a4cd6c-c552-4011-a674-c46b050e2c9d;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-08-16T16:35:59Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR12MB6068:EE_|BY5PR12MB4902:EE_ x-ms-office365-filtering-correlation-id: 380a9950-f207-4226-4de4-08db9e78c06d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: c2HkLzd/t1yeWOF1Nmcl0Xjgdsu5O3Sr85sPtIJhnLAbDGVdHIAaLYNfy3D4duilYe5nD/z8JYPeJ1SAiqpb8v2zmhc2FpYk2XDjAg3PWbhO0CAvIiOXd5G0ZxyB9T5lgBFMgZ0JOyzqdEORcL0NSenHD40m7Btm5wMB60Rh0CZayPiv6qrhyWiqvIHuPfwMu4YbX7UYjpxNpxZqZMNG7NiVzorjv/nv54ozIHme+j9RUkVBRTIo/BvHknach710G+Qy6oKc8LUl+F7BFt5SahYMJxY7dfbd8NPkmurPRmIjLq3i5yXqk+EorrliGiaXfDB6usmTPRXkjcIF6jLhPcAE1yfb2Z6tyQRfdw42XEuxWbsAQ+03JUWhhfS6llNOQDKgJRfDiW/ciJFbm8TBNJ7gXVN2OITCclymdA4u72QpWethkmtEjBA5XDcPKwBq/6Dnh4c0b06AHOSg1z8OVcO3HKjKeqeMgcN+N9dvLFGnfrhwOeT8+fyXwqZ4AOu2RPuv/dl9r+PR55IRq0l2xgYyEVqne3ph7NaxsZnCyX1KQo6D3wpbPo54E9NIB0Pjduh+VNaHR6tIltswmiA40kvzbeyrb0lMOvxK7wQT7NE= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?kUr5H8Dku6zLkWeOSVnh2HzJWa5HOgGmUfcrDY8mhrudDinlmwlztufxUxbz?= =?us-ascii?Q?7BbwDS84afPmeIELvi61pmaUAuL6SSPptHKS93fcEnKjj/xe8GeCKUuD9KWS?= =?us-ascii?Q?87QDqQsInsnhoMX6A94hlAJr07wwwGrGPedOYhsoCAxhV11mxZpvzfkC992p?= =?us-ascii?Q?PqGSJdvXW2Lo0SVmul44pvbOsZat4xzqPF+nE3kuGasE9vO7+eehW6frbsso?= =?us-ascii?Q?W+Y9xbA+YpU17N2i74wBHOf00NaMYt7h3h3L8zcezkMPjsUzqPmT4oaLBbFU?= =?us-ascii?Q?WpyREdmFG5Kyug/tTHGfvpCRyboNTTPGim9NTVZH1ucZL3IeFevti/jg5OHf?= =?us-ascii?Q?VYGRgW1YLAqa6oyZ3x1WzGEfyyPDA7vE4fzcTONt1hZ8X9mZCROK+nYYgeEC?= =?us-ascii?Q?A0NWMlznpIdbRB2cfIe04FQqeWHm087y9IwNP4ZQpprpXVhzJYXAwOzV1wD9?= =?us-ascii?Q?r3GSdcbDGWUJIKazOYZBQS0xjUgLzK1YDC7Ytb2YfFTwq1TTEMEMxtbzgbpO?= =?us-ascii?Q?RS62C4as5uZj+Xu6f0uGs0dD9XjoYdu45MtMMwgN3K1WK7ZsR4FC3NYrYEju?= =?us-ascii?Q?BUmZC7vLjJRShnqJop1sfDcmtN8Cra9j2RNaiqXuho9RPeD+Ye9LvhWP6YYU?= =?us-ascii?Q?rh6YNfkEnpoLxJUG5LfdVeg5Op5SGZKOXJOlYMtXqdm4wPw7EQmtGWTyjjAM?= =?us-ascii?Q?X5IxqBAzdkcviPNsQrNCIgGkh3AQaSxz9x1vYT5v9TwJc8jTBE4fla3LNp7k?= =?us-ascii?Q?Ikp1dgKwYTkOvNonbIMw0v9HZ5tfHSOSjD0JpOce9RJlzVh51ANYt7IbMknY?= =?us-ascii?Q?ODvICDMawWuk7h3somLS2IxeiwhGPyqSjEXzQ32a7MzNoegeg2/y9ZfzvGwm?= =?us-ascii?Q?cA+9Iq+DUvQGDXF5IbrJsPjdITzwN4sIc8sU8ReIQ3uU5JpI0dWQHXr8NWKw?= =?us-ascii?Q?ftR1bzrD4s0vgWHnv3yjeFO8ZvyrQThx6aza12yu3hA4MJMFY50TH6Eayvq8?= =?us-ascii?Q?xVUG6U/HixtTw5k0QrNSCry07sspPUuvHxS4eBFT5VWm5IH9cavPbvQvdKPR?= =?us-ascii?Q?1q0yv73jhsVWQT3yZkLIioYDDSs368MOzqPdLbSN/bFz1yjrmQQMa1Ecqr5L?= =?us-ascii?Q?+riN4EvouQRPNnWBZlPj0j/wL97IZLIPfyYQzXBU7e4wbNI43ximT0jkOgCz?= =?us-ascii?Q?R9ij6rxkbx3OlrT/W3kStapBnm+lPAJ14L8PlIn7kB2W8iOrhiBjR3P4Z91U?= =?us-ascii?Q?v94rgWFpogSvS09emDurpcbpH10rr8Ea6ce9sHi1qQnw3yfd8ivgZjIQIp/D?= =?us-ascii?Q?Z1njaZh/QLWorYND+tn7dwyTFmPFOnYBxetIRKhnICIUzAoy9q/NhnVrxwUK?= =?us-ascii?Q?kXxHwi9LQT0aGqN8fEMoiH3Z43jJU4ajjxpQj8tGuwbLg4bYTvM7nv/LLjzD?= =?us-ascii?Q?GrTcOSbk8q9xAu5L4mc29yfPGtnOqIuRWIm8QYHYQ3mzJSUhvG0Wz9S2ioIM?= =?us-ascii?Q?3aujMa2LevlqEK2EzJ/q7azQsnuJuShBNYXJ2XQt2whKM8kI4XN0Junzobsz?= =?us-ascii?Q?dMUo6PFhM4b6hNMmnvg=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR12MB6068.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 380a9950-f207-4226-4de4-08db9e78c06d X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2023 16:49:26.4654 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qEBFYcqVboGLeSzJ6uDKstFsvpCvO0ZU/dQzkAfeifRGx3qSO7Y0a+Nlsnd/850zVMjY1bCyBbeeqLwV5p/Nrw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4902 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,brit.chesley@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: U4M3BpputRQ6Qq1CutvcSgvUx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=aPg5B74U; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=none; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") [AMD Official Use Only - General] Hello Hao, Its no problem. I agree that the endpoint transfer rings should be allocate= d after the UsbSetConfig command, but this is not the case. In XhcControlTr= ansfer, after the if statement checking for USB_REQ_SET_CONFIG, the for-loo= p loops through all of DevDesc.NumConfigurations and calls XhcSetConfigCmd.= The issue here is that after a reset is issued XhcInitializeDeviceSlot64 i= s called which frees Xhc->UsbDevContext[SlotId]. This sets Xhc->UsbDevConte= xt[SlotId].DevDesc.NumConfigurations to 0. So XhcSetConfigCmd is never call= ed, and the other endpoint transfer rings besides the default are never rei= nitialized. From what I could tell the easiest way to reacquire the proper = NumConfigurations value was to call UsbBuildDescTable for the device. Best, Brit Chesley > -----Original Message----- > From: Wu, Hao A > Sent: Monday, July 31, 2023 2:37 AM > To: devel@edk2.groups.io; Chesley, Brit > Cc: Wang, Jian J ; Gao, Liming > ; Ni, Ray ; Chang, Abner > > Subject: RE: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: UsbBusDxe: Rebuild > Descriptor Table > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of > > brit.chesley via groups.io > > Sent: Saturday, July 8, 2023 1:07 AM > > To: devel@edk2.groups.io > > Cc: Wang, Jian J ; Gao, Liming > > ; Wu, Hao A ; Ni, Ray > > ; Abner Chang > > Subject: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: UsbBusDxe: Rebuild > > Descriptor Table > > > > From: Britton Chesley > > > > Fixed a bug which led to an ASSERT due to the USB device context being > > maintained after a port reset, but the underlying XHCI context was > > uninitialized. Specifically, Xhc->UsbDevContext is freed after a reset > > and only re-allocates the default [0] enpoint transfer ring. Added > > build > > > Really sorry for another question. > > My take is that the transfer ring of other endpoints (besides the Default > Control Endpoint) will be re-initialized by the below flow: > UsbSetConfig -> UsbCtrlRequest (USB_REQ_SET_CONFIG) -> > XhcSetConfigCmd(64) -> XhcInitializeEndpointContext(64) > > Could you help to elaborate a bit more on what is the issue with the abov= e > (current) flow and why rebuilding the Descriptor Table before UsbSetConfi= g > can resolve it? > > Thanks in advance. > > Best Regards, > Hao Wu > > > > descriptor table call in UsbIoPortReset. BZ 4456 > > > > Cc: Jian J Wang > > Cc: Liming Gao > > Cc: Hao A Wu > > Cc: Ray Ni > > Cc: Abner Chang > > Signed-off-by: Britton Chesley > > --- > > MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c | 26 > > ++++++++++++++++++++++++- > > 1 file changed, 25 insertions(+), 1 deletion(-) > > > > diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c > > b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c > > index c25f3cc2f279..a5b798bd8d6c 100644 > > --- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c > > +++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c > > @@ -821,6 +821,7 @@ UsbIoPortReset ( > > EFI_TPL OldTpl; > > EFI_STATUS Status; > > UINT8 DevAddress; > > + UINT8 Config; > > > > OldTpl =3D gBS->RaiseTPL (USB_BUS_TPL); > > > > @@ -882,8 +883,26 @@ UsbIoPortReset ( > > // is in CONFIGURED state. > > // > > if (Dev->ActiveConfig !=3D NULL) { > > - Status =3D UsbSetConfig (Dev, Dev->ActiveConfig- > >Desc.ConfigurationValue); > > + UsbFreeDevDesc (Dev->DevDesc); > > > > + Status =3D UsbRemoveConfig (Dev); > > + if (EFI_ERROR (Status)) { > > + DEBUG ((DEBUG_ERROR, "UsbIoPortReset: Failed to remove > > configuration - %r\n", Status)); > > + } > > + > > + Status =3D UsbGetMaxPacketSize0 (Dev); > > + if (EFI_ERROR (Status)) { > > + DEBUG ((DEBUG_ERROR, "UsbIoPortReset: Failed to get max packet > > + size - > > %r\n", Status)); > > + } > > + > > + Status =3D UsbBuildDescTable (Dev); > > + if (EFI_ERROR (Status)) { > > + DEBUG ((DEBUG_ERROR, "UsbIoPortReset: Failed to build > > + descriptor > > table - %r\n", Status)); > > + } > > + > > + Config =3D Dev->DevDesc->Configs[0]->Desc.ConfigurationValue; > > + > > + Status =3D UsbSetConfig (Dev, Config); > > if (EFI_ERROR (Status)) { > > DEBUG (( > > DEBUG_ERROR, > > @@ -892,6 +911,11 @@ UsbIoPortReset ( > > Status > > )); > > } > > + > > + Status =3D UsbSelectConfig (Dev, Config); > > + if (EFI_ERROR (Status)) { > > + DEBUG ((DEBUG_ERROR, "UsbIoPortReset: Failed to set > > + configuration - > > %r\n", Status)); > > + } > > } > > > > ON_EXIT: > > -- > > 2.36.1 > > > > > > > >=20 > > -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107798): https://edk2.groups.io/g/devel/message/107798 Mute This Topic: https://groups.io/mt/100010162/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-