Files
system76-edk2/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
Henz, Patrick 43dcf453fc MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2948

XhciDxe uses the timer functionality provided by the
boot services table to detect timeout conditions. This
breaks the driver's ExitBootServices call back, as
CoreExitBootServices halts the timer before signaling
the ExitBootServices event. If the host controller
fails to halt in the call back, the timeout condition
will never occur and the boot gets stuck in an indefinite
spin loop. Use the free running timer provided by
TimerLib to calculate timeouts, avoiding the potential
hang.

Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Patrick Henz <patrick.henz@hpe.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2023-09-25 02:56:05 +00:00

73 lines
1.9 KiB
INI

## @file
# The XhciDxe driver is responsible for managing the behavior of XHCI controller.
# It implements the interfaces of monitoring the status of all ports and transferring
# Control, Bulk, Interrupt and Isochronous requests to those attached usb LS/FS/HS/SS devices.
#
# (C) Copyright 2023 Hewlett Packard Enterprise Development LP<BR>
# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = XhciDxe
MODULE_UNI_FILE = XhciDxe.uni
FILE_GUID = B7F50E91-A759-412c-ADE4-DCD03E7F7C28
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = XhcDriverEntryPoint
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 EBC ARM AARCH64
#
# DRIVER_BINDING = gXhciDriverBinding
# COMPONENT_NAME = gXhciComponentName
# COMPONENT_NAME2 = gXhciComponentName2
#
[Sources]
Xhci.c
XhciReg.c
XhciSched.c
UsbHcMem.c
UsbHcMem.h
ComponentName.c
ComponentName.h
Xhci.h
XhciReg.h
XhciSched.h
[Packages]
MdePkg/MdePkg.dec
[LibraryClasses]
MemoryAllocationLib
BaseLib
UefiLib
UefiBootServicesTableLib
UefiDriverEntryPoint
BaseMemoryLib
DebugLib
ReportStatusCodeLib
TimerLib
[Guids]
gEfiEventExitBootServicesGuid ## SOMETIMES_CONSUMES ## Event
[Protocols]
gEfiPciIoProtocolGuid ## TO_START
gEfiUsb2HcProtocolGuid ## BY_START
# [Event]
# EVENT_TYPE_PERIODIC_TIMER ## CONSUMES
#
[UserExtensions.TianoCore."ExtraFiles"]
XhciDxeExtra.uni