ARM client PC (CLIENTPC)

Introduction

The Client PC project aims to investigate and develop SystemReady-compliant UEFI and ACPI firmware and kernel solutions for enabling fully functional client PCs for Arm-based hardware running both Linux an Windows.

The project's initial focus will be to prototype and develop UEFI+ACPI firmware for a reference platform that can boot major client operating systems like Linux and Windows out of the box with full driver support, power and performance management capabilities, etc.

Future phases of the project will focus on other open-source solutions needed for the client PC market, such as firmware-based trusted platform modules.

Deliverables

  • Reference implementation of firmware (EDK2[ACPI] and TF-A).

  • Linux kernel extensions for missing ACPI features.

  • Evaluate the reference firmware with Windows.

  • Standardise missing ACPI bindings through ACPI working group and Arm SystemReady program.

  • Documentation (wiki/blogs etc.)

Reference Platforms

  • NXP I.MX8MP

  • RD-N2 FVP

ACPI Feature Enablement

https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28832038916

Achievements

The project is still in investigation phase and some of the key achievements are given below.

  • ACPI System Sleep States and Wake up Events - https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28867723303

    • Investigated ACPI system sleep states and wake up events with PSCI

  • ACPI Thermal Management - https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28832464918

    • Implemented Thermal Zones in RD-N2 Platform and tested with Linux including support for active and passive cooling devices.

    • Proposed patches to support CPUFreq (CPPC) for passive cooling with thermal framework

  • ACPI Device Power Management - https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28831416783

    • Investigated runtime device power management in ACPI with SCMI

    • Reference implementation on NXP I.MX8MP and RD-N2 platform

  • ACPI Clock Management - https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28832333867

    • Investigated clock framework requirements for Arm platform using NXP I.MX8MP platform

    • Reference implementation on NXP I.MX8MP with SCMI protocol

  • ACPI Pin Control - https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28831285713

    • Invesigated ACPI pin resources and implemented a reference implementation for I.MX8MP platform.

    • Implemented Linux pinctrl subsystem for ACPI and sent for upstream review.

  • DMA Controller - https://linaro.atlassian.net/wiki/spaces/CLIENTPC/pages/28837052418

    • Investigated shared DMA controller enablement with ACPI

  • Added ACPI bindings for I2C, SPI, UART, PCIe, USB, GPIO for the I.MX8MP platform.

  • Summary

 

Presentations

Related Projects

https://linaro.atlassian.net/wiki/spaces/WOAR

https://linaro.atlassian.net/wiki/spaces/WPERF

Active Members


Project Meetings

Meeting Notes

Project Contacts

  • Project lead(s) @Niyas Sait (Deactivated)

  • Project manager @julianus.larson

Resources