CN107885626A - 片上系统可编程器件的系统启动自检测的装置及方法 - Google Patents

片上系统可编程器件的系统启动自检测的装置及方法 Download PDF

Info

Publication number
CN107885626A
CN107885626A CN201711072414.5A CN201711072414A CN107885626A CN 107885626 A CN107885626 A CN 107885626A CN 201711072414 A CN201711072414 A CN 201711072414A CN 107885626 A CN107885626 A CN 107885626A
Authority
CN
China
Prior art keywords
hps
chip system
gpio
pld
autonomous test
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
Application number
CN201711072414.5A
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711072414.5A priority Critical patent/CN107885626A/zh
Publication of CN107885626A publication Critical patent/CN107885626A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]

Abstract

本发明提供一种基于片上系统可编程器件的系统启动自检测的装置及方法,装置,包括硬核处理器系统和片上系统可编程逻辑器件,可编程逻辑器件发送控制信号对硬核处理器系统进行复位操作,该方案在不需要人为参与的情况下,可以很好的解决问题复现的概率低、无规律,并且定位问题难度较大,周期较长的问题。

Description

片上系统可编程器件的系统启动自检测的装置及方法
技术领域
本发明涉及计算机服务器技术领域,具体涉及一种基于片上系统可编程器件的系统启动自检测的装置及方法。
背景技术
众所周知,服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上,很多网络服务都在服务器上运行,因此服务器性能的好坏决定了整个应用系统的性能。
服务器中的BMC(Baseboard Management Controller,基板管理控制器)部分担负着监测和控制服务器的功能,其作用在服务器中显得格外重要,在BMC国产化的过程中,使用SoC(System on chip,片上系统)FPGA替代原有BMC芯片,实现BMC功能中的各个接口功能,成为一种可行的解决方案。SoC FPGA是一种集成了ARM MPU、内核和各种设备的可编程逻辑系统,具有较高的集成性和较低的成本,并且使得产品开发周期大大缩短。但是在开发过程中,由于涉及到硬件板卡开发、软件内核嵌入式开发和逻辑开发,其稳定性相当重要。SoC系统无法正常启动的问题,就是不稳定的表现之一。此时逻辑部分可以运行,但内核和应用程序则处于卡死状态,无法正常运行,系统和应用程序无法正常工作。这种问题发生的概率很低,而且无法快速定位是硬件问题、软件问题还是逻辑问题,但一旦发生,将会产生不可预估的后果。并且定位问题的周期不确定,会严重影响产品开发进程。
目前针对SoC FPGA实现BMC功能的方案实施过程中出现的SoC系统低概率启动不起来的问题,只能在问题出现时,进行人工硬件复位的方式解决。而且由于出现的概率较低,不易复现问题。无法预知问题出现的时间和概率,人工进行复位的方法在正式工作是会带来很大的问题,如果复位不及时,BMC会无法正常工作。
故,针对上述现有存在的问题,实有必要进行开发研究,以提供一种方案,能够解决目前存在的问题复现的概率低、无规律,并且定位问题难度较大,周期较长的问题。
发明内容
为解决上述技术问题,本发明提供是一种基于片上系统可编程器件的系统启动自检测的方案,具体如下:
第一方面,本发明提供一种基于片上系统可编程器件的系统启动自检测的装置,包括硬核处理器系统和片上系统可编程逻辑器件,硬核处理器系统包括ARMMPU,可编程逻辑器件与硬核处理器系统可进行通信,硬核处理器系统到可编程逻辑器件有专门的重置接口,通过该接口,可编程逻辑器件发送控制信号对硬核处理器系统进行复位操作。
进一步的,可编程逻辑器件为FPGA或CPLD。
进一步的,HPS包括ARM MPU和GPIO控制器,可编程逻辑器件包括计数器和启动检测模块。
进一步的,GPIO控制模块由ARM MPU控制,向可编程逻辑器件的启动检测模块反馈GPIO信号,该信号默认为高电平,计数器模块使用外部提供的时钟,为启动检测模块提供时间计数,当片上系统上电后,会加载可编程逻辑程序,可编程逻辑程序加载到可编程逻辑器件内部,在片上系统上电加载完可编程逻辑之后,计数器开始工作;启动检测模块分别接收计数器模块给过来的时间计数和HPS发送的GPIO信号,在规定的时间内判断HPS发送的GPIO信号是否为高,如果为高,则通过控制信号将HPS进行复位,系统重新启动,若为低,则不作动作。
进一步的,在HPS复位后,系统重新启动,计数器也将被复位,重新计数。
进一步的,ARM MPU采用CPU代替。
第二方面,本发明提供一种基于片上系统可编程器件的系统启动自检测的方法,包括:
SS1:片上系统上电后,加载FPGA逻辑程序;
SS2:当片上系统上电加载完FPGA逻辑之后,计数器开始工作;
SS3:HPS中的ARM MPU控制GPIO控制模块向FPGA中的启动检测模块反馈GPIO信号,GPIO信号默认为高电平,当片上系统正常启动后,GPIO信号被拉低;
SS4:启动检测模块分别接收计数器模块给过来的时间计数和HPS发送的GPIO信号,在规定的时间内判断HPS发送的GPIO信号是否为高,如果为高,则通过控制信号将HPS进行复位,系统重新启动,若为低,则不作动作。
进一步的,方法还包括:
SS5:在HPS复位后,系统重新启动,计数器也将被复位,重新计数。
通过本发明的方案,通过逻辑实现系统启动自检测的方案,该方案在不需要人为参与的情况下,可以很好的解决问题复现的概率低、无规律,并且定位问题难度较大,周期较长的问题。
附图说明
图1示出本发明基于片上系统可编程器件的系统启动自检测的装置结构框图。
图2示出图1所示装置的具体结构框图。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
基于片上系统可编程器件的系统启动自检测的装置,包括硬核处理器系统(HPS,Hard processor system)和片上系统可编程逻辑器件,硬核处理器系统包括ARM MPU,可编程逻辑器件与硬核处理器系统可进行通信,硬核处理器系统到可编程逻辑器件有专门的重置接口,通过该接口,可编程逻辑器件发送控制信号对硬核处理器系统进行复位操作。
根据本发明的一实施例,可编程逻辑器件为FPGA(Fiel-Programmable GateArray,即现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
图1示出本发明基于片上系统可编程器件的系统启动自检测的装置结构框图。
如图1所示,根据本发明实施例的片上系统可编程器件的系统启动自检测的装置,结构分为HPS部分和FPGA逻辑部分,HPS中包含ARMMPU,是Linux等操作系统运行的部分,其启动的步骤需要加载内核,并且加载完之后运行内核,而启动不起来的问题表现在内核无法启动或者内核启动不完全卡住。FPGA部分是可编程逻辑,与HPS侧可进行通信。HPS侧到FPGA侧有专门的reset接口,可通过FPGA侧的逻辑对HPS侧进行reset操作。
具体的,HPS包括ARM MPU和GPIO(General Purpose Input Output)控制器,可编程逻辑器件包括计数器、启动检测模块,其中GPIO控制模块由ARM MPU控制,向可编程逻辑器件的启动检测模块反馈GPIO信号,该信号默认为高电平,计数器模块使用外部提供的时钟,为启动检测模块提供时间计数,当片上系统上电后,会加载可编程逻辑程序,可编程逻辑程序加载到可编程逻辑器件内部,在片上系统上电加载完可编程逻辑之后,计数器开始工作;启动检测模块分别接收计数器模块给过来的时间计数和HPS发送的GPIO信号,在规定的时间内判断HPS发送的GPIO信号是否为高,如果为高,则通过控制信号将HPS进行复位,系统重新启动,若为低,则不作动作。
根据本发明的一实施例,在HPS复位后,系统重新启动,计数器也将被复位,重新计数。
根据本发明的一实施例,ARM MPU采用CPU代替。
图2示出图1所示装置的具体结构框图。
如图2所示,根据本发明实施例的片上系统可编程器件的系统启动自检测的装置,本发明在FPGA侧设计计数器逻辑,该计数器模块使用外部提供的时钟,当SoC FPGA上电后,会加载FPGA逻辑程序,逻辑程序加载到PFGA内部,并且HPS侧的cold_reset无效之后,计数器开始工作。该计数器的主要功能是为启动检测模块提供时间计数time_ls。
在FPGA侧设计启动检测模块,该模块分别接收计数器模块给过来的时间计数time)1s和HPS侧给过来的GPIO控制信号hps_gpio。该模块的主要功能是在规定的时间内判断HPS侧给过来的信号是否为高,如果为高,则通过hps_cold_reset信号将HPS进行复位,系统重新启动,若为低,则不作动作。
HPS侧的GPIO控制模块,该模块由ARM MPU控制,该模块的功能是送给FPGA侧的启动检测模块GPIO信号hps_gpio,该信号默认为高电平。
启动检测模块检测系统启动的逻辑为:当SoC系统上电加载完FPGA逻辑之后,计数器便开始工作;同时HPS侧的ARM MPU开始运行加载的系统内核,当系统内核运行完成之后,软件应用程序开始执行。此时软件应用程序会通过HPS侧的GPIO控制器将送给FPGA侧的GPIO信号拉低。同时,启动检测模块一边接收计数器送过来的时间计数,一边判断HPS侧送过来的GPIO信号,当在规定的时间内,GPIO信号被拉低,则该模块认为SoC系统启动正常,此时不做任何动作,当超过规定时间GPIO仍然为高,则该模块认为SoC系统启动失败,则通过hps_cold_reset信号将HPS侧的ARM MPU进行复位,从新启动,此时计数器也将被复位,重新计数。
此外本发明提供一种基于片上系统可编程器件的系统启动自检测的方法,包括:
SS1:片上系统上电后,加载FPGA逻辑程序;
SS2:当片上系统上电加载完FPGA逻辑之后,计数器开始工作;
SS3:HPS中的ARM MPU控制GPIO控制模块向FPGA中的启动检测模块反馈GPIO信号,GPIO信号默认为高电平,当片上系统正常启动后,GPIO信号被拉低;
SS4:启动检测模块分别接收计数器模块给过来的时间计数和HPS发送的GPIO信号,在规定的时间内判断HPS发送的GPIO信号是否为高,如果为高,则通过控制信号将HPS进行复位,系统重新启动,若为低,则不作动作。
根据本发明的一实施例,方法还包括:
SS5:在HPS复位后,系统重新启动,计数器也将被复位,重新计数。
通过本发明的方案,在使用SoC FPGA完成服务器BMC功能的实施过程中,很好的解决了SoC系统低概率启动失败的问题,大大缩短了产品开发周期,提高了产品的稳定性。
尽管在装置的上下文中已描述了一些方面,但明显的是这些方面也表示对应方法的描述,其中块或设备与方法步骤或方法步骤的特征相对应。类似地,在方法步骤的上下文中所描述的各方面也表示对应的块或项目或者对应装置的特征的描述。可以通过(或使用)如微处理器、可编程计算机、或电子电路之类的硬件装置来执行方法步骤中的一些或所有。可以通过此类装置来执行最重要的方法步骤中的某一个或多个。
所述实现可以采用硬件或采用软件或可以使用例如软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM、或闪存之类的具有被存储在其上的电子可读控制信号的数字存储介质来执行,所述电子可读控制信号与可编程计算机系统配合(或能够与其配合)以使得执行相应的方法。可以提供具有电子可读控制信号的数据载体,所述电子可读控制信号能够与可编程计算机系统配合以使得执行本文所描述的方法。
所述实现还可以采用具有程序代码的计算机程序产品的形式,当计算机程序产品在计算机上运行时,程序代码进行操作以执行该方法。可以在机器可读载体上存储程序代码。
以上所描述的仅是说明性,并且要理解的是,本文所描述的布置和细节的修改和变化对于本领域技术人员而言将是明显的。因此,意在仅由所附权利要求的范围而不是由通过以上描述和解释的方式所呈现的特定细节来限制。

