Update 8259 PCDs to support Dynamic and DynamicEx and PatchableInModule

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11618 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney 2011-05-04 20:56:30 +00:00
parent ef73b0a612
commit 856f592ccf
3 changed files with 14 additions and 11 deletions

View File

@ -1,7 +1,7 @@
/** @file
This contains the installation function for the driver.
Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>
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
@ -38,9 +38,9 @@ UINT8 mMasterBase = 0xff;
UINT8 mSlaveBase = 0xff;
EFI_8259_MODE mMode = Efi8259ProtectedMode;
UINT16 mProtectedModeMask = 0xffff;
UINT16 mLegacyModeMask = FixedPcdGet16(Pcd8259LegacyModeMask);
UINT16 mLegacyModeMask;
UINT16 mProtectedModeEdgeLevel = 0x0000;
UINT16 mLegacyModeEdgeLevel = FixedPcdGet16(Pcd8259LegacyModeEdgeLevel);
UINT16 mLegacyModeEdgeLevel;
//
// Worker Functions
@ -588,6 +588,12 @@ Install8259 (
EFI_STATUS Status;
EFI_8259_IRQ Irq;
//
// Initialze mask values from PCDs
//
mLegacyModeMask = PcdGet16 (Pcd8259LegacyModeMask);
mLegacyModeEdgeLevel = PcdGet16 (Pcd8259LegacyModeEdgeLevel);
//
// Clear all pending interrupt
//

View File

@ -1,7 +1,7 @@
## @file
# 8259 Interrupt Controller driver
#
# Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>
# 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
@ -40,9 +40,9 @@
gEfiLegacy8259ProtocolGuid # PROTOCOL ALWAYS_PRODUCED
gEfiPciIoProtocolGuid
[FixedPcd]
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeMask|0xFFFF
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000
[Pcd]
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeMask
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel
[Depex]
TRUE

View File

@ -22,7 +22,7 @@
PACKAGE_GUID = B728689A-52D3-4b8c-AE89-2CE5514CC6DC
PACKAGE_VERSION = 0.1
[PcdsFixedAtBuild]
[PcdsFixedAtBuild, PcdsDynamic, PcdsDynamicEx, PcdsPatchableInModule]
## Pcd8259LegacyModeMask defines the default mask value for platform. This value is determined
# 1) If platform only support pure UEFI, value should be set to 0xFFFF or 0xFFFE;
# Because only clock interrupt is allowed in legacy mode in pure UEFI platform.
@ -34,8 +34,6 @@
# b) If all thunk call provied by CSM binary do not require legacy interrupt support, value should be set
# to 0xFFFF or 0xFFFE.
#
# Because the value is used as intialization value, PCD's type should be FixedAtBuild.
#
# The default value of legacy mode mask could be changed by EFI_LEGACY_8259_PROTOCOL->SetMask(). But it is rarely
# need change it except some special cases such as when initializing the CSM binary, it should be set to 0xFFFF to
# mask all legacy interrupt. Please restore the original legacy mask value if changing is made for these special case.
@ -45,7 +43,6 @@
## Pcd8259LegacyModeEdgeLevel defines the default edge level for legacy mode's interrrupt controller.
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000|UINT16|0x00000002
[PcdsFixedAtBuild, PcdsDynamic, PcdsPatchableInModule]
## This PCD specifies whether we need enable IsaAcpiCom1 device.
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom1Enable|TRUE|BOOLEAN|0x00000003