HKG15-208: ACPI: State of the Server


Published on

HKG15-208: ACPI: State of the Server
Speaker: Al Stone, Hanjun Guo, Graeme Gregory
Date: February 10, 2015
★ Session Summary ★
ACPI: State of the Server
★ Resources ★
★ Event Details ★
Linaro Connect Hong Kong 2015 - #HKG15
February 9-13th, 2015
Regal Airport Hotel Hong Kong Airport

Published in: Software
1 Like
  • Be the first to comment

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

No notes for slide

HKG15-208: ACPI: State of the Server

  1. 1. Presented by Date Event ACPI state of the server Al Stone, Hanjun Guo, Graeme Gregory Tue 10 February 2015, 12:10 Linaro Connect HKG15
  2. 2. Current areas in development ● ACPI core ● GICv3 ● SMMU ● NUMA ● ACPI + Power management ● luvOS + FWTS testing ● Next steps and challenges
  3. 3. ACPI core ● Over 50 patches - cleanups/refactoring ACPI core to prepare for ARM64, most of them are done and upstreamed ● v8 patch set was sent to upstream to support the following ○ basic support to run ACPI on ARM64 ○ SMP/GICv2 init using MADT and FADT table ○ arch timer init using GTDT ○ Documentation why/how to use ACPI on ARM64 ● Tested on various ARM64 platforms from APM, AMD, Huawei, Qualcomm and Cavium ● Guidelines doc on how to use ACPI reviewed by AMD, Huawei, Qualcomm and RedHat ● TODO: support stacked irqdomain and framework to init multi irqchips when GICv2m and GICv3 introduced.
  4. 4. Incoming ● GICv3 ○ reviewed internally ○ ready to post upstream but first need to implement multi irqchips init mechanism ○ ITS covered by future ACPI spec additions ● SMMU ○ ACPI binding based on IORT table (static table, unlike DSDT) ○ Device ID to Stream ID mapping based on IORT table ● PCI ○ cleanup MMCONFIG x86 specific code ○ draft of ACPI PCI host bridge driver ● NUMA, Posted on linaro-acpi, based on Ganapatrao’s work ● TODO: ○ reimplement PCI host bridge driver once accept patch set “Refine PCI scan interfaces and make generic pci host bridge” by Yijing Wang ○ upstream MMCONFIG patches
  5. 5. Power Management ● PCC (Platform Communication Channel) ○ Mailbox like mechanism ○ Generic way to describe and access mem mapped registers ○ Useful for CPPC, RAS and MPST ○ Initial patchwork in upstream kernels today (3.19-rcX) ● CPPC (Collaborative Processor Performance Control) ○ New method to control CPU performance ○ V4 patchset under review ○ Designed as shim which allows Cpufreq drivers to plug into existing governors or alternately implement inbuilt ones ○ PID style governor investigation in progress ● CPU idle management ○ Spec changes in progress ○ Addressing shortcomings in spec to work optimally for ARM like SoCs ● Device PM ○ Existing mechanisms (Dx states, PRx objects, PSx methods) as defined in spec. work
  6. 6. luvOS distribution + FWTS ● luvOS porting for arm64 done ● V2 patch set posted @luvos mailing list ● CI loop setup with B&B team ● https://wiki.linaro. org/LEG/Engineering/luvOS
  7. 7. FWTS ● FWTS adjusting for arm64 done ○ the FACS patch set has been merged at 14.12.00 ■ a missing FACS table can be ignored in Hardware-Reduced ACPI ○ the kernel config dependence: ■ CONFIG_STRICT_DEVMEM=n ● CI loop setup with B&B team ○ LEG kernel CI loop
  8. 8. TODO List 1. Define how Aarch64 OS identifies itself to firmware a. deprecate _OSI -- v2 patches submitted, spec change requested b. clean up _OSC -- pending process clarifications (ASWG & kernel) 2. Linux must choose DT booting by default when offered both ACPI and DT on arm64 a. DONE -- v8 core patch set 3. Linux UEFI/ACPI testing tools must be made available a. the fundamentals are in place (see luvOS and FWTS slides) b. can expand the tests where needed - become an SBSA compliance tool? 4. Set clear expectations for those providing ACPI for use with Linux a. arm-acpi.txt rewrite done b. details for each ACPI object written c. coordinating content with SBBR (reqts for ARMv8, vs Linux reqts) d. firmware mini-summit set for 26 March 2015, San Jose, CA e. documentation pending reviews 5. Platform support patches need verification and review a. v2 of Seattle patches pending 6. How does the kernel handle_DSD usage? a. Pending ASWG & kernel process clarifications 7. Why is ACPI required? a. DONE --