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:
@@ -6,14 +6,14 @@
|
||||
<GuidValue>93B80004-9FB3-11d4-9A3A-0090273FC14D</GuidValue>
|
||||
<Version>1.0</Version>
|
||||
<Abstract>Component description file for PciBus module.</Abstract>
|
||||
<Description>PCI bus driver. This module will probe all PCI devices and allocate MMIO and IO
|
||||
<Description>PCI bus driver. This module will probe all PCI devices and allocate MMIO and IO
|
||||
space for these devices.</Description>
|
||||
<Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
|
||||
<License>All rights reserved. This program and the accompanying materials
|
||||
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
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
<License>All rights reserved. This program and the accompanying materials
|
||||
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
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
|
||||
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||
</MsaHeader>
|
||||
@@ -56,6 +56,9 @@
|
||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||
<Keyword>PeCoffGetEntryPointLib</Keyword>
|
||||
</LibraryClass>
|
||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||
<Keyword>PcdLib</Keyword>
|
||||
</LibraryClass>
|
||||
</LibraryClassDefinitions>
|
||||
<SourceFiles>
|
||||
<Filename>PciBus.h</Filename>
|
||||
@@ -160,4 +163,16 @@
|
||||
<ComponentName>gPciBusComponentName</ComponentName>
|
||||
</Extern>
|
||||
</Externs>
|
||||
<PcdCoded>
|
||||
<PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">
|
||||
<C_Name>PcdPciIsaEnable</C_Name>
|
||||
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||
<HelpText>Whether ISA decoding is enabled on this platform so we should avoid those aliased resources</HelpText>
|
||||
</PcdEntry>
|
||||
<PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">
|
||||
<C_Name>PcdPciVgaEnable</C_Name>
|
||||
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||
<HelpText>Whether VGA decoding is enabled on this platform so we should avoid those aliased resources</HelpText>
|
||||
</PcdEntry>
|
||||
</PcdCoded>
|
||||
</ModuleSurfaceArea>
|
@@ -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