What is OpenBMC ?

James Mihm james.mihm at gmail.com
Thu Feb 18 20:17:36 AEDT 2021


Hello Daniel,

Welcome to the project. I'll try to answer your questions, and I'm sure
others will contribute as well.

The OpenBMC Firmware stack is a Linux distribution that can be thought of
as a toolkit for creating a firmware image that boots the Linux OS and
contains numerous drivers and applications targeted for a specialized PSoC
known as the Baseboard Management Controller (BMC). The OpenBMC project
uses the Yocto project (www.yoctoproject.org) which uses Openembedded (
www.openembedded.org) as the build automation framework to build the Linux
distribution.

There's not a simple answer to the question of what prerequisites a target
BMC should have. It all depends upon your use cases and requirements. Most
high-end servers contain the PSoC version of a BMC (e.g., ASpeed
AST2500/2600 or Nuvoton NPCM7xx/NPCM8xx). Which have three functional
component blocks consisting of what was referred to as the southbridge in
the Intel Architecture (i.e., USB, keyboard controllers, UARTs, PCIe, SPI,
network, ACPI, etc...), a video graphics controller, and then the
management controller itself. If you don't need the video controller or
southbridge, there are other controllers available. The key question is to
determine what your requirements are and to look for a controller that is
already supported in the Linux kernel. ASpeed and Nuvoton also make lower
cost and simpler BMCs.

Can you install a BMC on an FPGA board?
Yes, but the hardware requirements are dependent upon your use cases and
the controller you choose.
Here are some basic hardware requirements off the top of my head. I'm sure
I'll think of more after I send this email.

   - Power the BMC on standby power - separate from the income-producing
   payload
   - Have a well defined power-on-reset sequence for BMC and downstream
   devices
   - Perform a threat model of your design and provide mitigations to the
   threats that can be exploited to cause a DOS or PDOS of the product.
   - Provide hardware to allow programming of the memory device while
   in-circuit (e.g., SPI flash or eMMC).
      - Isolate the power plane to the flash memory device(s) from the
      power plane connection to the BMC and other devices. This is needed to
      prevent the programmer from sourcing power to the entire board when
      programming the memory device while in-circuit and board power is not
      present.
   - Define your I2C bus topology so as not to create excessive traffic on
   any bus.
      - Group I2C devices according to function (i.e., power supplies on a
      dedicated PMBus)
         - Be careful not to exceed the I2C device addressing capabilities.
      - Isolate intelligent management controllers from critical/sensitive
      I2C devices.

Redfish is a standard that uses restful interface semantics to provide
access to system components for the purpose of being able to manage the
devices. Redfish uses the standard network interfaces and protocols to
provide management capabilities for the system. Prior to Redfish, Server
Management implemented the Intelligent Platform Management Interface (IPMI)
specification. Which was created in the mid-1990s, and went through several
revisions. There are several security vulnerabilities identified within the
IPMI specification that require mitigations. The Redfish standard will be
replacing the IPMI implementations.

>>> "Development board must support OpenBMC" what is the meaning of this
statement?
My thought here is that this is referring to be able to execute an OpenBMC
FW stack and provide the necessary management interfaces per the product
requirements; such as network interfaces and/or host interfaces.

Good night...
James.

On Wed, Feb 17, 2021 at 10:05 PM Daniel <sd2 at maxvytech.com> wrote:

> Hi,
>
> I am new to OpenBMC or even BMC concept. Since a project requirement has
> come related to this concept , i want to learn about this concept. I am an
> embedded software developer.
>
> Is OpenBMC an OS? somewhere i noticed that it will generate an image file
> to a target machine.
>
> What are the prerequisites that a target BMC should have?
>
> and please explain the following as well,
>
> *Can we install in an FPGA board? if yes, what is the hardware requirement
> to install this OpenBMC?
>
> *How redfish is used in OpenBMC?
>
> *I would like to get some clarification in this concept.
>
> *"Development board must support OpenBMC" what is the meaning of this
> statement?
>
>
>
> Thank you,
>
>
>
>
> Regards,
> Daniel Kirubakaran S
> Embedded SW Developer
> Maxvy Technologies Pvt Ltd
> Bangalore
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20210218/cc594fab/attachment-0001.htm>


More information about the openbmc mailing list