CN116302662A - 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法 - Google Patents

一种ARMv8架构下基于Linux系统实现硬件看门狗的方法 Download PDF

Info

Publication number
CN116302662A
CN116302662A CN202310574892.5A CN202310574892A CN116302662A CN 116302662 A CN116302662 A CN 116302662A CN 202310574892 A CN202310574892 A CN 202310574892A CN 116302662 A CN116302662 A CN 116302662A
Authority
CN
China
Prior art keywords
watchdog
power management
level
management chip
linux
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
CN202310574892.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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software 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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202310574892.5A priority Critical patent/CN116302662A/zh
Publication of CN116302662A publication Critical patent/CN116302662A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种ARMv8架构下基于Linux系统实现硬件看门狗的方法,包括以下步骤:S1、安装Linux系统,修改电源管理芯片代码和Linux内核代码,添加看门狗驱动;S2、将修改后的电源管理芯片代码和Linux内核代码部署在系统中;S3、对系统进行初始化,打开电源管理芯片看门狗,创建内核级线程,所述内核级线程每经预设时间后将电源管理芯片与Linux内核相连引脚的电平拉高;S4、电源管理芯片检测看门狗是否打开,若是,则进行S5,若否,则经预设时间后,重新检测;S6、电源管理芯片检测其与Linux内核相连引脚的电平,若为高电平,则设置为低电平,经预设时间后重新检测电平,若为低电平则向CPU发送复位信号。

Description

