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


Reply via email to