
突然来了第一个关注者,给我了很大的动力和支持,在此感谢。
不过我是第一次搞公众号,很多功能还不会用,没有设置好。大家有问题可以留言,我肯定会在后面的篇幅里回复相关的问题。也希望大家多多转发,一是弥补我的不足,指出我的错误,避免误导大家。二是希望更多的BMC从业人员汇聚起来,壮大这个行业,扩充这个领域。
我不是什么技术大佬。唯一一点就是接触BMC这个领域时间比较长了,正如第一篇自我介绍中写到,十多年来,我研究过BMC软件C程序,也写过BMC芯片rtl代码。现在和各服务器厂商交流,所以对BMC的事情了解早一些,填过的坑多一些。我不聪明,小时候父母对我的评价就是“脑笨但肯下功夫学习”。我也是从其他行业转过来的,只能在时间上多投入,曾经一个月加班200多小时,老大就和我说了四个字——“注意身体”。说这些,就是想告诉年轻人,那些领域专家的能力都是通过时间上的积累获得的。只要你肯投入,你也会成为领域专家。
唉,我又瞎扯了一通,下面是正文:
前一篇所谈的功能,简单理解,都是BMC软件的应用层功能。但BMC芯片本身是一个SoC芯片,芯片里面一般有个小处理器。当前市面上这个处理器以ARM为主(当然也有其他的,这个在后面讲BMC芯片硬件的时候再聊聊)。既然是SoC的处理器,软件里面仅仅有应用层是不行的。这里叫软件,是说嵌入式软件,也有人把SoC里的程序叫固件,我个人是无法区分,大家能理解我说的意思就行了。除了应用层,肯定要有基础功能的内核吧,例如Linux。当前市面上的BMC芯片绝大部分运行的是Linux内核,极个别也有不是Linux的(这个后面再说)。那BMC软件还要有Linux内核,内核很大的一个工作就是驱动、BSP编写。这些都是连接硬件和软件应用层的桥梁。当然,这些工作基本上都是被第三方开发完成的,服务器厂商的BMC软件工程师不用投入很多的工作。
BMC软件大概就包括这些功能吧。不过对于服务器厂商的BMC软件工程师来说,主要就是在应用层做些写代码工作。我认为难点不在于怎么实现这些功能,难点在于要适配不同的硬件板卡,包括主板、第三方的板卡等等。经常要同时支持好几个项目,而且有些大客户有定制化的需求。反而kernel层、驱动等功能,有第三方的codebase来支持,后面我再聊聊这些软件厂商的情况。
最后放一张网上找到的一个架构图,大家大概看看就行。不同的codebase可能不是很一样,不过我不能把公司内部的资料公开出来。

我更新有点慢,怕有些朋友着急不清楚我还写什么。我这里先说一下自己的规划,大家可以留言提意见。后面会写软件厂商、芯片硬件介绍,芯片厂商,看情况会写软硬件的具体模块(估计会很多)。实际我更想写自己对BMC芯片的发展想法,因为BMC领域有点特殊,是一个乙方决定甲方需求的领域。这样看来,我好像还有很多很多要写呢,要加快速度了。
之前有朋友留言,问BMC是怎么获取硬件告警信息的,我后面会讲讲的。先简单说说,从硬件角度来说就是接口通信,I2C、I3C、SPI、UART、USB、PCIe、LPC、eSPI、PECI等等,从软件角度来说就是各个接口的数据协议解析,说白了就是拆数据包和解析数据包。
睡觉又晚了,唉。。。
877

被折叠的 条评论
为什么被折叠?