Claims (8)

1.一种基于片上系统可编程器件的系统启动自检测的装置,其特征在于,包括硬核处理器系统和片上系统可编程逻辑器件,硬核处理器系统包括ARM MPU,可编程逻辑器件与硬核处理器系统可进行通信,硬核处理器系统到可编程逻辑器件有专门的重置接口,通过该接口,可编程逻辑器件发送控制信号对硬核处理器系统进行复位操作。
2.根据权利要求1所述的基于片上系统可编程器件的系统启动自检测的装置,其中可编程逻辑器件为FPGA或CPLD。
3.根据权利要求2所述的基于片上系统可编程器件的系统启动自检测的装置,其中HPS包括ARM MPU和GPIO控制器,可编程逻辑器件包括计数器和启动检测模块。
4.根据权利要求3所述的基于片上系统可编程器件的系统启动自检测的装置,其中GPIO控制模块由ARM MPU控制,向可编程逻辑器件的启动检测模块反馈GPIO信号,该信号默认为高电平,计数器模块使用外部提供的时钟,为启动检测模块提供时间计数,当片上系统上电后,会加载可编程逻辑程序,可编程逻辑程序加载到可编程逻辑器件内部,在片上系统上电加载完可编程逻辑之后,计数器开始工作;启动检测模块分别接收计数器模块给过来的时间计数和HPS发送的GPIO信号,在规定的时间内判断HPS发送的GPIO信号是否为高,如果为高,则通过控制信号将HPS进行复位,系统重新启动,若为低,则不作动作。
5.根据权利要求4所述的基于片上系统可编程器件的系统启动自检测的装置,其中在HPS复位后,系统重新启动,计数器也将被复位,重新计数。
6.根据权利要求5所述的基于片上系统可编程器件的系统启动自检测的装置,其中ARMMPU采用CPU代替。
7.一种基于片上系统可编程器件的系统启动自检测的方法,其特征在于,包括:
SS1:片上系统上电后,加载FPGA逻辑程序;
SS2:当片上系统上电加载完FPGA逻辑之后,计数器开始工作;
SS3:HPS中的ARM MPU控制GPIO控制模块向FPGA中的启动检测模块反馈GPIO信号,GPIO信号默认为高电平,当片上系统正常启动后,GPIO信号被拉低;
SS4:启动检测模块分别接收计数器模块给过来的时间计数和HPS发送的GPIO信号,在规定的时间内判断HPS发送的GPIO信号是否为高,如果为高,则通过控制信号将HPS进行复位,系统重新启动,若为低,则不作动作。
8.根据权利要求7所述的基于片上系统可编程器件的系统启动自检测的方法,其中方法还包括:
SS5:在HPS复位后,系统重新启动,计数器也将被复位,重新计数。
CN201711072414.5A 2017-11-03 2017-11-03 片上系统可编程器件的系统启动自检测的装置及方法 Pending CN107885626A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711072414.5A CN107885626A (zh) 2017-11-03 2017-11-03 片上系统可编程器件的系统启动自检测的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711072414.5A CN107885626A (zh) 2017-11-03 2017-11-03 片上系统可编程器件的系统启动自检测的装置及方法

