This check-in fixed the following bugs:
1. Pci22.h EFI_LEGACY_EXPANSION_ROM_HEADER definition error (MdePkg\Include\IndustryStandard\Pci22.h; Tools\CCode\Source\Include\IndustryStandard\Pci22.h) 2. SetVariable() with DataSize=0xffffffff will cause system hang (EdkModulePkg\Universal\Variable\RuntimeDxe\Variable.c) 3. Windows XP Pro & XP HOME Fails to Install from Retail CD (EdkModulePkg\Bus\Pci\Pcibus\Dxe\PciResourceSupport.c) 4. Pci22.h header file needs to add some recent type (MdePkg\Include\IndustryStandard\Pci22.h; Tools\CCode\Source\Include\IndustryStandard\Pci22.h) 5. Fix issues when ODD cannot boot from Sil0680 PCI-IDE controller (EdkModulePkg\Bus\Pci\PciBus\Dxe\PciOptionromSupport.c; EdkModulePkg\Bus\Pci\PciBus\Dxe\PciBus.msa; EdkModulePkg\ EdkModulePkg.spd) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1900 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -241,11 +241,24 @@ Returns:
|
||||
LIST_ENTRY *CurrentLink;
|
||||
PCI_RESOURCE_NODE *Node;
|
||||
UINT64 offset;
|
||||
BOOLEAN IsaEnable;
|
||||
BOOLEAN VGAEnable;
|
||||
|
||||
//
|
||||
// Always assume there is ISA device and VGA device on the platform
|
||||
// will be customized later
|
||||
//
|
||||
IsaEnable = FALSE;
|
||||
VGAEnable = FALSE;
|
||||
|
||||
if (FeaturePcdGet (PcdPciIsaEnable)){
|
||||
IsaEnable = TRUE;
|
||||
}
|
||||
|
||||
if (FeaturePcdGet (PcdPciVgaEnable)){
|
||||
VGAEnable = TRUE;
|
||||
}
|
||||
|
||||
Aperture = 0;
|
||||
|
||||
if (!Bridge) {
|
||||
@@ -278,6 +291,34 @@ Returns:
|
||||
// become too limited to meet the requirement of most of devices.
|
||||
//
|
||||
|
||||
if (IsaEnable || VGAEnable) {
|
||||
if (!IS_PCI_BRIDGE (&(Node->PciDev->Pci)) && !IS_CARDBUS_BRIDGE (&(Node->PciDev->Pci))) {
|
||||
//
|
||||
// Check if there is need to support ISA/VGA decoding
|
||||
// If so, we need to avoid isa/vga aliasing range
|
||||
//
|
||||
if (IsaEnable) {
|
||||
SkipIsaAliasAperture (
|
||||
&Aperture,
|
||||
Node->Length
|
||||
);
|
||||
offset = Aperture & (Node->Alignment);
|
||||
if (offset) {
|
||||
Aperture = Aperture + (Node->Alignment + 1) - offset;
|
||||
}
|
||||
} else if (VGAEnable) {
|
||||
SkipVGAAperture (
|
||||
&Aperture,
|
||||
Node->Length
|
||||
);
|
||||
offset = Aperture & (Node->Alignment);
|
||||
if (offset) {
|
||||
Aperture = Aperture + (Node->Alignment + 1) - offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Node->Offset = Aperture;
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user