[SeaBIOS] [PATCH V4 2/8] Provide ACPI SSDT table for TPM device + S3 resume support

Stefan Berger stefanb at linux.vnet.ibm.com
Thu May 19 03:18:16 CEST 2011

On 05/18/2011 07:44 PM, Kevin O'Connor wrote:
> On Wed, May 18, 2011 at 03:49:25PM -0400, Stefan Berger wrote:
>> On 04/12/2011 09:32 AM, Stefan Berger wrote:
>>> +
>>> +static u32 add_tpm_device(void **tpm_addr, void **tcpa_addr)
>>> +{
>>> +    struct tcpa_descriptor_rev2 *tcpa;
>>> +
>>> +    *tpm_addr = NULL;
>>> +    *tcpa_addr = NULL;
>>> +
>>> +    if (has_working_tpm()) {
>>> +        u32 laml = 64 * 1024;
>> Kevin,
>>    the above line prepares 64 kb to be allocated for an ACPI table.
>> It works fine if booting a VM from an image. However, when passing
>> the kernel, initrd and command line parameters to Qemu directly
>> (-kernel, -append, ..), the 64kb above seem to be too much -- I see
>> errors in the Linux kernel's dmesg when Linux tries to access the
>> ACPI tables. Lowering the above to 48kb (happens to) makes it work.
>> I am wondering whether something is copying into the ACPI area or
>> what else may be the reason - do you know?
> I don't know of any reason why that would fail.  You can print out the
> address and compare it to the e820 map that SeaBIOS outputs and verify
> it is properly reserved.
> Does increasing the amount of guest system ram help?
It helped. At some point the initrd and ACPI tables weren't overlapping 
anymore... I forgot to increase the size reserved for ACPI tables inside 
the Qemu code...

> BTW, is this just a buffer or could the size be dynamically
> calculated?
Following specs it's supposed to be 64kb. The BIOS writes logs into this 

> -Kevin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmsg.png
Type: image/png
Size: 126934 bytes
Desc: not available
URL: <http://www.seabios.org/pipermail/seabios/attachments/20110518/d5cd483e/attachment-0001.png>

More information about the SeaBIOS mailing list