LCA13: ARM Server Mini-Summit: ACPI


Published on

Resource: LCA13
Name: ARM Server Mini-Summit: ACPI
Date: 05-03-2013
Speaker: Al Stone

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

LCA13: ARM Server Mini-Summit: ACPI

  1. 1. ASIA 2013 (LCA13) LEG: ACPI for ARMv8 Al Stone, Red Hat
  2. 2. ASIA 2013 (LCA13) What is ACPI? ACPI == Advanced Configuration and Power Interface As usual, an overloaded term: A specification (4.0a, 5.0: An implementation (MS Windows, Linux drivers) The tables, objects and methods that create an instance for specific hardware A text or binary representation of an instance (ASL or AML) A reference implementation (ACPICA: User-space tools Why do we care? Expected in the enterprise environment: it is a known Manufacturer demand (SoC vendors, Server OEMs) Standardization for AArch64 (e.g., UEFI) Issues: Governance in producing the specification
  3. 3. ASIA 2013 (LCA13) Hardware Register Blocks What Does ACPI Look Like? RSD Ptr Pointer Pointer Root System Description Pointer Header XSDT Entry ..... Entry Entry Extended System Description Table Header FACP Static Info BLKs DSDT FIRM Fixed ACPI Description Table Header FACS Wake Vector Shared Lock Firmware ACPI Control Structure Header DSDT Differentiated System Description Table Differentiated Definition Block Header Sig Contents Header Sig Contents ..... ACPI Driver Software Hardware Hardware Register Blocks Hardware Register Blocks Port Space OEM Specific Device I/O Device Memory PCI Configuration Embedded Controller Space
  4. 4. ASIA 2013 (LCA13) What's in the Tables? ACPI can describe: System power management Device power management Processor power management Configuration / Plug and Play System events Battery management Thermal management Embedded controller SMBus controller AML: ACPI Machine Language Describe the above in ASL (ACPI Source Language) Use iasl (in the ACPICA user tools) to compile to tables containing AML methods and objects Load via UEFI and pass to kernel driver
  5. 5. ASIA 2013 (LCA13) Where Are We? Notes: [0] OSL is provided by ACPICA, and incorporated in each OS [1] Packaged and submitted for all distros, pending inclusion [2] Boots, does little else, based on Linaro kernel [3] Best estimate based on documentation available [4] TBD; we assume at least as much as was done in 4.0a, but still verifying
  6. 6. ASIA 2013 (LCA13) The Plan Goal: provide ACPI feature parity for ARMv8 Linux Phases: 0: Proof of Concept on ARMv7 Goal: push the power button and have ACPI handle it Result: prototype implementation 1: Core Support for ARMv7 Goal: provide basic functionality for inclusion upstream Result: ACPI for ARMv7 in upstream, Arndale tables 2: Adapt Core Support to ARMv8 Goal: provide basic functionality for inclusion upstream Result: ACPI for ARMv8 in upstream, VE tables 3: Add Support for Additional Requirements for ARMv8 Goal: feature parity with x86 Result: robust ACPI for ARMv8 upstream, robust VE tables
  7. 7. ASIA 2013 (LCA13) Implementation State Phase 0: Proof of Concept for ARMv7 User Space: ACPICA 20130214 packages prepared, submitted to Fedora, Debian and Linaro PPA Inclusion pending distro acceptance Integration of test suites into LAVA in progress Linux Kernel: git clone -b acpi git:// Config options added Kernel and modules build with skeleton driver Kernel boots, ACPI loads and makes debug tools available To Do: Write ASL for power button Fill in the blanks to actully load tables (U-boot, then UEFI) Fill in the blanks for event handling Verify correct AML debugger and method execution
  8. 8. More about Linaro Connect: More about Linaro: More about Linaro engineering: ASIA 2013 (LCA13)