Platform Porting

Port OpenBMC to your custom hardware platform.

What You’ll Learn

  • Create a machine-specific layer
  • Configure device tree for your BMC SoC
  • Set up U-Boot for your platform
  • Enable and configure OpenBMC services
  • Verify and validate your port
  • Port to ARM-based server platforms (NVIDIA, Ampere)

Porting Overview

┌─────────────────────────────────────────────────────────────┐
│                    Your Machine Layer                       │
│                   meta-<your-company>                       │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────┐  │
│  │ Machine Config  │  │  Device Tree    │  │   Recipes   │  │
│  │   <machine>.conf│  │   <soc>.dts     │  │   *.bb      │  │
│  └─────────────────┘  └─────────────────┘  └─────────────┘  │
├─────────────────────────────────────────────────────────────┤
│                    Phosphor Layer                           │
│                     meta-phosphor                           │
├─────────────────────────────────────────────────────────────┤
│                    OpenBMC Distro                           │
│                     meta-openbmc                            │
├─────────────────────────────────────────────────────────────┤
│                    Yocto/Poky                               │
│           meta-poky, meta-oe, meta-networking               │
└─────────────────────────────────────────────────────────────┘

Porting Workflow

  1. Plan - Identify hardware, map features to OpenBMC services
  2. Create Layer - Set up meta- structure
  3. Device Tree - Configure BMC SoC peripherals
  4. U-Boot - Configure bootloader
  5. Enable Services - Configure OpenBMC features
  6. Test - Verify each feature works
  7. Iterate - Fix issues, add features

Guides in This Section

Guide Description Phase
Porting Reference Complete checklist Planning
Machine Layer Create your layer Setup
Device Tree BMC SoC configuration Configuration
U-Boot Bootloader setup Configuration
Verification Testing procedures Validation
ARM Platform Guide ARM server platforms Advanced
Entity Manager Advanced Dynamic hardware config Advanced
Flash Layout Optimization SPI flash partitioning, image size reduction Advanced
AST2700 Enablement ASPEED AST2700 next-gen SoC porting Advanced

Supported BMC SoCs

OpenBMC supports several BMC system-on-chip platforms:

SoC Vendor Common Platforms
AST2400 ASPEED Legacy systems
AST2500 ASPEED Current mainstream
AST2600 ASPEED Latest generation
NPCM7xx Nuvoton Alternative platforms

For ARM-based server platforms (NVIDIA Grace, Ampere, etc.), see the ARM Platform Guide.

Prerequisites

  • Complete all previous sections
  • Strong Linux kernel knowledge
  • Device tree experience
  • Yocto/BitBake proficiency
  • Access to your target hardware

Porting requires hardware access. While some testing can be done in QEMU, final validation needs real hardware.

Getting Help


Table of contents


Back to top

OpenBMC Guide Tutorial is not affiliated with the OpenBMC project. Content is provided for educational purposes.

This site uses Just the Docs, a documentation theme for Jekyll.