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

Stefan Berger stefanb at linux.vnet.ibm.com
Wed May 18 21:49:25 CEST 2011


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




More information about the SeaBIOS mailing list