3 ms·
In my spare time, I am trying to port OpenBMC[0] to the BMC of the Gigabyte MC12-LE0[1], a cheap, workstation/server-class mainboard for AMD's AM4 platform. Un
by c0l0 2y ago
In my spare time, I am trying to port OpenBMC[0] to the BMC of the Gigabyte MC12-LE0[1], a cheap, workstation/server-class mainboard for AMD's AM4 platform.
Unfortunately, Gigabyte denied my requests to provide me with any details (board schematics/GPIO pinouts) or source code of the (partly GPL-licensed) BMC firmware, etc.), so it's been a tedious uphill battle. However, it is also a great way to learn about (some) electronics and embedded Linux development and associated challenges.
During the past few months, I have overcome the stock firmware AST2500 bootloader and made the board play ball with standard FDIs, have reverse-engineered a workable DeviceTree specification for the hardware, and am now (well, actually, not for the next three weeks or so, due to work :)) in the process of finishing up OpenBMC userspace configuration. Once this is done, and everything works well enough to use OpenBMC as a viable alternative for the stock BMC firmware provided by AMI/Gigabyte, I will try to upstream my work, and OpenBMC will have a very cheaply available AST2500 DevKit/EVB-alternative (of sorts) in its arsenal. (And I should be able to use my mainboard where the crucial OOB management function isn't serviced by Linux 3.14 any more...)
I am looking forward to documenting the lessons learned on my blog some time in the future, too :)
[0]: https://www.openbmc.org/ https://www.openbmc.org/
[1]: https://www.gigabyte.com/Enterprise/Server-Motherboard/MC12-LE0-rev-1x https://www.gigabyte.com/Enterprise/Server-Motherboard/MC12-...