|
From: | Stefan Berger |
Subject: | Re: [Qemu-devel] [PATCH V4 2/8] Provide ACPI SSDT table for TPM device + S3 resume support |
Date: | Wed, 18 May 2011 15:49:25 -0400 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b3pre Thunderbird/3.1.10 |
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?
+ *tpm_addr = malloc_high(sizeof(AmlCode_TPM)); + + tcpa = malloc_high(sizeof(*tcpa) + laml); + if (!tcpa || !*tpm_addr) { + warn_noalloc(); + return 1; + }
Regards, Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |