[coreboot-gerrit] New patch to review for coreboot: 275cd42 arch/x86: Provide rudimentary ACPI debugging facilities
Edward O'Callaghan (eocallaghan@alterapraxis.com)
gerrit at coreboot.org
Sat Apr 19 20:22:07 CEST 2014
Edward O'Callaghan (eocallaghan at alterapraxis.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5552
-gerrit
commit 275cd426d736505932a2f156b54dbf775cb965e8
Author: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Date: Sun Apr 20 04:19:58 2014 +1000
arch/x86: Provide rudimentary ACPI debugging facilities
NOTFORMERGE
Change-Id: I90b153698fefeb28c0ed0693c18d91d85fc3717b
Signed-off-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
---
src/arch/x86/boot/acpi.c | 60 ++++++++++++++++++++++++++++++++++++++++
src/arch/x86/include/arch/acpi.h | 15 ++++++++++
2 files changed, 75 insertions(+)
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c
index 0e09ec5..954acb8 100644
--- a/src/arch/x86/boot/acpi.c
+++ b/src/arch/x86/boot/acpi.c
@@ -42,6 +42,66 @@
#define CONFIG_HPET_MIN_TICKS 0x1000
#endif
+#include <lib.h> /* used for hexdump for CONFIG_DEBUG_ACPI */
+
+/*
+ * Dump ACPI tables
+ */
+void acpi_dump_tables(acpi_debug_t * t)
+{
+ if (t == NULL) return;
+
+ if (t->rsdp != NULL) {
+ printk(BIOS_DEBUG, "rsdp\n");
+ hexdump(t->rsdp, sizeof(acpi_rsdp_t));
+ }
+
+ if (t->rsdt != NULL) {
+ printk(BIOS_DEBUG, "rsdt\n");
+ hexdump(t->rsdt, sizeof(acpi_rsdt_t));
+ }
+
+ if (t->madt != NULL) {
+ printk(BIOS_DEBUG, "madt\n");
+ hexdump(t->madt, t->madt->header.length);
+ }
+
+ if (t->srat != NULL) {
+ printk(BIOS_DEBUG, "srat\n");
+ hexdump(t->srat, t->srat->header.length);
+ }
+
+ if (t->slit != NULL) {
+ printk(BIOS_DEBUG, "slit\n");
+ hexdump(t->slit, t->slit->header.length);
+ }
+
+ if (t->alib != NULL) {
+ printk(BIOS_DEBUG, "alib\n");
+ hexdump(t->ssdt, t->alib->length);
+ }
+
+ if (t->ssdt != NULL) {
+ printk(BIOS_DEBUG, "ssdt\n");
+ hexdump(t->ssdt, t->ssdt->length);
+ }
+
+ if (t->ssdt2 != NULL) {
+ printk(BIOS_DEBUG, "ssdt2\n");
+ hexdump(t->ssdt2, t->ssdt2->length);
+ }
+
+ if (t->fadt != NULL) {
+ printk(BIOS_DEBUG, "fadt\n");
+ hexdump(t->fadt, t->fadt->header.length);
+ }
+
+ if (t->hest != NULL) {
+ printk(BIOS_DEBUG, "hest\n");
+ hexdump(t->hest, t->hest->header.length);
+ }
+}
+
u8 acpi_checksum(u8 *table, u32 length)
{
u8 ret = 0;
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index d73c046..31547c7 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -498,6 +498,21 @@ void acpi_create_fadt(acpi_fadt_t *fadt,acpi_facs_t *facs, void *dsdt);
void update_ssdt(void *ssdt);
void update_ssdtx(void *ssdtx, int i);
+typedef struct {
+ acpi_rsdp_t *rsdp;
+ acpi_rsdt_t *rsdt;
+ acpi_madt_t *madt;
+ acpi_srat_t *srat;
+ acpi_slit_t *slit;
+ acpi_header_t *alib;
+ acpi_header_t *ssdt;
+ acpi_header_t *ssdt2;
+ acpi_fadt_t *fadt;
+ acpi_hest_t *hest;
+} acpi_debug_t;
+
+void acpi_dump_tables(acpi_debug_t * t);
+
/* These can be used by the target port. */
u8 acpi_checksum(u8 *table, u32 length);
More information about the coreboot-gerrit
mailing list