The OpenBMC project can be described as a Linux distribution for embedded devices that have a BMC; typically, but not limited to, things like servers, top of rack switches or RAID appliances. The OpenBMC stack uses technologies such as Yocto, OpenEmbedded, systemd, and D-Bus to allow easy customization for your server platform.
- Ubuntu 14.04
sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat
- Fedora 28
sudo dnf install -y git patch diffstat texinfo chrpath SDL-devel bitbake rpcgen
sudo dnf groupinstall "C Development Tools and Libraries"
git clone https://github.com/Nuvoton-Israel/openbmc.git
cd openbmc
git checkout -b runbmc origin/runbmc
Any build requires an environment variable known as TEMPLATECONF
to be set
to a hardware target.
You can see all of the known targets with
find meta-* -name local.conf.sample
. Choose the hardware target and
then move to the next step. Additional examples can be found in the
OpenBMC Cheatsheet
Machine | TEMPLATECONF |
---|---|
Olympus Nuvoton | meta-quanta/meta-olympus-nuvoton/conf |
Palmetto | meta-ibm/meta-palmetto/conf |
Zaius | meta-ingrasys/meta-zaius/conf |
Witherspoon | meta-ibm/meta-witherspoon/conf |
Romulus | meta-ibm/meta-romulus/conf |
As an example target Olympus Nuvoton
export TEMPLATECONF=meta-quanta/meta-olympus-nuvoton/conf
. openbmc-env
bitbake obmc-phosphor-image
Additional details can be found in the docs repository.
After building finished the built Images will found at: <OpenBMC_folder>/build/tmp/deploy/images/olympus-nuvoton/ The relevant images to use to upload the OpenBMC on the Olympus Nuvoton are:
- image-bmc - The entire 32MB image including BootBlock, u-boot, linux kernel and file system, can be programmed into the beginning of flash
- image-u-boot - Includes only BootBlock and u-boot and their headers can be programmed into the beginning of flash
- image-kernel - FIT image that includes linux kernel, device tree and an initial file system, can be loaded to the linux area in flash
- image-rofs - Main (and large) OpenBMC file system, can be loaded to the rofs area in flash
For programming the OpenBMC to the Olympus Nuvoton platform, there are two ways to update BMC firmware. First, update BMC firmware image via OpenBMC web interface or RESTful API. Second, flash image via UART. In normal case we suggest user use the first method to update BMC firmware. User can follow the firmware update readme to upgrade BMC firmware.
Or program BMC firmware via UART by following instructions:
- Enable BMC program mode, set jump JPC6 to (2-3), and JPC7 to (1-2)
- Connect UART to connector JP35
- Follow the NPCM7xx_OpenBMC_Programming.pdf chapter 2.2.2 to program BMC firmware.
Additionally, the step a should change to
python UpdateInputsBinaries_RunBMC.py
After the OpenBMC boot please enter the following login and password:
Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro) 0.1.0 olympus-nuvoton ttyS0
olympus-nuvoton login: root
Password: 0penBmc (first letter zero and not capital o)
See the readme.txt, there are documents about RunBMC implementation, schematics, and BOM list.
For more info follow the readme.txt in: ftp://ftp.nuvoton.co.il/outgoing/Eval_Board at the section: "Loading to Evaluation Board and running instructions". In order to get a password for the ftp please contact BMC_Marketing@Nuvoton.com
For more info of OpenBMC features we enabled in: https://github.com/Nuvoton-Israel/openbmc/tree/runbmc/meta-quanta/meta-olympus-nuvoton