RE: [Regression Linux 4.11] TPM module not loaded anymore (was: Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot)

From: Moore, Robert
Date: Wed Apr 12 2017 - 11:53:00 EST


Please post the acpidump for this machine so we can analyze the actual AML byte code.
Thanks.


> -----Original Message-----
> From: Jarkko Sakkinen [mailto:jarkko.sakkinen@xxxxxxxxxxxxxxx]
> Sent: Tuesday, April 11, 2017 3:58 PM
> To: Paul Menzel <pmenzel@xxxxxxxxxxxxx>
> Cc: Moore, Robert <robert.moore@xxxxxxxxx>; Maciej S. Szmigiero
> <mail@xxxxxxxxxxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; Arthur
> Heymans <arthur@xxxxxxxxxxxx>; tpmdd-devel@xxxxxxxxxxxxxxxxxxxxx;
> GNUtoo@xxxxxxxxxx; Zheng, Lv <lv.zheng@xxxxxxxxx>; Wysocki, Rafael J
> <rafael.j.wysocki@xxxxxxxxx>
> Subject: Re: [Regression Linux 4.11] TPM module not loaded anymore (was:
> Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot)
>
> On Sun, Apr 09, 2017 at 07:34:43PM +0200, Paul Menzel wrote:
> > Dear Linux folks,
> >
> >
> > It turns out that stricter checks in the ACPI subsystem, introduced in
> > commit 57707a9a77 (ACPICA: Resources: Not a valid resource if buffer
> > length too long) [1], cause the TPM module not to be loaded anymore on
> > the Lenovo X60 with coreboot [2].
> >
> > Am Freitag, den 07.04.2017, 22:58 +0200 schrieb Paul Menzel:
> > > On 2017-04-07 22:13, Jarkko Sakkinen wrote:
> > > > On Thu, Apr 06, 2017 at 01:10:13PM -0600, Jason Gunthorpe wrote:
> > > >> On Thu, Apr 06, 2017 at 08:26:22PM +0200, Paul Menzel wrote:
> > > >> > >We added direct ACPI binding to the driver in addition to PNP,
> > > >> > >so if you have an ACPI table it goes down that path and does
> > > >> > >some additional validation of what is in the TPM. The BIOS
> > > >> > >must provide a acpi_dev_resource_memory and a ACPI_SIG_TPM2
> > > >> > >for the ACPI entry at a minimum.
> > > >> >
> > > >> > Is it correct, that this is added in/for 4.11, so just
> > > >> > recently? Testing with Linux 4.10.8, everything is detected
> just fine.
> > > >>
> > > >> No, it is quite a bit older.. And it should only go for TPM2,
> > > >> which I don't think you have??
> > > >>
> > > >> Maybe Jarkko has a guess, but sure sounds like something is
> > > >> recently broken in 4.11
> > > >
> > > > I'll come back to this. I have to re-read the whole mail thread to
> > > > get back into the context. Lots of multitasking because of release
> > > > and so forth. Sorry for the latency!
> > >
> > > I started bisecting this issue. This is the current state.
> >
> > [â]
> >
> > Here are the results.
> >
> > ```
> > git bisect log
> > # bad: [7a771ceac771d009f7203c40b256b0608d7ea2f8] Merge tag
> > 'dm-4.11-changes' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
> > # good: [c470abd4fde40ea6a0846a2beab642a578c0b8cd] Linux 4.10 git
> > bisect start 'HEAD' 'v4.10'
> > # good: [b3de5ad688f0f52457e73767f95a640ab4158d0d] Merge tag
> > 'regmap-v4.11' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
> > git bisect good b3de5ad688f0f52457e73767f95a640ab4158d0d
> > # bad: [fd4a61e08aa79f2b7835b25c6f94f27bd2d65990] sched/core: Fix
> > build paravirt build on arm and arm64 git bisect bad
> > fd4a61e08aa79f2b7835b25c6f94f27bd2d65990
> > # good: [7aa7d608112baf63a0b1278955f9619427373807] Merge tag
> > 'leds_for_4.11' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
> > git bisect good 7aa7d608112baf63a0b1278955f9619427373807
> > # good: [02c3de1105228e367320e7fdeffbf511904f398c] Merge tag
> > 'pm-4.11-rc1' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
> > git bisect good 02c3de1105228e367320e7fdeffbf511904f398c
> > # bad: [6c24337f22115d669e24ce990842dab667371b4d] Merge tag
> > 'fscrypt-for-linus' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt
> > git bisect bad 6c24337f22115d669e24ce990842dab667371b4d
> > # bad: [a74d1cafc22e100a9b59c50943ca09c37e03dce8] Merge branches
> 'acpi-bus', 'acpi-sleep' and 'acpi-processor'
> > git bisect bad a74d1cafc22e100a9b59c50943ca09c37e03dce8
> > # bad: [ce87e09dd88c61f9088768a7708828423549725c] ACPICA: Parser:
> > Allow method invocations as target operands git bisect bad
> > ce87e09dd88c61f9088768a7708828423549725c
> > # good: [0fc5e8f4e4b33ddfa1d1d673fcd420d6e13eb076] ACPICA: Hardware:
> > Add sleep register hooks git bisect good
> > 0fc5e8f4e4b33ddfa1d1d673fcd420d6e13eb076
> > # good: [a654b8ca6d28736995de767ba62e801fd806a3b2] ACPICA:
> > Disassembler: Add Switch/Case disassembly support git bisect good
> > a654b8ca6d28736995de767ba62e801fd806a3b2
> > # bad: [57707a9a7780fab426b8ae9b4c7b65b912a748b3] ACPICA: Resources:
> > Not a valid resource if buffer length too long git bisect bad
> > 57707a9a7780fab426b8ae9b4c7b65b912a748b3
> > # good: [7225d0467c59e55566df396d6ecd5baf26ef3d9b] ACPICA: Utilities:
> > Update debug output git bisect good
> > 7225d0467c59e55566df396d6ecd5baf26ef3d9b
> > # first bad commit: [57707a9a7780fab426b8ae9b4c7b65b912a748b3] ACPICA:
> > Resources: Not a valid resource if buffer length too long ```
> >
> > I suggest, that just a warning is printed in this case, or that an
> > option is added to enable some kind of âstrict modeâ or a quirk table.
> >
> > Please find the decompiled DSDT attached. The code to generate the ASL
> > coreboot code is available [3].
> >
> > Please tell me, what information you need.
> >
> >
> > Kind regards,
> >
> > Paul
> >
> >
> > [1]
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/com
> > mit/?id=57707a9a778 [2] https://review.coreboot.org/13410/
> > [3]
> > https://review.coreboot.org/cgit/coreboot.git/tree/src/drivers/pc80/tp
> > m/tpm.c
>
> Hi,
>
> Thank you for bisecting the issue. It would have been hard to achieve
> this without the hardware. Do you want to create a patch for ACPICA?
>
> /Jarkko