PcAtChipsetPkg: Update BaseAcpiTimerLib

Introduce new PcdAcpiIoPortBaseAddressMask to mask BITS ACPI IO Port Base Address.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16952 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Liming Gao 2015-02-28 05:34:38 +00:00 committed by lgao4
parent 16b6347b30
commit 9ff926d6d7
5 changed files with 12 additions and 6 deletions

View File

@ -1,7 +1,7 @@
/** @file /** @file
ACPI Timer implements one instance of Timer Library. ACPI Timer implements one instance of Timer Library.
Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2013 - 2015, 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
@ -118,11 +118,11 @@ InternalAcpiGetAcpiTimerIoPort (
{ {
UINT16 Port; UINT16 Port;
Port = PcdGet16 (PcdAcpiIoPciBarRegisterOffset); Port = PcdGet16 (PcdAcpiIoPortBaseAddress);
// //
// If the register offset to the BAR for the ACPI I/O Port Base Address is not 0x0000, then // If the register offset to the BAR for the ACPI I/O Port Base Address is not 0x0000, then
// read the PCI register for the APCI BAR value in case the BAR has been programmed to a // read the PCI register for the ACPI BAR value in case the BAR has been programmed to a
// value other than PcdAcpiIoPortBaseAddress // value other than PcdAcpiIoPortBaseAddress
// //
if (PcdGet16 (PcdAcpiIoPciBarRegisterOffset) != 0x0000) { if (PcdGet16 (PcdAcpiIoPciBarRegisterOffset) != 0x0000) {
@ -134,7 +134,7 @@ InternalAcpiGetAcpiTimerIoPort (
)); ));
} }
return (Port & ~BIT0) + PcdGet16 (PcdAcpiPm1TmrOffset); return (Port & PcdGet16 (PcdAcpiIoPortBaseAddressMask)) + PcdGet16 (PcdAcpiPm1TmrOffset);
} }
/** /**

View File

@ -4,7 +4,7 @@
# Provides basic timer support using the ACPI timer hardware. The performance # Provides basic timer support using the ACPI timer hardware. The performance
# counter features are provided by the processors time stamp counter. # counter features are provided by the processors time stamp counter.
# #
# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR> # Copyright (c) 2013 - 2015, 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
@ -49,3 +49,4 @@
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciBarRegisterOffset ## CONSUMES gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciBarRegisterOffset ## CONSUMES
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddress ## CONSUMES gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddress ## CONSUMES
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset ## CONSUMES gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset ## CONSUMES
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddressMask ## CONSUMES

View File

@ -4,7 +4,7 @@
# Provides basic timer support using the ACPI timer hardware. The performance # Provides basic timer support using the ACPI timer hardware. The performance
# counter features are provided by the processors time stamp counter. # counter features are provided by the processors time stamp counter.
# #
# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR> # Copyright (c) 2013 - 2015, 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
@ -49,3 +49,4 @@
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciBarRegisterOffset ## CONSUMES gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciBarRegisterOffset ## CONSUMES
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddress ## CONSUMES gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddress ## CONSUMES
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset ## CONSUMES gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset ## CONSUMES
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddressMask ## CONSUMES

View File

@ -163,5 +163,9 @@
# @Prompt Offset to 32-bit Timer register in ACPI BAR # @Prompt Offset to 32-bit Timer register in ACPI BAR
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset |0x0008|UINT16|0x00000017 gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset |0x0008|UINT16|0x00000017
## Defines the bit mask to retrieve ACPI IO Port Base Address
# @Prompt ACPI IO Port Base Address Mask
gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddressMask |0xFFFE|UINT16|0x00000018
[UserExtensions.TianoCore."ExtraFiles"] [UserExtensions.TianoCore."ExtraFiles"]
PcAtChipsetPkgExtra.uni PcAtChipsetPkgExtra.uni

Binary file not shown.