CN106598654A - 一种在线更新PowerPC主板引导芯片的方法 - Google Patents

一种在线更新PowerPC主板引导芯片的方法 Download PDF

Info

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
Application number
CN201611074953.8A
Other languages
English (en)
Other versions
CN106598654B (zh
Inventor
龚俊
周加谊
李昊哲
李泽银
袁霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China South Industries Group Automation Research Institute
Original Assignee
China South Industries Group Automation Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China South Industries Group Automation Research Institute filed Critical China South Industries Group Automation Research Institute
Priority to CN201611074953.8A priority Critical patent/CN106598654B/zh
Publication of CN106598654A publication Critical patent/CN106598654A/zh
Application granted granted Critical
Publication of CN106598654B publication Critical patent/CN106598654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates 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主板引导芯片的方法
技术领域
本发明涉及一种在线更新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芯片烧写流程。
CN201611074953.8A 2016-11-30 2016-11-30 一种在线更新PowerPC主板引导芯片的方法 Active CN106598654B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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更新系统及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
于乐; 王嘉良: "易于移植的FPGA在线更新控制器设计", 《航空电子技术 》 *
李勇: "基于ARM9的VxWorks BSP的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王江: "Bootrom功能改进经验谈", 《电子技术应用》 *

Cited By (9)

* Cited by examiner, † Cited by third party
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