aboutsummaryrefslogtreecommitdiff
path: root/tools/acpiexec
diff options
context:
space:
mode:
Diffstat (limited to 'tools/acpiexec')
-rw-r--r--tools/acpiexec/Makefile4
-rw-r--r--tools/acpiexec/aeexec.c1
-rw-r--r--tools/acpiexec/aetables.c141
3 files changed, 143 insertions, 3 deletions
diff --git a/tools/acpiexec/Makefile b/tools/acpiexec/Makefile
index f21adcbe88f6..c9cf8a4b5b92 100644
--- a/tools/acpiexec/Makefile
+++ b/tools/acpiexec/Makefile
@@ -20,8 +20,10 @@ SRCS= aetables.c aehandlers.c aeexec.c aemain.c \
../../disassembler/dmutils.c \
../../disassembler/dmwalk.c \
../../events/evevent.c \
- ../../events/evgpeblk.c \
../../events/evgpe.c \
+ ../../events/evgpeblk.c \
+ ../../events/evgpeinit.c \
+ ../../events/evgpeutil.c \
../../events/evmisc.c \
../../events/evregion.c \
../../events/evrgnini.c \
diff --git a/tools/acpiexec/aeexec.c b/tools/acpiexec/aeexec.c
index 9aec80d95869..2e8790a59949 100644
--- a/tools/acpiexec/aeexec.c
+++ b/tools/acpiexec/aeexec.c
@@ -235,7 +235,6 @@ AfInstallGpeBlock (
if (ACPI_SUCCESS (Status))
{
Status = AcpiInstallGpeBlock (Handle2, &BlockAddress, 7, 8);
- Status = AcpiInstallGpeBlock (Handle2, &BlockAddress, 2, 0);
AcpiInstallGpeHandler (Handle2, 8, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
AcpiEnableGpe (Handle2, 8, ACPI_GPE_TYPE_RUNTIME);
diff --git a/tools/acpiexec/aetables.c b/tools/acpiexec/aetables.c
index 4c3734a05cbd..e1f61c6e61a5 100644
--- a/tools/acpiexec/aetables.c
+++ b/tools/acpiexec/aetables.c
@@ -198,6 +198,34 @@ unsigned char Oem1Code[] =
0x31,0x00,0x70,0x01,0x5F,0x58,0x54,0x32, /* 00000030 "1.p._XT2" */
};
+/* ASL source for this table is at the end of this file */
+
+unsigned char OemxCode[] =
+{
+ 0x4F,0x45,0x4D,0x58,0xB0,0x00,0x00,0x00, /* 00000000 "OEMX...." */
+ 0x02,0x54,0x4D,0x79,0x4F,0x45,0x4D,0x00, /* 00000008 ".TMyOEM." */
+ 0x54,0x65,0x73,0x74,0x00,0x00,0x00,0x00, /* 00000010 "Test...." */
+ 0x32,0x04,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "2...INTL" */
+ 0x31,0x03,0x10,0x20,0x14,0x1D,0x5F,0x49, /* 00000020 "1.. .._I" */
+ 0x4E,0x49,0x00,0x70,0x0D,0x54,0x61,0x62, /* 00000028 "NI.p.Tab" */
+ 0x6C,0x65,0x20,0x4F,0x45,0x4D,0x58,0x20, /* 00000030 "le OEMX " */
+ 0x72,0x75,0x6E,0x6E,0x69,0x6E,0x67,0x00, /* 00000038 "running." */
+ 0x5B,0x31,0x10,0x22,0x5C,0x5F,0x47,0x50, /* 00000040 "[1."\_GP" */
+ 0x45,0x14,0x06,0x5F,0x45,0x30,0x37,0x00, /* 00000048 "E.._E07." */
+ 0x14,0x06,0x5F,0x45,0x32,0x32,0x00,0x14, /* 00000050 ".._E22.." */
+ 0x06,0x5F,0x4C,0x33,0x31,0x00,0x14,0x06, /* 00000058 "._L31..." */
+ 0x5F,0x4C,0x36,0x36,0x00,0x5B,0x82,0x10, /* 00000060 "_L66.[.." */
+ 0x4F,0x45,0x4D,0x31,0x08,0x5F,0x50,0x52, /* 00000068 "OEM1._PR" */
+ 0x57,0x12,0x05,0x02,0x0A,0x07,0x00,0x5B, /* 00000070 "W......[" */
+ 0x82,0x10,0x4F,0x45,0x4D,0x32,0x08,0x5F, /* 00000078 "..OEM2._" */
+ 0x50,0x52,0x57,0x12,0x05,0x02,0x0A,0x66, /* 00000080 "PRW....f" */
+ 0x00,0x10,0x26,0x5C,0x47,0x50,0x45,0x32, /* 00000088 "..&\GPE2" */
+ 0x14,0x06,0x5F,0x4C,0x30,0x31,0x00,0x14, /* 00000090 ".._L01.." */
+ 0x06,0x5F,0x45,0x30,0x37,0x00,0x08,0x5F, /* 00000098 "._E07.._" */
+ 0x50,0x52,0x57,0x12,0x0C,0x02,0x12,0x08, /* 000000A0 "PRW....." */
+ 0x02,0x5C,0x47,0x50,0x45,0x32,0x01,0x00 /* 000000A8 ".\GPE2.." */
+};
+
/*
* Example installable control method
*
@@ -242,7 +270,7 @@ ACPI_TABLE_HEADER LocalTEST;
ACPI_TABLE_HEADER LocalBADTABLE;
ACPI_TABLE_RSDT *LocalRSDT;
-#define BASE_RSDT_TABLES 6
+#define BASE_RSDT_TABLES 7
#define BASE_RSDT_SIZE (sizeof (ACPI_TABLE_RSDT) + ((BASE_RSDT_TABLES -1) * sizeof (UINT32)))
#define ACPI_MAX_INIT_TABLES (32)
@@ -349,6 +377,10 @@ AeBuildLocalTables (
LocalRSDT->TableOffsetEntry[5] = ACPI_PTR_TO_PHYSADDR (&Oem1Code);
+ /* Install the OEMx table to test LoadTable */
+
+ LocalRSDT->TableOffsetEntry[6] = ACPI_PTR_TO_PHYSADDR (&OemxCode);
+
/*
* Install the user tables. The DSDT must be installed in the FADT.
* All other tables are installed directly into the RSDT.
@@ -583,3 +615,110 @@ AeLocalGetRootPointer (
}
+#if 0
+/******************************************************************************
+ *
+ * DESCRIPTION: ASL tables that are used in RSDT/XSDT, also used to test
+ * Load/LoadTable operators.
+ *
+ *****************************************************************************/
+
+DefinitionBlock ("", "OEMX", 2, "MyOEM", "Test", 0x00000432)
+{
+ External (GPE2, DeviceObj)
+
+ Method (_INI)
+ {
+ Store ("Table OEMX running", Debug)
+ }
+
+ Scope (\_GPE)
+ {
+ Method (_E07) {}
+ Method (_E22) {}
+ Method (_L31) {}
+ Method (_L66) {}
+ }
+
+ Device (OEM1)
+ {
+ Name (_PRW, Package(){7,0})
+ }
+ Device (OEM2)
+ {
+ Name (_PRW, Package(){0x66,0})
+ }
+
+ Scope (\GPE2)
+ {
+ Method (_L01) {}
+ Method (_E07) {}
+
+ Name (_PRW, Package() {Package() {\GPE2, 1}, 0})
+ }
+}
+
+/* Parent gr.asl file */
+
+DefinitionBlock ("", "DSDT", 2, "Intel", "Many", 0x00000001)
+{
+ Name (BUF1, Buffer()
+ {
+ 0x4F,0x45,0x4D,0x58,0xB0,0x00,0x00,0x00, /* 00000000 "OEMX...." */
+ 0x02,0x54,0x4D,0x79,0x4F,0x45,0x4D,0x00, /* 00000008 ".TMyOEM." */
+ 0x54,0x65,0x73,0x74,0x00,0x00,0x00,0x00, /* 00000010 "Test...." */
+ 0x32,0x04,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "2...INTL" */
+ 0x31,0x03,0x10,0x20,0x14,0x1D,0x5F,0x49, /* 00000020 "1.. .._I" */
+ 0x4E,0x49,0x00,0x70,0x0D,0x54,0x61,0x62, /* 00000028 "NI.p.Tab" */
+ 0x6C,0x65,0x20,0x4F,0x45,0x4D,0x58,0x20, /* 00000030 "le OEMX " */
+ 0x72,0x75,0x6E,0x6E,0x69,0x6E,0x67,0x00, /* 00000038 "running." */
+ 0x5B,0x31,0x10,0x22,0x5C,0x5F,0x47,0x50, /* 00000040 "[1."\_GP" */
+ 0x45,0x14,0x06,0x5F,0x45,0x30,0x37,0x00, /* 00000048 "E.._E07." */
+ 0x14,0x06,0x5F,0x45,0x32,0x32,0x00,0x14, /* 00000050 ".._E22.." */
+ 0x06,0x5F,0x4C,0x33,0x31,0x00,0x14,0x06, /* 00000058 "._L31..." */
+ 0x5F,0x4C,0x36,0x36,0x00,0x5B,0x82,0x10, /* 00000060 "_L66.[.." */
+ 0x4F,0x45,0x4D,0x31,0x08,0x5F,0x50,0x52, /* 00000068 "OEM1._PR" */
+ 0x57,0x12,0x05,0x02,0x0A,0x07,0x00,0x5B, /* 00000070 "W......[" */
+ 0x82,0x10,0x4F,0x45,0x4D,0x32,0x08,0x5F, /* 00000078 "..OEM2._" */
+ 0x50,0x52,0x57,0x12,0x05,0x02,0x0A,0x66, /* 00000080 "PRW....f" */
+ 0x00,0x10,0x26,0x5C,0x47,0x50,0x45,0x32, /* 00000088 "..&\GPE2" */
+ 0x14,0x06,0x5F,0x4C,0x30,0x31,0x00,0x14, /* 00000090 ".._L01.." */
+ 0x06,0x5F,0x45,0x30,0x37,0x00,0x08,0x5F, /* 00000098 "._E07.._" */
+ 0x50,0x52,0x57,0x12,0x0C,0x02,0x12,0x08, /* 000000A0 "PRW....." */
+ 0x02,0x5C,0x47,0x50,0x45,0x32,0x01,0x00 /* 000000A8 ".\GPE2.." */
+ })
+
+ Name (HNDL, 0)
+ Method (LD)
+ {
+ Load (BUF1, HNDL)
+ Store ("Load operator, handle:", Debug)
+ Store (HNDL, Debug)
+ }
+
+ Method (MAIN, 0, NotSerialized)
+ {
+ Store ("Loading OEMX table", Debug)
+ Store (LoadTable ("OEMX", "MyOEM", "Test"), Debug)
+ }
+
+ Scope (\_GPE)
+ {
+ Method (_L08) {}
+ Method (_E08) {}
+ Method (_L0B) {}
+ }
+
+ Device (DEV0)
+ {
+ Name (_PRW, Package() {0x11, 0})
+ }
+
+ Device (\GPE2)
+ {
+ Method (_L00) {}
+ }
+}
+
+#endif
+