Publications (1)

Publication Number Publication Date
CN107885626A true CN107885626A (zh) 2018-04-06

Family

ID=61778481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711072414.5A Pending CN107885626A (zh) 2017-11-03 2017-11-03 片上系统可编程器件的系统启动自检测的装置及方法

Country Status (1)

Country Link
CN (1) CN107885626A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109343136A (zh) * 2018-11-28 2019-02-15 北京航星机器制造有限公司 一种安检机
CN109783436A (zh) * 2019-01-16 2019-05-21 广东高云半导体科技股份有限公司 一种片上系统
CN112350888A (zh) * 2020-10-23 2021-02-09 英业达科技有限公司 启动状态检测系统及其方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514057A (zh) * 2012-06-26 2014-01-15 京信通信技术(广州)有限公司 一种linux系统自愈方法、装置及自愈系统
CN103631674A (zh) * 2012-08-24 2014-03-12 京信通信系统(中国)有限公司 嵌入cpu的fpga及其启动方法
CN104834535A (zh) * 2014-02-07 2015-08-12 昆达电脑科技(昆山)有限公司 Soc芯片系统及其开机方法
CN105068880A (zh) * 2015-08-17 2015-11-18 上海斐讯数据通信技术有限公司 一种基于看门狗的设备复位方法
CN106682535A (zh) * 2017-03-16 2017-05-17 周清睿 系统级芯片

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514057A (zh) * 2012-06-26 2014-01-15 京信通信技术(广州)有限公司 一种linux系统自愈方法、装置及自愈系统
CN103631674A (zh) * 2012-08-24 2014-03-12 京信通信系统(中国)有限公司 嵌入cpu的fpga及其启动方法
CN104834535A (zh) * 2014-02-07 2015-08-12 昆达电脑科技(昆山)有限公司 Soc芯片系统及其开机方法
CN105068880A (zh) * 2015-08-17 2015-11-18 上海斐讯数据通信技术有限公司 一种基于看门狗的设备复位方法
CN106682535A (zh) * 2017-03-16 2017-05-17 周清睿 系统级芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHENZHUFLY: "HPS典型的启动流程与BOOT ROM执行流程的应用笔记", 《HTTP://BBS.EEWORLD.COM.CN/THREAD-454675-1-1.HTML》 *
钧天: "扒一扒ZYNQ里面缩写及 Xilinx ZYNQ-7000概述", 《HTTPS://WWW.CNBLOGS.COM/DUJIANZW/P/4508751.HTML》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109343136A (zh) * 2018-11-28 2019-02-15 北京航星机器制造有限公司 一种安检机
CN109783436A (zh) * 2019-01-16 2019-05-21 广东高云半导体科技股份有限公司 一种片上系统
CN109783436B (zh) * 2019-01-16 2021-06-22 广东高云半导体科技股份有限公司 一种片上系统
CN112350888A (zh) * 2020-10-23 2021-02-09 英业达科技有限公司 启动状态检测系统及其方法
CN112350888B (zh) * 2020-10-23 2022-10-11 英业达科技有限公司 启动状态检测系统及其方法

