From: Jarkko Sakkinen <jarkko@kernel.org>
To: Julien <julien82453@gmail.com>
Cc: linux-integrity@vger.kernel.org, regressions@lists.linux.dev,
rafael.j.wysocki@intel.com
Subject: Re: [REGRESSION] no TPM device after "tpm_crb: Convert ACPI driver to a platform one"
Date: Mon, 10 Aug 2026 18:33:49 +0300 [thread overview]
Message-ID: <annvXXwcLfD2NQDU@kernel.org> (raw)
In-Reply-To: <CAJOGg3z6LJPDsdPNBxajgy8_wQxfhYBRxe4EiurZf3kPU5A5Bw@mail.gmail.com>
On Sun, Aug 02, 2026 at 02:54:47PM +0200, Julien wrote:
> Hello,
>
> Please keep in mind this is my first time reporting a Linux kernel regression.
>
> Since commit 48fe2cddc85c ("tpm_crb: Convert ACPI driver to a platform one"),
> my TPM device is no longer available. Both /dev/tpm0 and /dev/tpmrm0 are
> missing.
>
> Log messages:
> platform MSFT0101:00: failed to claim resource 1: [mem 0xfed40000-0xfed40fff]
> acpi MSFT0101:00: platform device creation failed: -16
>
> I added some debug logging:
> ACPI resourcet[0] = [mem 0xfed40040-0xfed4103f flags 0x200]
> ACPI resourcet[1] = [mem 0xfed40000-0xfed40fff flags 0x200]
>
> I think the failure happens in kernel/resource.c: __insert_resource() because
> of the two memory regions overlapping.
>
> I am attaching the TPM SSDT and the SDDT defining PTTB ACPI variable address.
> The value of PPTB
> dd if=/dev/mem bs=1 skip=$((0x8AE5CFDC)) count=8 | hexdump -C
> 40 00 d4 fe 00 00 00 00
>
> Hardware information:
> Manufacturer: Acer
> Model: Aspire ES1-572
> BIOS vendor: Insyde Corp.
> BIOS version: V1.16
> BIOS date: 09/18/2018
>
> Thanks
>
> #regzbot introduced: 48fe2cddc85c
>
> /*
> * Intel ACPI Component Architecture
> * AML/ASL+ Disassembler version 20251212 (64-bit version)
> * Copyright (c) 2000 - 2025 Intel Corporation
> *
> * Disassembling to symbolic ASL+ operators
> *
> * Disassembly of ssdt10.dat
> *
> * Original Table Header:
> * Signature "SSDT"
> * Length 0x000004C8 (1224)
> * Revision 0x02
> * Checksum 0x69
> * OEM ID "ACRSYS"
> * OEM Table ID "ACRPRDCT"
> * OEM Revision 0x00001000 (4096)
> * Compiler ID "1025"
> * Compiler Version 0x00040000 (262144)
> */
> DefinitionBlock ("", "SSDT", 2, "ACRSYS", "ACRPRDCT", 0x00001000)
> {
> External (PTTB, UnknownObj)
>
> Scope (\_SB)
> {
> Device (TPM)
> {
> Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */) // _HID: Hardware ID
> Name (_STR, Unicode ("TPM 2.0 Device")) // _STR: Description String
> Name (CRS, ResourceTemplate ()
> {
> Memory32Fixed (ReadOnly,
> 0x00000000, // Address Base
> 0x00001000, // Address Length
> _Y00)
> Memory32Fixed (ReadOnly,
> 0xFED40000, // Address Base
> 0x00001000, // Address Length
> )
> })
> Name (PTTA, 0xFED40000)
> Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
> {
> CreateDWordField (CRS, \_SB.TPM._Y00._BAS, CBAS) // _BAS: Base Address
> CBAS = PTTB /* External reference */
> PTTA = PTTB /* External reference */
> Return (CRS) /* \_SB_.TPM_.CRS_ */
> }
>
> OperationRegion (SMIP, SystemIO, 0xB2, One)
> Field (SMIP, ByteAcc, NoLock, Preserve)
> {
> IOB2, 8
> }
>
> OperationRegion (TPMR, SystemMemory, PTTA, 0x1000)
> Field (TPMR, AnyAcc, NoLock, Preserve)
> {
> Offset (0x44),
> FERR, 32,
> Offset (0x4C),
> STRT, 32
> }
>
> OperationRegion (FHCI, SystemMemory, 0xFED40000, 0x1000)
> Field (FHCI, AnyAcc, NoLock, Preserve)
> {
> Offset (0x04),
> HERR, 32,
> Offset (0x40),
> CREQ, 32,
> CSTS, 32,
> Offset (0x4C),
> HCMD, 32
> }
>
> OperationRegion (TNVS, SystemMemory, 0x8AE4F000, 0x2B)
> 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
> }
>
> Method (PTS, 1, Serialized)
> {
> If (((Arg0 < 0x06) && (Arg0 > 0x03)))
> {
> If (!(MORD & 0x10))
> {
> MCIP = 0x02
> IOB2 = MCIN /* \_SB_.TPM_.MCIN */
> }
> }
>
> 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)
> {
> One,
> 0x20
> }
> })
> If ((_STA () == Zero))
> {
> Return (Package (0x01)
> {
> Zero
> })
> }
>
> Return (TPMV) /* \_SB_.TPM_.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.2")
> }
> Case (0x02)
> {
> PPRQ = DerefOf (Arg2 [Zero])
> PPIP = 0x02
> IOB2 = PPIN /* \_SB_.TPM_.PPIN */
> Return (FRET) /* \_SB_.TPM_.FRET */
> }
> Case (0x03)
> {
> TPM2 [One] = PPRQ /* \_SB_.TPM_.PPRQ */
> Return (TPM2) /* \_SB_.TPM_.TPM2 */
> }
> Case (0x04)
> {
> Return (0x02)
> }
> Case (0x05)
> {
> PPIP = 0x05
> IOB2 = PPIN /* \_SB_.TPM_.PPIN */
> TPM3 [One] = LPPR /* \_SB_.TPM_.LPPR */
> TPM3 [0x02] = PPRP /* \_SB_.TPM_.PPRP */
> Return (TPM3) /* \_SB_.TPM_.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_.TPM_.PPIN */
> Return (FRET) /* \_SB_.TPM_.FRET */
> }
> Case (0x08)
> {
> PPIP = 0x08
> PPRQ = DerefOf (Arg2 [Zero])
> IOB2 = PPIN /* \_SB_.TPM_.PPIN */
> Return (FRET) /* \_SB_.TPM_.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_.TPM_.MCIN */
> Return (MRET) /* \_SB_.TPM_.MRET */
> }
> Default
> {
> BreakPoint
> }
>
> }
>
> Return (One)
> }
>
> Method (TSMI, 3, Serialized)
> {
> Name (WTME, Zero)
> Switch (ToInteger (Arg1))
> {
> Case (Zero)
> {
> Return (Buffer (One)
> {
> 0x03 // .
> })
> }
> Case (One)
> {
> CREQ = One
> While (((WTME <= 0xC8) && ((CREQ & One) !=
> Zero)))
> {
> Sleep (One)
> WTME++
> }
>
> HCMD = 0x02
> Return (Zero)
> }
> Default
> {
> BreakPoint
> }
>
> }
>
> Return (One)
> }
>
> Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
> {
> If ((Arg0 == ToUUID ("cf8e16a5-c1e8-4e25-b712-4f54a96702c8") /* TPM Hardware Information */))
> {
> 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") /* TPM Memory Clear */))
> {
> Return (TMCI (Arg1, Arg2, Arg3))
> }
>
> If ((Arg0 == ToUUID ("6bbf6cab-5463-4714-b7cd-f0203c0368d4") /* TPM Start Method */))
> {
> Return (TSMI (Arg1, Arg2, Arg3))
> }
>
> Return (Buffer (One)
> {
> 0x00 // .
> })
> }
> }
> }
> }
>
> /*
> * Intel ACPI Component Architecture
> * AML/ASL+ Disassembler version 20251212 (64-bit version)
> * Copyright (c) 2000 - 2025 Intel Corporation
> *
> * Disassembling to symbolic ASL+ operators
> *
> * Disassembly of ssdt1.dat
> *
> * Original Table Header:
> * Signature "SSDT"
> * Length 0x00000046 (70)
> * Revision 0x02
> * Checksum 0x01
> * OEM ID "ACRSYS"
> * OEM Table ID "ACRPRDCT"
> * OEM Revision 0x00003000 (12288)
> * Compiler ID "1025"
> * Compiler Version 0x00040000 (262144)
> */
> DefinitionBlock ("", "SSDT", 2, "ACRSYS", "ACRPRDCT", 0x00003000)
> {
> OperationRegion (MENV, SystemMemory, 0x8AE5CFD8, 0x000C)
> Field (MENV, AnyAcc, Lock, Preserve)
> {
> MERV, 32,
> PTTB, 64
> }
> }
>
I'm coming from holidays and catching up with matters.
Is the issue still valid?
And don't worry about be first timer if you have actual problems.
BR, Jarkko
prev parent reply other threads:[~2026-08-10 15:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-02 12:54 [REGRESSION] no TPM device after "tpm_crb: Convert ACPI driver to a platform one" Julien
2026-08-03 11:59 ` Jarkko Sakkinen
2026-08-04 19:08 ` Wysocki, Rafael J
2026-08-05 16:01 ` Rafael J. Wysocki (Intel)
2026-08-06 9:54 ` Julien
2026-08-06 10:45 ` Rafael J. Wysocki (Intel)
2026-08-06 19:58 ` Rafael J. Wysocki (Intel)
2026-08-07 10:45 ` Rafael J. Wysocki (Intel)
2026-08-07 12:26 ` Julien
2026-08-07 12:46 ` Rafael J. Wysocki (Intel)
2026-08-10 15:34 ` Jarkko Sakkinen
2026-08-10 15:33 ` Jarkko Sakkinen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=annvXXwcLfD2NQDU@kernel.org \
--to=jarkko@kernel.org \
--cc=julien82453@gmail.com \
--cc=linux-integrity@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=regressions@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.