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

View File

@ -1,7 +1,7 @@
## @file ## @file
# 8259 Interrupt Controller driver # 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 # 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
@ -40,9 +40,9 @@
gEfiLegacy8259ProtocolGuid # PROTOCOL ALWAYS_PRODUCED gEfiLegacy8259ProtocolGuid # PROTOCOL ALWAYS_PRODUCED
gEfiPciIoProtocolGuid gEfiPciIoProtocolGuid
[FixedPcd] [Pcd]
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeMask|0xFFFF gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeMask
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000 gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel
[Depex] [Depex]
TRUE TRUE

View File

@ -22,7 +22,7 @@
PACKAGE_GUID = B728689A-52D3-4b8c-AE89-2CE5514CC6DC PACKAGE_GUID = B728689A-52D3-4b8c-AE89-2CE5514CC6DC
PACKAGE_VERSION = 0.1 PACKAGE_VERSION = 0.1
[PcdsFixedAtBuild] [PcdsFixedAtBuild, PcdsDynamic, PcdsDynamicEx, PcdsPatchableInModule]
## Pcd8259LegacyModeMask defines the default mask value for platform. This value is determined ## 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; # 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. # 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 # b) If all thunk call provied by CSM binary do not require legacy interrupt support, value should be set
# to 0xFFFF or 0xFFFE. # 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 # 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 # 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. # 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. ## Pcd8259LegacyModeEdgeLevel defines the default edge level for legacy mode's interrrupt controller.
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000|UINT16|0x00000002 gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000|UINT16|0x00000002
[PcdsFixedAtBuild, PcdsDynamic, PcdsPatchableInModule]
## This PCD specifies whether we need enable IsaAcpiCom1 device. ## This PCD specifies whether we need enable IsaAcpiCom1 device.
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom1Enable|TRUE|BOOLEAN|0x00000003 gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom1Enable|TRUE|BOOLEAN|0x00000003