PCIe Device Exposure via ACPI Integration in ARM SoC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Portable computing devices often lack operating system support for PCIe interfaces, making it difficult to communicate with PCIe devices without preconfigured PCI or PCIe drivers, especially in compact designs prioritizing battery life and performance.

Innovation Solution

A method that exposes a PCIe compatible device to an operating system by determining content for PCIe base address registers, integrating this content into an ACPI, and using firmware to initialize the PCIe device, potentially through UEFI, thereby enabling communication without relying on PCI or PCIe drivers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Volume of moving object

If a portable computing device uses a reduced-size PCIe interface to save space and power, then the device size and power consumption are reduced, but the device loses the ability to communicate with PCIe devices without preconfigured drivers

Engineering Contradiction:
Improvedevice sizeVSAvoidPCIe device compatibility
Core Design Contradiction:
Volume of moving objectVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by integrating PCIe base address register content into the ACPI tables before the operating system boots. This preconfiguration enables the OS to recognize and communicate with PCIe devices without requiring preinstalled drivers, resolving the contradiction between compact design and device compatibility.

Inventive Principle:
Principle #10Preliminary action

2Use of energy by moving object

If the device prioritizes battery life and performance optimization, then power consumption is reduced, but PCIe interface support and communication capability are lost

Engineering Contradiction:
Improvepower consumptionVSAvoidPCIe communication reliability
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The patent implements self-service by enabling the operating system to automatically configure PCIe device communication through integrated ACPI tables. The system serves itself by eliminating the need for external driver configuration, allowing reliable PCIe communication while maintaining power-efficient operation without requiring additional power-intensive driver management.

Inventive Principle:
Principle #25Self-service

3Device complexity

If the device omits PCI and PCIe drivers to reduce complexity and improve boot time, then device complexity and boot time are reduced, but the ability to communicate with PCIe devices is lost

Engineering Contradiction:
Improvedriver configuration complexityVSAvoidPCIe device accessibility
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The patent merges PCIe base address register information directly into the ACPI tables, combining what were previously separate configuration elements into a unified structure. This integration allows the operating system to access PCIe device information through the standard ACPI interface without requiring separate driver configurations, thus maintaining ease of operation while reducing complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP2788866B1Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the pcd
Publication Date: 2017.08.30 QUALCOMM INC
  • EP2788866B1 patent drawingFigure 1
  • EP2788866B1 patent drawingFigure 2
  • EP2788866B1 patent drawingFigure 3

AI summary

In a portable computing device having a system-on-chip (SoC) Acorn RISC Machine (ARM)-based resource architecture, a peripheral component interconnect express (PCIe) bus is used to insert PCIe device memory into system memory absent a PCIe driver. During a PCIe initialization, the contents of PCIe base address registers (BARs) are mapped or otherwise updated to coincide with values assigned to the PCIe device in the advanced configuration and power interface (ACPI) tables.