CN106598654B - 一种在线更新PowerPC主板引导芯片的方法 - Google Patents
一种在线更新PowerPC主板引导芯片的方法 Download PDFInfo
- Publication number
- CN106598654B CN106598654B CN201611074953.8A CN201611074953A CN106598654B CN 106598654 B CN106598654 B CN 106598654B CN 201611074953 A CN201611074953 A CN 201611074953A CN 106598654 B CN106598654 B CN 106598654B
- Authority
- CN
- China
- Prior art keywords
- fpga
- powerpc
- updating
- image file
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种在线更新PowerPC主板引导芯片的方法,所述方法包括了以下步骤:系统上电,可编程逻辑器件FPGA对更新标志位进行维护;进入更新流程时,上位机通过串口传输bootrom镜像文件到系统,更新程序接收并校验镜像内容是否正确;将校验通过的镜像内容写入FPGA可操作地址空间下,由FPGA烧写到工作区,同时将当前镜像备份;再次加电启动,能够成功进入系统则完成此次更新,否则将备份区的备份数据回滚。
Description
技术领域
本发明涉及一种在线更新PowerPC主板引导芯片bootrom(Boot Read-Only-Memory)的方法,特别涉及一种串口在线更新PowerPC主板引导芯片bootrom的方法。
背景技术
通常PowerPC主板使用bootrom引导芯片实现PowerPC处理器、内存、Cache等基本硬件初始化,并将bootrom内部的镜像拷贝至内存,执行剩余外围硬件接口初始化、系统空间配置等流程,最终完成操作系统的加载及引导。
在PowerPC主板前期进行调试,后期对某些硬件功能配置根据实际用户需求调整参数,或是修正留存的问题时,就需要对bootrom进行更新升级。较为常见的做法有两种:一种是直接将bootrom存储使用的芯片从PowerPC主板上取下,借助芯片配套的烧写器设备进行更新。另一种是利用PowerPC处理器对应的JTAG烧写器,插入预留的JTAG接口后,利用JTAG烧写程序进行更新。
但上述两种方法均要打开机箱将PowerPC主板拔出处理后,利用特定硬件才能实现bootrom更新,对于已经出厂的整机设备更新bootrom将带来额外的设备维护成本,而操作过程中的插拔芯片或是连接JTAG线缆操作,都可能对PowerPC主板造成损坏。
现有在线更新bootrom的方法通常采用下载镜像到bootloader或是操作系统中,由bootloader或操作系统中的更新程序直接更新bootrom芯片中的镜像,这种方法在遇到传输数据出错、设备异常掉电等情况更新失败时,将导致整个PowerPC主板无法使用,目前解决该问题的方法多采用主备镜像分区管理启动,即更新主分区后同时备份镜像,然后让bootrom依次尝试从主分区和备份分区启动。但如果更新后bootrom能够启动,只是启动中途失败,那么同样将导致PowerPC主板无法再次使用,最终只能返厂维修。
发明内容
本发明要解决的技术问题是提供一种利用串口对PowerPC主板在线更新引导芯片的方法。
本发明的硬件连接为:将FPGA一端通过局部总线Local Bus连接到PowerPC处理器;FPGA另外一端通过Local Bus与bootrom相连,bootrom芯片内部划分为工作区、备份区和预留区。
本发明的利用串口对PowerPC主板在线更新引导芯片的方法,依次包括如下步骤:
a)上位机程序通过串口将待烧写镜像文件传输至目标PowerPC主板;
b)PowerPC主板设置的更新控制程序接收镜像文件并检验文件的正确性;
c)写入镜像文件到FPGA映射空间并通知FPGA启动烧写流程,FPGA将镜像文件内容烧写至bootrom芯片指定工作区,同时将原工作区内容备份,置位标志位;
d)若PowerPC主板端更新控制程序在接收上位机镜像文件失败,则将回报失败状态给上位机程序;
e)FPGA在每次加电时,将判断是否存在烧写标志位,如存在,则等待系统确认烧写标志位被清除,否则将回滚至备份区数据。
所述步骤b中的校验文件是指:根据所述上位机程序利用确定的检验算法对待烧写的bootrom镜像文件进行检验,计算得出的校验值将对应唯一的镜像文件,并写入到镜像文件尾部;且上位机传输镜像数据过程中包含对每帧数据的校验;PowerPC主板端更新控制程序将镜像文件接收之后,将重新计算检验和,并回读尾部校验码进行判断,如检验失败,回传上位机文件错误状态。
所述步骤c中FPGA映射空间是指:更新控制程序实现FPGA对应烧写操作地址空间到操作系统的指定内存地址空间。
所述步骤c中FPGA启动烧写流程是指:FPGA内部程序对bootrom芯片的读、写、删除接口操作的实现,且内部逻辑在接收到启动烧写指令后,自动开始bootrom芯片烧写流程。
本发明实现了对PowerPC主板bootrom无插拔的在线更新,避免在调试及交付后常规更新bootrom方式所需要的繁琐操作流程,仅利用配套的上位机程序,通过串口传输镜像后即可完成操作。另外,本发明方法通过FPGA参与烧写控制,加入了完备的镜像烧写及备份还原机制,提高了bootrom更新的安全性。
附图说明
图1是本发明所涉及的PowerPC主板硬件结构框图;
图2是本发明所涉及的bootrom引导芯片空间划分示意图;
图3是本发明所涉及的FPGA开机加电检测流程图;
图4是本发明所涉及的PowerPC开机加电检测流程图;
图5是本发明所涉及的FPGA烧写控制流程图。
具体实施方式
如图1所示,本发明的硬件连接为:将FPGA一端通过局部总线Local Bus连接到PowerPC处理器,同时另外一端也通过Local Bus与bootrom相连;如图2所示,bootrom芯片内部划分为工作区、备份区和预留区;FPGA包括FPGA启动控制模块,上电时当更新的镜像不能正常进入系统时回滚至原备份镜像,在下文中有实现的详细流程;FPGA烧写程序模块,提供对bootrom芯片的烧写操作接口,即依据nor flash芯片说明,实现寻址、读、写、擦除接口。
bootrom更新控制软件分为如下四个模块,传输控制程序模块位于上位机端,负责向PowerPC主板发送待烧写bootrom镜像文件;接收控制程序模块位于PowerPC主板端,由更新指令发起,用于接收上位机传输的镜像文件和将待烧写的镜像文件传送给FPGA;引导控制程序模块位于PowerPC主板端,在引导完成后由操作系统调用,负责在系统成功引导完成后对更新标识进行清空;烧写控制程序模块位于PowerPC主板端,负责初始化底层硬件驱动。
在硬件完成的情况下,对引导芯片bootrom的更新过程如下:
步骤100:系统上电时,将FPGA可操作地址空间映射到当前系统地址空间中来;
步骤200:系统上电时,FPGA启动控制模块和引导控制程序模块对更新标志位检测维护,如果新镜像不能正常使用,回滚并进行正常引导;
步骤300:进入更新流程时,上位机中传输控制程序模块向PowerPC中接收控制程序模块传输bootrom镜像文件;
步骤400:通过PowerPC中接收控制程序模块校验缓存区数据,校验通过后,重组镜像文件;
步骤500:接收控制程序模块将镜像文件写入到FPGA操作地址空间下,并通过FPGA烧写程序模块提供的接口进行烧写。
系统上电时,将FPGA操作地址空间映射到当前系统地址空间的步骤为:
步骤101初始化PowerPC的LocalBus控制器配置;
步骤102在系统地址空间中为LocalBus划分一块区域;
步骤103执行地址映射操作。
上电时如图3所示,FPGA启动控制模块和引导控制程序模块对更新标志位检测维护,如果新镜像不能正常使用,回滚并进行正常引导:
步骤201:上电启动系统;
步骤202:FPGA启动控制模块判断bootrom中更新标志位是否为1,如果是1则进行步骤204,否则执行步骤203;
步骤203:结束,PowerPC进入正常引导;
步骤204:FPGA延时判断更新标志位是否为1,如果是1则执行206,否则执行205;
步骤205:结束;
步骤206:将备份区中的镜像重新加载到工作区,置更新标识为1,并结束。
同时如图4所示,PowerPC进行正常引导工作区中的镜像:
步骤207:PowerPC进行正常引导,如果当前bootrom引导成功则进行步骤208;
步骤208:通过FPGA置bootrom中更新标志位为0。
进入更新流程时,上位机中传输控制程序模块向PowerPC中接收控制程序模块传输bootrom镜像文件具体实现为:
步骤301:启动上位机镜像传输控制程序模块和PowerPC主板端的接收控制程序模块。
步骤302:串口连接。传输控制程序模块选择与PowerPC主板相连接串口设备号,进行连接,连接成功则进行下一步,否则更新失败退出;
步骤303:接收控制程序模块申请接收缓存区。将在系统内存的特定地址申请为缓存区,并发送确认帧给上位机;
步骤304:开始收发。传输控制程序模块首先对bootrom镜像文件进行按指定校验算法进行校验和计算,计算得出的数值更新至文件尾端的数据区域。然后进行按照格式(No,Data,CRC/NRZ)进行组帧,其中No是帧的编号,用来检验数据的连续性与完整性,data是被拆分的镜像文件中的内容,而CRC/NRZ是校验和,用以检验数据传输过程的正确性。将数据帧通过串口发往PowerPC主板。特别的,0号帧中的Data携带的内容是镜像文件一共分为多少帧以及当前镜像文件的校验值。于此同时,接收控制程序模块开始接收上位机所发来的内容,并通过0号帧中的总帧数,来确认接收完毕。如果接收完毕则进行下一步,否则更新失败退出;
接收控制程序模块校验并重组bootrom镜像文件为以下步骤:
步骤401:取出0帧中的总帧数;
步骤402:数据正确性连续性检验。从第一帧开始,对每一帧进行CRC(或NRZ)校验,如果CRC(或NRZ)校验成功,则继续,否则,检验失败并退出;数据连续性检验,对每一帧查看其No是否为前一帧的后继,如果连续则继续,否则校验失败并退出;当帧数等于总帧数且回读校验值比对成功时,进行下一步。
步骤403:按格式重组镜像文件。
通过FPGA烧写程序模块对bootrom进行更新,如图5 FPGA烧写流程所示:
步骤501:将bootrom镜像文件写入到FPGA操作地址空间下;
步骤502:FPGA选通nor flash芯片,并进入烧写模式;
步骤503:将bootrom工作区中原有镜像移至bootrom中的备份区;
步骤504:将镜像文件烧写到nor flash芯片的工作区中 ;
步骤505:回读校验bootrom中的内容并于bootrom镜像文件进行对比校验,如果校验成功则执行506,并结束,否则置进行步骤507;
步骤506:置更新标志位为1,并结束;
步骤507:重新将bootrom备份区的镜像放回工作区,并结束。
Claims (4)
1.一种在线更新PowerPC主板引导芯片的方法,其特征在于,所述的方法包括如下步骤:
a)上位机程序通过串口将待烧写镜像文件传输至目标PowerPC主板;
b)PowerPC主板设置的更新控制程序接收镜像文件并检验文件的正确性;
c)写入镜像文件到FPGA映射空间并通知FPGA启动烧写流程,FPGA将镜像文件内容烧写至bootrom芯片指定工作区,同时将原工作区内容备份,置位标志位;
d)若PowerPC主板端更新控制程序在接收上位机镜像文件失败,则回报失败状态给上位机程序;
e)FPGA在每次加电时,将判断是否存在烧写标志位,如存在,则等待系统确认烧写标志位被清除,否则将回滚至备份区数据。
2.根据权利要求1所述的在线更新PowerPC主板引导芯片的方法,其特征在于,所述步骤b中的校验文件是指:根据所述上位机程序利用确定的检验算法对待烧写的bootrom镜像文件进行检验,计算得出的校验值将对应唯一的镜像文件,并写入到镜像文件尾部;且上位机传输镜像数据过程中包含对每帧数据的校验;PowerPC主板端更新控制程序将镜像文件接收之后,将重新计算检验和,并回读尾部校验码进行判断,如检验失败,回传上位机文件错误状态。
3.根据权利要求l所述的在线更新PowerPC主板引导芯片的方法,其特征在于,所述步骤c中FPGA映射空间是指:由更新控制程序所实现FPGA烧写地址空间到操作系统内存地址空间映射操作后的地址空间。
4.根据权利要求1所述的在线更新PowerPC主板引导芯片的方法,其特征在于,所述步骤c中FPGA启动烧写流程是指:FPGA内部程序对bootrom芯片的读、写、删除接口操作的实现,且内部逻辑在接收到启动烧写指令后,自动开始bootrom芯片烧写流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611074953.8A CN106598654B (zh) | 2016-11-30 | 2016-11-30 | 一种在线更新PowerPC主板引导芯片的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611074953.8A CN106598654B (zh) | 2016-11-30 | 2016-11-30 | 一种在线更新PowerPC主板引导芯片的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598654A CN106598654A (zh) | 2017-04-26 |
CN106598654B true CN106598654B (zh) | 2020-09-04 |
Family
ID=58593839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611074953.8A Active CN106598654B (zh) | 2016-11-30 | 2016-11-30 | 一种在线更新PowerPC主板引导芯片的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598654B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628704A (zh) * | 2018-04-09 | 2018-10-09 | 南京百敖软件有限公司 | 一种更新bios出错时自动恢复的方法 |
CN108694052B (zh) * | 2018-06-29 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN110083374B (zh) * | 2019-03-25 | 2023-06-23 | 深圳猛犸电动科技有限公司 | 一种升级回滚方法、系统及终端设备 |
CN110333900A (zh) * | 2019-06-29 | 2019-10-15 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
CN114443175B (zh) * | 2022-04-11 | 2022-06-24 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN102736938A (zh) * | 2012-06-18 | 2012-10-17 | 中国电子科技集团公司第十研究所 | Fpga配置程序的烧写方法 |
CN103067459A (zh) * | 2012-12-18 | 2013-04-24 | 四川九洲电器集团有限责任公司 | 基于数字信号处理器的fpga远程加载装置 |
CN103136028A (zh) * | 2013-03-11 | 2013-06-05 | 西北工业大学 | 一种基于fpga的flash存储器远程在线升级方法 |
CN103389669A (zh) * | 2013-07-26 | 2013-11-13 | 中国船舶重工集团公司第七一五研究所 | 一种基于fpga/cpld控制器的处理器程序远程动态加载系统及方法 |
CN103823698A (zh) * | 2014-02-27 | 2014-05-28 | 四川九洲电器集团有限责任公司 | Fpga和dsp目标程序的烧写和启动的方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178661B (zh) * | 2007-12-14 | 2010-06-02 | 华为技术有限公司 | Flash集成bootrom的实现方法和装置 |
CN102169445B (zh) * | 2011-05-13 | 2013-12-04 | 合肥华云通信技术有限公司 | 一种BootRom的安全升级方法 |
CN103853566B (zh) * | 2012-11-30 | 2017-05-03 | 鸿富锦精密工业(深圳)有限公司 | Bios更新系统及方法 |
-
2016
- 2016-11-30 CN CN201611074953.8A patent/CN106598654B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN102736938A (zh) * | 2012-06-18 | 2012-10-17 | 中国电子科技集团公司第十研究所 | Fpga配置程序的烧写方法 |
CN103067459A (zh) * | 2012-12-18 | 2013-04-24 | 四川九洲电器集团有限责任公司 | 基于数字信号处理器的fpga远程加载装置 |
CN103136028A (zh) * | 2013-03-11 | 2013-06-05 | 西北工业大学 | 一种基于fpga的flash存储器远程在线升级方法 |
CN103389669A (zh) * | 2013-07-26 | 2013-11-13 | 中国船舶重工集团公司第七一五研究所 | 一种基于fpga/cpld控制器的处理器程序远程动态加载系统及方法 |
CN103823698A (zh) * | 2014-02-27 | 2014-05-28 | 四川九洲电器集团有限责任公司 | Fpga和dsp目标程序的烧写和启动的方法及设备 |
Non-Patent Citations (1)
Title |
---|
于乐;王嘉良.易于移植的FPGA在线更新控制器设计.《航空电子技术 》.2015, * |
Also Published As
Publication number | Publication date |
---|---|
CN106598654A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598654B (zh) | 一种在线更新PowerPC主板引导芯片的方法 | |
CN109710295B (zh) | 一种安全可靠的fpga远程升级方法 | |
CN105808292A (zh) | 嵌入式终端设备的固件升级方法 | |
US20150199190A1 (en) | System and method for updating firmware | |
CN105677398A (zh) | 一种通用的嵌入式计算机软件在线升级方法 | |
CN108108193A (zh) | 一种安全易用的固件升级方法及系统 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN109634781B (zh) | 一种基于嵌入式程序双区备份映像系统及启动方法 | |
CN114546453A (zh) | Fpga配置项在线升级方法、系统、设备及存储介质 | |
CN112231005A (zh) | 一种基于uboot管理fpga版本的方法 | |
CN115454469A (zh) | 镜像更新方法、装置、芯片、电子设备及存储介质 | |
CN113127264A (zh) | 数据存储装置修复方法 | |
CN113867750A (zh) | 一种soc处理器软件在线升级方法 | |
CN113835735A (zh) | 一种fpga远程升级方法、系统和存储介质 | |
CN112612500A (zh) | 一种升级bmc的方法、装置、电子设备及存储介质 | |
CN112148317A (zh) | 一种激光雷达系统的在线升级装置及激光雷达系统 | |
CN116700765A (zh) | 伺服驱动器的固件升级方法及装置、伺服驱动器 | |
CN108418707B (zh) | 通信系统中双cpld互相在线备份升级方法及业务单板 | |
CN115904831A (zh) | 一种服务器固件的启动方法及终端 | |
CN114281390A (zh) | 一种基于Zynq 7000的在线升级系统及方法 | |
CN113094107A (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
US20160026454A1 (en) | Circuit and method for writing program codes of basic input/output system | |
EP2730993B1 (en) | Reset method and network device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210406 Address after: 621000 building 31, No.7, Section 2, Xianren Road, Youxian District, Mianyang City, Sichuan Province Patentee after: China Ordnance Equipment Group Automation Research Institute Co.,Ltd. Address before: 621000 Mianyang province Sichuan City Youxian District Road No. 7 two immortals Patentee before: China Ordnance Equipment Group Automation Research Institute |