CN101526910A - 一种BootRom备份方法及装置 - Google Patents

一种BootRom备份方法及装置 Download PDF

Info

Publication number
CN101526910A
CN101526910A CN200910106363A CN200910106363A CN101526910A CN 101526910 A CN101526910 A CN 101526910A CN 200910106363 A CN200910106363 A CN 200910106363A CN 200910106363 A CN200910106363 A CN 200910106363A CN 101526910 A CN101526910 A CN 101526910A
Authority
CN
China
Prior art keywords
bootrom
standby
described master
master
select
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.)
Withdrawn
Application number
CN200910106363A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200910106363A priority Critical patent/CN101526910A/zh
Publication of CN101526910A publication Critical patent/CN101526910A/zh
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例公开了一种BootRom备份方法及装置,其中BootRom备份方法包括以下步骤:将主用BootRom和至少一个备用BootRom存储于单片存储器中;选择所述主用BootRom用于启动系统;当所述主用BootRom出现故障时,选择所述备用BootRom用于启动系统。通过本发明实施例,可以在大批量生产时降低生产成本。

Description

一种BootRom备份方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种BootRom备份方法及装置。
背景技术
在嵌入式系统中,固件(Firmware)一般是指固化在ROM(Read OnlyMemory,只读存储器)或PROM(Programmable ROM,可编程只读存储器)中,执行一些系统底层功能的软件。为了方便升级,现在越来越多的嵌入式系统都采用Flash存储器作为固件的硬件载体。
在一些嵌入式系统中,固件被分成多个部分,如一部分用于启动系统,一部分用于程序运行时使用,或者一部分留给用户使用等等。其中,用于启动系统的那一部分引导程序称为BootRom,通常BootRom体积较小,一般只有几百KB,单独存放在一片小的Flash当中或者与单板主机软件一起存入于一片大的Flash中。由于BootRom负责启动系统,包括初始化处理器寄存器、系统硬件设备、为操作系统等上层软件提供加载接口等等,因此,BootRom是系统能够正常运行的基础,当BootRom发生故障时,将导致整个系统的崩溃。
为了防止因BootRom发生错误而导致整个系统崩溃事件的发生,系统一般都会对BootRom进行备份。现有技术多采用一片独立的备份Flash来存储BootRom程序,当BootRom发生故障时,系统将启动备份的BootRom,从而完成系统的正常启动。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺点:
由于另外加了一片独立的Flash,因此,在大批量生产时,将会导致产品成本增加。
发明内容
本发明实施例提供一种BootRom备份方法及装置,可以降低备份BootRom时的成本,通过以下方案来实现:
一种BootRom备份方法,包括以下步骤:
将主用BootRom和至少一个备用BootRom存储于单片存储器中;
选择所述主用BootRom用于启动系统;
当所述主用BootRom出现故障时,选择所述备用BootRom用于启动系统。
一种BootRom备份装置,包括:
存储单元,用于存储主用BootRom和至少一个备用BootRom;
选择启动单元,用于选择所述主用BootRom启动系统;当所述主用BootRom出现故障时,选择所述备用BootRom启动系统。
上述技术方案中具有如下的优点:
由于在单片存储器中存储主用BootRom和备用BootRom,因此,可以节省一片单独的Flash,在大批量生产时,可以有效降低生产成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例BootRom备份方法流程示意图;
图2为本发明实施例BootRom备份方法系统连接示意图;
图3为本发明另一实施例BootRom备份方法系统连接示意图;
图4为本发明实施例BootRom备份装置系统框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下将通过具体实施例和相关附图,对本发明作进一步详细说明。
本发明提供一种对BootRom进行备份的方法,参见图1,包括以下步骤:
S101、将单片存储器分成多个空间分别用于存放主用BootRom和备用BootRom;
其中,所述单片存储器可以采用Flash存储器,单片存储器中都会有一个主用BootRom,用于平时正常启动;另外,还包括一个或多个备用BootRom,用于主用BootRom出故障时,启动备用BootRom来实现系统的启动。主用BootRom和/或备用BootRom的存储空间可以为连续的,也可以是非连续的。
S102、选择所述主用BootRom用于启动系统;
在一般启动下,选择主用BootRom用于启动系统,具体可以通过一个选择电路来实现,通过选择电路选择主用BootRom的地址,即可以访问主用BootRom。
S103、当所述主用BootRom出现故障时,选择所述备用BootRom用于启动系统。
选择所述备用BootRom也可以通过选择电路来实现,具体可以将选择电路选通备用BootRom的地址,即可以访问备用BootRom。
其中,在步骤S103之前还包括判断所述主用BootRom是否出现故障,包括:
通过判断电路查询上电标志位,如果所述上电标志位在一定时间内一直为无效,则判断所述主用BootRom出现故障。
更进一步地,本发明实施例还可以包括通过控制所述单片存储器的访问信号,来控制访问所述备用BootRom的权限;
具体包括:
当使用所述主用BootRom或备用BootRom时,控制所述单片存储器的写信号线为无效状态,使得不能改写所述主用BootRom或所述备用BootRom;
或者,
当使用所述主用BootRom或备用BootRom时,控制所述单片存储器的读信号为无效状态,使得不能读取所述主用BootRom或所述备用BootRom。
由于只使用一片存储器,因此,可以在大批量生产时有效降低生产成本。
参见图2,为本发明实施例一种BootRom备份方法系统连接示意图,下面结合图2对本发明实施例进行详细说明。
本发明实施例采用单片存储器来进行BootRom的备份,这里的单片存储器优选Flash存储器,但也不仅限于Flash存储器,其它能代替Flash完成相应功能的存储器也可以用来进行BootRom备份。
本发明实施例中,单片Flash被分成两块两部分,一部分用于存储主用BootRom,另一部分存储备用BootRom。由于BootRom程序一般都不大,如占用500KB,因此,每部分的BootRom大小也不需很大,但最好比估计的代码段长度要大一些,这样当以后对BootRom升级时,不会出现因为存储空间太小,而装不下程序代码的情况。在本实施例中,设置主备用BootRom各占用1MB的空间,其中,主用BootRom存储地址从0xFFE00000到0xFFEFFFFF;备用BootRom存储地址从0xFFF00000到0xFFFFFFFF,这里存储空间并不固定,用户也可以选择其它连续的1MB空间,或者由几段存储空间一起组成非连续的1MB的存储空间。
在另一实施例中,可以包括两个或更多个备用BootRom,这样可以进一步提高BootRom的安全可靠性。其内部存储空间分配与只存在一个备用BootRom时的情况类似,在此不再赘述。
参见图2,本发明实施例中的CPU采用MPC 8245,根据系统需要完成的功能,也可以使用其它类型的控制芯片。为了完成相应的逻辑控制功能(如选择主备用BootRom以及控制访问权限等),还需要一个逻辑电路,逻辑电路的实现形式不限,可以采用分立的元件,也可以采用可编辑逻辑器件,如CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)等来完成相应的逻辑控制。优选地,在本发明实施例中,采用CPLD来完成相应的逻辑控制。
CPU与逻辑电路及Flash的连接可以通过总线进行连接,如选用Local Bus总线将CPU相关信号线、地址总线、数据总线等与Flash和逻辑电路的相关信号线进行连接。其中,一些信号线如读信号线OE#(#表示低电平有效)、地址总线、数据总线的连接属于本领域技术人员所公知的技术,在此不在赘述,现对本发明实施例中的一些控制信号进行具体描述:
参见图2,为本发明实施例系统连接示意图,各器件连接关系具体包括:
CPU的写信号WE#与CPLD的输入端Bwe0相连;
CPU的一个具有控制功能的管脚I/Ox与CPLD的输入端S相连;
CPLD的输出端Bwe1与Flash的读信号WE#相连;
CPLD的输出端Sel与Flash的地址线A20相连。
其中,上述CPLD的输出端Sel用于选择主备用BootRom:
当Sel为0时,Flash的A20为0,访问的是主用BootRom(低1M空间);
当Sel为1时,Flash的A20为1,访问的是备用BootRom(高1M空间)。
CPLD的输入端S用于控制访问权限,本发明实施例中,通过S控制Flash的写信号来实现对备用BootRom的写权限的控制,具体通过以下逻辑关系来实现:。
当Sel为0(即访问主用BootRom),此时,不管S值为何值,Bwe1=Bwe0,也就是说,当访问主用BootRom时,不进行权限控制;
当Sel为1(即访问备用BootRom),此时,如果S=0,Bwe1=1;如果S=1,Bwe1=Bwe0。
用Verilog语言描述如下:
assign Bwe1=(Sel==0)?Bwe0:((S==0)?1:Bwe0)
这里需要说明的是,CPLD的输入端S也可以不与CPU相连,而是与系统硬件相连,通过硬件来控制S的值。参见图3,为CPLD输入端S与一个跳线开关相连的示意图,通过设置跳线,来改变S的值。
通过上述硬件连接及对相关信号的逻辑转换,即可完成相应的BootRom备份功能,同时还能增强备用BootRom的安全性,其具体工作原理分析如下:
正常启动时,CPU会向逻辑电路(如本发明实施例中的CPLD)写一个选择标志位,逻辑电路内部通过判断电路检查判断该选择标志位是否被置位(假设置位代表选择主用BootRom),同时,判断电路内部还有一个定时计数器,用于对选择标志位的置位进行计时,如果在一定时间内选择标志位一直没被置位,则说明主用BootRom出现了故障,这时,Sel变成高电平,用于选择备用BootRom(高1M空间地址)进行启动。
平时CPU通过主用BootRom启动,Sel端为0,即Flash的地址线A20为0,访问的主用BootRom地址空间为0xFFE00000到0xFFEFFFFF。此时,无论S为何值,Bwe1都等于Bwe0,即Flash的写信号与CPU写信号保持一致,CPU可以对备用BootRom进行正常访问。
当主用BootRom出现故障,切换到备用BootRom进行启动时,Sel端为1,即Flash的地址线A20为1,访问的备用BootRom地址空间为0xFFF00000到0xFFFFFFFF。在访问备用BootRom时,可以通过开关信号S来控制改写权限:
当S=0(禁止改写)时,由逻辑表达式(Verilog语言)assign Bwe1=(A20==0)?Bwe0:((S==0)?1:Bwe0)可知,Bwe0=1;Bwe1连接Flash的WE#(低电平有效),所以当Bwe1等于1时,WE#为高电平,从而无法实现对备用BootRom的改写;
当S=1(允许改写)时,由逻辑表达式(Verilog语言)assign Bwe1=(A20==0)?Bwe0:((S==0)?1:Bwe0)可知,Bwe1=Bwe0;即Flash的WE#与CPU的WE#相连,因此,允许CPU对备用BootRom进行改写。
上述S的值既可以通过CPU来控制(如图2所示),也可以通过硬件电路来控制(如图3所示),这点在上文已经说明,这里不再赘述。
通过开关信号S来控制改写权限,使得对备用BootRom的改写只有在S=1时才能进行;如果不想对备用BootRom进行改写,可以将开关信号S设置为0,这样可以防止因对备用BootRom误写而造成的破坏,如在用JTAG工具对主用BootRom进行升级时,可以将,S设置为0,从而避免在对主用BootRom进行升级时对备用BootRom进行误改写而造成破坏,进一步提高了备用BootRom的安全性。
上述实施例为优选的实施例,在另一实施例中,也可以实现对主用BootRom进行控制,具体可以利用CPU向逻辑电路写一个校验码,逻辑电路检查该检验码是否与预设的一致,如果一致,则允许对主用BootRom进行改写;如果不一样,则禁用WE#信号线,实现对主用BootRom改写的控制。
同理,对主用或备用BootRom的读权限控制也可以参考上述实施例对OE#信号线进行控制,在此不再赘述。
通过对Flash读写信号的控制(特别是写信号的控制),可以设定访问主备用BootRom的权限,从而提高了访问的安全性。
本发明实施例通过对Flash地址线的控制,实现了通过单片Flash对BootRom进行备份,可以在大批量生产时有效降低生产成本;同时,又加入了开关信号,可以实现对BootRom的访问权限控制,从而提高了访问的安全性。
参见图4,本发明实施例还提供了一种BootRom备份装置40,包括:
存储单元401,用于存储主用BootRom和至少一个备用BootRom;
选择启动单元402,用于选择所述主用BootRom启动系统;当所述主用BootRom出现故障时,选择所述备用BootRom启动系统。
所述存储单元401存储主备用BootRom时,主备用BootRom的存储空间可以是连续或非连接。
所述选择启动单元402还用于:
控制所述存储单元401的地址线,选择所述备用BootRom的空间地址用于启动系统。在控制存储单元401地址线时,还会有相关逻辑控制单元来对控制相关信号线,在本发明实施例中,采用CPLD作为逻辑控制单元。
本发明实施例还包括:
判断单元403,用于查询上电标志位,如果所述上电标志位在一定时间内一直为无效,则判断所述主用BootRom出现故障。
访问控制单元404,用于通过控制所述存储单元的访问信号,来控制访问所述主用BootRom或所述备用BootRom。
所述访问控制单元404还用于:
当使用所述主用BootRom或备用BootRom时,设置所述存储单元的写信号线为无效,使得不能改写所述主用BootRom或备用BootRom;
或者,
使用所述主用BootRom或备用BootRom时,设置所述存储单元的读信号线为无效,使得不能改写所述主用BootRom或备用BootRom。
所述访问控制单元404的信号在实际应用中可以通过控制芯片给出,或者采用诸如跳线开关等硬件电路来控制。
本发明实施例通过单片Flash对BootRom进行备份,节省了一片Flash,可以在大批量生产时有效降低生产成本;同时,又加入了访问控制单元,可以实现对BootRom的访问权限控制,从而提高了访问的安全性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1、一种BootRom备份方法,其特征在于,包括以下步骤:
将主用BootRom和至少一个备用BootRom存储于单片存储器中;
选择所述主用BootRom用于启动系统;
当所述主用BootRom出现故障时,选择所述备用BootRom用于启动系统。
2、如权利要求1所述的BootRom备份方法,其特征在于,所述当所述主用BootRom出现故障时,选择所述备用BootRom用于启动系统的步骤包括:
通过控制所述单片存储器的地址线,选择所述备用BootRom的空间地址用于启动系统。
3、如权利要求1所述的BootRom备份方法,其特征在于,所述当所述主用BootRom出现故障时,选择所述备用BootRom用于启动系统的步骤前还包括:
判断所述主用BootRom是否出现故障;包括:
查询上电标志位,如果所述上电标志位在一定时间内一直为无效,则判断所述主用BootRom出现故障。
4、如权利要求1所述的BootRom备份方法,其特征在于,还包括:
通过控制所述单片存储器的访问信号,来控制访问所述主用BootRom或所述备用BootRom的权限。
5、如权利要求4所述的BootRom备份方法,其特征在于,所述通过控制所述单片存储器的访问信号,来控制访问所述备用BootRom的权限的步骤包括:
当使用所述主用BootRom或备用BootRom时,设置所述单片存储器的写信号线为无效,使得不能改写所述主用BootRom或备用BootRom;
或者,
使用所述主用BootRom或备用BootRom时,设置所述单片存储器的读信号线为无效,使得不能改写所述主用BootRom或备用BootRom。
6、一种BootRom备份装置,其特征在于,包括:
存储单元,用于存储主用BootRom和至少一个备用BootRom;
选择启动单元,用于选择所述主用BootRom启动系统;当所述主用BootRom出现故障时,选择所述备用BootRom启动系统。
7、如权利要求6所述的BootRom备用装置,其特征在于,所述选择启动单元还用于:
控制所述存储单元的地址线,选择所述备用BootRom的空间地址用于启动系统。
8、如权利要求6所述的BootRom备份装置,其特征在于,还包括:
判断单元,用于查询上电标志位,如果所述上电标志位在一定时间内一直为无效,则判断所述主用BootRom出现故障。
9、如权利要求6所述的BootRom备份装置,其特征在于,还包括:
访问控制单元,用于通过控制所述存储单元的访问信号,来控制访问所述主用BootRom或所述备用BootRom。
10、如权利要求9所述的BootRom备份装置,其特征在于,所述访问控制单元还用于:
当使用所述主用BootRom或备用BootRom时,设置所述存储单元的写信号线为无效,使得不能改写所述主用BootRom或备用BootRom;
或者,
使用所述主用BootRom或备用BootRom时,设置所述存储单元的读信号线为无效,使得不能改写所述主用BootRom或备用BootRom。
CN200910106363A 2009-03-30 2009-03-30 一种BootRom备份方法及装置 Withdrawn CN101526910A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910106363A CN101526910A (zh) 2009-03-30 2009-03-30 一种BootRom备份方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910106363A CN101526910A (zh) 2009-03-30 2009-03-30 一种BootRom备份方法及装置

