CN106598654A - 一种在线更新PowerPC主板引导芯片的方法 - Google Patents
一种在线更新PowerPC主板引导芯片的方法 Download PDFInfo
- Publication number
- CN106598654A CN106598654A CN201611074953.8A CN201611074953A CN106598654A CN 106598654 A CN106598654 A CN 106598654A CN 201611074953 A CN201611074953 A CN 201611074953A CN 106598654 A CN106598654 A CN 106598654A
- Authority
- CN
- China
- Prior art keywords
- powerpc
- fpga
- programming
- bootrom
- image file
- 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.)
- Granted
Links
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.根据权利要求1所述的在线更新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 true CN106598654A (zh) | 2017-04-26 |
CN106598654B 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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628704A (zh) * | 2018-04-09 | 2018-10-09 | 南京百敖软件有限公司 | 一种更新bios出错时自动恢复的方法 |
CN108694052A (zh) * | 2018-06-29 | 2018-10-23 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN110083374A (zh) * | 2019-03-25 | 2019-08-02 | 深圳猛犸电动科技有限公司 | 一种升级回滚方法、系统及终端设备 |
CN110333900A (zh) * | 2019-06-29 | 2019-10-15 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
CN114443175A (zh) * | 2022-04-11 | 2022-05-06 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178661A (zh) * | 2007-12-14 | 2008-05-14 | 华为技术有限公司 | Flash集成bootrom的实现方法和装置 |
CN102169445A (zh) * | 2011-05-13 | 2011-08-31 | 合肥华云通信技术有限公司 | 一种BootRom的安全升级方法 |
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目标程序的烧写和启动的方法及设备 |
CN103853566A (zh) * | 2012-11-30 | 2014-06-11 | 鸿富锦精密工业(深圳)有限公司 | Bios更新系统及方法 |
-
2016
- 2016-11-30 CN CN201611074953.8A patent/CN106598654B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178661A (zh) * | 2007-12-14 | 2008-05-14 | 华为技术有限公司 | Flash集成bootrom的实现方法和装置 |
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN102169445A (zh) * | 2011-05-13 | 2011-08-31 | 合肥华云通信技术有限公司 | 一种BootRom的安全升级方法 |
CN102736938A (zh) * | 2012-06-18 | 2012-10-17 | 中国电子科技集团公司第十研究所 | Fpga配置程序的烧写方法 |
CN103853566A (zh) * | 2012-11-30 | 2014-06-11 | 鸿富锦精密工业(深圳)有限公司 | Bios更新系统及方法 |
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 (3)
Title |
---|
于乐; 王嘉良: "易于移植的FPGA在线更新控制器设计", 《航空电子技术 》 * |
李勇: "基于ARM9的VxWorks BSP的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
王江: "Bootrom功能改进经验谈", 《电子技术应用》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628704A (zh) * | 2018-04-09 | 2018-10-09 | 南京百敖软件有限公司 | 一种更新bios出错时自动恢复的方法 |
CN108694052A (zh) * | 2018-06-29 | 2018-10-23 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN108694052B (zh) * | 2018-06-29 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN110083374A (zh) * | 2019-03-25 | 2019-08-02 | 深圳猛犸电动科技有限公司 | 一种升级回滚方法、系统及终端设备 |
CN110083374B (zh) * | 2019-03-25 | 2023-06-23 | 深圳猛犸电动科技有限公司 | 一种升级回滚方法、系统及终端设备 |
CN110333900A (zh) * | 2019-06-29 | 2019-10-15 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
WO2021000535A1 (zh) * | 2019-06-29 | 2021-01-07 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
CN114443175A (zh) * | 2022-04-11 | 2022-05-06 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106598654B (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598654A (zh) | 一种在线更新PowerPC主板引导芯片的方法 | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN101650662B (zh) | 一种嵌入式系统的存储器件的固件启动及升级方法 | |
CN102298545B (zh) | 一种系统启动引导处理方法及装置 | |
CN1983180A (zh) | 一种用于现场可编程门阵列位文件升级的系统及方法 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN114546453B (zh) | Fpga配置项在线升级方法、系统、设备及存储介质 | |
US11841398B2 (en) | Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (SSD) device | |
CN102479121A (zh) | 独立磁盘冗余阵列实现及测试方法 | |
CN100530146C (zh) | Bios在线烧录方法 | |
CN113867750A (zh) | 一种soc处理器软件在线升级方法 | |
CN108920168A (zh) | 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 | |
US6128694A (en) | Method of correcting identification data stored in an EEPROM | |
CN114168171A (zh) | 一种程序在线分段升级方法及其应用 | |
CN103809988A (zh) | 一种信息处理方法及电子设备 | |
CN107329776A (zh) | 一种提高dsp在线升级容错性能的方法 | |
CN112148317A (zh) | 一种激光雷达系统的在线升级装置及激光雷达系统 | |
CN104678292A (zh) | 一种复杂可编程逻辑器件cpld测试方法和装置 | |
CN106293531B (zh) | 一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法 | |
EP2730993B1 (en) | Reset method and network device | |
CN114995863B (zh) | 一种软件重编程系统、基于重编程系统的软件重编程方法 | |
CN213211012U (zh) | 一种激光雷达系统的在线升级装置及激光雷达系统 | |
CN115729640A (zh) | 可编程逻辑器件的固件升级方法、升级工具及计算设备 | |
JP4461934B2 (ja) | キャッシュメモリ試験システム、試験方法、試験プログラム | |
CN116594804A (zh) | 一种edac码读写优化方法、系统、设备及存储介质 |
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 |
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 |
|
TR01 | Transfer of patent right |