From dd4047a51c56bae1080b357330ed99dcd286c766 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Thu, 17 Apr 2008 11:02:59 +0000 Subject: [PATCH] [Description]: Add a feature flag in Uhci & Ehci to disable legacy USB SMI. [Impaction]: Platform integrator can choose to legacy USB SMI or not. [Reference Info] EDK Tracker 1082 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5081 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c | 4 +++- MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h | 2 +- MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf | 5 ++++- MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c | 4 +++- MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h | 1 + MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf | 4 ++++ MdeModulePkg/MdeModulePkg.dec | 1 + 7 files changed, 17 insertions(+), 4 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c b/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c index 949aa0496a..0f711e1a0b 100644 --- a/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c +++ b/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c @@ -1580,7 +1580,9 @@ EhcDriverBindingStart ( // Robustnesss improvement such as for UoL // Default is not required. // - // EhcClearLegacySupport (Ehc); + if (FeaturePcdGet (PcdUsbLegacySupport)) { + EhcClearLegacySupport (Ehc); + } EhcResetHC (Ehc, EHC_RESET_TIMEOUT); Status = EhcInitHC (Ehc); diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h b/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h index 50a3f1c698..94e415e2a5 100644 --- a/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h +++ b/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h @@ -36,7 +36,7 @@ Revision History #include #include #include - +#include #include diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf b/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf index 5534bc8b5c..423a04285f 100644 --- a/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf +++ b/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf @@ -49,7 +49,10 @@ [Packages] MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdUsbLegacySupport [LibraryClasses] MemoryAllocationLib @@ -59,7 +62,7 @@ UefiDriverEntryPoint BaseMemoryLib DebugLib - + PcdLib [Protocols] gEfiPciIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c index 0fc633d8bb..f0aedc753f 100644 --- a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c +++ b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c @@ -1658,7 +1658,9 @@ UhciDriverBindingStart ( // Robustnesss improvement such as for UoL // Default is not required. // - // UhciTurnOffUsbEmulation (PciIo); + if (FeaturePcdGet (PcdUsbLegacySupport)) { + UhciTurnOffUsbEmulation (PciIo); + } Status = PciIo->Attributes ( PciIo, diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h index d0aea616f5..73f9fe2c0f 100644 --- a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h +++ b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h @@ -39,6 +39,7 @@ Revision History #include #include #include +#include #include diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf index 4f46bf5bb1..818ff6dade 100644 --- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf +++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf @@ -49,7 +49,10 @@ [Packages] MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdUsbLegacySupport [LibraryClasses] MemoryAllocationLib @@ -59,6 +62,7 @@ UefiDriverEntryPoint BaseMemoryLib DebugLib + PcdLib [Protocols] diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 44ab3f987b..78f298ac60 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -128,6 +128,7 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst|TRUE|BOOLEAN|0x00010044 gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHardwareErrorRecord|FALSE|BOOLEAN|0x00010045 gEfiMdeModulePkgTokenSpaceGuid.PcdUgaConsumeSupport|TRUE|BOOLEAN|0x00010046 + gEfiMdeModulePkgTokenSpaceGuid.PcdUsbLegacySupport|FALSE|BOOLEAN|0x00010047 [PcdsFixedAtBuild.common] gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry|0x08|UINT32|0x0001000f -- 2.39.2