This check-in fix the issue by adding a flag to indicate if a HPC is found during PCI enumeration or not. This check-in also adds a debug message if any found HPC failed with initialization.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11081
6f19259b-4bc3-4df7-8a09-
765794883524
/** @file\r
PCI Hot Plug support functions implementation for PCI Bus module..\r
\r
-Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
do {\r
for (Index = 0; Index < gPciRootHpcCount; Index++) {\r
\r
- if (!gPciRootHpcData[Index].Initialized) {\r
+ if (gPciRootHpcData[Index].Found && !gPciRootHpcData[Index].Initialized) {\r
break;\r
}\r
}\r
/** @file\r
PCI Hot Plug support functions declaration for PCI Bus module.\r
\r
-Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
//\r
typedef struct {\r
EFI_EVENT Event;\r
+ BOOLEAN Found;\r
BOOLEAN Initialized;\r
VOID *Padding;\r
} ROOT_HPC_DATA;\r
// Check if it is a Hotplug PCI controller\r
//\r
if (IsRootPciHotPlugController (PciDevice->DevicePath, &HpIndex)) {\r
+ gPciRootHpcData[HpIndex].Found = TRUE;\r
\r
if (!gPciRootHpcData[HpIndex].Initialized) {\r
\r
Status = AllRootHPCInitialized (STALL_1_SECOND * 15);\r
\r
if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "Some root HPC failed to initialize\n"));\r
return Status;\r
}\r
\r