X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=SecurityPkg%2FTcg%2FTcgSmm%2FTpm.asl;h=2114283b45105364032bf4d72078cb6d40af3c26;hp=448ffecccfd862d32140ec2b81a584efca7591d4;hb=60ee3bd8dbe70189cab18af733c42187c9b317c7;hpb=8b7d84ca533ef7f3a794884dc738221bf1d1799e diff --git a/SecurityPkg/Tcg/TcgSmm/Tpm.asl b/SecurityPkg/Tcg/TcgSmm/Tpm.asl index 448ffecccf..2114283b45 100644 --- a/SecurityPkg/Tcg/TcgSmm/Tpm.asl +++ b/SecurityPkg/Tcg/TcgSmm/Tpm.asl @@ -1,14 +1,14 @@ /** @file - The TPM definition block in ACPI table for physical presence + The TPM definition block in ACPI table for physical presence and MemoryClear. -Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.
-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 +Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.
+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 http://opensource.org/licenses/bsd-license.php -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ @@ -41,7 +41,7 @@ DefinitionBlock ( // Return the resource consumed by TPM device // Name (_CRS, ResourceTemplate () { - Memory32Fixed (ReadOnly, 0xfed40000, 0x5000) + Memory32Fixed (ReadWrite, 0xfed40000, 0x5000) }) // @@ -49,7 +49,7 @@ DefinitionBlock ( // OperationRegion (SMIP, SystemIO, 0xB2, 1) Field (SMIP, ByteAcc, NoLock, Preserve) - { + { IOB2, 8 } @@ -78,34 +78,35 @@ DefinitionBlock ( MCIN, 8, // Software SMI for Memory Clear Interface MCIP, 32, // Used for save the Mor paramter MORD, 32, // Memory Overwrite Request Data - MRET, 32 // Memory Overwrite function return code + MRET, 32, // Memory Overwrite function return code + UCRQ, 32 // Phyical Presence request operation to Get User Confirmation Status } Method (PTS, 1, Serialized) - { + { // // Detect Sx state for MOR, only S4, S5 need to handle // If (LAnd (LLess (Arg0, 6), LGreater (Arg0, 3))) - { + { // // Bit4 -- DisableAutoDetect. 0 -- Firmware MAY autodetect. // If (LNot (And (MORD, 0x10))) { // - // Triggle the SMI through ACPI _PTS method. + // Trigger the SMI through ACPI _PTS method. // Store (0x02, MCIP) - + // - // Triggle the SMI interrupt + // Trigger the SMI interrupt // Store (MCIN, IOB2) } } Return (0) - } + } Method (_STA, 0) { @@ -155,12 +156,12 @@ DefinitionBlock ( } Name(TPM2, Package (0x02){ - Zero, + Zero, Zero }) Name(TPM3, Package (0x03){ - Zero, + Zero, Zero, Zero }) @@ -169,7 +170,7 @@ DefinitionBlock ( // TCG Physical Presence Interface // Method (TPPI, 3, Serialized, 0, {BuffObj, PkgObj, IntObj, StrObj}, {UnknownObj, UnknownObj, UnknownObj}) // IntObj, IntObj, PkgObj - { + { // // Switch by function index // @@ -194,12 +195,12 @@ DefinitionBlock ( // // b) Submit TPM Operation Request to Pre-OS Environment // - + Store (DerefOf (Index (Arg2, 0x00)), PPRQ) Store (0x02, PPIP) - + // - // Triggle the SMI interrupt + // Trigger the SMI interrupt // Store (PPIN, IOB2) Return (FRET) @@ -211,7 +212,7 @@ DefinitionBlock ( // // c) Get Pending TPM Operation Requested By the OS // - + Store (PPRQ, Index (TPM2, 0x01)) Return (TPM2) } @@ -228,12 +229,12 @@ DefinitionBlock ( // e) Return TPM Operation Response to OS Environment // Store (0x05, PPIP) - + // - // Triggle the SMI interrupt + // Trigger the SMI interrupt // Store (PPIN, IOB2) - + Store (LPPR, Index (TPM3, 0x01)) Store (PPRP, Index (TPM3, 0x02)) @@ -256,11 +257,11 @@ DefinitionBlock ( // Store (7, PPIP) Store (DerefOf (Index (Arg2, 0x00)), PPRQ) - + // - // Triggle the SMI interrupt + // Trigger the SMI interrupt // - Store (PPIN, IOB2) + Store (PPIN, IOB2) Return (FRET) } Case (8) @@ -269,13 +270,13 @@ DefinitionBlock ( // e) Get User Confirmation Status for Operation // Store (8, PPIP) - Store (DerefOf (Index (Arg2, 0x00)), PPRQ) - + Store (DerefOf (Index (Arg2, 0x00)), UCRQ) + // - // Triggle the SMI interrupt + // Trigger the SMI interrupt // Store (PPIN, IOB2) - + Return (FRET) } @@ -304,21 +305,21 @@ DefinitionBlock ( // Save the Operation Value of the Request to MORD (reserved memory) // Store (DerefOf (Index (Arg2, 0x00)), MORD) - + // - // Triggle the SMI through ACPI _DSM method. + // Trigger the SMI through ACPI _DSM method. // Store (0x01, MCIP) - + // - // Triggle the SMI interrupt + // Trigger the SMI interrupt // Store (MCIN, IOB2) Return (MRET) } Default {BreakPoint} } - Return (1) + Return (1) } Method (_DSM, 4, Serialized, 0, UnknownObj, {BuffObj, IntObj, IntObj, PkgObj})