4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Public definitions for PcAtChipset package.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This package is designed to public interfaces and implementation which follows
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# PcAt defacto standard.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync##
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync[Defines]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DEC_SPECIFICATION = 0x00010005
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PACKAGE_NAME = PcAtChipsetPkg
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PACKAGE_GUID = B728689A-52D3-4b8c-AE89-2CE5514CC6DC
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PACKAGE_VERSION = 0.2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync[Includes]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Include
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync[LibraryClasses]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## @libraryclass Provides functions to manage I/O APIC Redirection Table Entries.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IoApicLib|Include/Library/IoApicLib.h
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync[Guids]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid = { 0x326ae723, 0xae32, 0x4589, { 0x98, 0xb8, 0xca, 0xc2, 0x3c, 0xdc, 0xc1, 0xb1 } }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync[PcdsFeatureFlag]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## If TRUE, then the HPET Timer will be configured to use MSI interrupts if the HPET timer supports them.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # If FALSE, then the HPET Timer will be configued to use I/O APIC interrupts.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdHpetMsiEnable|TRUE|BOOLEAN|0x00001000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync[PcdsFixedAtBuild, PcdsDynamic, PcdsDynamicEx, PcdsPatchableInModule]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## Pcd8259LegacyModeMask defines the default mask value for platform. This value is determined
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # 1) If platform only support pure UEFI, value should be set to 0xFFFF or 0xFFFE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Because only clock interrupt is allowed in legacy mode in pure UEFI platform.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # 2) If platform install CSM and use thunk module:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # a) If thunk call provided by CSM binary requires some legacy interrupt support, the corresponding bit
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # should be opened as 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # For example, if keyboard interfaces provided CSM binary use legacy keyboard interrupt in 8259 bit 2, then
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # the value should be set to 0xFFFC
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # b) If all thunk call provied by CSM binary do not require legacy interrupt support, value should be set
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # to 0xFFFF or 0xFFFE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # The default value of legacy mode mask could be changed by EFI_LEGACY_8259_PROTOCOL->SetMask(). But it is rarely
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # need change it except some special cases such as when initializing the CSM binary, it should be set to 0xFFFF to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # mask all legacy interrupt. Please restore the original legacy mask value if changing is made for these special case.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeMask|0xFFFF|UINT16|0x00000001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## Pcd8259LegacyModeEdgeLevel defines the default edge level for legacy mode's interrrupt controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000|UINT16|0x00000002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies whether we need enable IsaAcpiCom1 device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom1Enable|TRUE|BOOLEAN|0x00000003
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies whether we need enable IsaAcpiCom2 device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom2Enable|TRUE|BOOLEAN|0x00000004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies whether we need enable IsaAcpiPs2Keyboard device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiPs2KeyboardEnable|TRUE|BOOLEAN|0x00000005
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies whether we need enable IsaAcpiPs2Mouse device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiPs2MouseEnable|TRUE|BOOLEAN|0x00000006
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies whether we need enable IsaAcpiFloppyA device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyAEnable|TRUE|BOOLEAN|0x00000007
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies whether we need enable IsaAcpiFloppyB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyBEnable|TRUE|BOOLEAN|0x00000008
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies the base address of the HPET timer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdHpetBaseAddress|0xFED00000|UINT32|0x00000009
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies the Local APIC Interrupt Vector for the HPET Timer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdHpetLocalApicVector|0x40|UINT8|0x0000000A
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies the defaut period of the HPET Timer in 100 ns units.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # The default value of 100000 100 ns units is the same as 10 ms.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdHpetDefaultTimerPeriod|100000|UINT64|0x0000000B
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## This PCD specifies the base address of the HPET timer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync gPcAtChipsetPkgTokenSpaceGuid.PcdIoApicBaseAddress|0xFEC00000|UINT32|0x0000000C
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync