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;