]> xenbits.xensource.com Git - people/liuw/xen.git/commitdiff
ACPI / table: Print GIC information when MADT is parsed
authorHanjun Guo <hanjun.guo@linaro.org>
Fri, 26 Feb 2016 11:36:46 +0000 (12:36 +0100)
committerWei Liu <wei.liu2@citrix.com>
Tue, 15 Mar 2016 16:32:30 +0000 (16:32 +0000)
When MADT is parsed, print GIC information as debug message:

ACPI: GICC (acpi_id[0x0000] address[00000000e112f000] MPIDR[0x0] enabled)
ACPI: GICC (acpi_id[0x0001] address[00000000e112f000] MPIDR[0x1] enabled)
...
ACPI: GICC (acpi_id[0x0201] address[00000000e112f000] MPIDR[0x201] enabled)

This debug information will be very helpful to bring up early systems to
see if acpi_id and MPIDR are matched or not as spec defined.

Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
[Linux commit 4c1c8d7a7ebc8b909493a14b21b233e5377b69aa]
[Use container_of instead of cast and PRIx64 instead of %llx]
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/drivers/acpi/tables.c

index 4e590de5298d443b2eee14643bdb5b78fa1e7863..56fa71b8f9ce3c3789947bb4859bbb5eca0d8e80 100644 (file)
@@ -189,6 +189,32 @@ void __init acpi_table_print_madt_entry(struct acpi_subtable_header *header)
                }
                break;
 
+       case ACPI_MADT_TYPE_GENERIC_INTERRUPT:
+               {
+                       struct acpi_madt_generic_interrupt *p =
+                               container_of(header, struct acpi_madt_generic_interrupt, header);
+
+                       printk(KERN_DEBUG PREFIX
+                              "GICC (acpi_id[0x%04x] address[0x%"PRIx64"] MPIDR[0x%"PRIx64"] %s)\n",
+                              p->uid, p->base_address,
+                              p->arm_mpidr,
+                              (p->flags & ACPI_MADT_ENABLED) ? "enabled" : "disabled");
+
+               }
+               break;
+
+       case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR:
+               {
+                       struct acpi_madt_generic_distributor *p =
+                               container_of(header, struct acpi_madt_generic_distributor, header);
+
+                       printk(KERN_DEBUG PREFIX
+                              "GIC Distributor (gic_id[0x%04x] address[0x%"PRIx64"] gsi_base[%d])\n",
+                              p->gic_id, p->base_address,
+                              p->global_irq_base);
+               }
+               break;
+
        default:
                printk(KERN_WARNING PREFIX
                       "Found unsupported MADT entry (type = %#x)\n",