最近淘了一块永擎ECP621D8A主板,应为有现成的bmc座子所以方便更改固件,目前bmc主要是ami和openbmc两种,openbmc代码开源可玩性更大,下面就拿该主板做研究。
先瞻仰下这强大的主板
然后下载官方的手册看下bmc部分的框图
下面就可以开始我们的工作了:
1.编译固件的方式就不在此叙述,大家可以参照骑马追风大神的文章。
2.使用编程器烧录并上电,和原版固件相比心跳灯不亮,网络连接路由器无法获取ip,串口无输出emmm…
3.接着翻手册发现bmc用的是串口1,网络芯片RTL8211E是openbmc支持的,看来还是有点希望
4.先参照内核设备树aspeed-bmc-inspur-fp5280g2.dts的改个网络
5.由于心跳灯不亮怀疑是uboot就没起来,网友猜测是不是内存问题,查了下内存型号K4A4G165WE-BCRC为DDR4,仿真编好的固件对照ast2500手册DDR部分搜索DDR4有疑问的寄存器就使用devmem工具读出来看,最后发现MCR04用的是DDR3,果断改掉后重烧固件上电发现路由器可以获取到ip地址,访问web通了,ssh也能访问到但心跳灯依然不亮,看来误打误撞蒙对了
6.串口修改,ast2500有5个串口控制器和6个输出端口对应如下图,默认openbmc使用的uart5的调试串口而此主板使用的串口1,应该有3种方式能够选择
6.1 直接把输出串口全改成串口1(仿真行板子上不行,郁闷)
6.2 参照手册有改SCU70的没搞定(求指教)
6.3 使用route的方法讲控制器uart5 route到 uart port1(离不开网友的支持,搞定了)