一种ARMv8架构下基于Linux系统实现硬件看门狗的方法
技术领域
本发明涉及一种基于虚拟硬件看门狗的芯片复位方法,尤其涉及一种ARMv8架构下基于Linux系统实现硬件看门狗的方法。
背景技术
随着芯片技术的发展,越来越多的设备开始使用国产的Cortex-A系列芯片,如国内常见的鲲鹏920、飞腾E2000芯片,这些芯片都属于ARMv8指令集。在ARMv8指令集内,没有NMI中断,无法中断CPU的通用中断处理流程。当CPU在通用中断执行流程出现问题时,或CPU在linux内核中执行时遇到了硬死锁时,无法处理和响应所有的任务和中断,会造成系统卡死的情况,当出现这种情况时,在没有硬件看门狗的情况下只能通过人为断电重启设备的方式使设备恢复正常工作。但是嵌入式设备往往运行环境比较恶劣,不会有人24小时值守,当出现问题后只能等待运维人员去现场处理。严重影响了嵌入式设备的可靠性。
在ARMv8指令集下,目前有两种方法可以实现Linux系统下的NMI中断。
第一种,使用中断优先级特性。Linux 对特定中断号进行编程,使其优先级高于所有其他中断。然后重写特定的中断启用和禁用函数来更改CPU中断优先级掩码(ICC_PMR_EL1),而不是直接操作CPU IRQ异常标志(PSTATE.I),从达到特定中断即可视为NMI。
这种方法需要对每一种中断进行配置,换一个硬件平台就需要重新对所有中断进行配置,代码修改难度和复杂度非常大,极易造成系统不稳定。
第二种,利用ARMv8指令集的Group0中断特性,将需指定的中断注册成group 0中断,该中断会进入到EL3态,EL3态的异常处理函数再调用EL1注册的中断回调函数。
这种方法需要配置EL3代码,EL3态代码工程师非常稀少,而且不是所有Cortex-A芯片厂商都会提供EL3代码,如果自己编写,难度非常大。
公开号:CN108563530A,《看门狗及其实现方法》,描述的是如何通过硬件看门狗实现两级看门狗保障系统可靠性的方法。公开号:CN105677497A,《一种高可用性看门狗电路》,描述的是如何设计硬件电路增加硬件看门狗的可靠性的方法。公开号:CN114756832A,《看门狗超时重启现场捕捉系统、方法、装置及存储介质》,描述的是如何使用硬件看门狗实现不中异常现场信息的方法。公开号:CN105260255A,《一种多处理器核片上系统的看门狗实现方法》,描述的是通过为每一个处理器分配一个看门狗,当任一看门狗复位时,通知所有看门狗进行所有处理器的复位的方法。公开号:CN110262920A,《Linux系统外置看门狗间接喂狗方法、看门狗喂狗代理驱动模块、看门狗系统》,描述的是如何使用外置看门狗的方法。公开号:CN218471161U,《 一种基于看门狗复位电路的控制系统》,描述的是如何设计看门狗的硬件复位电路的方法。
因此,如何在ARMv8指令集下的Cortex-A系列芯片中,没有硬件看门狗的情况下,去实现一个硬件看门狗是本领域技术人员亟需解决的问题。
发明内容
针对上述问题,本发明提供一种ARMv8架构下基于Linux系统实现硬件看门狗的方法;本专利通过电源管理芯片与CPU连接管脚的高电压为喂狗信号,电源管理芯片周期性获取管脚电压状态并拉低电压,Linux内核周期性设置管脚拉高电压;当管脚在规定时间内电压为被拉高,则说明CPU出现异常,从而复位CPU,达到电源管理芯片充当硬件看门狗的功能,在ARMv8指令集下的Cortex-A系列芯片中,在没有硬件看门狗的情况下,达到了一个硬件看门狗的效果。
为实现上述目的,本发明公开了一种ARMv8架构下基于Linux系统实现硬件看门狗的方法,包括以下步骤:
S1、安装Linux系统,修改电源管理芯片代码和Linux内核代码,添加看门狗驱动;
S2、将修改后的电源管理芯片代码和Linux内核代码部署在系统中;
S3、对系统进行初始化,打开电源管理芯片看门狗,创建内核级线程,所述内核级线程每经预设时间后将电源管理芯片与CPU相连引脚的电平拉高;
S4、电源管理芯片检测看门狗是否打开,若是,则进行S5,若否,则经预设时间后,重新检测;
S5、电源管理芯片检测其与CPU相连引脚的电平,若为高电平,则设置为低电平,经预设时间后重新检测电平,若为低电平则向CPU发送复位信号。
进一步的,所述方法还包括:
S6、使用sysrq-trigger功能对修改后的功能进行测试;
S7、系统在预设之间后重新启动。
进一步的,所述预设时间为20s。
本发明的防尘计算机机箱的有益效果为:使ARMv8架构下未支持NMI中断和硬件看门狗的Cortex-A系列芯片的设备平台提供硬件看门狗功能,大大提高嵌入式设备的可靠性,大大降低嵌入式设备的维护成本
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的实施例的整体流程结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
一种ARMv8架构下基于Linux系统实现硬件看门狗的方法,包括以下步骤:
S1、安装Linux系统,修改电源管理芯片代码和Linux内核代码,添加看门狗驱动;
S2、将修改后的电源管理芯片代码和Linux内核代码部署在系统中;
S3、对系统进行初始化,打开电源管理芯片看门狗,创建内核级线程,所述内核级线程每经预设时间后将电源管理芯片与CPU相连引脚的电平拉高;
S4、电源管理芯片检测看门狗是否打开,若是,则进行S5,若否,则经预设时间后,重新检测;
S6、电源管理芯片检测其与CPU相连引脚的电平,若为高电平,则设置为低电平,经预设时间后重新检测电平,若为低电平则向CPU发送复位信号。
为进一步优化上述技术方案,方法还包括:
S6、使用sysrq-trigger功能对修改后的功能进行测试;
S7、系统在预设之间后重新启动。
为进一步优化上述技术方案,预设时间为20s。
使用飞腾E2000芯片开发板作为硬件,设备安装银河麒麟V10桌面版系统为例,实施步骤如下:
1、安装银河麒麟V10桌面版系统;
2、内核初始化流程中增加硬件看门狗代码(即下文详述的电源管理芯片代码),代码逻辑如下:
2.1、在代码初始化部分打开硬件看门狗功能;
2.2、创建内核级线程,线程每20秒进行一次拉高管脚电压操作,即进行一次喂狗操作;
3、修改硬件中电源管理芯片代码,增加周期为20秒的任务,代码逻辑如下:
3.1、电源管理芯片检测是否从CPU接收到打开看门狗功能信号;
3.2、当未接收到打开看门狗信号时,休眠20秒,后执行3.1判断;
3.3、当接收到打开看门狗信号时,执行3.4步骤;
3.4、电源管理芯片主动检测其与CPU连接的管脚电压是否为高电压;
3.5、当管脚电压为高时,电源管理芯片把该管脚电压拉低,完成后执行3.4;
3.6、当管脚电压为低时,电源管理芯片对CPU及外围设备发送复位信号;
4、部署步骤2和步骤3新改写的电源管理芯片程序与内核程序;
5、使用sysrq-trigger功能对上述修改功能进行测试;
6、系统会在20秒后重新启动。
本申请的原理如下:CPU需要周期性地给看门狗发送喂狗信号,当规定时间没有发送喂狗信号时看门狗就会强制复位CPU的电源,让CPU进行复位,如果CPU在执行错误逻辑进入了死循环或者CPU遇到了硬死锁问题,会导致CPU不能去喂狗,管脚电压变高就是CPU在喂狗,电源管理芯片内部逻辑检测管脚电压是否为高,如果为高,则将其拉成低电压,如果检测到管脚电压为低电压,如果间隔预定时间检测其电压仍然为低电压,说明CPU在这段时间没有喂狗操作,CPU发生了问题,会对CPU进行强制复位,因为,本发明通过电源管理芯片周期性获取管脚电压状态并拉低电压,达到电源管理芯片充当硬件看门狗的功能。能够使ARMv8架构下未支持NMI中断和硬件看门狗的Cortex-A系列芯片的设备平台提供硬件看门狗功能,大大提高嵌入式设备的可靠性,大大降低嵌入式设备的维护成本。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (3)

