Print this page
update to acpica-unix2-20131218
acpica-unix2-20130823
PANKOVs restructure

*** 3,13 **** * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec) * *****************************************************************************/ /* ! * Copyright (C) 2000 - 2011, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: --- 3,13 ---- * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec) * *****************************************************************************/ /* ! * Copyright (C) 2000 - 2013, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met:
*** 63,84 **** --- 63,88 ---- * file. Useful because they make it more difficult to inadvertently type in * the wrong signature. */ #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ + #define ACPI_SIG_CSRT "CSRT" /* Core System Resource Table */ + #define ACPI_SIG_DBG2 "DBG2" /* Debug Port table type 2 */ #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ #define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */ #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ #define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ + #define ACPI_SIG_MTMR "MTMR" /* MID Timer table */ #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ + #define ACPI_SIG_VRTC "VRTC" /* Virtual Real Time Clock Table */ #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
*** 96,108 **** * the tables are provided by the system BIOS. */ #pragma pack(1) /* ! * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables. ! * This is the only type that is even remotely portable. Anything else is not ! * portable, so do not use any other bitfield types. */ /******************************************************************************* * --- 100,118 ---- * the tables are provided by the system BIOS. */ #pragma pack(1) /* ! * Note: C bitfields are not used for this reason: ! * ! * "Bitfields are great and easy to read, but unfortunately the C language ! * does not specify the layout of bitfields in memory, which means they are ! * essentially useless for dealing with packed data in on-disk formats or ! * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, ! * this decision was a design error in C. Ritchie could have picked an order ! * and stuck with it." Norman Ramsey. ! * See http://stackoverflow.com/a/1053662/41661 */ /******************************************************************************* *
*** 262,271 **** --- 272,433 ---- } ACPI_TABLE_BOOT; /******************************************************************************* * + * CSRT - Core System Resource Table + * Version 0 + * + * Conforms to the "Core System Resource Table (CSRT)", November 14, 2011 + * + ******************************************************************************/ + + typedef struct acpi_table_csrt + { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + + } ACPI_TABLE_CSRT; + + + /* Resource Group subtable */ + + typedef struct acpi_csrt_group + { + UINT32 Length; + UINT32 VendorId; + UINT32 SubvendorId; + UINT16 DeviceId; + UINT16 SubdeviceId; + UINT16 Revision; + UINT16 Reserved; + UINT32 SharedInfoLength; + + /* Shared data immediately follows (Length = SharedInfoLength) */ + + } ACPI_CSRT_GROUP; + + /* Shared Info subtable */ + + typedef struct acpi_csrt_shared_info + { + UINT16 MajorVersion; + UINT16 MinorVersion; + UINT32 MmioBaseLow; + UINT32 MmioBaseHigh; + UINT32 GsiInterrupt; + UINT8 InterruptPolarity; + UINT8 InterruptMode; + UINT8 NumChannels; + UINT8 DmaAddressWidth; + UINT16 BaseRequestLine; + UINT16 NumHandshakeSignals; + UINT32 MaxBlockSize; + + /* Resource descriptors immediately follow (Length = Group Length - SharedInfoLength) */ + + } ACPI_CSRT_SHARED_INFO; + + /* Resource Descriptor subtable */ + + typedef struct acpi_csrt_descriptor + { + UINT32 Length; + UINT16 Type; + UINT16 Subtype; + UINT32 Uid; + + /* Resource-specific information immediately follows */ + + } ACPI_CSRT_DESCRIPTOR; + + + /* Resource Types */ + + #define ACPI_CSRT_TYPE_INTERRUPT 0x0001 + #define ACPI_CSRT_TYPE_TIMER 0x0002 + #define ACPI_CSRT_TYPE_DMA 0x0003 + + /* Resource Subtypes */ + + #define ACPI_CSRT_XRUPT_LINE 0x0000 + #define ACPI_CSRT_XRUPT_CONTROLLER 0x0001 + #define ACPI_CSRT_TIMER 0x0000 + #define ACPI_CSRT_DMA_CHANNEL 0x0000 + #define ACPI_CSRT_DMA_CONTROLLER 0x0001 + + + /******************************************************************************* + * + * DBG2 - Debug Port Table 2 + * Version 0 (Both main table and subtables) + * + * Conforms to "Microsoft Debug Port Table 2 (DBG2)", May 22 2012. + * + ******************************************************************************/ + + typedef struct acpi_table_dbg2 + { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 InfoOffset; + UINT32 InfoCount; + + } ACPI_TABLE_DBG2; + + + typedef struct acpi_dbg2_header + { + UINT32 InfoOffset; + UINT32 InfoCount; + + } ACPI_DBG2_HEADER; + + + /* Debug Device Information Subtable */ + + typedef struct acpi_dbg2_device + { + UINT8 Revision; + UINT16 Length; + UINT8 RegisterCount; /* Number of BaseAddress registers */ + UINT16 NamepathLength; + UINT16 NamepathOffset; + UINT16 OemDataLength; + UINT16 OemDataOffset; + UINT16 PortType; + UINT16 PortSubtype; + UINT16 Reserved; + UINT16 BaseAddressOffset; + UINT16 AddressSizeOffset; + /* + * Data that follows: + * BaseAddress (required) - Each in 12-byte Generic Address Structure format. + * AddressSize (required) - Array of UINT32 sizes corresponding to each BaseAddress register. + * Namepath (required) - Null terminated string. Single dot if not supported. + * OemData (optional) - Length is OemDataLength. + */ + } ACPI_DBG2_DEVICE; + + /* Types for PortType field above */ + + #define ACPI_DBG2_SERIAL_PORT 0x8000 + #define ACPI_DBG2_1394_PORT 0x8001 + #define ACPI_DBG2_USB_PORT 0x8002 + #define ACPI_DBG2_NET_PORT 0x8003 + + /* Subtypes for PortSubtype field above */ + + #define ACPI_DBG2_16550_COMPATIBLE 0x0000 + #define ACPI_DBG2_16550_SUBSET 0x0001 + + #define ACPI_DBG2_1394_STANDARD 0x0000 + + #define ACPI_DBG2_USB_XHCI 0x0000 + #define ACPI_DBG2_USB_EHCI 0x0001 + + + /******************************************************************************* + * * DBGP - Debug Port table * Version 1 * * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000 *
*** 829,838 **** --- 991,1028 ---- } ACPI_TABLE_MCHI; /******************************************************************************* * + * MTMR - MID Timer Table + * Version 1 + * + * Conforms to "Simple Firmware Interface Specification", + * Draft 0.8.2, Oct 19, 2010 + * NOTE: The ACPI MTMR is equivalent to the SFI MTMR table. + * + ******************************************************************************/ + + typedef struct acpi_table_mtmr + { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + + } ACPI_TABLE_MTMR; + + /* MTMR entry */ + + typedef struct acpi_mtmr_entry + { + ACPI_GENERIC_ADDRESS PhysicalAddress; + UINT32 Frequency; + UINT32 Irq; + + } ACPI_MTMR_ENTRY; + + + /******************************************************************************* + * * SLIC - Software Licensing Description Table * Version 1 * * Conforms to "OEM Activation 2.0 for Windows Vista Operating Systems", * Copyright 2006
*** 1028,1037 **** --- 1218,1254 ---- } ACPI_TABLE_UEFI; /******************************************************************************* * + * VRTC - Virtual Real Time Clock Table + * Version 1 + * + * Conforms to "Simple Firmware Interface Specification", + * Draft 0.8.2, Oct 19, 2010 + * NOTE: The ACPI VRTC is equivalent to The SFI MRTC table. + * + ******************************************************************************/ + + typedef struct acpi_table_vrtc + { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + + } ACPI_TABLE_VRTC; + + /* VRTC entry */ + + typedef struct acpi_vrtc_entry + { + ACPI_GENERIC_ADDRESS PhysicalAddress; + UINT32 Irq; + + } ACPI_VRTC_ENTRY; + + + /******************************************************************************* + * * WAET - Windows ACPI Emulated devices Table * Version 1 * * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 *
*** 1202,1207 **** /* Reset to default packing */ #pragma pack() #endif /* __ACTBL2_H__ */ - --- 1419,1423 ----