REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2416
Replaces the hardcoded value of 0xB2 with a PCD for the SMI port access
operation region. This allows platforms to customize the IO port value if
necessary.
Cc: Kun Qin <Kun.Qin@microsoft.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com>
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com>
# This external input must be validated carefully to avoid security issue.\r
#\r
# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>\r
# This external input must be validated carefully to avoid security issue.\r
#\r
# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) Microsoft Corporation.<BR>\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
gEfiSmmVariableProtocolGuid ## CONSUMES\r
gEfiAcpiTableProtocolGuid ## CONSUMES\r
\r
gEfiSmmVariableProtocolGuid ## CONSUMES\r
gEfiAcpiTableProtocolGuid ## CONSUMES\r
\r
+[FixedPcd]\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdSmiCommandIoPort ## CONSUMES\r
+\r
[Pcd]\r
gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## SOMETIMES_CONSUMES\r
[Pcd]\r
gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## SOMETIMES_CONSUMES\r
\r
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
(c)Copyright 2016 HP Development Company, L.P.<BR>\r
\r
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
(c)Copyright 2016 HP Development Company, L.P.<BR>\r
-Copyright (c) 2017, Microsoft Corporation. All rights reserved. <BR>\r
+Copyright (c) Microsoft Corporation.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
//\r
// Operational region for Smi port access\r
//\r
//\r
// Operational region for Smi port access\r
//\r
- OperationRegion (SMIP, SystemIO, 0xB2, 1)\r
+ OperationRegion (SMIP, SystemIO, FixedPcdGet16 (PcdSmiCommandIoPort), 1)\r
Field (SMIP, ByteAcc, NoLock, Preserve)\r
{\r
Field (SMIP, ByteAcc, NoLock, Preserve)\r
{\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
\r
Store (LPPR, Index (TPM3, 0x01))\r
Store (PPRP, Index (TPM3, 0x02))\r
\r
Store (LPPR, Index (TPM3, 0x01))\r
Store (PPRP, Index (TPM3, 0x02))\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
Return (FRET)\r
}\r
Case (8)\r
Return (FRET)\r
}\r
Case (8)\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
Return (MRET)\r
}\r
Default {BreakPoint}\r
Return (MRET)\r
}\r
Default {BreakPoint}\r
# This external input must be validated carefully to avoid security issue.\r
#\r
# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
# This external input must be validated carefully to avoid security issue.\r
#\r
# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) Microsoft Corporation.<BR>\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
gEfiSmmVariableProtocolGuid ## CONSUMES\r
gEfiAcpiTableProtocolGuid ## CONSUMES\r
\r
gEfiSmmVariableProtocolGuid ## CONSUMES\r
gEfiAcpiTableProtocolGuid ## CONSUMES\r
\r
+[FixedPcd]\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdSmiCommandIoPort ## CONSUMES\r
+\r
[Pcd]\r
gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## SOMETIMES_CONSUMES\r
[Pcd]\r
gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## SOMETIMES_CONSUMES\r
and MemoryClear.\r
\r
Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
and MemoryClear.\r
\r
Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) Microsoft Corporation.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
//\r
// Operational region for Smi port access\r
//\r
//\r
// Operational region for Smi port access\r
//\r
- OperationRegion (SMIP, SystemIO, 0xB2, 1)\r
+ OperationRegion (SMIP, SystemIO, FixedPcdGet16 (PcdSmiCommandIoPort), 1)\r
Field (SMIP, ByteAcc, NoLock, Preserve)\r
{\r
Field (SMIP, ByteAcc, NoLock, Preserve)\r
{\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
\r
Store (LPPR, Index (TPM3, 0x01))\r
Store (PPRP, Index (TPM3, 0x02))\r
\r
Store (LPPR, Index (TPM3, 0x01))\r
Store (PPRP, Index (TPM3, 0x02))\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
Return (FRET)\r
}\r
Case (8)\r
Return (FRET)\r
}\r
Case (8)\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
//\r
// Trigger the SMI interrupt\r
//\r
Return (MRET)\r
}\r
Default {BreakPoint}\r
Return (MRET)\r
}\r
Default {BreakPoint}\r