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 ★
Pathable: https://hkg15.pathable.com/meetings/250789
Video: https://www.youtube.com/watch?v=R6m4-VWkqR0
Etherpad: http://pad.linaro.org/p/hkg15-208
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2015 - #HKG15
February 9-13th, 2015
Regal Airport Hotel Hong Kong Airport
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
2. Current areas in development
● ACPI core
● GICv3
● SMMU
● NUMA
● ACPI + Power management
● luvOS + FWTS testing
● Next steps and challenges
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. 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. 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. 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. 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. 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 -- http://www.secretlab.ca/archives/151