|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] Add a trivial namespace to the fake ACPI DSDT.
 
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 750b19fec82079b869fa4b4fa10771836dca933c
# Parent  90b9e8569dfb34154a7259d9199992270b5808a7
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 -r 750b19fec820 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 22:10:27 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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] Add a trivial namespace to the fake ACPI DSDT.,
Xen patchbot -unstable <=
  
 |  
  
| Previous by Date:  | 
[Xen-changelog] Create the base set of ACPI structures necessary to	satisfy the ACPI subsystem on a guest OS. This includes RSDP,	XSDT, FADT, MADT, and DSDT., Xen patchbot -unstable | 
 
| Next by Date:  | 
[Xen-changelog] After Alex's ACPI patch,	this patch in motherboard.c for NULL FADT no longer required, Xen patchbot -unstable | 
 
| Previous by Thread:  | 
[Xen-changelog] Create the base set of ACPI structures necessary to	satisfy the ACPI subsystem on a guest OS. This includes RSDP,	XSDT, FADT, MADT, and DSDT., Xen patchbot -unstable | 
 
| Next by Thread:  | 
[Xen-changelog] After Alex's ACPI patch,	this patch in motherboard.c for NULL FADT no longer required, Xen patchbot -unstable | 
 
| Indexes:  | 
[Date]
[Thread]
[Top]
[All Lists] | 
 
 
 
 | 
    | 
  
  
    |   | 
    |