Similar Documents

Publication Publication Date Title
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
CN106547574A (zh) 一种dsp程序和fpga程序的外部下载系统及方法
CN111488233A (zh) 一种处理PCIe设备掉带宽问题的方法及系统
CN102880527B (zh) 一种基板管理控制器的数据恢复方法
CN107885626A (zh) 片上系统可编程器件的系统启动自检测的装置及方法
CN110704228B (zh) 一种固态硬盘异常处理方法及系统
US11687395B2 (en) Detecting and recovering from fatal storage errors
CN104035536A (zh) 一种嵌入式系统监控及复位控制方法
CN109032901A (zh) 一种远程带外ssd的监控方法、装置及受控终端
TWI704448B (zh) 控制電源供應單元的方法
CN105912414A (zh) 一种服务器管理的方法及系统
US8495353B2 (en) Method and circuit for resetting register
CN103890713A (zh) 用于管理处理系统内的寄存器信息的装置及方法
CN100555260C (zh) 主控底层管理平面的集成装置及方法
CN103135728B (zh) 电源开机控制方法及其系统
CN110471800B (zh) 服务器及自动检修基板管理控制器的方法
CN114461142B (zh) 一种读写Flash数据的方法、系统、装置及介质
CN104678292A (zh) 一种复杂可编程逻辑器件cpld测试方法和装置
CN107179911A (zh) 一种重启管理引擎的方法和设备
CN113849355A (zh) I2c速率自适应调整方法、系统、终端及存储介质
CN108388481B (zh) Olt设备的智能看门狗电路系统
CN111103960A (zh) 一种Nvme SSD及其复位方法和系统
CN115729573A (zh) 固件升级方法、装置、芯片及计算机存储介质
CN116737430A (zh) 一种bmc控制方法、装置、电子设备及存储介质
CN116610430A (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

Application publication date: 20180406

RJ01 Rejection of invention patent application after publication