summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/sys/acpi/actbl.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/intel/sys/acpi/actbl.h')
-rw-r--r--usr/src/uts/intel/sys/acpi/actbl.h377
1 files changed, 144 insertions, 233 deletions
diff --git a/usr/src/uts/intel/sys/acpi/actbl.h b/usr/src/uts/intel/sys/acpi/actbl.h
index c8b8539fab..1ad1e6bfea 100644
--- a/usr/src/uts/intel/sys/acpi/actbl.h
+++ b/usr/src/uts/intel/sys/acpi/actbl.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: actbl.h - Basic ACPI Table Definitions
- * $Revision: 1.80 $
+ * $Revision: 1.85 $
*
*****************************************************************************/
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2008, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -121,15 +121,15 @@
* Values for description table header signatures. Useful because they make
* it more difficult to inadvertently type in the wrong signature.
*/
-#define DSDT_SIG "DSDT" /* Differentiated System Description Table */
-#define FADT_SIG "FACP" /* Fixed ACPI Description Table */
-#define FACS_SIG "FACS" /* Firmware ACPI Control Structure */
-#define PSDT_SIG "PSDT" /* Persistent System Description Table */
-#define RSDP_SIG "RSD PTR " /* Root System Description Pointer */
-#define RSDT_SIG "RSDT" /* Root System Description Table */
-#define XSDT_SIG "XSDT" /* Extended System Description Table */
-#define SSDT_SIG "SSDT" /* Secondary System Description Table */
-#define RSDP_NAME "RSDP"
+#define ACPI_SIG_DSDT "DSDT" /* Differentiated System Description Table */
+#define ACPI_SIG_FADT "FACP" /* Fixed ACPI Description Table */
+#define ACPI_SIG_FACS "FACS" /* Firmware ACPI Control Structure */
+#define ACPI_SIG_PSDT "PSDT" /* Persistent System Description Table */
+#define ACPI_SIG_RSDP "RSD PTR " /* Root System Description Pointer */
+#define ACPI_SIG_RSDT "RSDT" /* Root System Description Table */
+#define ACPI_SIG_XSDT "XSDT" /* Extended System Description Table */
+#define ACPI_SIG_SSDT "SSDT" /* Secondary System Description Table */
+#define ACPI_RSDP_NAME "RSDP" /* Short name for RSDP, not signature */
/*
@@ -158,32 +158,33 @@
*
******************************************************************************/
-#define ACPI_TABLE_HEADER_DEF \
- char Signature[4]; /* ASCII table signature */\
- UINT32 Length; /* Length of table in bytes, including this header */\
- UINT8 Revision; /* ACPI Specification minor version # */\
- UINT8 Checksum; /* To make sum of entire table == 0 */\
- char OemId[6]; /* ASCII OEM identification */\
- char OemTableId[8]; /* ASCII OEM table identification */\
- UINT32 OemRevision; /* OEM revision number */\
- char AslCompilerId[4]; /* ASCII ASL compiler vendor ID */\
- UINT32 AslCompilerRevision; /* ASL compiler version */
-
typedef struct acpi_table_header
{
- ACPI_TABLE_HEADER_DEF
+ char Signature[ACPI_NAME_SIZE]; /* ASCII table signature */
+ UINT32 Length; /* Length of table in bytes, including this header */
+ UINT8 Revision; /* ACPI Specification minor version # */
+ UINT8 Checksum; /* To make sum of entire table == 0 */
+ char OemId[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
+ char OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
+ UINT32 OemRevision; /* OEM revision number */
+ char AslCompilerId[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */
+ UINT32 AslCompilerRevision; /* ASL compiler version */
} ACPI_TABLE_HEADER;
/*
* GAS - Generic Address Structure (ACPI 2.0+)
+ *
+ * Note: Since this structure is used in the ACPI tables, it is byte aligned.
+ * If misalignment is not supported, access to the Address field must be
+ * performed with care.
*/
typedef struct acpi_generic_address
{
- UINT8 AddressSpaceId; /* Address space where struct or register exists */
- UINT8 RegisterBitWidth; /* Size in bits of given register */
- UINT8 RegisterBitOffset; /* Bit offset within the register */
+ UINT8 SpaceId; /* Address space where struct or register exists */
+ UINT8 BitWidth; /* Size in bits of given register */
+ UINT8 BitOffset; /* Bit offset within the register */
UINT8 AccessWidth; /* Minimum Access size (ACPI 3.0) */
UINT64 Address; /* 64-bit address of struct or register */
@@ -196,19 +197,19 @@ typedef struct acpi_generic_address
*
******************************************************************************/
-typedef struct rsdp_descriptor
+typedef struct acpi_table_rsdp
{
- char Signature[8]; /* ACPI signature, contains "RSD PTR " */
- UINT8 Checksum; /* ACPI 1.0 checksum */
- char OemId[6]; /* OEM identification */
- UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */
- UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */
- UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */
- UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT (ACPI 2.0+) */
- UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */
- UINT8 Reserved[3]; /* Reserved, must be zero */
-
-} RSDP_DESCRIPTOR;
+ char Signature[8]; /* ACPI signature, contains "RSD PTR " */
+ UINT8 Checksum; /* ACPI 1.0 checksum */
+ char OemId[ACPI_OEM_ID_SIZE]; /* OEM identification */
+ UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */
+ UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */
+ UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */
+ UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT (ACPI 2.0+) */
+ UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */
+ UINT8 Reserved[3]; /* Reserved, must be zero */
+
+} ACPI_TABLE_RSDP;
#define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */
@@ -219,19 +220,19 @@ typedef struct rsdp_descriptor
*
******************************************************************************/
-typedef struct rsdt_descriptor
+typedef struct acpi_table_rsdt
{
- ACPI_TABLE_HEADER_DEF
- UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */
-} RSDT_DESCRIPTOR;
+} ACPI_TABLE_RSDT;
-typedef struct xsdt_descriptor
+typedef struct acpi_table_xsdt
{
- ACPI_TABLE_HEADER_DEF
- UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */
-} XSDT_DESCRIPTOR;
+} ACPI_TABLE_XSDT;
/*******************************************************************************
@@ -240,40 +241,28 @@ typedef struct xsdt_descriptor
*
******************************************************************************/
-typedef struct facs_descriptor
+typedef struct acpi_table_facs
{
char Signature[4]; /* ASCII table signature */
UINT32 Length; /* Length of structure, in bytes */
UINT32 HardwareSignature; /* Hardware configuration signature */
UINT32 FirmwareWakingVector; /* 32-bit physical address of the Firmware Waking Vector */
UINT32 GlobalLock; /* Global Lock for shared hardware resources */
-
- /* Flags (32 bits) */
-
- UINT8 S4Bios_f : 1; /* 00: S4BIOS support is present */
- UINT8 : 7; /* 01-07: Reserved, must be zero */
- UINT8 Reserved1[3]; /* 08-31: Reserved, must be zero */
-
+ UINT32 Flags;
UINT64 XFirmwareWakingVector; /* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */
UINT8 Version; /* Version of this table (ACPI 2.0+) */
UINT8 Reserved[31]; /* Reserved, must be zero */
-} FACS_DESCRIPTOR;
+} ACPI_TABLE_FACS;
-#define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */
-#define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned */
+/* Flag macros */
+#define ACPI_FACS_S4_BIOS_PRESENT (1) /* 00: S4BIOS support is present */
-/*
- * Common FACS - This is a version-independent FACS structure used for internal use only
- */
-typedef struct acpi_common_facs
-{
- UINT32 *GlobalLock;
- UINT64 *FirmwareWakingVector;
- UINT8 VectorWidth;
+/* Global lock flags */
-} ACPI_COMMON_FACS;
+#define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */
+#define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned */
/*******************************************************************************
@@ -284,135 +273,104 @@ typedef struct acpi_common_facs
/* Fields common to all versions of the FADT */
-#define ACPI_FADT_COMMON \
- ACPI_TABLE_HEADER_DEF \
- UINT32 V1_FirmwareCtrl; /* 32-bit physical address of FACS */ \
- UINT32 V1_Dsdt; /* 32-bit physical address of DSDT */ \
- UINT8 Reserved1; /* System Interrupt Model isn't used in ACPI 2.0*/ \
- UINT8 Prefer_PM_Profile; /* Conveys preferred power management profile to OSPM. */ \
- UINT16 SciInt; /* System vector of SCI interrupt */ \
- UINT32 SmiCmd; /* Port address of SMI command port */ \
- UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */ \
- UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */ \
- UINT8 S4BiosReq; /* Value to write to SMI CMD to enter S4BIOS state */ \
- UINT8 PstateCnt; /* Processor performance state control*/ \
- UINT32 V1_Pm1aEvtBlk; /* Port address of Power Mgt 1a Event Reg Blk */ \
- UINT32 V1_Pm1bEvtBlk; /* Port address of Power Mgt 1b Event Reg Blk */ \
- UINT32 V1_Pm1aCntBlk; /* Port address of Power Mgt 1a Control Reg Blk */ \
- UINT32 V1_Pm1bCntBlk; /* Port address of Power Mgt 1b Control Reg Blk */ \
- UINT32 V1_Pm2CntBlk; /* Port address of Power Mgt 2 Control Reg Blk */ \
- UINT32 V1_PmTmrBlk; /* Port address of Power Mgt Timer Ctrl Reg Blk */ \
- UINT32 V1_Gpe0Blk; /* Port addr of General Purpose AcpiEvent 0 Reg Blk */ \
- UINT32 V1_Gpe1Blk; /* Port addr of General Purpose AcpiEvent 1 Reg Blk */ \
- UINT8 Pm1EvtLen; /* Byte Length of ports at pm1X_evt_blk */ \
- UINT8 Pm1CntLen; /* Byte Length of ports at pm1X_cnt_blk */ \
- UINT8 Pm2CntLen; /* Byte Length of ports at pm2_cnt_blk */ \
- UINT8 PmTmLen; /* Byte Length of ports at pm_tm_blk */ \
- UINT8 Gpe0BlkLen; /* Byte Length of ports at gpe0_blk */ \
- UINT8 Gpe1BlkLen; /* Byte Length of ports at gpe1_blk */ \
- UINT8 Gpe1Base; /* Offset in gpe model where gpe1 events start */ \
- UINT8 CstCnt; /* Support for the _CST object and C States change notification.*/ \
- UINT16 Plvl2Lat; /* Worst case HW latency to enter/exit C2 state */ \
- UINT16 Plvl3Lat; /* Worst case HW latency to enter/exit C3 state */ \
- UINT16 FlushSize; /* Processor's memory cache line width, in bytes */ \
- UINT16 FlushStride; /* Number of flush strides that need to be read */ \
- UINT8 DutyOffset; /* Processor's duty cycle index in processor's P_CNT reg*/ \
- UINT8 DutyWidth; /* Processor's duty cycle value bit width in P_CNT register.*/ \
- UINT8 DayAlrm; /* Index to day-of-month alarm in RTC CMOS RAM */ \
- UINT8 MonAlrm; /* Index to month-of-year alarm in RTC CMOS RAM */ \
- UINT8 Century; /* Index to century in RTC CMOS RAM */ \
- UINT16 IapcBootArch; /* IA-PC Boot Architecture Flags. See Table 5-10 for description*/ \
- UINT8 Reserved2; /* Reserved, must be zero */
-
-
-/*
- * ACPI 2.0+ FADT
- */
-typedef struct fadt_descriptor
+typedef struct acpi_table_fadt
{
- ACPI_FADT_COMMON
-
- /* Flags (32 bits) */
-
- UINT8 WbInvd : 1; /* 00: The wbinvd instruction works properly */
- UINT8 WbInvdFlush : 1; /* 01: The wbinvd flushes but does not invalidate */
- UINT8 ProcC1 : 1; /* 02: All processors support C1 state */
- UINT8 Plvl2Up : 1; /* 03: C2 state works on MP system */
- UINT8 PwrButton : 1; /* 04: Power button is handled as a generic feature */
- UINT8 SleepButton : 1; /* 05: Sleep button is handled as a generic feature, or not present */
- UINT8 FixedRTC : 1; /* 06: RTC wakeup stat not in fixed register space */
- UINT8 Rtcs4 : 1; /* 07: RTC wakeup stat not possible from S4 */
- UINT8 TmrValExt : 1; /* 08: tmr_val is 32 bits 0=24-bits */
- UINT8 DockCap : 1; /* 09: Docking supported */
- UINT8 ResetRegSup : 1; /* 10: System reset via the FADT RESET_REG supported */
- UINT8 SealedCase : 1; /* 11: No internal expansion capabilities and case is sealed */
- UINT8 Headless : 1; /* 12: No local video capabilities or local input devices */
- UINT8 CpuSwSleep : 1; /* 13: Must execute native instruction after writing SLP_TYPx register */
-
- UINT8 PciExpWak : 1; /* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */
- UINT8 UsePlatformClock : 1; /* 15: OSPM should use platform-provided timer (ACPI 3.0) */
- UINT8 S4RtcStsValid : 1; /* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */
- UINT8 RemotePowerOnCapable : 1; /* 17: System is compatible with remote power on (ACPI 3.0) */
- UINT8 ForceApicClusterModel : 1; /* 18: All local APICs must use cluster model (ACPI 3.0) */
- UINT8 ForceApicPhysicalDestinationMode : 1; /* 19: All local xAPICs must use physical dest mode (ACPI 3.0) */
- UINT8 : 4; /* 20-23: Reserved, must be zero */
- UINT8 Reserved3; /* 24-31: Reserved, must be zero */
-
- ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 Facs; /* 32-bit physical address of FACS */
+ UINT32 Dsdt; /* 32-bit physical address of DSDT */
+ UINT8 Model; /* System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */
+ UINT8 PreferredProfile; /* Conveys preferred power management profile to OSPM. */
+ UINT16 SciInterrupt; /* System vector of SCI interrupt */
+ UINT32 SmiCommand; /* 32-bit Port address of SMI command port */
+ UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */
+ UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */
+ UINT8 S4BiosRequest; /* Value to write to SMI CMD to enter S4BIOS state */
+ UINT8 PstateControl; /* Processor performance state control*/
+ UINT32 Pm1aEventBlock; /* 32-bit Port address of Power Mgt 1a Event Reg Blk */
+ UINT32 Pm1bEventBlock; /* 32-bit Port address of Power Mgt 1b Event Reg Blk */
+ UINT32 Pm1aControlBlock; /* 32-bit Port address of Power Mgt 1a Control Reg Blk */
+ UINT32 Pm1bControlBlock; /* 32-bit Port address of Power Mgt 1b Control Reg Blk */
+ UINT32 Pm2ControlBlock; /* 32-bit Port address of Power Mgt 2 Control Reg Blk */
+ UINT32 PmTimerBlock; /* 32-bit Port address of Power Mgt Timer Ctrl Reg Blk */
+ UINT32 Gpe0Block; /* 32-bit Port address of General Purpose Event 0 Reg Blk */
+ UINT32 Gpe1Block; /* 32-bit Port address of General Purpose Event 1 Reg Blk */
+ UINT8 Pm1EventLength; /* Byte Length of ports at Pm1xEventBlock */
+ UINT8 Pm1ControlLength; /* Byte Length of ports at Pm1xControlBlock */
+ UINT8 Pm2ControlLength; /* Byte Length of ports at Pm2ControlBlock */
+ UINT8 PmTimerLength; /* Byte Length of ports at PmTimerBlock */
+ UINT8 Gpe0BlockLength; /* Byte Length of ports at Gpe0Block */
+ UINT8 Gpe1BlockLength; /* Byte Length of ports at Gpe1Block */
+ UINT8 Gpe1Base; /* Offset in GPE number space where GPE1 events start */
+ UINT8 CstControl; /* Support for the _CST object and C States change notification */
+ UINT16 C2Latency; /* Worst case HW latency to enter/exit C2 state */
+ UINT16 C3Latency; /* Worst case HW latency to enter/exit C3 state */
+ UINT16 FlushSize; /* Processor's memory cache line width, in bytes */
+ UINT16 FlushStride; /* Number of flush strides that need to be read */
+ UINT8 DutyOffset; /* Processor duty cycle index in processor's P_CNT reg*/
+ UINT8 DutyWidth; /* Processor duty cycle value bit width in P_CNT register.*/
+ UINT8 DayAlarm; /* Index to day-of-month alarm in RTC CMOS RAM */
+ UINT8 MonthAlarm; /* Index to month-of-year alarm in RTC CMOS RAM */
+ UINT8 Century; /* Index to century in RTC CMOS RAM */
+ UINT16 BootFlags; /* IA-PC Boot Architecture Flags. See Table 5-10 for description */
+ UINT8 Reserved; /* Reserved, must be zero */
+ UINT32 Flags; /* Miscellaneous flag bits (see below for individual flags) */
+ ACPI_GENERIC_ADDRESS ResetRegister; /* 64-bit address of the Reset register */
UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system */
- UINT8 Reserved4[3]; /* These three bytes must be zero */
- UINT64 XFirmwareCtrl; /* 64-bit physical address of FACS */
+ UINT8 Reserved4[3]; /* Reserved, must be zero */
+ UINT64 XFacs; /* 64-bit physical address of FACS */
UINT64 XDsdt; /* 64-bit physical address of DSDT */
- ACPI_GENERIC_ADDRESS XPm1aEvtBlk; /* Extended Power Mgt 1a AcpiEvent Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm1bEvtBlk; /* Extended Power Mgt 1b AcpiEvent Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm1aCntBlk; /* Extended Power Mgt 1a Control Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm1bCntBlk; /* Extended Power Mgt 1b Control Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm2CntBlk; /* Extended Power Mgt 2 Control Reg Blk address */
- ACPI_GENERIC_ADDRESS XPmTmrBlk; /* Extended Power Mgt Timer Ctrl Reg Blk address */
- ACPI_GENERIC_ADDRESS XGpe0Blk; /* Extended General Purpose AcpiEvent 0 Reg Blk address */
- ACPI_GENERIC_ADDRESS XGpe1Blk; /* Extended General Purpose AcpiEvent 1 Reg Blk address */
-
-} FADT_DESCRIPTOR;
+ ACPI_GENERIC_ADDRESS XPm1aEventBlock; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */
+ ACPI_GENERIC_ADDRESS XPm1bEventBlock; /* 64-bit Extended Power Mgt 1b Event Reg Blk address */
+ ACPI_GENERIC_ADDRESS XPm1aControlBlock; /* 64-bit Extended Power Mgt 1a Control Reg Blk address */
+ ACPI_GENERIC_ADDRESS XPm1bControlBlock; /* 64-bit Extended Power Mgt 1b Control Reg Blk address */
+ ACPI_GENERIC_ADDRESS XPm2ControlBlock; /* 64-bit Extended Power Mgt 2 Control Reg Blk address */
+ ACPI_GENERIC_ADDRESS XPmTimerBlock; /* 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */
+ ACPI_GENERIC_ADDRESS XGpe0Block; /* 64-bit Extended General Purpose Event 0 Reg Blk address */
+ ACPI_GENERIC_ADDRESS XGpe1Block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */
+
+} ACPI_TABLE_FADT;
+
+
+/* FADT flags */
+
+#define ACPI_FADT_WBINVD (1) /* 00: The wbinvd instruction works properly */
+#define ACPI_FADT_WBINVD_FLUSH (1<<1) /* 01: The wbinvd flushes but does not invalidate */
+#define ACPI_FADT_C1_SUPPORTED (1<<2) /* 02: All processors support C1 state */
+#define ACPI_FADT_C2_MP_SUPPORTED (1<<3) /* 03: C2 state works on MP system */
+#define ACPI_FADT_POWER_BUTTON (1<<4) /* 04: Power button is handled as a generic feature */
+#define ACPI_FADT_SLEEP_BUTTON (1<<5) /* 05: Sleep button is handled as a generic feature, or not present */
+#define ACPI_FADT_FIXED_RTC (1<<6) /* 06: RTC wakeup stat not in fixed register space */
+#define ACPI_FADT_S4_RTC_WAKE (1<<7) /* 07: RTC wakeup stat not possible from S4 */
+#define ACPI_FADT_32BIT_TIMER (1<<8) /* 08: tmr_val is 32 bits 0=24-bits */
+#define ACPI_FADT_DOCKING_SUPPORTED (1<<9) /* 09: Docking supported */
+#define ACPI_FADT_RESET_REGISTER (1<<10) /* 10: System reset via the FADT RESET_REG supported */
+#define ACPI_FADT_SEALED_CASE (1<<11) /* 11: No internal expansion capabilities and case is sealed */
+#define ACPI_FADT_HEADLESS (1<<12) /* 12: No local video capabilities or local input devices */
+#define ACPI_FADT_SLEEP_TYPE (1<<13) /* 13: Must execute native instruction after writing SLP_TYPx register */
+#define ACPI_FADT_PCI_EXPRESS_WAKE (1<<14) /* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */
+#define ACPI_FADT_PLATFORM_CLOCK (1<<15) /* 15: OSPM should use platform-provided timer (ACPI 3.0) */
+#define ACPI_FADT_S4_RTC_VALID (1<<16) /* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */
+#define ACPI_FADT_REMOTE_POWER_ON (1<<17) /* 17: System is compatible with remote power on (ACPI 3.0) */
+#define ACPI_FADT_APIC_CLUSTER (1<<18) /* 18: All local APICs must use cluster model (ACPI 3.0) */
+#define ACPI_FADT_APIC_PHYSICAL (1<<19) /* 19: All local xAPICs must use physical dest mode (ACPI 3.0) */
/*
- * "Down-revved" ACPI 2.0 FADT descriptor
- * Defined here to allow compiler to generate the length of the struct
+ * FADT Prefered Power Management Profiles
*/
-typedef struct fadt_descriptor_rev2_minus
+enum AcpiPreferedPmProfiles
{
- ACPI_FADT_COMMON
- UINT32 Flags;
- ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */
- UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system. */
- UINT8 Reserved7[3]; /* Reserved, must be zero */
+ PM_UNSPECIFIED = 0,
+ PM_DESKTOP = 1,
+ PM_MOBILE = 2,
+ PM_WORKSTATION = 3,
+ PM_ENTERPRISE_SERVER = 4,
+ PM_SOHO_SERVER = 5,
+ PM_APPLIANCE_PC = 6
+};
-} FADT_DESCRIPTOR_REV2_MINUS;
-
-/*
- * ACPI 1.0 FADT
- * Defined here to allow compiler to generate the length of the struct
- */
-typedef struct fadt_descriptor_rev1
-{
- ACPI_FADT_COMMON
- UINT32 Flags;
-
-} FADT_DESCRIPTOR_REV1;
-
-
-/* FADT: Prefered Power Management Profiles */
-
-#define PM_UNSPECIFIED 0
-#define PM_DESKTOP 1
-#define PM_MOBILE 2
-#define PM_WORKSTATION 3
-#define PM_ENTERPRISE_SERVER 4
-#define PM_SOHO_SERVER 5
-#define PM_APPLIANCE_PC 6
-
-/* FADT: Boot Arch Flags */
+/* FADT Boot Arch Flags */
#define BAF_LEGACY_DEVICES 0x0001
#define BAF_8042_KEYBOARD_CONTROLLER 0x0002
@@ -426,59 +384,12 @@ typedef struct fadt_descriptor_rev1
#pragma pack()
/*
- * This macro is temporary until the table bitfield flag definitions
- * are removed and replaced by a Flags field.
- */
-#define ACPI_FLAG_OFFSET(d,f,o) (UINT8) (ACPI_OFFSET (d,f) + \
- sizeof(((d *)0)->f) + o)
-/*
* Get the remaining ACPI tables
*/
#include "actbl1.h"
-/*
- * ACPI Table information. We save the table address, length,
- * and type of memory allocation (mapped or allocated) for each
- * table for 1) when we exit, and 2) if a new table is installed
- */
-#define ACPI_MEM_NOT_ALLOCATED 0
-#define ACPI_MEM_ALLOCATED 1
-#define ACPI_MEM_MAPPED 2
-
-/* Definitions for the Flags bitfield member of ACPI_TABLE_SUPPORT */
-
-#define ACPI_TABLE_SINGLE 0x00
-#define ACPI_TABLE_MULTIPLE 0x01
-#define ACPI_TABLE_EXECUTABLE 0x02
-
-#define ACPI_TABLE_ROOT 0x00
-#define ACPI_TABLE_PRIMARY 0x10
-#define ACPI_TABLE_SECONDARY 0x20
-#define ACPI_TABLE_ALL 0x30
-#define ACPI_TABLE_TYPE_MASK 0x30
-
-/* Data about each known table type */
-
-typedef struct acpi_table_support
-{
- char *Name;
- char *Signature;
- void **GlobalPtr;
- UINT8 SigLength;
- UINT8 Flags;
-
-} ACPI_TABLE_SUPPORT;
-
-
/* Macros used to generate offsets to specific table fields */
-#define ACPI_FACS_OFFSET(f) (UINT8) ACPI_OFFSET (FACS_DESCRIPTOR,f)
-#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (FADT_DESCRIPTOR, f)
-#define ACPI_GAS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f)
-#define ACPI_HDR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HEADER,f)
-#define ACPI_RSDP_OFFSET(f) (UINT8) ACPI_OFFSET (RSDP_DESCRIPTOR,f)
-
-#define ACPI_FADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (FADT_DESCRIPTOR,f,o)
-#define ACPI_FACS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (FACS_DESCRIPTOR,f,o)
+#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FADT, f)
#endif /* __ACTBL_H__ */