lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Wed, 3 Mar 2010 13:50:00 +0100
From:	Martin Pirker <lkml.collector@...il.com>
To:	LKML <linux-kernel@...r.kernel.org>
Subject: 2.6.33: tpm_tis + iTPM still broken

Hi list...

Short version:
Last summer a few patches floatet on LKML which enabled the Intel TPM
(iTPM) to work with the tpm_tis driver. However, now, more than half a
year later vanilla 2.6.33 is still unusable with iTPMs.


Long version:
iTPM do not play as nice with tpm_tis. There was a patch set published
which can be applied to .30 and .31 which enables the iTPM to work
flawlessly. I tested the patches on mobile and desktop iTPM boards
and reported back:
http://lkml.indiana.edu/hypermail/linux/kernel/0907.1/01737.html

Today I upgraded to a fresh 2.6.33 and iTPM support does (still) not
work and the old patches no longer apply...


In more detail:

GM45 based system:
==================

2.6.33 vanilla:

modprobe tpm_tis -> module loaded, but no result

modprobe tpm_tis itpm -> module loaded, but no result

modprobe tpm_tis force
returns immediately with:
[  273.490874] tpm_tis tpm_tis: 1.2 TPM (device-id 0x1020, rev-id 6)
[  273.500554] tpm_tis tpm_tis: tpm_transmit: tpm_send: error -5
[  273.500585] tpm_tis tpm_tis: tpm_transmit: tpm_send: error -5
[  273.500608] tpm_tis tpm_tis: tpm_transmit: tpm_send: error -5
[  273.500633] tpm_tis tpm_tis: tpm_transmit: tpm_send: error -5

a /dev/tpm0 is created, but does not work


compare with 2.6.31 with patches:

autodetected without problems at boot:
[    3.982236] tpm_tis INTC0102:00: found 0xfed40000(0x5000)
[    3.982249] tpm_tis INTC0102:00: no IRQ found in _CRS, polling mode
[    3.982327] tpm_tis INTC0102:00: 1.2 TPM (8086:1020 rev 6)
[    3.982329] tpm_tis INTC0102:00: Intel iTPM workaround enabled


/dev/tpm0 available and works without problems:

TPM Version Info:
           version: 1.2 rev: 4.0
         specLevel: 2
         errataRev: 2
       tpmVendorID: Intel Corporation ("INTC")
vendorSpecificSize: 8
vendorSpecificData: 00 04 00 00 00 04 04 66


ACPI DSDT dump:
  Device (_SB.PCI0.SBRG.TPM)
    {
        Name (_HID, EisaId ("PNP0C31"))
        Name (_CID, EisaId ("PNP0C31"))
        Name (_UID, One)
        Name (_CRS, ResourceTemplate ()
        {
            Memory32Fixed (ReadWrite,
                0xFED40000,         // Address Base
                0x00005000,         // Address Length
                )
        })
[...]
   Device (_SB.PCI0.ITPM)
    {
        Name (_HID, "INTC0102")
        Name (_CID, EisaId ("PNP0C31"))
        Name (_UID, One)
        Name (_CRS, ResourceTemplate ()
        {
            Memory32Fixed (ReadWrite,
                0xFED40000,         // Address Base
                0x00005000,         // Address Length
                )
        })




Q45 based system:
=================

2.6.33:

modprobe tpm_tis -> module loaded, but no result

modprobe tpm_tis itpm -> module loaded, but no result


using:
# time modprobe tpm_tis force
real    2m0.060s


/dev/tpm0 appears and works:

TPM Version Info:
           version: 1.2 rev: 5.2
         specLevel: 2
         errataRev: 2
       tpmVendorID: Intel Corporation ("INTC")
vendorSpecificSize: 8
vendorSpecificData: 00 05 00 02 00 00 03 f1


ACPI DSDT dump:

    Device (_SB.PCI0.SBRG.TPM)
    {
        Name (_HID, EisaId ("PNP0C31"))
        Name (_STR, Unicode ("TPM 1.2 Device"))
        Name (_UID, One)
        Name (_CRS, ResourceTemplate ()
        {
            Memory32Fixed (ReadOnly,
                0xFED40000,         // Address Base
                0x00005000,         // Address Length
                )
        })
        OperationRegion (TMMB, SystemMemory, 0xFED40000, 0x1000)


    Device (_SB.PCI0.ITPM)
    {
        Name (_HID, "INTC0102")
        Name (_CID, EisaId ("PNP0C31"))
        Name (_STR, Unicode ("TPM 1.2 Device"))
        Name (_CRS, ResourceTemplate ()
        {
            Memory32Fixed (ReadOnly,
                0xFED40000,         // Address Base
                0x00005000,         // Address Length
                )
        })
        OperationRegion (CMSR, SystemIO, 0x72, 0x02)



compared with 2.6.31 with patches:

autodetected at boot and works without problems:
[    8.024210] tpm_tis INTC0102:00: found 0xfed40000(0x5000)
[    8.024216] tpm_tis INTC0102:00: no IRQ found in _CRS, polling mode
[    8.024275] tpm_tis INTC0102:00: 1.2 TPM (8086:1040 rev 4)





So....
anybody knows which part of the old patch set does the magic
and enables the iTPM to "just work"?


Thanks,
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