Just found out that the TPM device is a rarely used security feature that is part of some Intel chipsets, and doesn't seem to be used at all by OSX/Apple.
TPMM and TPMA look to be directly related to TPM, so I see no problem in removing them as they only appear in the code below.
Code:
OperationRegion (TPMM, SystemMemory, 0xFED40000, One)
Field (TPMM, AnyAcc, NoLock, Preserve)
{
TPMA, 8
}
Scope (\_SB.PCI0.LPCB)
{
Device (TPM)
{
Name (_HID, EisaId ("PNP0C31"))
Name (_UID, One)
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0xFED40000, // Address Base
0x00005000, // Address Length
)
})
Method (_STA, 0, NotSerialized)
{
If (LEqual (TPMA, 0xFF))
{
Return (Zero)
}
Else
{
If (TPME)
{
Return (0x0F)
}
Else
{
Return (0x0B)
}
}
}
}
But TPME is used in an IndexField declaration (see below), but is only used in the TPM Device code above.
Code:
IndexField (CMSI, CMSD, ByteAcc, NoLock, Preserve)
{
Offset (0x6E),
WAS4, 8,
OSTY, 7,
OSEF, 1,
Offset (0x7D),
HPEE, 1,
Offset (0x7E),
, 2,
MSEP, 1,
, 1,
TPME, 1,
, 1,
KBEP, 1,
MSAR, 1
}
So what I would like to know is whether to just leave TPME in the above IndexField, and delete all the other TPM related stuff. Or should I remove TPME completely, perhaps replacing it with some type of place holder?
What do the experts suggest, and has anyone else come across the TMP device in their DSDT and removed it?
Here is my DSDT file, for those interested: