Re: [Patch V4] MdeModulePkg/XhciDxe: Error handle for USB slot initialization failure


Wu, Hao A
 

Hello Jon,

I have merged Heng's patch into the edk2 repository.
Could you help to rebase your patch onto the latest codebase?

Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: Jon Hunter <jonathanh@nvidia.com>
Sent: Friday, October 23, 2020 9:04 PM
To: Wu, Hao A <hao.a.wu@intel.com>; Luo, Heng <heng.luo@intel.com>;
devel@edk2.groups.io; jbrasen@nvidia.com
Cc: Ni, Ray <ray.ni@intel.com>
Subject: Re: [Patch V4] MdeModulePkg/XhciDxe: Error handle for USB slot
initialization failure

Hi Hao,

No problem, next week is fine.

Thanks
Jon

On 23/10/2020 13:44, Wu, Hao A wrote:
Hello Jon,

Thanks for the testing effort.
If you patch is not urgent, could you hold your v2 patch until I merge
Heng's patch into the codebase?

I will do it early next week and will inform you as soon as it is done.
Does it sound good to you? Sorry for the inconvenience.

Best Regards,
Hao Wu

-----Original Message-----
From: Jon Hunter <jonathanh@nvidia.com>
Sent: Friday, October 23, 2020 5:50 PM
To: Wu, Hao A <hao.a.wu@intel.com>; Luo, Heng <heng.luo@intel.com>;
devel@edk2.groups.io; jbrasen@nvidia.com
Cc: Ni, Ray <ray.ni@intel.com>
Subject: Re: [Patch V4] MdeModulePkg/XhciDxe: Error handle for USB
slot initialization failure

Hi Hao,

Thanks. Yes this works with my patch. I will send out a V2 for my patch
shortly.
For this patch you can add my ...

Tested-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>

Cheers
Jon

On 23/10/2020 03:52, Wu, Hao A wrote:
Hello Jon,

Could you help to check of this version will co-work with your patch?
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: Luo, Heng <heng.luo@intel.com>
Sent: Friday, October 23, 2020 9:26 AM
To: devel@edk2.groups.io
Cc: Ni, Ray <ray.ni@intel.com>; Wu, Hao A <hao.a.wu@intel.com>
Subject: [Patch V4] MdeModulePkg/XhciDxe: Error handle for USB slot
initialization failure

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3007

Currently UsbDevContext is not cleaned up if USB slot
initialization is failed, the wrong context data will affect next
USB devices and the USB devices can not be enumerated.
Need to disable slot if USB slot initialization is failed.

Below test cases are passed on UpXtreme:
a. USB 3.0 thumb drives can be recognized in UEFI shell b. SUT can
boot to Puppylinux from USB3.0 mass storage, the storage can be
recognized in linux c. Plug in a USB keyboard (hot plug) and
enumeration is OK in UEFI shell and linux d. Plug in a USB
mouse(hot
plug) and enumeration is OK in linux.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Signed-off-by: Heng Luo <heng.luo@intel.com>
---
MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c
b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c
index 9cb115363c..00e9cc63d6 100644
--- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c
+++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c
@@ -2,7 +2,7 @@
XHCI transfer scheduling routines. -Copyright (c) 2011 - 2018,
Intel Corporation. All rights reserved.<BR>+Copyright (c) 2011 -
2020, Intel Corporation. All rights reserved.<BR> Copyright (c)
Microsoft Corporation.<BR> SPDX-License-Identifier:
BSD-2-Clause-Patent @@ -2279,6
+2279,9 @@ XhcInitializeDeviceSlot (
DeviceAddress = (UINT8) ((DEVICE_CONTEXT *) OutputContext)-
Slot.DeviceAddress; DEBUG ((EFI_D_INFO, " Address %d assigned
successfully\n", DeviceAddress)); Xhc-
UsbDevContext[SlotId].XhciDevAddr = DeviceAddress;+ } else {+
DEBUG
((DEBUG_INFO, " Address %d assigned unsuccessfully\n"));+
XhcDisableSlotCmd (Xhc, SlotId); } return Status;@@ -2489,7
+2492,11
@@
XhcInitializeDeviceSlot64 (
DeviceAddress = (UINT8) ((DEVICE_CONTEXT_64 *) OutputContext)-
Slot.DeviceAddress; DEBUG ((EFI_D_INFO, " Address %d assigned
successfully\n", DeviceAddress)); Xhc-
UsbDevContext[SlotId].XhciDevAddr = DeviceAddress;+ } else {+
DEBUG
((DEBUG_INFO, " Address %d assigned unsuccessfully\n"));+
XhcDisableSlotCmd64 (Xhc, SlotId); }+ return Status; } --
2.24.0.windows.2
--
nvpublic
--
nvpublic

Join devel@edk2.groups.io to automatically receive all group messages.