CN109271178A - 一种基于Whitley平台实现CPLD升级的方法和系统 - Google Patents
一种基于Whitley平台实现CPLD升级的方法和系统 Download PDFInfo
- Publication number
- CN109271178A CN109271178A CN201811028544.3A CN201811028544A CN109271178A CN 109271178 A CN109271178 A CN 109271178A CN 201811028544 A CN201811028544 A CN 201811028544A CN 109271178 A CN109271178 A CN 109271178A
- Authority
- CN
- China
- Prior art keywords
- cpld
- pin
- bmc
- signal
- hitless
- 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.)
- Pending
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/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于Whitley平台实现CPLD升级的方法和系统,该方法包括:通过后台模式将CPLD代码烧录至CPLD的闪存中;通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态;将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中;通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态。该系统包括:烧录模块、第一锁定模块、加载模块和释放模块四个部分。通过本申请中的方法和系统,能够避免CPLD管脚锁定的失控状态,从而避免CPLD升级过程中可能造成的性能不稳定状态,能够大大提高CPLD升级的稳定性和可靠性,真正实现无缝烧录。
Description
技术领域
本申请涉及服务器通信技术领域,特别是涉及一种基于Whitley平台实现CPLD升级的方法和系统。
背景技术
随着用户对服务器需求的增加,定制化的客户需求越来越多。这些定制化的客户需求中,不免会有大批量出货后再更改需求的情形。而有一部分用户需求的变更,需要修改服务器主板上的CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)代码才能实现,也就是需要进行CPLD升级。
最早在Purley平台的服务器中,CPLD代码升级选用的是I2C模式。I2C模式可以参见图1,即:使用BMC(Baseboard Management Controller,基板管理控制器)通过I2C总线直接对CPLD进行升级。具体地,由于Purley平台的服务器主板中CPLD自带I2C硬核,CPLD本身只需要将I2C通路打开,直接由BMC向闪存Flash写入数据即可。
上述方案虽然简单易行,但是CPLD升级过程中,由于CPLD的管脚恢复默认状态,VR(Voltage Regulation,电源调节器)芯片的使能信号消失,导致VR停止工作,从而使服务器发生掉电而关机。而且,升级完毕后服务器无法自动启动,需要人为触发开机信号,服务器才能正常开机。因此,目前常用的CPLD升级方法为:通过修改CPLD代码以及修改通过BMC升级CPLD的流程,实现CPLD的升级。目前的升级方法为基于Purly平台的改进的升级方法,如图2所示。具体地,首先修改CPLD代码,增加管脚锁定功能,通过CPLD控制输入信号,从而实现管脚的锁定。然后BMC通过I2C对CPLD进行代码升级:将CPLD的升级程序加载到CPLD的闪存中,BMC通过I2C控制CPLD进行管脚锁定,CPLD将闪存中的代码加载到静态随机存储器SRAM中,运行代码且管脚处于锁定状态,等代码运行完毕,BMC通过I2C控制CPLD解除管脚锁定。
然而,目前的CPLD升级方法中,当CPLD不处于加载过程中时,BMC通过I2C,能够及时而准确地触发CPLD进行管脚锁定或者解除管脚锁定;当CPLD处于加载过程中时,由于CPLD正在进行加载其性能不稳定,BMC通过I2C对CPLD进行触发时,有可能出现CPLD无法及时进行管脚锁定或解除管脚锁定的情况,从而导致CPLD的管脚在升级过程中恢复默认状态,VR芯片使能信号消失,进而导致服务器发生掉电而关机。因此,目前的CPLD升级方法中,由于对CPLD管脚的锁定与否仍然存在失控的情况,虽然这段失控的时间很短,仍然存在导致服务器关机的可能性,因此,目前CPLD升级的稳定性和可靠性不够高。而且,由于Whitley平台服务器的CPLD中并没有I2C硬核,目前的CPLD升级方法不能适用于Whitley平台的服务器中。
发明内容
本申请提供了一种基于Whitley平台实现CPLD升级的方法和系统,以解决现有技术中CPLD升级的稳定性不够高的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种基于Whitley平台实现CPLD升级的方法,所述方法包括:
通过后台模式将CPLD代码烧录至CPLD的闪存中;
通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态;
将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中;
通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态,所述Hitless_EN信号为CPLD的GPIO管脚信号。
可选地,通过后台模式将CPLD代码烧录至CPLD的闪存中之前,所述方法还包括:
CPLD正常运行时,根据所获取的开关控制指令,CPLD进行管脚锁定。
可选地,所述通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态,包括:
通过CPLD的JTAG接口,BMC采用边界扫描方式获取CPLD当前的管脚状态;
BMC通过CPLD的JTAG接口锁定CPLD当前的管脚状态。
可选地,所述通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态,包括:
BMC发送高电平的Hitless_EN信号至CPLD;
CPLD根据高电平Hitless_EN信号的触发,进行管脚锁定;
BMC发送低电平的Hitless_EN信号至CPLD;
CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚的释放。
可选地,所述CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚的释放,包括:
当Hitless_EN信号为低电平时,获取CPLD当前的运行状态;
如果CPLD当前处于管脚释放状态,CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚锁定;
如果CPLD当前处于管脚锁定状态,CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚释放。
可选地,当CPLD正常运行时,CPLD的管脚锁定规则为:
Hitless_EN信号为高电平时,CPLD进行管脚锁定;
Hitless_EN信号为低电平时,若CPLD处于管脚释放状态,CPLD进行管脚锁定;
Hitless_EN信号为低电平时,若CPLD处于管脚锁定状态,CPLD进行管脚释放。
一种基于Whitley平台实现CPLD升级的系统,所述系统包括:
烧录模块,用于通过后台模式将CPLD代码烧录至CPLD的闪存中;
第一锁定模块,用于通过CPLD的JTAG接口,将CPLD的管脚控制在锁定状态;
加载模块,用于将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中;
释放模块,用于通过控制Hitless_EN信号的电平,释放CPLD的管脚状态,所述Hitless_EN信号为CPLD的GPIO管脚信号。
可选地,所述系统中还包括:
第二锁定模块,用于通过后台模式将CPLD代码烧录至CPLD的闪存中之前,CPLD正常运行时,根据所获取的开关控制指令,控制CPLD进行管脚锁定。
可选地,所述释放模块包括:
第一触发单元,用于发送高电平的Hitless_EN信号至CPLD;
第一响应单元,用于根据高电平Hitless_EN信号的触发,控制CPLD进行管脚锁定;
第二触发单元,用于发送低电平的Hitless_EN信号至CPLD;
第二响应单元,用于根据低电平Hitless_EN信号的触发和BMC通过JTAG接口下发的开关控制指令,控制CPLD进行管脚的释放。
可选地,所述第二响应单元包括:
运行状态子单元,用于当Hitless_EN信号为低电平时,获取CPLD当前的运行状态;
响应子单元,用于当CPLD处于管脚释放状态时,控制CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚锁定;
所述响应子单元,还用于当CPLD处于管脚锁定状态时,控制CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚释放。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供一种基于Whitley平台实现CPLD升级的方法,该方法为JTAG升级方式,首先通过后台模式将升级所用的CPLD代码烧录至CPLD的闪存中,采用后台烧录模式不影响CPLD的正常运行;其次,通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态,相当于BMC通过JTAG接口接管CPLD的管脚控制权,并使CPLD的管脚一致处于锁定状态;然后,将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中,完成CPLD的升级;最后,通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态,也就是CPLD升级完成后,将管脚恢复至升级前的状态,从而避免CPLD在升级过程中管脚恢复默认状态而导致VR芯片的使能信号消失,进而确保VR继续工作,实现Whitley平台服务器不发生掉电现象。
由于本申请中BMC通过JTAG接口将CPLD的管脚控制在锁定状态,即:CPLD的管脚控制权由CPLD以外的第三方进行控制,能够避免CPLD管脚锁定的失控状态,从而避免CPLD升级过程中可能造成的性能不稳定状态,能够大大提高CPLD升级的稳定性和可靠性。另外,本申请在通过后台模式将CPLD代码烧录至CPLD的闪存中之前还包括:CPLD正常运行时,根据所获取的开关控制指令,CPLD进行管脚锁定,能够将CPLD管脚的状态进行固定,从而确保BMC将CPLD的管脚控制在锁定状态时CPLD处于稳定状态,有利于进一步提高CPLD升级的稳定性和可靠性。
本申请还提供一种基于Whitley平台实现CPLD升级的系统,该系统主要包括:烧录模块、第一锁定模块、加载模块和释放模块四个部分。其中第一锁定模块用于通过CPLD的JTAG接口将CPLD的管脚控制在锁定状态,第一锁定模块的设置,能够使BMC通过JTAG接管COLD管脚的控制权并使其在CPLD升级过程中一直处于锁定状态,能够避免CPLD管脚锁定的失控状态,从而避免CPLD升级过程中可能造成的性能不稳定状态,能够大大提高CPLD升级的稳定性和可靠性,真正实现无缝烧录。释放模块用于通过控制Hitless_EN信号的电平,释放CPLD的管脚状态,释放模块的设置,能够确保在CPLD升级完毕并允许稳定后,由BMC控制CPLD解除管脚锁定状态,使CPLD能够恢复正常运行状态,正常进行逻辑操作和重新控制管脚状态。因此,本申请中实现CPLD升级的系统,能够大大提高CPLD升级的稳定性和可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中基于Purly平台的I2C模式的CPLD升级原理示意图;
图2为现有技术中基于Purly平台改进的I2C模式的CPLD升级原理示意图;
图3为本申请实施例所提供的一种基于Whitley平台实现CPLD升级的方法的流程示意图;
图4为本申请实施例中基于Whitley平台的CPLD升级原理示意图;
图5a为本申请实施例中管脚双向扩展示意图;
图5b为本申请实施例中管脚锁定状态示意图;
图5c为本申请实施例中管脚锁定解除状态示意图;
图6为本申请实施例所提供的一种基于Whitley平台实现CPLD升级的系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
新一代服务器的设计方案多使用Whitley平台,Whitley平台中服务器主板的时序仍然由CPLD来控制。但是Whitley平台的CPLD厂家,由Purly平台使用的Lattice CPLD换为Altera CPLD,Altera CPLD内部并不存在I2C硬核,因此基于Purly平台的CPLD无缝烧录方案不能移植到Whitley平台上。本申请通过研究Altera CPLD,修改CPLD功能,引入管脚锁定功能及JTAG信号解析功能,并修改BMC升级CPLD的方式,使CPLD升级过程中,管脚能够保持升级前的状态不变,VR芯片继续工作,从而解决现有技术中CPLD升级的稳定性不够高的问题。
为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
实施例一
参见图3,图3为本申请实施例所提供的一种基于Whitley平台实现CPLD升级的方法的流程示意图。由图3可知,本实施例中的方法主要包括如下步骤:
S1:通过后台模式将CPLD代码烧录至CPLD的闪存中。
具体地,BMC通过后台模式,利用CPLD的JTAG接口对CPLD内置的闪存Flash进行代码烧录,将需要升级的CPLD代码烧录至CPLD的Flash中。进行烧录时CPLD处于正常运行状态,采用后台烧录模式,不影响CPLD的正常运行,有利于提高CPLD的升级效率。
S2:通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态。
BMC将CPLD代码烧录至Flash中后,通过JTAG接口将CPLD的管脚控制在锁定状态,即:BMC通过JTAG接口接管CPLD的管脚控制权,并使CPLD的管脚在CPLD升级过程中一直处于锁定状态,从BMC接管CPLD的管脚控制权开始,CPLD进入管脚锁定状态。
具体地,步骤S2包括如下过程:
S21:通过CPLD的JTAG接口,BMC采用边界扫描方式获取CPLD当前的管脚状态;
S22:BMC通过CPLD的JTAG接口锁定CPLD当前的管脚状态。
以上步骤S21-S22,可以基于Boundary scan的方式,即BMC采用边界扫描的方式,通过BMC下发clamp指令来实现。具体地,BMC下发clamp指令给CPLD的JTAG接口,JTAG接口根据clamp指令采样当前CPLD的IO管脚状态,且JTAG接口根据所获取的外部测试指令,锁定当前CPLD的IO管脚状态。
本实施例中BMC通过JTAG接口接管CPLD的管脚控制权,能够确保CPLD的管脚在升级过程中处于锁定状态,即:使CPLD的管脚保持在升级前的状态不变,能够避免对CPLD管脚的锁定存在失控的情况,从而避免VR芯片的使能信号消失,进而有效避免CPLD升级过程中服务器关机的问题,因此,本申请能够大大提高CPLD升级的稳定性和可靠性。
通过步骤S2,BMC将CPLD的管脚控制在锁定状态后,在管脚锁定状态下执行步骤S3:将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中。
将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中,也即对静态随机存储器中的CPLD代码进行升级。
对CPLD代码升级完毕后,CPLD管脚处于锁定状态,但是CPLD能够正常运行,即:CPLD内部逻辑处于正常运行状态,只是管脚被锁定。
对CPLD代码升级完毕后,执行步骤S4:通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态。其中,Hitless_EN是CPLD的一个GPIO管脚,Hitless_EN信号为CPLD的GPIO管脚信号,且Hitless_EN管脚始终接地。步骤S4中Hitless_EN信号的电平由Boundary Scan强制拉高。
由以上步骤S4可知,BMC将CPLD的管脚控制权交还至CPLD,CPLD恢复管脚控制权后,先进行管脚锁定,当获取到BMC下发的开关控制指令后,CPLD再进行管脚释放。通过执行步骤S4,BMC将CPLD的管脚控制权交还至CPLD,CPLD根据所获取的BMC通过JTAG下发的开关控制指令,进行管脚的释放,管脚进恢复正常运行。
本实施例中基于Whitley平台的CPLD升级原理可以参见图4。由图4可知,本实施例的CPLD中并没有I2C硬核,而是设置于CPLD芯片中的JTAG接口,BMC通过与CPLD的JTAG接口进行通信,实现对CPLD代码的升级。
本实施例中当CPLD正常运行时,CPLD的管脚锁定规则为:Hitless_EN信号为高电平时,CPLD进行管脚锁定;Hitless_EN信号为低电平时,若CPLD处于管脚释放状态,CPLD进行管脚锁定;Hitless_EN信号为低电平时,若CPLD处于管脚锁定状态,CPLD进行管脚释放。
具体地,步骤S4包括如下过程:
S41:BMC发送高电平的Hitless_EN信号至CPLD。
S42:CPLD根据高电平Hitless_EN信号的触发,进行管脚锁定。
BMC接管CPLD管脚控制权后使其一致处于锁定状态,并控制CPLD进行代码重加载,使CPLD运行新代码,此时CPLD加载完毕,CPLD内部的寄存器全部清空,CPLD处于正常逻辑状态,但其管脚仍然由BMC控制处于锁定状态,步骤S3之后执行步骤S41,BMC通过JTAG接口控制CPLD的GPIO管脚,在步骤S41中BMC首先控制GPIO的管脚Hitless_EN信号为高电平。由于CPLD已经升级完毕进入运行状态,根据CPLD在运行状态的管脚锁定规则,CPLD检测到Hitless_EN信号为高电平后,执行步骤S42:CPLD通过代码锁定进入管脚锁定状态。
Hitless_EN信号能够触发CPLD的管脚锁定功能,BMC向CPLD发出Hitless_EN信号之后,CPLD进入管脚锁定状态,同时BMC将管脚控制权交给CPLD,此时,CPLD中仍然是管脚锁定,但是控制权已经由Boundary Scan交接给CPLD了。
BMC将管脚控制权移交给CPLD之后,虽然此时CPLD处于正常运行状态,但其并未达到稳定的运行状态,也就是管脚状态并未达到与锁定时的运行状态一致,如果此时直接进行管脚释放,仍然可能导致服务器关机,因此,本实施例中BMC首先向CPLD发送高电平的Hitless_EN信号,使CPLD的管脚处于锁定状态,能够进一步提高CPLD升级的稳定性和可靠性。
S43:BMC发送低电平的Hitless_EN信号至CPLD。
由于CPLD中Hitless_EN信号的优先级比开关控制指令的优先级高,且CPLD的管脚控制权已由BMC转移至CPLD,为清除Hitless_EN信号的标志位,使得BMC下发开关控制指令时能够触发CPLD管脚释放,需要先执行步骤S43,通过BMC将Hitless_EN信号设置为低电平。
S44:CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚的释放。
当CPLD运行稳定后,执行步骤S44,根据所获取的BMC通过JTAG接口下发的开关控制指令,进行管脚的释放。本实施例中BMC通过JTAG接口下发的开关控制指令仅作为一个低电平的开关信号,根据CPLD的管脚锁定规则:Hitless_EN信号为低电平时,若CPLD处于管脚释放状态,CPLD进行管脚锁定;Hitless_EN信号为低电平时,若CPLD处于管脚锁定状态,CPLD进行管脚释放。由于此时BMC将管脚控制权转交给CPLD时CPLD处于管脚锁定状态,且CPLD已经升级完毕,因此步骤S44中,CPLD根据低电平Hitless_EN信号的触发和BMC通过JTAG接口下发的开关控制指令,进行管脚的释放。CPLD进行管脚释放后,进入正常逻辑,恢复管脚锁定前的运行状态。
进一步地,本实施例中步骤S1之前还包括步骤S0:CPLD正常运行时,根据所获取的开关控制指令,CPLD进行管脚锁定。
CPLD升级前处于正常运行状态,CPLD能够根据管脚锁定规则进行管脚锁定和释放。进行通过步骤S0,能够在CPLD升级前固定CPLD的管脚状态,且将CPLD的管脚状态固定在稳定的运行状态,避免步骤S21中BMC采用边界扫描方式获取CPLD当前管脚状态时采集到亚稳态的管脚状态,因此,通过步骤S0,有利于进一步提高CPLD升级的稳定性和可靠性。
综上所述,本实施例在具体实施过程中,主要包括CPLD代码修改和BMC代码修改两部分。其中,CPLD代码修改主要包括:
1)对CPLD中需要锁定的输出管脚增加双向扩展功能,将输出管脚变为输入/输出双向管脚,CPLD管脚双向扩展的示意图如图5a所示。
2)增加CPLD的JTAG信号解析功能,根据CPLD的管脚锁定规则,实现管脚锁定和释放。当Hitless_EN信号为高电平时,CPLD进行管脚锁定;Hitless_EN信号为低电平时,CPLD解析BMC通过JTAG下发的开关控制指令,若CPLD处于管脚释放状态,CPLD进行管脚锁定,本实施例中管脚锁定状态示意图可以参见图5b,由图5b可知,当CPLD进行管脚锁定时,管脚的输入输出信号回环;Hitless_EN信号为低电平时,CPLD解析BMC通过JTAG下发的开关控制指令,若CPLD处于管脚锁定状态,CPLD进行管脚释放,本实施例中管脚锁定解除状态示意图可以参见图5c,由图5c可知,当CPLD进行管脚释放时,管脚的输入信号切换为正常逻辑。
BMC代码的修改主要包括:
1)首先,在正常逻辑下,BMC通过JTAG对CPLD下发开关控制指令,令CPLD进行管脚锁定;
2)其次,BMC通过JTAG对CPLD内置Flash进行代码烧录,使用后台烧录模式,不影响CPLD正常运行,之后BMC通过JTAG接管CPLD管脚控制权,使其一直处于锁定状态,并控制CPLD进行代码重加载,使CPLD运行新代码;
3)再次,BMC通过JTAG控制CPLD的GPIO管脚Hitless_EN信号变高,由于CPLD已经运行,因此CPLD检测到Hitless_EN变高之后,CPLD代码会进入管脚锁定状态;
4)然后,BMC将Hitless_EN信号设置为低电平,同时将管脚的控制权交还给CPLD,此时由CPLD控制管脚进行锁定;
5)最后,BMC通过JTAG对CPLD下发开关控制指令,CPLD进行管脚释放,之后进入正常逻辑操作。
通过CPLD代码的修改,增加CPLD管脚锁定功能和JTAG信号解析功能;通过BMC代码的修改,采用JTAG升级方式代替I2C升级模式,并通过JTAT与CPLD进行通信,配合CPLD实现管脚锁定。
实施例二
在图3-图5c所示实施例的基础之上参见图6,图6为本申请实施例所提供的一种基于Whitley平台实现CPLD升级的系统的结构示意图。由图6可知,本实施例中基于Whitley平台实现CPLD升级的系统主要包括:烧录模块、第一锁定模块、加载模块和释放模块四个部分。其中,烧录模块用于通过后台模式将CPLD代码烧录至CPLD的闪存中;第一锁定模块用于通过CPLD的JTAG接口,将CPLD的管脚控制在锁定状态;加载模块用于将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中;释放模块用于通过控制Hitless_EN信号的电平,释放CPLD的管脚状态,Hitless_EN信号为CPLD的GPIO管脚信号。
第一锁定模块的设置,使BMC通过JTAG接口接管COLD管脚的控制权,并使CPLD的管脚在升级过程中一直处于锁定状态,因此能够避免CPLD管脚锁定的失控状态,从而避免CPLD升级过程中可能造成的性能不稳定状态,能够大大提高CPLD升级的稳定性和可靠性,真正实现无缝烧录。
进一步地,该系统中还包括第二锁定模块,用于通过后台模式将CPLD代码烧录至CPLD的闪存中之前,CPLD正常运行时,根据所获取的开关控制指令,控制CPLD进行管脚锁定。第二锁定模块的设置,能够确保第一锁定模块所固定的CPLD管脚状态为:CPLD正常运行时的稳定状态,因此,有利于进一步提高CPLD升级的稳定性和可靠性。
本实施例中释放模块包括:第一触发单元、第一响应单元、第二触发单元以及第二响应单元。其中,第一触发单元用于发送高电平的Hitless_EN信号至CPLD;第一响应单元用于根据高电平Hitless_EN信号的触发,控制CPLD进行管脚锁定;第二触发单元用于发送低电平的Hitless_EN信号至CPLD;第二响应单元用于根据低电平Hitless_EN信号的触发和BMC通过JTAG接口下发的开关控制指令,控制CPLD进行管脚的释放。释放模块的设置,能够在CPLD升级完毕后,使BMC将管脚控制权转交给CPLD,且使CPLD保持管脚锁定状态至正常运行到稳定状态,当升级完毕且CPLD运行稳定后,CPLD根据所获取的开关控制指令,进行管脚释放。
进一步地,第二响应单元又包括运行状态子单元和响应状态子单元。其中,运行状态子单元用于当Hitless_EN信号为低电平时,获取CPLD当前的运行状态。响应子单元用于当CPLD处于管脚释放状态时,控制CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚锁定;响应子单元还用于当CPLD处于管脚锁定状态时,控制CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚释放。
该实施例基于Whitley平台实现CPLD升级的系统的工作原理和工作方法,在图3-图5c所示的实施例中已经详细阐述,两者可以互相参照,在此不再赘述。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于Whitley平台实现CPLD升级的方法,其特征在于,所述方法包括:
通过后台模式将CPLD代码烧录至CPLD的闪存中;
通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态;
将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中;
通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态,所述Hitless_EN信号为CPLD的GPIO管脚信号。
2.根据权利要求1所述的一种基于Whitley平台实现CPLD升级的方法,其特征在于,通过后台模式将CPLD代码烧录至CPLD的闪存中之前,所述方法还包括:
CPLD正常运行时,根据所获取的开关控制指令,CPLD进行管脚锁定。
3.根据权利要求1所述的一种基于Whitley平台实现CPLD升级的方法,其特征在于,所述通过CPLD的JTAG接口,BMC将CPLD的管脚控制在锁定状态,包括:
通过CPLD的JTAG接口,BMC采用边界扫描方式获取CPLD当前的管脚状态;
BMC通过CPLD的JTAG接口锁定CPLD当前的管脚状态。
4.根据权利要求1所述的一种基于Whitley平台实现CPLD升级的方法,其特征在于,所述通过控制Hitless_EN信号的电平,BMC释放CPLD的管脚状态,包括:
BMC发送高电平的Hitless_EN信号至CPLD;
CPLD根据高电平Hitless_EN信号的触发,进行管脚锁定;
BMC发送低电平的Hitless_EN信号至CPLD;
CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚的释放。
5.根据权利要求4所述的一种基于Whitley平台实现CPLD升级的方法,其特征在于,所述CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚的释放,包括:
当Hitless_EN信号为低电平时,获取CPLD当前的运行状态;
如果CPLD当前处于管脚释放状态,CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚锁定;
如果CPLD当前处于管脚锁定状态,CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚释放。
6.根据权利要求1-5中任一所述的一种基于Whitley平台实现CPLD升级的方法,其特征在于,当CPLD正常运行时,CPLD的管脚锁定规则为:
Hitless_EN信号为高电平时,CPLD进行管脚锁定;
Hitless_EN信号为低电平时,若CPLD处于管脚释放状态,CPLD进行管脚锁定;
Hitless_EN信号为低电平时,若CPLD处于管脚锁定状态,CPLD进行管脚释放。
7.一种基于Whitley平台实现CPLD升级的系统,其特征在于,所述系统包括:
烧录模块,用于通过后台模式将CPLD代码烧录至CPLD的闪存中;
第一锁定模块,用于通过CPLD的JTAG接口,将CPLD的管脚控制在锁定状态;
加载模块,用于将CPLD闪存中的CPLD代码加载到CPLD的静态随机存储器中;
释放模块,用于通过控制Hitless_EN信号的电平,释放CPLD的管脚状态,所述Hitless_EN信号为CPLD的GPIO管脚信号。
8.根据权利要求7所述的一种基于Whitley平台实现CPLD升级的系统,其特征在于,所述系统中还包括:
第二锁定模块,用于通过后台模式将CPLD代码烧录至CPLD的闪存中之前,CPLD正常运行时,根据所获取的开关控制指令,控制CPLD进行管脚锁定。
9.根据权利要求7所述的一种基于Whitley平台实现CPLD升级的系统,其特征在于,所述释放模块包括:
第一触发单元,用于发送高电平的Hitless_EN信号至CPLD;
第一响应单元,用于根据高电平Hitless_EN信号的触发,控制CPLD进行管脚锁定;
第二触发单元,用于发送低电平的Hitless_EN信号至CPLD;
第二响应单元,用于根据低电平Hitless_EN信号的触发和BMC通过JTAG接口下发的开关控制指令,控制CPLD进行管脚的释放。
10.根据权利要求9所述的一种基于Whitley平台实现CPLD升级的系统,其特征在于,所述第二响应单元包括:
运行状态子单元,用于当Hitless_EN信号为低电平时,获取CPLD当前的运行状态;
响应子单元,用于当CPLD处于管脚释放状态时,控制CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚锁定;
所述响应子单元,还用于当CPLD处于管脚锁定状态时,控制CPLD根据BMC通过JTAG接口下发的开关控制指令,进行管脚释放。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811028544.3A CN109271178A (zh) | 2018-09-05 | 2018-09-05 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
PCT/CN2019/089281 WO2020048162A1 (zh) | 2018-09-05 | 2019-05-30 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811028544.3A CN109271178A (zh) | 2018-09-05 | 2018-09-05 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109271178A true CN109271178A (zh) | 2019-01-25 |
Family
ID=65188273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811028544.3A Pending CN109271178A (zh) | 2018-09-05 | 2018-09-05 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109271178A (zh) |
WO (1) | WO2020048162A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109694A (zh) * | 2019-04-28 | 2019-08-09 | 新华三技术有限公司 | 器件管脚控制方法和可编程逻辑器件 |
WO2020048162A1 (zh) * | 2018-09-05 | 2020-03-12 | 郑州云海信息技术有限公司 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
CN112306536A (zh) * | 2020-11-25 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种主板及其芯片以及芯片升级方法 |
CN112463502A (zh) * | 2020-12-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种可编程逻辑器件管脚状态检测方法、装置及系统 |
CN113542024A (zh) * | 2021-07-12 | 2021-10-22 | 南昌华勤电子科技有限公司 | 服务器和固件升级方法 |
CN111208891B (zh) * | 2020-01-10 | 2021-10-26 | 浪潮商用机器有限公司 | 一种cpld更新系统及方法 |
CN117170694A (zh) * | 2023-09-15 | 2023-12-05 | 合芯科技(苏州)有限公司 | 一种bmc数据烧录配置方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308281A (zh) * | 2011-07-21 | 2012-01-04 | 华为技术有限公司 | 对芯片进行动态升级的方法、系统及基板管理控制器 |
CN102436385A (zh) * | 2011-11-15 | 2012-05-02 | 电子科技大学 | 一种可编程逻辑器件配置文件在线更新装置 |
CN202217425U (zh) * | 2011-09-30 | 2012-05-09 | 北京化工大学 | 一种基于软件无线电的通用调制解调实验装置 |
CN105846409A (zh) * | 2015-01-29 | 2016-08-10 | 美国莱迪思半导体公司 | 用于可编程逻辑装置的热插拔操作 |
CN108170245A (zh) * | 2018-01-25 | 2018-06-15 | 郑州云海信息技术有限公司 | 服务器物理按键操作的控制系统、方法及服务器管理系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309693A (zh) * | 2012-03-14 | 2013-09-18 | 鸿富锦精密工业(深圳)有限公司 | 复杂可编程逻辑器件更新方法及系统 |
CN104991629B (zh) * | 2015-07-10 | 2017-11-24 | 英业达科技有限公司 | 电源失效侦测系统与其方法 |
CN106610850A (zh) * | 2015-10-22 | 2017-05-03 | 湖南国奥电力设备有限公司 | Cpld的升级处理方法 |
CN109271178A (zh) * | 2018-09-05 | 2019-01-25 | 郑州云海信息技术有限公司 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
-
2018
- 2018-09-05 CN CN201811028544.3A patent/CN109271178A/zh active Pending
-
2019
- 2019-05-30 WO PCT/CN2019/089281 patent/WO2020048162A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308281A (zh) * | 2011-07-21 | 2012-01-04 | 华为技术有限公司 | 对芯片进行动态升级的方法、系统及基板管理控制器 |
CN202217425U (zh) * | 2011-09-30 | 2012-05-09 | 北京化工大学 | 一种基于软件无线电的通用调制解调实验装置 |
CN102436385A (zh) * | 2011-11-15 | 2012-05-02 | 电子科技大学 | 一种可编程逻辑器件配置文件在线更新装置 |
CN105846409A (zh) * | 2015-01-29 | 2016-08-10 | 美国莱迪思半导体公司 | 用于可编程逻辑装置的热插拔操作 |
CN108170245A (zh) * | 2018-01-25 | 2018-06-15 | 郑州云海信息技术有限公司 | 服务器物理按键操作的控制系统、方法及服务器管理系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020048162A1 (zh) * | 2018-09-05 | 2020-03-12 | 郑州云海信息技术有限公司 | 一种基于Whitley平台实现CPLD升级的方法和系统 |
CN110109694A (zh) * | 2019-04-28 | 2019-08-09 | 新华三技术有限公司 | 器件管脚控制方法和可编程逻辑器件 |
CN110109694B (zh) * | 2019-04-28 | 2023-04-07 | 新华三技术有限公司 | 器件管脚控制方法和可编程逻辑器件 |
CN111208891B (zh) * | 2020-01-10 | 2021-10-26 | 浪潮商用机器有限公司 | 一种cpld更新系统及方法 |
CN112306536A (zh) * | 2020-11-25 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种主板及其芯片以及芯片升级方法 |
CN112306536B (zh) * | 2020-11-25 | 2023-09-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种主板及其芯片以及芯片升级方法 |
CN112463502A (zh) * | 2020-12-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种可编程逻辑器件管脚状态检测方法、装置及系统 |
CN113542024A (zh) * | 2021-07-12 | 2021-10-22 | 南昌华勤电子科技有限公司 | 服务器和固件升级方法 |
CN113542024B (zh) * | 2021-07-12 | 2022-07-22 | 南昌华勤电子科技有限公司 | 服务器和固件升级方法 |
CN117170694A (zh) * | 2023-09-15 | 2023-12-05 | 合芯科技(苏州)有限公司 | 一种bmc数据烧录配置方法、装置、设备及介质 |
CN117170694B (zh) * | 2023-09-15 | 2024-05-14 | 合芯科技(苏州)有限公司 | 一种bmc数据烧录配置方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020048162A1 (zh) | 2020-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271178A (zh) | 一种基于Whitley平台实现CPLD升级的方法和系统 | |
CN101853172B (zh) | 复杂可编程逻辑器件cpld动态升级装置及方法 | |
CN100518082C (zh) | 一种具有自恢复功能的远程在线升级方法 | |
CN101814035B (zh) | 允许快速平台重启的方法和系统 | |
CN104239365B (zh) | 一种获取数据库连接池中连接的方法和数据库连接池 | |
CN102053831B (zh) | 一种Linux操作系统的定制方法及系统 | |
CN106843936B (zh) | 一种自动化部署Web应用环境的方法 | |
CN109298868B (zh) | 测绘影像数据处理软件智能动态部署及卸载方法 | |
CN108279922A (zh) | 差分文件生成方法、基于该差分文件的升级方法及系统 | |
CN108170448A (zh) | 一种自动化高效进行软件更新版本发布的系统 | |
CN101916197A (zh) | 一种控制系统自启动程序的实现方法 | |
US11579977B2 (en) | Data storage device restoring method | |
CN101964725A (zh) | 业务不中断升级的方法和系统 | |
CN110647340A (zh) | 复杂可编程逻辑器件cpld的升级方法和cpld | |
CN111562932B (zh) | 一种高可靠嵌入式软件升级方法及系统 | |
US20120089571A1 (en) | Computer process management | |
CN103401731B (zh) | 手工测试与自动化测试环境切换方法及系统 | |
CN109614153A (zh) | 多核芯片及系统 | |
CN101384063A (zh) | 一种终端设备修复升级的方法与系统及其系统的制作方法 | |
CN103890713B (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
CN105930190B (zh) | 一种基于操作系统的程序自启动方法和装置 | |
CN109067562A (zh) | 基于智能指针的动态配置更新方法及系统、服务器及介质 | |
US11604635B2 (en) | Online program updating method | |
CN112732311B (zh) | 一种大型储能系统bms程序热更新方法、系统及介质 | |
CN106547606A (zh) | 堆栈自检方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190125 |