Publications (1)

Publication Number Publication Date
CN101526910A true CN101526910A (zh) 2009-09-09

Family

ID=41094781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910106363A Withdrawn CN101526910A (zh) 2009-03-30 2009-03-30 一种BootRom备份方法及装置

Country Status (1)

Country Link
CN (1) CN101526910A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129401A (zh) * 2011-03-15 2011-07-20 合肥华云通信技术有限公司 一种BootROM备份方法与装置
CN102541682A (zh) * 2010-12-31 2012-07-04 上海讯垒网络科技有限公司 嵌入式系统中程序异常快速自行恢复方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541682A (zh) * 2010-12-31 2012-07-04 上海讯垒网络科技有限公司 嵌入式系统中程序异常快速自行恢复方法
CN102129401A (zh) * 2011-03-15 2011-07-20 合肥华云通信技术有限公司 一种BootROM备份方法与装置

Similar Documents

Publication Publication Date Title
CN110795027B (zh) 固态存储设备及包括该固态存储设备的电子系统
TW393608B (en) A flash memory system providing both BIOS and user storage capability, an integrated circuit package, and a memory system for computer
US6237103B1 (en) Power sequencing in a data processing system
CN101918928B (zh) 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法
US20060212694A1 (en) Method of updating firmware in computer server systems
CN102906710B (zh) 一种BootRom备份方法和装置
CN106227683B (zh) 电子设备及信息处理方法
JPH06290106A (ja) 作動可能/使用中マスク・レジスタと作動可能/使用中モード・レジスタを有するフラッシュ・メモリカード
US10691195B2 (en) Selective coupling of memory to voltage rails based on operating mode of processor
CN102135891A (zh) 可实现引导启动的系统及引导启动控制装置和方法
CN101872306B (zh) 一种实现软件更新和软件备份的嵌入式系统及其实现方法
CN111399752B (zh) 不同类型存储单元的控制装置及方法
JP5158187B2 (ja) ストレージ装置、ストレージ制御装置およびストレージ制御方法
CN110941395A (zh) 动态随机存取存储器、内存管理方法、系统及存储介质
CN101477838B (zh) 一种与非快闪记忆体状态检测装置、系统及电子设备
CN113127402A (zh) 一种spi访问控制方法、系统、计算设备及存储介质
CN111309646A (zh) 存储装置及其数据写入、读取、备份和恢复方法
CN101526910A (zh) 一种BootRom备份方法及装置
WO2005086007A1 (en) Data copy device
JP2004021867A (ja) 情報処理システム
EP1461711B1 (en) Method and apparatus for modifying the contents of a revision identification register
CN105404591A (zh) 处理器系统及其存储器控制方法
CN101189577B (zh) 通过自动改变索引来访问配置寄存器的方法和装置
CN100383757C (zh) 磁盘数据备份系统及其方法
CN112416650A (zh) 存储器控制器的操作方法、存储器控制器以及存储设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C04 Withdrawal of patent application after publication (patent law 2001)
WW01 Invention patent application withdrawn after publication