You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

316 lines
9.6 KiB

/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20220331 (64-bit version)
* Copyright (c) 2000 - 2022 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of ssdt25.dat, Thu Sep 1 23:24:17 2022
*
* Original Table Header:
* Signature "SSDT"
* Length 0x00000471 (1137)
* Revision 0x01
* Checksum 0xBF
* OEM ID "LENOVO"
* OEM Table ID "CB-01 "
* OEM Revision 0x00000001 (1)
* Compiler ID "ACPI"
* Compiler Version 0x00040000 (262144)
*/
DefinitionBlock ("", "SSDT", 1, "LENOVO", "CB-01 ", 0x00000001)
{
Scope (\_SB)
{
Device (TPM2)
{
Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */) // _HID: Hardware ID
Name (_CID, "MSFT0101" /* TPM 2.0 Security Device */) // _CID: Compatible ID
Name (_STR, Unicode ("TPM 2.0 Device")) // _STR: Description String
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadWrite,
0x72ED2000, // Address Base
0x00004000, // Address Length
)
Memory32Fixed (ReadWrite,
0x72ED6000, // Address Base
0x00004000, // Address Length
)
})
OperationRegion (SMIP, SystemIO, 0xB0, One)
Field (SMIP, ByteAcc, NoLock, Preserve)
{
IOB2, 8
}
OperationRegion (TNVS, SystemMemory, 0x7AEB7000, 0x27)
Field (TNVS, AnyAcc, NoLock, Preserve)
{
PPIN, 8,
PPIP, 32,
PPRP, 32,
PPRQ, 32,
PPRM, 32,
LPPR, 32,
FRET, 32,
MCIN, 8,
MCIP, 32,
MORD, 32,
MRET, 32,
CAIN, 8
}
OperationRegion (CONA, SystemMemory, 0x7AEB7027, 0x30)
Field (CONA, DWordAcc, NoLock, Preserve)
{
HRTB, 32,
ERRR, 32,
CLFG, 32,
STA1, 32,
AccessAs (QWordAcc, 0x00),
INTC, 64,
AccessAs (DWordAcc, 0x00),
CMSZ, 32,
AccessAs (QWordAcc, 0x00),
CMDB, 64,
AccessAs (DWordAcc, 0x00),
RPSZ, 32,
AccessAs (QWordAcc, 0x00),
RESP, 64
}
Method (PTS, 1, Serialized)
{
If (((Arg0 < 0x06) && (Arg0 > 0x03)))
{
If (!(MORD & 0x10))
{
MCIP = 0x02
IOB2 = MCIN /* \_SB_.TPM2.MCIN */
}
}
Sleep (0x64)
Return (Zero)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Method (HINF, 3, Serialized)
{
Switch (ToInteger (Arg1))
{
Case (Zero)
{
Return (Buffer (One)
{
0x03 // .
})
}
Case (One)
{
Name (TPMV, Package (0x02)
{
One,
Package (0x02)
{
0x02,
Zero
}
})
If ((_STA () == Zero))
{
Return (Package (0x01)
{
Zero
})
}
Return (TPMV) /* \_SB_.TPM2.HINF.TPMV */
}
Default
{
BreakPoint
}
}
Return (Buffer (One)
{
0x00 // .
})
}
Name (TPM2, Package (0x02)
{
Zero,
Zero
})
Name (TPM3, Package (0x03)
{
Zero,
Zero,
Zero
})
Method (TPPI, 3, Serialized)
{
Switch (ToInteger (Arg1))
{
Case (Zero)
{
Return (Buffer (0x02)
{
0xFF, 0x01 // ..
})
}
Case (One)
{
Return ("1.3")
}
Case (0x02)
{
PPRQ = DerefOf (Arg2 [Zero])
PPIP = 0x02
IOB2 = PPIN /* \_SB_.TPM2.PPIN */
Return (FRET) /* \_SB_.TPM2.FRET */
}
Case (0x03)
{
TPM2 [One] = PPRQ /* \_SB_.TPM2.PPRQ */
Return (TPM2) /* \_SB_.TPM2.TPM2 */
}
Case (0x04)
{
Return (0x02)
}
Case (0x05)
{
PPIP = 0x05
IOB2 = PPIN /* \_SB_.TPM2.PPIN */
TPM3 [One] = LPPR /* \_SB_.TPM2.LPPR */
TPM3 [0x02] = PPRP /* \_SB_.TPM2.PPRP */
Return (TPM3) /* \_SB_.TPM2.TPM3 */
}
Case (0x06)
{
Return (0x03)
}
Case (0x07)
{
PPIP = 0x07
PPRQ = DerefOf (Arg2 [Zero])
PPRM = Zero
If ((PPRQ == 0x17))
{
PPRM = DerefOf (Arg2 [One])
}
IOB2 = PPIN /* \_SB_.TPM2.PPIN */
Return (FRET) /* \_SB_.TPM2.FRET */
}
Case (0x08)
{
PPIP = 0x08
PPRQ = DerefOf (Arg2 [Zero])
IOB2 = PPIN /* \_SB_.TPM2.PPIN */
Return (FRET) /* \_SB_.TPM2.FRET */
}
Default
{
BreakPoint
}
}
Return (One)
}
Method (TMCI, 3, Serialized)
{
Switch (ToInteger (Arg1))
{
Case (Zero)
{
Return (Buffer (One)
{
0x03 // .
})
}
Case (One)
{
MORD = DerefOf (Arg2 [Zero])
MCIP = One
IOB2 = MCIN /* \_SB_.TPM2.MCIN */
Return (MRET) /* \_SB_.TPM2.MRET */
}
Default
{
BreakPoint
}
}
Return (One)
}
Method (OASM, 3, Serialized)
{
Switch (ToInteger (Arg1))
{
Case (Zero)
{
Return (Buffer (One)
{
0x03 // .
})
}
Case (One)
{
Return (Zero)
}
Default
{
BreakPoint
}
}
Return (One)
}
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
If ((Arg0 == ToUUID ("cf8e16a5-c1e8-4e25-b712-4f54a96702c8") /* Unknown UUID */))
{
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") /* Unknown UUID */))
{
Return (TMCI (Arg1, Arg2, Arg3))
}
If ((Arg0 == ToUUID ("6bbf6cab-5463-4714-b7cd-f0203c0368d4") /* Unknown UUID */))
{
Return (OASM (Arg1, Arg2, Arg3))
}
Return (Buffer (One)
{
0x00 // .
})
}
}
}
}