/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20160831-64 * Copyright (c) 2000 - 2016 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of ssdt7.dat, Sun Sep 4 22:12:50 2016 * * Original Table Header: * Signature "SSDT" * Length 0x0000043A (1082) * Revision 0x01 * Checksum 0x5E * OEM ID "Intel_" * OEM Table ID "Tpm2Tabl" * OEM Revision 0x00001000 (4096) * Compiler ID "INTL" * Compiler Version 0x20120913 (538052883) */ DefinitionBlock ("", "SSDT", 1, "Intel_", "Tpm2Tabl", 0x00001000) { External (TM2A, IntObj) External (TM2E, IntObj) External (TM2L, IntObj) Scope (\_SB) { Device (CTPM) { Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */) // _HID: Hardware ID Name (_STR, Unicode ("TPM 2.0 Device")) // _STR: Description String Name (TPMX, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00001000, // Address Length _Y00) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (^TPMX, \_SB.CTPM._Y00._BAS, TB0A) // _BAS: Base Address CreateDWordField (^TPMX, \_SB.CTPM._Y00._LEN, TB0L) // _LEN: Length TB0A = TM2A /* External reference */ TB0L = TM2L /* External reference */ Return (TPMX) /* \_SB_.CTPM.TPMX */ } OperationRegion (TICR, SystemMemory, 0xE00D0000, 0x0100) Field (TICR, AnyAcc, NoLock, Preserve) { Offset (0x8C), STAT, 32 } OperationRegion (SMIP, SystemIO, 0xB2, One) Field (SMIP, ByteAcc, NoLock, Preserve) { IOB2, 8 } OperationRegion (TNVF, SystemMemory, 0x7A157000, 0x22) Field (TNVF, AnyAcc, NoLock, Preserve) { PPIN, 8, PPIP, 32, PPRP, 32, PPRQ, 32, LPPR, 32, FRET, 32, MCIN, 8, MCIP, 32, MORD, 32, MRET, 32 } Method (PTS, 1, Serialized) { If ((Arg0 < 0x06) && (Arg0 > 0x03)) { If (!(MORD & 0x10)) { MCIP = 0x02 IOB2 = MCIN /* \_SB_.CTPM.MCIN */ } } Return (Zero) } Method (_STA, 0, NotSerialized) // _STA: Status { If (TM2E) { Return (0x0F) } Return (Zero) } Method (HINF, 3, Serialized) { Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler While (One) { _T_0 = ToInteger (Arg1) If (_T_0 == Zero) { Return (Buffer (One) { 0x03 /* . */ }) } ElseIf (_T_0 == One) { Name (TPMV, Package (0x02) { One, Package (0x02) { 0x02, Zero } }) If (_STA () == Zero) { Return (Package (0x01) { Zero }) } Return (TPMV) /* \_SB_.CTPM.HINF.TPMV */ } Else { BreakPoint } Break } Return (Buffer (One) { 0x00 /* . */ }) } Name (TPM2, Package (0x02) { Zero, Zero }) Name (TPM3, Package (0x03) { Zero, Zero, Zero }) Method (TPPI, 3, Serialized) { Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler While (One) { _T_0 = ToInteger (Arg1) If (_T_0 == Zero) { Return (Buffer (0x02) { 0xFF, 0x01 /* .. */ }) } ElseIf (_T_0 == One) { Return ("1.2") } ElseIf (_T_0 == 0x02) { PPRQ = DerefOf (Arg2 [Zero]) PPIP = 0x02 IOB2 = PPIN /* \_SB_.CTPM.PPIN */ Return (FRET) /* \_SB_.CTPM.FRET */ } ElseIf (_T_0 == 0x03) { TPM2 [One] = PPRQ /* \_SB_.CTPM.PPRQ */ Return (TPM2) /* \_SB_.CTPM.TPM2 */ } ElseIf (_T_0 == 0x04) { Return (0x02) } ElseIf (_T_0 == 0x05) { PPIP = 0x05 IOB2 = PPIN /* \_SB_.CTPM.PPIN */ TPM3 [One] = LPPR /* \_SB_.CTPM.LPPR */ TPM3 [0x02] = PPRP /* \_SB_.CTPM.PPRP */ Return (TPM3) /* \_SB_.CTPM.TPM3 */ } ElseIf (_T_0 == 0x06) { Return (0x03) } ElseIf (_T_0 == 0x07) { PPIP = 0x07 PPRQ = DerefOf (Arg2 [Zero]) IOB2 = PPIN /* \_SB_.CTPM.PPIN */ Return (FRET) /* \_SB_.CTPM.FRET */ } ElseIf (_T_0 == 0x08) { PPIP = 0x08 PPRQ = DerefOf (Arg2 [Zero]) IOB2 = PPIN /* \_SB_.CTPM.PPIN */ Return (FRET) /* \_SB_.CTPM.FRET */ } Else { BreakPoint } Break } Return (One) } Method (TMCI, 3, Serialized) { Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler While (One) { _T_0 = ToInteger (Arg1) If (_T_0 == Zero) { Return (Buffer (One) { 0x03 /* . */ }) } ElseIf (_T_0 == One) { MORD = DerefOf (Arg2 [Zero]) MCIP = One IOB2 = MCIN /* \_SB_.CTPM.MCIN */ Return (MRET) /* \_SB_.CTPM.MRET */ } Else { BreakPoint } Break } Return (One) } Method (TSMI, 3, Serialized) { Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler While (One) { _T_0 = ToInteger (Arg1) If (_T_0 == Zero) { Return (Buffer (One) { 0x03 /* . */ }) } ElseIf (_T_0 == One) { STAT = One Return (Zero) } Else { BreakPoint } Break } Return (One) } Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If (Arg0 == ToUUID ("cf8e16a5-c1e8-4e25-b712-4f54a96702c8")) { Return (HINF (Arg1, Arg2, Arg3)) } If (Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */) { Return (TPPI (Arg1, Arg2, Arg3)) } If (Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d")) { Return (TMCI (Arg1, Arg2, Arg3)) } If (Arg0 == ToUUID ("6bbf6cab-5463-4714-b7cd-f0203c0368d4")) { Return (TSMI (Arg1, Arg2, Arg3)) } Return (Buffer (One) { 0x00 /* . */ }) } } } } /* Raw Table Data: Length 1082 (0x43A) 0000: 53 53 44 54 3A 04 00 00 01 5E 49 6E 74 65 6C 5F // SSDT:....^Intel_ 0010: 54 70 6D 32 54 61 62 6C 00 10 00 00 49 4E 54 4C // Tpm2Tabl....INTL 0020: 13 09 12 20 10 45 41 5C 5F 53 42 5F 5B 82 4C 40 // ... .EA\_SB_[.L@ 0030: 43 54 50 4D 08 5F 48 49 44 0D 4D 53 46 54 30 31 // CTPM._HID.MSFT01 0040: 30 31 00 08 5F 53 54 52 11 21 0A 1E 54 00 50 00 // 01.._STR.!..T.P. 0050: 4D 00 20 00 32 00 2E 00 30 00 20 00 44 00 65 00 // M. .2...0. .D.e. 0060: 76 00 69 00 63 00 65 00 00 00 08 54 50 4D 58 11 // v.i.c.e....TPMX. 0070: 11 0A 0E 86 09 00 01 00 00 00 00 00 10 00 00 79 // ...............y 0080: 00 14 35 5F 43 52 53 00 8A 5E 54 50 4D 58 0A 04 // ..5_CRS..^TPMX.. 0090: 54 42 30 41 8A 5E 54 50 4D 58 0A 08 54 42 30 4C // TB0A.^TPMX..TB0L 00A0: 70 54 4D 32 41 54 42 30 41 70 54 4D 32 4C 54 42 // pTM2ATB0ApTM2LTB 00B0: 30 4C A4 54 50 4D 58 5B 80 54 49 43 52 00 0C 00 // 0L.TPMX[.TICR... 00C0: 00 0D E0 0B 00 01 5B 81 0E 54 49 43 52 00 00 40 // ......[..TICR..@ 00D0: 46 53 54 41 54 20 5B 80 53 4D 49 50 01 0A B2 01 // FSTAT [.SMIP.... 00E0: 5B 81 0B 53 4D 49 50 01 49 4F 42 32 08 5B 80 54 // [..SMIP.IOB2.[.T 00F0: 4E 56 46 00 0C 00 70 15 7A 0A 22 5B 81 38 54 4E // NVF...p.z."[.8TN 0100: 56 46 00 50 50 49 4E 08 50 50 49 50 20 50 50 52 // VF.PPIN.PPIP PPR 0110: 50 20 50 50 52 51 20 4C 50 50 52 20 46 52 45 54 // P PPRQ LPPR FRET 0120: 20 4D 43 49 4E 08 4D 43 49 50 20 4D 4F 52 44 20 // MCIN.MCIP MORD 0130: 4D 52 45 54 20 14 2E 50 54 53 5F 09 A0 25 90 95 // MRET ..PTS_..%.. 0140: 68 0A 06 94 68 0A 03 A0 1A 92 7B 4D 4F 52 44 0A // h...h.....{MORD. 0150: 10 00 70 0A 02 4D 43 49 50 70 4D 43 49 4E 49 4F // ..p..MCIPpMCINIO 0160: 42 32 A4 00 14 11 5F 53 54 41 00 A0 08 54 4D 32 // B2...._STA...TM2 0170: 45 A4 0A 0F A4 00 14 4A 05 48 49 4E 46 0B 08 5F // E......J.HINF.._ 0180: 54 5F 30 00 A2 47 04 01 70 99 69 00 5F 54 5F 30 // T_0..G..p.i._T_0 0190: A0 0C 93 5F 54 5F 30 00 A4 11 03 01 03 A1 2D A0 // ..._T_0.......-. 01A0: 28 93 5F 54 5F 30 01 08 54 50 4D 56 12 09 02 01 // (._T_0..TPMV.... 01B0: 12 05 02 0A 02 00 A0 0C 93 5F 53 54 41 00 A4 12 // ........._STA... 01C0: 03 01 00 A4 54 50 4D 56 A1 02 CC A5 A4 11 03 01 // ....TPMV........ 01D0: 00 08 54 50 4D 32 12 04 02 00 00 08 54 50 4D 33 // ..TPM2......TPM3 01E0: 12 05 03 00 00 00 14 44 13 54 50 50 49 0B 08 5F // .......D.TPPI.._ 01F0: 54 5F 30 00 A2 44 12 01 70 99 69 00 5F 54 5F 30 // T_0..D..p.i._T_0 0200: A0 0E 93 5F 54 5F 30 00 A4 11 05 0A 02 FF 01 A1 // ..._T_0......... 0210: 48 10 A0 0D 93 5F 54 5F 30 01 A4 0D 31 2E 32 00 // H...._T_0...1.2. 0220: A1 47 0F A0 27 93 5F 54 5F 30 0A 02 70 83 88 6A // .G..'._T_0..p..j 0230: 00 00 50 50 52 51 70 0A 02 50 50 49 50 70 50 50 // ..PPRQp..PPIPpPP 0240: 49 4E 49 4F 42 32 A4 46 52 45 54 A1 4C 0C A0 19 // INIOB2.FRET.L... 0250: 93 5F 54 5F 30 0A 03 70 50 50 52 51 88 54 50 4D // ._T_0..pPPRQ.TPM 0260: 32 01 00 A4 54 50 4D 32 A1 4F 0A A0 0B 93 5F 54 // 2...TPM2.O...._T 0270: 5F 30 0A 04 A4 0A 02 A1 40 0A A0 36 93 5F 54 5F // _0......@..6._T_ 0280: 30 0A 05 70 0A 05 50 50 49 50 70 50 50 49 4E 49 // 0..p..PPIPpPPINI 0290: 4F 42 32 70 4C 50 50 52 88 54 50 4D 33 01 00 70 // OB2pLPPR.TPM3..p 02A0: 50 50 52 50 88 54 50 4D 33 0A 02 00 A4 54 50 4D // PPRP.TPM3....TPM 02B0: 33 A1 46 06 A0 0B 93 5F 54 5F 30 0A 06 A4 0A 03 // 3.F...._T_0..... 02C0: A1 47 05 A0 27 93 5F 54 5F 30 0A 07 70 0A 07 50 // .G..'._T_0..p..P 02D0: 50 49 50 70 83 88 6A 00 00 50 50 52 51 70 50 50 // PIPp..j..PPRQpPP 02E0: 49 4E 49 4F 42 32 A4 46 52 45 54 A1 2C A0 27 93 // INIOB2.FRET.,.'. 02F0: 5F 54 5F 30 0A 08 70 0A 08 50 50 49 50 70 83 88 // _T_0..p..PPIPp.. 0300: 6A 00 00 50 50 52 51 70 50 50 49 4E 49 4F 42 32 // j..PPRQpPPINIOB2 0310: A4 46 52 45 54 A1 02 CC A5 A4 01 14 44 05 54 4D // .FRET.......D.TM 0320: 43 49 0B 08 5F 54 5F 30 00 A2 44 04 01 70 99 69 // CI.._T_0..D..p.i 0330: 00 5F 54 5F 30 A0 0C 93 5F 54 5F 30 00 A4 11 03 // ._T_0..._T_0.... 0340: 01 03 A1 2A A0 25 93 5F 54 5F 30 01 70 83 88 6A // ...*.%._T_0.p..j 0350: 00 00 4D 4F 52 44 70 01 4D 43 49 50 70 4D 43 49 // ..MORDp.MCIPpMCI 0360: 4E 49 4F 42 32 A4 4D 52 45 54 A1 02 CC A5 A4 01 // NIOB2.MRET...... 0370: 14 3C 54 53 4D 49 0B 08 5F 54 5F 30 00 A2 2D 01 // .