Platform firmware development faces a fundamental challenge:
every silicon vendor brings its own initialization model, configuration scheme,
and implementation approach, placing the burden of integration on platform
developers. The Open Compute Project (OCP) has launched a community initiative
to address this fragmentation: Open Platform Firmware (OPF). This
effort aims to make boot firmware more open, reusable, and vendor-agnostic.
A note on naming: the OCP community page refers to this
project as Open Platform Firmware (OPF), while the GitHub
repository and wiki where engineering work occurs use the name Open
System Firmware (OSF). The two names are used interchangeably in
documentation. OPF/OSF serves as the umbrella project, with active engineering
conducted through two workstreams: openSFI and UPC.
Key highlights:
- Owner-centric:
The core goal is to enable system owners to control their
firmware—shifting authority to those who operate the hardware
- Open:
A public OCP project open to participation from silicon vendors, firmware
vendors, hyperscalers, and individual developers
- Vendor-neutral:
Aims to define common interfaces rather than dictate proprietary
implementations
- Two
active workstreams: Open Silicon Firmware Interface (openSFI) and Unified
Platform Configuration (UPC)
- Industry-backed:
Contributors include AMD, Intel, ARM, AMI, Insyde, Google, Microsoft, HPE,
IBM, 9elements, 3mdeb, and more
Own Your Firmware
OPF addresses a fundamental issue in platform firmware:
system ownership. The initiative enables OCP system owners to control their
firmware, including the ability to modify it and share modifications—including
binary components—with other owners. This shifts the point of control from
vendors to system operators.
OCP has reinforced this requirement through policy:
beginning in March 2021, OCP badging for servers requires that systems support
OPF.
OPF adopts a pragmatic approach: while the project is open
source, it does not mandate that vendors deliver firmware in source form. Open
source components are designed for straightforward integration into proprietary
firmware images. This model has been demonstrated since 2017 by the LinuxBoot project, which integrates
Linux into UEFI images as a UEFI driver.
Vendors can deliver OPF-compliant systems through two
primary approaches:
- Full
open source: firmware delivered in source form, buildable and
installable by the owner, for example as implemented in IBM's Power 9
systems with OPAL firmware
- Binary
but componentized: a binary image with components that can be
modified, removed, or replaced, following the UEFI model
While full open source delivery is preferred, the
specification accommodates binary componentized firmware. OPF is currently
demonstrated in projects including LinuxBoot and OpenEDK2.
The Problem
Platform firmware design does not scale effectively across
silicon diversity. Even when platforms share identical memory and I/O
components, host SoC initialization remains dependent on vendor-specific
architectures—such as AMD's openSIL and
Intel's Firmware Support Package (FSP). No unified abstraction layer exists to
enable code reuse across these implementations.
The consequences include ecosystem fragmentation, extended
development cycles, and duplicated engineering effort across development,
debugging, maintenance, and validation. This increases costs and reduces
efficiency. OPF addresses these issues through standardization.
Workstream #1: Open Silicon Firmware Interface (openSFI)
The openSFI workstream's vision is to give the industry an open,
scalable, and sustainable silicon firmware interface so that platform
integrators and firmware vendors can integrate diverse silicon more easily.
The primary objective is to develop a unified, open-source
Silicon Firmware Interface that bridges AMD's openSIL and Intel's FSP, enabling
consistent cross-platform silicon initialization. This approach may also
establish a foundation for architecture initialization beyond x86 in future
phases.
The workstream objectives:
- Unify
the silicon init interface: One open abstraction layer that bridges
different vendor approaches
- Simplify
platform integration: Fewer dedicated vertical teams managing separate
silicon init workflows
- Enhance
resource efficiency: Less redundant development, validation, and
maintenance—better time-to-market
- Foster
industry collaboration: Get silicon vendors, firmware developers,
integrators, and hyperscalers to agree on a standard
- Ensure
scalability: An abstraction level that accommodates current and future
silicon architectures
Scope Definition
The workstream has clearly defined its scope and boundaries.
In scope:
- A
common, open silicon firmware interface adoptable across multiple vendors
- A
vendor-neutral Architecture Framework Specification to guide
implementation
- Proof-of-Concepts
to vet the proposed interface
- Alignment
with the x86 Ecosystem Advisory Group (x86EAG) and OCP tenets
- Industry
collaboration to drive adoption
Out of scope:
- Non-x86
ISAs—for now, the focus is strictly Intel and AMD x86 host SoCs (ARM,
RISC-V, and Power are out)
- Merging
all silicon init firmware into a single solution—the goal is a common
interface, not a unified firmware implementation
- Non-host
silicon like standalone accelerators, GPUs, NICs, and storage controllers
- End-to-end
platform firmware stacks—openSFI is an interface spec, not a complete
firmware implementation
- Dictating
how vendors implement their underlying init firmware—only how they expose it
The workstream focuses on defining a standardized interface
rather than implementing complete firmware stacks.
Specification
The workstream has released the openSFI Firmware Architecture Specification (FAS) v1.0. This
document defines the proposed abstraction layer.
Workstream #2: Unified Platform Configuration (UPC)
While openSFI addresses silicon initialization, the Unified
Platform Configuration Interface (UPCI) workstream addresses platform
configuration. Platform developers managing GPIO tables, memory settings, and
boot policies across multiple SKUs encounter significant complexity due to
bespoke approaches.
UPC envisions an ecosystem with open, unified, and
interoperable platform configuration—standard data formats and programming
interfaces that minimize fragmentation and streamline customization for
platform owners, silicon vendors, and firmware developers alike.
The workstream objectives:
- Standardize
configuration data formats: Both text-based and binary formats for
consistent platform customization
- Enable
cross-vendor interoperability: An open framework so config data flows
between silicon vendors, integrators, and firmware developers
- Support
multi-SKU management: Define multiple SKU variations in a single
configuration package (less redundancy, more maintainability)
- Facilitate
firmware update migration: Smooth config transitions during firmware
updates
- Allow
runtime configuration overrides: Dynamic updates via management agents
or config utilities—no firmware rebuild required
- Standardize
configuration structures: Unified representations of things like GPIO
settings, aligned with openSFI
- Provide
a common access interface: Programming abstractions for access to
config data
The runtime-override capability enables dynamic
configuration modification without firmware rebuilds, addressing a significant
operational requirement in firmware development workflows.
Project Scope
The OPF project scope encompasses:
- All
processor architectures found in the web-scale data center
- Cloud
operating systems
- Compute (general
purpose plus AI/ML/FPGA), storage, and network devices
- Development
and deployment tools
- Security
features
How It All Fits Together
The project structure is summarized below:
|
Workstream |
What It Does |
Key Idea |
|
openSFI |
Silicon initialization |
A common interface bridging AMD openSIL and Intel FSP |
|
UPC |
Platform configuration |
Standard, vendor-agnostic config formats and access APIs |
UPC explicitly aligns its configuration structures (GPIO,
etc.) with openSFI. The two workstreams are designed to reinforce each other,
aligning with the core OCP tenets of efficiency, scalability, sustainability,
and openness.
Participation
OPF is a public OCP project that welcomes participation.
Regular project calls, a GitHub wiki, governance documents, and an active
contributor roster provide multiple avenues for involvement from across the
industry.
Conclusion
Open Platform Firmware represents an ambitious effort to
establish common silicon and configuration interfaces while restoring firmware
control to system owners. This initiative is not new, it has been running since early 2021. IMHO, it's more of a philosophy than a real industry-standard, but it's worth exploring anyway. Additional resources for
further investigation include:
OCP Open Platform Firmware project page: https://www.opencompute.org/community/open-system-firmware
OSF Wiki: https://github.com/opencomputeproject/OpenSystemFirmware/wiki
Open Silicon Firmware Interface (openSFI): https://github.com/opencomputeproject/OpenSystemFirmware/wiki/Open-Silicon-Firmware-Interface
Unified Platform Configuration (UPC): https://github.com/opencomputeproject/OpenSystemFirmware/wiki/Unified-Platform-Configuration
openSFI Firmware Architecture Specification (FAS)
v1.0:
https://www.opencompute.org/documents/firmware-architecture-specification-opensil-v1-0-pdf
LinuxBoot project: https://www.linuxboot.org/
Post a Comment
Be sure to select an account profile (e.g. Google, OpenID, etc.) before typing your comment!