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
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 // .
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|