|
From: | Stefan Berger |
Subject: | Re: [Qemu-devel] [PATCH 0/5] Extend TPM support with a QEMU-external TPM |
Date: | Mon, 04 May 2015 14:39:32 -0400 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
On 05/04/2015 12:16 PM, Kevin O'Connor wrote:
On Mon, May 04, 2015 at 11:22:25AM -0400, Stefan Berger wrote:On 05/04/2015 05:16 AM, Igor Mammedov wrote:On Wed, 29 Apr 2015 12:42:21 -04002 choices now -- which one to take?I'd try installing extra SSDT table first as a cleanest way (seabios only) and if it fails fallback to TIS path.I did some experiment where I tried to use AML's Store() call to see whether it can read from some entry in another scope, similar to what the specs show on page 487, so that one could read the base address that is written elsewhere. The problem seems to be that there is no actual searching going on for accessing a scope during runtime, but this seems to be done during compile time. So something like Store(\_SB.I2C1.Y, BUFF) from the specs needs to have a SCOPE(\_SB.I2C1...) available during compile time.You can reference scopes provided by other SSDTs/DSDT using the "External()" acpi command.
Tried it. Works with the \DBUG function for example. As an example, External(\BASE) would give allow us to get the base address. The AML code for BASE, something like this Scope(\) { Name(BASE, 0x12345678) } Access to it would be like this: Store(\BASE, Local0)The above first snippet would have to be compiled by SeaBIOS. 0x12345678 would in this case be the address allocated by SeaBIOS where the AML code for PPI could read/write the PPID data to/from. Kevin and I had an offline conversation about this and Kevin doesn't seem to like the idea of a split implementation of ACPI table generation. I would then extend the TIS with a couple of bytes that retain the data across a reset.
Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |