nvs.c: Inappropriately maps TPM space on Dell Inspiron 11 3000

From: Harlan Lieberman-Berg
Date: Wed Aug 22 2018 - 16:13:09 EST


Hello maintainers,

Crossing over from a thread in linux-integrity
(<CAO-sURTs1dc_5iY+b34Jqj4hxZFdUj9LZxTWhDdvqM8AbEqMAw@xxxxxxxxxxxxxx>),
the fTPM on the Dell Inspiron 11 3000 reports its TPM registers inside
ACPI NV space. This causes the TPM to fail to run as the address
space has already been mapped by acpi/nvs.c prior to the TPM driver
loading.

In discussion with Jarkko and mjg, as well as contacts with the
manufacturer, this appears to something that Linux should support,
despite being arguably broken. Because the fTPM is part of the ODM
BIOS, this isn't something that can realistically be fixed through
firmware updates; it's going to be scattered across many different
devices and many different manufacturers -- and because Windows
already works around this particular brain-damage, there's not as much
leverage that can be applied.

The full ACPI dump and the output of dmidecode can be found at
https://gist.github.com/hlieberman-gov/83fa708d41051bafccc553cf0147db4f.
I have machines that are set-aside for testing, running both Windows
10 and Debian sid, and I'm happy to help test possible fixes.

Sincerely,
--
Harlan Lieberman-Berg
Defense Digital Service