1.一种ARMv8架构下基于Linux系统实现硬件看门狗的方法,其特征在于,包括以下步骤:
S1、安装Linux系统,修改电源管理芯片代码和Linux内核代码,添加看门狗驱动;
S2、将修改后的电源管理芯片代码和Linux内核代码部署在系统中;
S3、对系统进行初始化,打开电源管理芯片看门狗,创建内核级线程,所述内核级线程每经预设时间后将电源管理芯片与CPU相连引脚的电平拉高;
S4、电源管理芯片检测看门狗是否打开,若是,则进行S5,若否,则经预设时间后,重新检测;
S5、电源管理芯片检测其与CPU相连引脚的电平,若为高电平,则设置为低电平,经预设时间后重新检测电平,若为低电平则向CPU发送复位信号。
2.基于权利要求1所述的一种ARMv8架构下基于Linux系统实现硬件看门狗的方法,其特征在于,所述方法还包括:
S6、使用sysrq-trigger功能对修改后的功能进行测试;
S7、系统在预设之间后重新启动。
3.基于权利要求1所述的一种ARMv8架构下基于Linux系统实现硬件看门狗的方法,其特征在于,所述预设时间为20s。
CN202310574892.5A 2023-05-22 2023-05-22 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法 Pending CN116302662A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310574892.5A CN116302662A (zh) 2023-05-22 2023-05-22 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310574892.5A CN116302662A (zh) 2023-05-22 2023-05-22 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法

Publications (1)

Publication Number Publication Date
CN116302662A true CN116302662A (zh) 2023-06-23

Family

ID=86834481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310574892.5A Pending CN116302662A (zh) 2023-05-22 2023-05-22 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法

Country Status (1)

Country Link
CN (1) CN116302662A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739305A (zh) * 2010-02-09 2010-06-16 太仓市同维电子有限公司 操作系统内核级实时看门狗监控装置及其监控方法
CN102637139A (zh) * 2012-04-13 2012-08-15 华为技术有限公司 嵌入式系统喂狗的方法、装置及单板
CN110262920A (zh) * 2019-06-28 2019-09-20 广州鲁邦通物联网科技有限公司 Linux系统外置看门狗间接喂狗方法、看门狗喂狗代理驱动模块、看门狗系统
CN113672421A (zh) * 2021-08-16 2021-11-19 石家庄开发区天远科技有限公司 一种嵌入式系统全程喂狗策略及实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739305A (zh) * 2010-02-09 2010-06-16 太仓市同维电子有限公司 操作系统内核级实时看门狗监控装置及其监控方法
CN102637139A (zh) * 2012-04-13 2012-08-15 华为技术有限公司 嵌入式系统喂狗的方法、装置及单板
CN110262920A (zh) * 2019-06-28 2019-09-20 广州鲁邦通物联网科技有限公司 Linux系统外置看门狗间接喂狗方法、看门狗喂狗代理驱动模块、看门狗系统
CN113672421A (zh) * 2021-08-16 2021-11-19 石家庄开发区天远科技有限公司 一种嵌入式系统全程喂狗策略及实现方法

Similar Documents

Publication Publication Date Title
US6996745B1 (en) Process for shutting down a CPU in a SMP configuration
US7624260B2 (en) System executing a fast boot wake-up
JP6530774B2 (ja) ハードウェア障害回復システム
CN101814035B (zh) 允许快速平台重启的方法和系统
US8176339B2 (en) Method and system for managing peripheral connection wakeup in a processing system supporting multiple virtual machines
KR100724507B1 (ko) 논리 파티션 데이터 처리 시스템에서 전력 소비를 감소시키는 방법 및 장치
EP0497380B1 (en) Microcomputer having a watchdog timer
US8612986B2 (en) Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value
US6182238B1 (en) Fault tolerant task dispatching
US9164784B2 (en) Signalizing an external event using a dedicated virtual central processing unit
US7051222B2 (en) Robust computer subsystem power management with or without explicit operating system support
JP2007109238A (ja) 回復可能なエラーのロギングのためのシステム及び方法
US6681336B1 (en) System and method for implementing a user specified processing speed in a computer system and for overriding the user specified processing speed during a startup and shutdown process
US7318171B2 (en) Policy-based response to system errors occurring during OS runtime
US20120304184A1 (en) Multi-core processor system, computer product, and control method
US6629252B1 (en) Method for determining if a delay required before proceeding with the detected interrupt and exiting the interrupt without clearing the interrupt
WO2008101386A1 (fr) Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux
US10802998B2 (en) Technologies for processor core soft-offlining
US20040177242A1 (en) Dynamic computer system reset architecture
US20040031034A1 (en) System, method and software for reducing interrupt latency while polling in system management mode
KR20140105034A (ko) 프로세서 시스템
CN110865900A (zh) 增强嵌入式系统健壮性的一种方法
CN111026573A (zh) 一种多核处理系统的看门狗系统及控制方法
EP1393175A2 (en) A resource management method
US20040103345A1 (en) Method, apparatus and system for ensuring reliable power down of a personal computer

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: 20230623

RJ01 Rejection of invention patent application after publication