这篇博文放到了OpenBMC笔记里面稍微有点牵强,主要是因为与OpenBMC的学习相关,便放到这里作为笔记用了。本人对CPLD的升级也不是很专业,有写的不对的地方,还请各位读者指正。
1.背景
部分搭载AST2600 BMC芯片的主板是这样设计:扩展板+主板,如下图所示。其中扩展板上面集成了BMC的AST2600芯片、BMC和BIOS的Flash、扩展板的CPLD、扩展板的EEPROM等。主板不用多讲了,大家都知道,主板上集成了CPU槽位、内存槽位、PCIE接口、主板CPLD、主板EEPROM等等。具体细节,这里不展开讲了。目前遇到的问题是,扩展板CPLD和主板CPLD版本不匹配,导致扩展板上的BMC不活,猜测可能是没有给BMC芯片供电,具体原因等着我再和硬件同事确认一下。出现这个问题后,就引来本文的内容,需要通过烧录软件升级CPLD固件,使扩展板和主板的CPLD匹配。
2.升级过程
本文介绍的升级过程是:使用烧录工具对扩展板上Altera的CPLD(或称为FPGA)进行升级。
2.1 硬件接线
硬件接线如下图所示,烧录器使用的是Altera usb-blaster,电脑与烧录器之前使用USB接线,烧录器与扩展板的CPLD使用JTAG接线。
扩展板和主板在部分研发阶段会预留JTAG的pin脚,方便研发人员通过烧录器的硬件对CPLD进行升级,但是到了批量生产阶段,一般会取消JTAG的pin脚。
这里需要注意,我们需要和硬件研发同事确认JTAG的pin脚定义,或者自己从硬件原理图上去找,然后通过杜邦线将usb-blaster烧录器的JTAG与扩展板CPLD的JTAG连接起来,主要需要连接的是TCK、TDO、TMS、TDI、GND、VCC这6个pin脚,usb-blaster烧录器如下图所示。
2.2 安装软件
(1) 安装usb-blaster驱动,下载链接
Altera的usb-blaster驱动在Intel的官网上有,大家可以自行去下载。也可以使用我分享的优快云下载资源:https://download.youkuaiyun.com/download/openbmc/88084704,大家可以去下载使用,我用的是Windows10 64位操作系统,亲测可用。
(2) 安装QuartusProgrammer软件,下载链接
这里大家需要注意一下,需要找到与pof文件配套的QuartusProgrammer软件版本,版本不匹配会提示设备不支持。可以用编辑工具打开pof文件,里面有记录对应的QuartusProgrammer软件版本。
本文用的是QuartusProgrammerSetup-20.1.1.720-windows版本,我是从Intel的官网下载的,链接如下:https://www.intel.com/content/www/us/en/software-kit/660905/intel-quartus-prime-standard-edition-design-software-version-20-1-1-for-windows.html,点击页面的 Additional Software,可以从下载QuartusProgrammer独立安装软件,如下图所示。
也可以使用我分享的优快云下载资源:https://download.youkuaiyun.com/download/openbmc/88083739
2.3 升级流程
打开QuartusProgrammer安装后的Signal Tap (Quartus Prime 20.1)软件,然后按照下图的步骤,完成Altera的CPLD升级流程。
主要包括5步:
(1) 选择烧录器USB-Blaster
(2) 点击Scan Chain扫描设备
(3) 选择pof格式的CPLD固件程序
(4) 点击Program Device进行CPLD升级
(5) 查看升级信息,成功或失败会有信息显示