一种Linux系统下的主板VR Firmware升级方法
【技术领域】
[0001]本发明涉及服务器系统及互联网行业领域,尤其涉及一种Linux系统下的主板VRFirmware升级方法。
【背景技术】
[0002]随着服务器系统和半导体技术的快速发展,给服务器主板CPU及内存供电的多相电源技术也进行着革命性的变化。数字电源以其不可替代的优势被越来越多的工程师接受和使用。传统的通过II型或者III型补偿的模拟解决方案供应商也在逐步向数字方案转型,比如:Intersil、Volterra等主流VR供应商。目前Intel Grantley平台提供VRl3方案的 VR controller 均具备 PMbus 或 I2C 接口。
[0003]PMbus或I2C接口的主要作用有两个:其一是通过上位机的⑶I软件在主板NPI阶段,对VR进行调试;其二是在主板量产后通过该接口把调试好的Firmware烧录到controller ο VR Firmware调试阶段以及Offline烧录采用的Master均采用如图1所示的工具。该工具的核心是单片机,工具通过USB接口连接至上位机的⑶I软件,通过I2C线缆连接至主板上的VR controller的I2C接口。工程师通过调节上位机⑶I上的参数,实现对VR的调试。
[0004]通常,如果NPI阶段VR Firmware设计的不好,主板量产后会发生一些内存兼容性方面的问题,或者系统下报ECC故障。此时,需要对VR的Fir丽are做相应调整和优化,并将优化后的code烧录至VR controller ο但是,由于用户的设备已经在机架上,并且有线上业务在运行,无法通过打开机箱盖子把工具的I2C线缆连接至主板上,直接导致无法完成对客户机器VR Firmware的优化。
【发明内容】
[0005]为了解决以上的技术问题,本文提出了一种Linux系统下的主板VR Firmware升级方法。该方法简单有效,用于解决Linux系统用户的部分内存兼容性问题,而且不需要停止客户的线上业务,从而有效避免了用户因为业务停线带来的大规模经济损失。可实现在不影响客户Linux系统下的线上业务正常运行,对服务器主板的VR线路实现在线的优化升级,以提尚系统的供电稳定性。
[0006]本发明要解决及优化的技术问题是:在不影响客户Linux系统下的线上业务正常运行的情况下,实现VR Firmware的在线升级。其主要思想是:通过在Linux系统下,执行编译好的命令函数,来实现服务器主板上CPU及内存VR Firmware的在线升级。升级Firmware的主板VR Controller带有PMbus或者12C接口。以下为本发明所采用的方案:
首先,在主板硬件方面,VR controller的FW烧录是通过芯片预留的I2C接口实现的。在主板I2C拓扑结构中,VR controller是作为slaver设备来定义的。因此,需要一个Master把VR Firmware烧录。本文的方法是通过把南桥PCH芯片上的SMbus Host定义为VR controller的master。南桥PCH芯片的SMB HOST 10 口可以实现:在系统下访问到挂在其链路上的slaver,以保证I2C拓扑结构正确的区分主板上的CPU VR和内存VR分配I2C地址。同时,在地址分配时,既要保证在VR芯片支持的地址范围内,又要保证每个slaver的地址不会出现冲突。主板VR芯片的PMbus或者I2C接口与南桥SMbus Host控制器物理互联。
[0007]其次,软件方面根据I2C数据传输协议编译生成一个驱动函数,该驱动函数的作用是把符合格式的VR code文件烧写到VR芯片的NVM中。驱动函数预留两个参数接口:I2C地址和 VR code 文件。比如:“ inspur_updatevr 2A DDR_ABC.txt ”,其中:inspur_updatevr代表驱动程序,2A代表内存ABC通道VR controller的I2C地址、DDR_ABC.txt代表要升级的VR Firmware文件。如果要实现一次性刷新多个VR controller,只需要调用驱动函数把对应的I2C地址做成批处理命令即可。
[0008]可以在不影响用户业务的情况下实现对服务器主板上内存及CPU VR Controller的Firmware刷新和升级。该方法简单有效,可解决Linux系统用户的部分内存兼容性问题,而且不需要停止客户的线上业务,从而有效避免了用户因为业务停线带来的大规模经济损失。可实现在不影响客户Linux系统下的线上业务正常运行,对服务器主板的VR线路实现在线的优化升级,以提高系统的供电稳定性。
【附图说明】
[0009]图1是VR烧录工具示意图。
[0010]图2是硬件拓扑结构示意图。
[0011 ] 图3是软件工具包示意图。
【具体实施方式】
[0012]以下通过【具体实施方式】,对本发明的实现过程进一步说明:
参照附图2中给内存通道AB和⑶VR升级Firmware为例:
1)在主板硬件设计时,参照附图2的I2C拓扑结构设计线路,定义合适
的VR controller的I2C地址,本例中定义AB通道VR地址为0x80,CD通道VR地址为EO ;
2)使用U盘,在U盘目录下新建文件夹命名为‘VRcode’。如图3所示的驱动函数、批处理命令及烧录文件拷贝至‘VRcode’文件夹目录下;
3)将U盘插入需要升级VRFirmware的主机系统,并引导至该文件夹目录下,执行批处理命令‘./vrprogram.sh’。
[0013]烧录成功后,显示器屏幕显示:
“0x80 has been updated successfully ! ”
“0xE0 has been updated successfully ! ”
以上实施过程只是对本文提出的一种Linux系统下的主板VR Firmware升级方法作简要说明。参照可以实现在Linux系统下对任何一个VR controller实现VR Firmware的在线升级。在不影响用户业务的情况下(不需要断电),可以通过在线升级来解决服务器系统因VR引起的各种兼容性问题,减少产品的售后风险。
【主权项】
1.一种Linux系统下的主板VR Firmware升级方法,其特征在于,通过在Linux系统下执行命令函数,来实现服务器主板上CPU及内存VR Firmware的在线升级。
2.根据权利要求1所述的方法,其特征在于,升级Firmware的主板VRController带有PMbus或者I2C接口。
3.根据权利要求2所述的方法,其特征在于,把南桥PCH芯片上的SMBHOST定义为VRcontroller的master,南桥PCH芯片的SMB HOST 1 口可以实现在系统下访问到挂在其链路上的slaver。
4.根据权利要求3所述的方法,其特征在于,主板VR芯片的PMbus或者I2C接口与南桥SMbus Host控制器物理互联。
5.根据权利要求2所述的方法,其特征在于,根据I2C数据传输协议编译生成一个驱动函数,该驱动函数的作用是把符合格式的VR code文件烧写到VR芯片的NVM中。
6.根据权利要求5所述的方法,其特征在于,驱动函数预留两个参数接口:I2C地址和VR code 文件。
7.根据权利要求6所述的方法,其特征在于,实现一次性刷新多个VRcontroller,需要调用驱动函数把对应的I2C地址做成批处理命令。
【专利摘要】本发明公开了一种Linux系统下的主板VR?Firmware升级方法。涉及服务器系统及互联网行业领域。当用户购置服务器并且业务已经上线后,可以在不影响用户业务的情况下,通过在Linux系统下,执行编译好的命令函数,实现对服务器主板上内存及CPU?VR?Controller的Firmware在线升级。对解决用户线上业务运行时出现的内存ECC报错等故障非常有效。
【IPC分类】G06F9-445
【公开号】CN104572209
【申请号】CN201510029434
【发明人】孔财, 罗嗣恒
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年4月29日
【申请日】2015年1月21日