@@ -103,6 +103,48 @@ PCI_OPTION_ROM_TABLE mPciOptionRomTable[] = {
}
};
+/*++
+
+ Routine Description:
+
+ Perform Platform initialization first in PciPlatform.
+
+ Arguments:
+
+ Returns:
+
+ VOID.
+
+--*/
+VOID
+EFIAPI
+PciInitPlatform (
+ VOID
+ );
+
+/*++
+
+ Routine Description:
+
+ Perform Platform initialization by the phase indicated.
+
+ Arguments:
+
+ HostBridge - The associated PCI host bridge handle.
+ Phase - The phase of the PCI controller enumeration.
+ ChipsetPhase - Defines the execution phase of the PCI chipset driver.
+
+ Returns:
+
+--*/
+VOID
+EFIAPI
+PhaseNotifyPlatform (
+ IN EFI_HANDLE HostBridge,
+ IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE Phase,
+ IN EFI_PCI_CHIPSET_EXECUTION_PHASE ChipsetPhase
+ );
+
EFI_STATUS
EFIAPI
GetPlatformPolicy (
@@ -387,6 +429,7 @@ Returns:
--*/
{
+ PhaseNotifyPlatform (HostBridge, Phase, ChipsetPhase);
return EFI_SUCCESS;
}
@@ -415,6 +458,8 @@ Returns:
EFI_STATUS Status;
PCI_PLATFORM_PRIVATE_DATA *PciPrivateData;
+ PciInitPlatform ();
+
PciPrivateData = AllocateZeroPool (sizeof (PCI_PLATFORM_PRIVATE_DATA));
mPciPrivateData = PciPrivateData;
@@ -38,6 +38,7 @@
ArmLib
IoLib
MemoryAllocationLib
+ PciPlatformLib
[Protocols]
gEfiPciPlatformProtocolGuid