> > On Mon, Aug 26, 2019 at 10:40:25AM -0700, Matthew Garrett wrote: > > On Mon, Aug 26, 2019 at 1:18 AM Seunghun Han <kkamagui@xxxxxxxxx> wrote: > > > To support AMD's fTPM, I removed the busy bit from the ACPI NVS area like > > > the reserved area so that AMD's fTPM regions could be assigned in it. > > > > drivers/acpi/nvs.c saves and restores the contents of NVS regions, and > > if other drivers use these regions without any awareness of this then > > things may break. I'm reluctant to say that just unilaterally marking > > these regions as available is a good thing, but it's clearly what's > > expected by AMD's implementation. One approach would be to have a > > callback into the nvs code to indicate that a certain region should be > > handed off to a driver, which would ensure that we can handle this on > > a case by case basis? > > What if E820 would just have a small piece of code just for fTPM's e.g. > it would check the ACPI tree for fTPM's and ignore TPM regions. > > /Jarkko It seems that it is possible. However, the memory layout is set by enumerating e820 table and ACPI table in order, and the memory regions are typically added and overlapped to the existing memory layout. I also worry about the direct interaction between the e820 table and ACPI table. As I know, they have no straightforward interface or relationship. So, if we make the code for identifying fTPM regions in ACPI table and write it to e820 code, we would meet other problems like "acpi=off" kernel option. In my view, it is natural that ACPI NVS allows device drivers to assign some regions in it if the hardware reports the regions there. Seunghun