1 message in com.xensource.lists.xen-ia64-devel[Xen-ia64-devel] RE: [PATCH] fake ACP...
FromSent OnAttachments
Magenheimer, Dan (HP Labs Fort Collins)22 Nov 2005 16:01 
Subject:[Xen-ia64-devel] RE: [PATCH] fake ACPI namespace
From:Magenheimer, Dan (HP Labs Fort Collins) (dan.@hp.com)
Date:11/22/2005 04:01:45 PM
List:com.xensource.lists.xen-ia64-devel

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-@lists.xensource.com 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@hp.com> ---

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 */