<div dir="ltr"><div dir="ltr">Hello Daniel, <div><br></div><div>Welcome to the project. I'll try to answer your questions, and I'm sure others will contribute as well.</div><div><br></div><div>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 (<a href="http://www.yoctoproject.org">www.yoctoproject.org</a>) which uses Openembedded (<a href="http://www.openembedded.org">www.openembedded.org</a>) as the 



build automation framework

 to build the Linux distribution. </div></div><div><br></div><div>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.</div><div><br></div><div>Can you install a BMC on an FPGA board?  </div><div>Yes, but the hardware requirements are dependent upon your use cases and the controller you choose. </div><div>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.</div><div><ul><li>Power the BMC on standby power - separate from the income-producing payload</li><li>Have a well defined power-on-reset sequence for BMC and downstream devices</li><li>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.</li><li>Provide hardware to allow programming of the memory device while in-circuit (e.g., SPI flash or eMMC).</li><ul><li>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.</li></ul><li>Define your I2C bus topology so as not to create excessive traffic on any bus. </li><ul><li>Group I2C devices according to function (i.e., power supplies on a dedicated PMBus)</li><ul><li>Be careful not to exceed the I2C device addressing capabilities. </li></ul><li>Isolate intelligent management controllers from critical/sensitive I2C devices.</li></ul></ul></div><div>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.</div><div><br></div><div>>>> "Development board must support OpenBMC" what is the meaning of this statement? <br></div><div>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.</div><div><br></div><div>Good night...</div><div>James.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 17, 2021 at 10:05 PM Daniel <<a href="mailto:sd2@maxvytech.com" target="_blank">sd2@maxvytech.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u><div><div style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10pt"><div>Hi,<br></div><div><br></div><div>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.<br></div><div><br></div><div>Is OpenBMC an OS? somewhere i noticed that it will generate an image file to a target machine.<br></div><div><br></div><div>What are the prerequisites that a target BMC should have?<br></div><div><br></div><div>and please explain the following as well,<br></div><div><br></div><div>*Can we install in an FPGA board? if yes, what is the hardware requirement to install this OpenBMC?<br></div><div><br></div><div>*How redfish is used in OpenBMC?<br></div><div><br></div><div>*I would like to get some clarification in this concept.<br></div><div><br></div><div>*"Development board must support OpenBMC" what is the meaning of this statement?<br></div><div><br></div><div><br></div><div><br></div><div>Thank you,<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div id="m_2974853655621730178gmail-m_-2656179981923976788"><div>Regards,<br></div><div>Daniel Kirubakaran S<br></div><div>Embedded SW Developer<br></div><div>Maxvy Technologies Pvt Ltd<br></div><div>Bangalore<br></div></div><div><br></div></div><br></div></blockquote></div></div>