diff options
-rw-r--r-- | Vlv2TbltDevicePkg/PlatformInitPei/PchInitPeim.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/Vlv2TbltDevicePkg/PlatformInitPei/PchInitPeim.c b/Vlv2TbltDevicePkg/PlatformInitPei/PchInitPeim.c index 18ecda4a13..670fefc1c3 100644 --- a/Vlv2TbltDevicePkg/PlatformInitPei/PchInitPeim.c +++ b/Vlv2TbltDevicePkg/PlatformInitPei/PchInitPeim.c @@ -53,6 +53,11 @@ PchInitInterrupt ( IN SYSTEM_CONFIGURATION *SystemConfiguration
);
+EFI_STATUS
+InstallPeiPchUsbPolicy (
+ IN CONST EFI_PEI_SERVICES **PeiServices
+ );
+
#ifndef __GNUC__
#pragma warning (push)
#pragma warning (disable : 4245)
@@ -541,8 +546,18 @@ PlatformPchInit ( IN UINT16 PlatformType
)
{
+ EFI_STATUS Status;
+ EFI_BOOT_MODE BootMode;
+
+ Status = PeiServicesGetBootMode (&BootMode);
+ ASSERT_EFI_ERROR (Status);
+
IchRcrbInit (PeiServices, SystemConfiguration);
+ if (BootMode == BOOT_IN_RECOVERY_MODE) {
+ InstallPeiPchUsbPolicy(PeiServices);
+ }
+
//
// PCH Policy Initialization based on Setup variable.
//
@@ -721,7 +736,8 @@ InstallPeiPchUsbPolicy ( EFI_PEI_PPI_DESCRIPTOR *PeiPchUsbPolicyPpiDesc;
PCH_USB_POLICY_PPI *PeiPchUsbPolicyPpi;
PCH_USB_CONFIG *UsbConfig;
- EFI_PLATFORM_INFO_HOB PlatformInfo;
+
+ DEBUG ((EFI_D_INFO, "InstallPeiPchUsbPolicy...\n"));
//
// Allocate descriptor and PPI structures. Since these are dynamically updated
@@ -745,12 +761,6 @@ InstallPeiPchUsbPolicy ( UsbConfig->UsbPerPortCtl = PCH_DEVICE_DISABLE;
UsbConfig->Ehci1Usbr = PCH_DEVICE_DISABLE;
- //
- // Initialize PlatformInfo HOB
- //
- ZeroMem (&PlatformInfo, sizeof(PlatformInfo));
- MultiPlatformInfoInit(PeiServices, &PlatformInfo);
-
UsbConfig->Usb20OverCurrentPins[0] = PchUsbOverCurrentPin0;
UsbConfig->Usb20OverCurrentPins[1] = PchUsbOverCurrentPin0;
@@ -784,6 +794,8 @@ InstallPeiPchUsbPolicy ( PeiPchUsbPolicyPpi->EhciMemLength = (UINT32) 0x400 * PchEhciControllerMax;
+ PeiPchUsbPolicyPpi->XhciMemBaseAddr = 0;
+
PeiPchUsbPolicyPpi->UsbConfig = UsbConfig;
PeiPchUsbPolicyPpiDesc->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
|