arm systemready - osfc · 2021. 2. 5. · arm open-source firmware 13 trustedfirmware...
TRANSCRIPT
SPEAKERArm SystemReady and the UEFI firmware ecosystem
Dong Wei, Arm
Samer El-Haj-Mahmoud, Arm
Arm SystemReady
2
3
Cloud edge
E X T E N D T H E S U C C E S S O F A R M S E R V E R R E A D Y
T O E M B E D D E D S E R V E R S A N D I O T
AIoT edge
HW
FW/OS
SDK
App
HW
FW/OS
SDK
App
HW
FW/OS
SDK
App
SiP “A” SiP “B” SiP “C”
Common OSes
App
FW Compliant FW Compliant FW Compliant
HW Compliant HW Compliant HW Compliant
SiP “A” SiP “B” SiP “C”
Vision: “Software Can Just Work on Arm-based Devices”
Arm SystemReady
From Arm ServerReady
4
Hardware Requirements
SBSA - Server Base System Architecture
• Hardware requirements for generic off-the-shelf OSes
• Arm architecture and standards-based system architecture
Firmware Requirements
SBBR – Server Base Boot Requirements
• Firmware requirements for OSes/Hypervisors such as Microsoft Windows, Red Hat, VMware, Linux, etc..
• Focus on interface requirements, not implementation
Certification Requirements
ACS - Architectural Compliance Suites
• Testing SiP Reference Boards and OEM/ODM Products for SBSA/SBBR compliance
• The test suites are hosted in GitHub and are open source (Apache v2)
Making Arm servers “boring”
https://developer.arm.com/products/architecture/system-architecture/server-system-architecture
To Arm SystemReady
5
Hardware Requirements
BSA - Base System Architecture
• Documents minimal set of CPU and System architecture necessary for an OS to boot and run. Includes aspects such as PCIe integration etc.
• Add segment-specific xBSA hardware requirements (e.g.SBSA for servers)
Firmware Requirements
BBR –Base Boot Requirements
• Expand to include common firmware interfaces, but recognize that different software stacks will require different recipes
Certification Requirements
ACS - Architectural Compliance Suites
• WIP, Restructured for SystemReady.
• Existing ACS v3.0 used for now, with new versions available in the future
Making all Arm-based infrastructure consistent
https://developer.arm.com/architectures/system-architectures/arm-systemready
Base Boot Requirements (BBR)
6
BBR Interfaces
• PSCI, SMCCC (Common)
• UEFI (for SBBR recipe)
• ACPI (for SBBR recipe)
• Exceptions (if needed)
• SMBIOS
• DeviceTree (reference DT Spec)
BBR Recipes Tailored to Various OSes
SBBR:
• Same requirements as current SBBR spec
• PSCI, SMCCC, UEFI, ACPI, SMBIOS
EBBR
• PSCI, SMCCC, UEFI
LBBR
• PSCI, SMCCC, LinuxBoot, ACPI, SMBIOS
Related Specifications
BBSR (Base Boot Security Requirements)
• Secure Boot and Firmware Update
EBBR (Embedded BBR)
• Community development
• BBR spec refers to EBBR spec as needed
• https://github.com/ARM-software/ebbr
VerticalVertical Horizontal
Edge Node Cloud &
Datacenters
Custom Linux
System Firmware Landscape
8
One program, Multiple Bands
https://developer.arm.com/architectures/system-architectures/arm-systemready
9
One program, Multiple Bands
10
ACS for SystemReady SR
ACS v3.0 availableACS for SystemReady ES and IR
Development WIP.
Use ACS v3.0 SBSA Level 3 to certify ES for now
https://github.com/ARM-software/arm-systemready
Architectural Compliance Suite (ACS)
11
Arm Open-Source Firmware
12
Arm open-source firmware
13
• Open-source Secure World firmwareTrustedFirmware
• Open-source UEFI, ACPI, SMBIOS standard system firmwareTianoCore / EDK2
• Open-source embedded systems firmwareU-Boot
• Open-source cloud providers Linux-based firmwareLinuxBoot
• Open-source BMC firmware OpenBMC
• Arm systems support firmware solutions with multiple boot models, and that can be open source OR commercial.
• Arm’s strategy is to encourage partners to provide full open-source firmware implementations, regardless of the boot model
• Open-source firmware options on Arm systems include:
Trusted Firmware• Open Source, Open Governance Community Project, with reference
implementation of Secure World software for Armv7 & Armv8 architectures (A/M-Profiles)
• 30+ platform ports from 16+ vendors, 25+ partners contributing• TF-A is Secure world reference software for all Arm Cortex-A & Neoverse
processors across all market segments.• https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/
14
TianoCore• Open-source community project with implementations of UEFI standards:
UEFI, PI, ACPI, SMBIOS, UEFI Shell, etc.., including Arm SBBR specification • Growing Arm community (maintainers, contributors), with complete and
partial Arm64 platforms, silicon drivers, libraries, and support code• https://github.com/tianocore/edk2• https://github.com/tianocore/edk2-platforms• https://github.com/tianocore/edk2-non-osi• https://github.com/tianocore/edk2-test/tree/master/uefi-sct (test suite)
15
U-Boot• “Universal Bootloader” open-source firmware, with support for multiple
architectures (including Arm/Arm64)
• Portable, easy to port/debug. Many (100s) boards up-streamed.
• Suitable for embedded / edge devices (predominantly vertically integrated ecosystem)
• UEFI layer implements the Arm EBBR specification, allowing standard OS bootloader (like GRUB) to load and boot a standard OS
• UEFI compliance using UEFI-SCT on Arm64 (WIP)
• https://github.com/u-boot/u-boot
• https://gitlab.denx.de/u-boot/u-boot/blob/master/doc/uefi/uefi.rst
16
LinuxBoot
• LinuxBoot is an alternative firmware stack (used by hyperscale datacenters) that relies on the Linux kernel as the Normal World firmware component.
• Re-uses existing Linux drivers code (without the need to write DXE/UEFI drivers)
• On Arm servers, LinuxBoot can be loaded directly from TF-A
• https://linuxboot.org/
• https://github.com/linuxboot/linuxboot
• Google/Facebook leading ongoing work to implement UEFI ABI on top of LinuxBoot. Join the discussions on OSFC slack server #efi-boot-support channel: https://join.slack.com/t/osfw/shared_invite/zt-j4oh2vxx-fjFX_J5NpYBelHgjHAjxFQ
17
OpenBMC
• Open-source BMC firmware stack and sample implementations for servers
• Arm “Server Base Manageability Requirements (SBMR)” Specification standardizes BMC system interfaces for Arm servers, and relies on industry standards such as IPMI and DMTF Redfish, MCTP, PLDM, SPDM: https://developer.arm.com/documentation/den0069/latest
• Arm ecosystem participating in OpenBMC: Arm (member of the TSC), Ampere Computing (upstreaming platform /common Arm support), and expecting more partners in the future
• https://www.openbmc.org/
18
Showcase of Arm SystemReady and open-source firmware
19
Ampere Altra Mt Jade• Arm SystemReady SR v2.0 certified
• Ampere Computing Altra Mt Jade Dual Socket Rack Server
• Choice for evaluating benefit of Arm compute in enterprise
server roles. Cloud native, high performance scalable CPU
• Firmware options both open-source and commercial (AMI)
• UEFI: https://github.com/AmpereComputing/edk2-platforms
• BMC: https://github.com/ampere-openbmc/openbmc(SBMR based)
• LinuxBoot FW: https://github.com/linuxboot/mainboards/tree/master/ampere/jade
• FW upstreaming WIP
20
https://amperecomputing.com/altra/
Raspberry Pi 4 Model B• Arm SystemReady ES v1.0 certified
• Choice for evaluating benefit of Arm in an IoT, edge
gateway, or low-end developer box roles
• Fully open source firmware community project
(leadership from VMware, Arm, Akeo Consulting, etc..)
• UEFI project: https://github.com/pftf
• UEFI upstream: https://github.com/tianocore/edk2-platforms/tree/master/Platform/RaspberryPi
• TF-A upstream: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/plat/rpi4.rst
• Discord community: https://discord.gg/VfYbkfp
21
https://rpi4-uefi.dev/
NXP Layerscape LX 2160A RDB• Arm SystemReady ES v1.0 certified
• Choice for evaluating benefit of Arm in mobile edge compute,
edge gateway, embedded/edge server, NFV, 5G, switching, …
• UEFI upstream: https://github.com/tianocore/edk2-platforms/tree/master/Platform/NXP/LX2160aRdbPkg
• UEFI: https://source.codeaurora.org/external/qoriq/qoriq-components/edk2-platforms/tree/Platform/NXP/LX2160aRdbPkg
• TF-A: https://source.codeaurora.org/external/qoriq/qoriq-components/atf/tree/plat/nxp/soc-lx2160
• FW upstreaming WIP
22
https://www.nxp.com/design/qoriq-developer-
resources/layerscape-lx2160a-reference-design-
board:LX2160A-RDB
Solidrun HoneyComb LX2K• Arm SystemReady ES Certification In Progress
• Based on NXP Layerscape LX2160A
• Choice for evaluating benefit of Arm in a Microserver, Workstation, or Edge gateway role.
• UEFI: https://github.com/SolidRun/edk2-platforms/tree/LX2160_UEFI_ACPI_EAR3-lx2160cex7
• TF-A: https://github.com/SolidRun/arm-trusted-firmware/tree/LX2160_UEFI_ACPI_EAR3-sr
• Build script: https://github.com/SolidRun/lx2160a_uefi
• Discord community: https://discord.gg/VfYbkfp
• FW upstreaming WIP
23
https://www.solid-run.com/nxp-lx2160a-
family/honeycomb-workstation/
NXP LS1046A FRWY / RDB• Arm SystemReady ES Certification In Progress
• Choice for evaluating benefit of Arm in high performance
IoT, edge gateway, enterprise access point, etc…
• UEFI upstream: https://github.com/tianocore/edk2-platforms/tree/master/Platform/NXP/LS1046aFrwyPkg
• UEFI: https://source.codeaurora.org/external/qoriq/qoriq-components/edk2-platforms/tree/Platform/NXP/LS1046aRdbPkg
• TF-A: https://source.codeaurora.org/external/qoriq/qoriq-components/atf/tree/plat/nxp/soc-ls1046
• FW upstreaming WIP
24
https://www.nxp.com/design/qoriq-developer-
resources/ls1046a-freeway-board:FRWY-LS1046A
Thank you
25