IN SYSTEM_CONFIGURATION *SystemConfiguration\r
);\r
\r
+EFI_STATUS\r
+InstallPeiPchUsbPolicy (\r
+ IN CONST EFI_PEI_SERVICES **PeiServices\r
+ );\r
+\r
#ifndef __GNUC__\r
#pragma warning (push)\r
#pragma warning (disable : 4245)\r
IN UINT16 PlatformType\r
)\r
{\r
+ EFI_STATUS Status;\r
+ EFI_BOOT_MODE BootMode;\r
+\r
+ Status = PeiServicesGetBootMode (&BootMode);\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
IchRcrbInit (PeiServices, SystemConfiguration);\r
\r
+ if (BootMode == BOOT_IN_RECOVERY_MODE) {\r
+ InstallPeiPchUsbPolicy(PeiServices);\r
+ }\r
+\r
//\r
// PCH Policy Initialization based on Setup variable.\r
//\r
EFI_PEI_PPI_DESCRIPTOR *PeiPchUsbPolicyPpiDesc;\r
PCH_USB_POLICY_PPI *PeiPchUsbPolicyPpi;\r
PCH_USB_CONFIG *UsbConfig;\r
- EFI_PLATFORM_INFO_HOB PlatformInfo;\r
+\r
+ DEBUG ((EFI_D_INFO, "InstallPeiPchUsbPolicy...\n"));\r
\r
//\r
// Allocate descriptor and PPI structures. Since these are dynamically updated\r
UsbConfig->UsbPerPortCtl = PCH_DEVICE_DISABLE;\r
UsbConfig->Ehci1Usbr = PCH_DEVICE_DISABLE;\r
\r
- //\r
- // Initialize PlatformInfo HOB\r
- //\r
- ZeroMem (&PlatformInfo, sizeof(PlatformInfo));\r
- MultiPlatformInfoInit(PeiServices, &PlatformInfo);\r
-\r
UsbConfig->Usb20OverCurrentPins[0] = PchUsbOverCurrentPin0;\r
\r
UsbConfig->Usb20OverCurrentPins[1] = PchUsbOverCurrentPin0;\r
\r
PeiPchUsbPolicyPpi->EhciMemLength = (UINT32) 0x400 * PchEhciControllerMax;\r
\r
+ PeiPchUsbPolicyPpi->XhciMemBaseAddr = 0;\r
+\r
PeiPchUsbPolicyPpi->UsbConfig = UsbConfig;\r
\r
PeiPchUsbPolicyPpiDesc->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r