Committed. BTW, with your last patch, the specially patched
sparse/drivers/acpi/motherboard.c is no longer needed so I
removed the patch from the build process and the patched
file from the sparse tree. One less patched file to worry
about... (thanks!)
> -----Original Message-----
> From: Williamson, Alex (Linux Kernel Dev)
> Sent: Tuesday, November 22, 2005 12:56 PM
> To: Magenheimer, Dan (HP Labs Fort Collins)
> Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [PATCH] fake ACPI namespace
>
>
> Here's an extra patch to add a trivial namespace to the fake ACPI
> DSDT. This simply defines the root scope and adds a processor object.
> This eliminates the last guest ACPI CA warning and you should now
> have /proc/acpi/processor/CPU0 on the guest. Patch versus current
> xen-ia64-unstable.hg
>
> Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
> ---
>
> diff -r 90b9e8569dfb xen/arch/ia64/xen/dom_fw.c
> --- a/xen/arch/ia64/xen/dom_fw.c Tue Nov 22 18:19:11 2005
> +++ b/xen/arch/ia64/xen/dom_fw.c Tue Nov 22 12:50:02 2005
> @@ -481,6 +481,7 @@
> struct fadt_descriptor_rev2 fadt;
> struct facs_descriptor_rev2 facs;
> struct acpi_table_header dsdt;
> + u8 aml[16];
> struct acpi_table_madt madt;
> struct acpi_table_lsapic lsapic;
> u8 pm1a_evt_blk[4];
> @@ -564,17 +565,26 @@
>
> ACPI_RSDP_CHECKSUM_LENGTH);
> rsdp->ext_checksum = generate_acpi_checksum(rsdp, rsdp->length);
>
> - /*
> - * setup DSDT - ACPI generates a warning because there's no AML
> - * in the DSDT. Revisit to add dummy AML stub.
> - */
> + /* setup DSDT with trivial namespace. */
> strncpy(dsdt->signature, DSDT_SIG, 4);
> dsdt->revision = 1;
> - dsdt->length = sizeof(struct acpi_table_header);
> + dsdt->length = sizeof(struct acpi_table_header) +
> sizeof(tables->aml);
> strcpy(dsdt->oem_id, "XEN");
> strcpy(dsdt->oem_table_id, "Xen/ia64");
> strcpy(dsdt->asl_compiler_id, "XEN");
> dsdt->asl_compiler_revision =
> (XEN_VERSION<<16)|(XEN_SUBVERSION);
> +
> + /* Trivial namespace, avoids ACPI CA complaints */
> + tables->aml[0] = 0x10; /* Scope */
> + tables->aml[1] = 0x12; /* length/offset to next object */
> + strncpy(&tables->aml[2], "_SB_", 4);
> +
> + /* The processor object isn't absolutely necessary,
> revist for SMP */
> + tables->aml[6] = 0x5b; /* processor object */
> + tables->aml[7] = 0x83;
> + tables->aml[8] = 0x0b; /* next */
> + strncpy(&tables->aml[9], "CPU0", 4);
> +
> dsdt->checksum = generate_acpi_checksum(dsdt, dsdt->length);
>
> /* setup MADT */
>
>
>
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|