Fix the bug that the device claiming too much resource cannot be rejected by the PciBus driver.
Signed-off-by: Ruiyu Ni<ruiyu.ni@intel.com> Reviewed-by: Elvin Li<elvin.li@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14043 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
f71ed839e1
commit
724f26a9d0
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
PCI eunmeration implementation on entire PCI bus system for PCI Bus module.
|
PCI eunmeration implementation on entire PCI bus system for PCI Bus module.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -1035,6 +1035,11 @@ PciHostBridgeAdjustAllocation (
|
|||||||
//
|
//
|
||||||
Status = RejectPciDevice (PciResNode->PciDev);
|
Status = RejectPciDevice (PciResNode->PciDev);
|
||||||
if (Status == EFI_SUCCESS) {
|
if (Status == EFI_SUCCESS) {
|
||||||
|
DEBUG ((
|
||||||
|
EFI_D_ERROR,
|
||||||
|
"PciBus: [%02x|%02x|%02x] was rejected due to resource confliction.\n",
|
||||||
|
PciResNode->PciDev->BusNumber, PciResNode->PciDev->DeviceNumber, PciResNode->PciDev->FunctionNumber
|
||||||
|
));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Raise the EFI_IOB_EC_RESOURCE_CONFLICT status code
|
// Raise the EFI_IOB_EC_RESOURCE_CONFLICT status code
|
||||||
@ -1867,7 +1872,7 @@ NotifyPhase (
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Internal library implementation for PCI Bus module.
|
Internal library implementation for PCI Bus module.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -568,6 +568,12 @@ PciHostBridgeResourceAllocator (
|
|||||||
RootBridgeDev->Handle,
|
RootBridgeDev->Handle,
|
||||||
AcpiConfig
|
AcpiConfig
|
||||||
);
|
);
|
||||||
|
//
|
||||||
|
// If SubmitResources returns error, PciBus isn't able to start.
|
||||||
|
// It's a fatal error so assertion is added.
|
||||||
|
//
|
||||||
|
DEBUG ((EFI_D_INFO, "PciBus: HostBridge->SubmitResources() - %r\n", Status));
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -598,6 +604,7 @@ PciHostBridgeResourceAllocator (
|
|||||||
// Notify platform to start to program the resource
|
// Notify platform to start to program the resource
|
||||||
//
|
//
|
||||||
Status = NotifyPhase (PciResAlloc, EfiPciHostBridgeAllocateResources);
|
Status = NotifyPhase (PciResAlloc, EfiPciHostBridgeAllocateResources);
|
||||||
|
DEBUG ((EFI_D_INFO, "PciBus: HostBridge->NotifyPhase(AllocateResources) - %r\n", Status));
|
||||||
if (!FeaturePcdGet (PcdPciBusHotplugDeviceSupport)) {
|
if (!FeaturePcdGet (PcdPciBusHotplugDeviceSupport)) {
|
||||||
//
|
//
|
||||||
// If Hot Plug is not supported
|
// If Hot Plug is not supported
|
||||||
|
Loading…
x
Reference in New Issue
Block a user