0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SWDT在AMD Versal™ Adaptive SoC中的应用案例分享

XILINX开发者社区 来源:AMD 开发者 2024-04-15 10:36 次阅读

1

概述

系统看门狗定时器(System WatchDog Timer)通常用于嵌入式系统,可以有效的防止软件错误、系统死锁、篡改以及意外行为,帮助维护健康和安全的系统。

AMD Versal 自适应 SoC中,分别在 FPD(Full power domain)和 LPD(Low power domain)中各自集成了一个 SWDT 用来帮助客户开发稳定的系统。其整体结构框图如下:

41f328ee-f8ca-11ee-a297-92fbcf53809c.png

从框图中可以看到 SWDT 中包含有 2 种不同的定时器,分别是窗口模式的定时器(Windowed WatchDog Timer)和通用模式的定时器(Generic WatchDog Timer)。

注意在使用 SWDT 之前,需要确认 LPD 和 FPD 的系统级别的复位是否已经释放,例如CRL.RST_LPD_SWDT 寄存器和CRF.RST_FPD_SWDT 寄存器。

2

通用模式定时器

通用模式定时器一共包含三个相关寄存器,分别是 G_Refresh,G_Offset 和 G_CSR 寄存器。

G_CSR 寄存器用来使能通用定时器模式,以及反馈状态。

G_Offset 寄存器用来配置定时的周期时间。

G_Refresh 寄存器用来刷新定时器,即喂狗。

工作模式如下图所示:

4205fc58-f8ca-11ee-a297-92fbcf53809c.png

通用模式工作时最多会有两个定时周期,当计数器计时达到第一个定时周期后,定时器会产生一个定时中断。然后计数器会继续计时,当计数器计时到达第二个定时周期后,定时器会产生一个超时中断。在定时器的计数器到达第二个定时周期之前,软件程序都可以通过 G_Refresh 寄存器刷新计数器计数值,从头开始计时。

可以看到通用模式使用起来非常简单。但是有一点需要注意,通用模式的定时器在超时发生之后,并不会输出系统级错误到 PSM 的错误堆栈中,即不会产生系统错误,从而使得 PSM 或者 PLM 程序固件执行相应的系统层面的操作。

3

窗口模式定时器

窗口模式定时器功能较为全面,功能充分考虑了系统安全的各种应用场景。

421ad36c-f8ca-11ee-a297-92fbcf53809c.png

窗口模式基本流程如上图所示,一共可以分成三个部分,分别是第一窗口(First Window),第二窗口(Second Window)和二次序列时间(Second Sequence Timer)。一共涉及到5个寄存器,分别是使能与状态寄存器(Enable_and_Status),功能控制寄存器(Funct_Ctrl),第一窗口时间寄存器(First_Wind),第二窗口时间寄存器(Second_Wind)和二次序列时间寄存器(SST_COUNT)。

第一窗口时间是一个封闭的时间段,在这个时间段内应用程序是不能对看门狗进行刷新和复位操作。如果这个时间段内对看门狗进行了刷新喂狗或是复位看门狗操作,那么就会产生一个错误事件,从而输出一个系统错误到 PSM 和 PMC。这样设计是考虑到用户既然配置看门狗,那么就一定是要让看门狗起到作用,所以设置了一个保护看门狗的时间,用来防范系统的异常操作。

当第一窗口保护期到了之后,看门狗会产生一个中断通知系统。这个中断的产生时间可以通过配置功能控制寄存器(Funct_Ctrl)中的 BSS 和 SBC 位设定。应用程序可以在接收到中断后刷新看门狗,或者复位/停止/重新配置看门狗。

42386cd8-f8ca-11ee-a297-92fbcf53809c.png

如果应用程序在第二窗口没有对看门狗有任何处理,计时器超过了用户设定的第二窗口时间,这个时候会产生超时中断。如果在看门狗运行之前使能了二次序列时间,那么看门狗此时不会立刻产生系统错误,而是等到二次序列时间计时结束之后再产生。这样应用程序就可以有时间去记录一些状态,日志或是处理某些外设等操作,便于后续排查问题或是增加系统的安全性。但是要是没有配置这个二次序列时间,那么看门狗在第二窗口时间超时之后会立刻产生错误事件,并发送系统错误到 PSM 和 PMC。

以上就是看门狗窗口模式下最基础的功能。总的来说,应用程序只有在看门狗处于第二窗口时间段内,才能对看门狗进行刷新喂狗,复位/停止/重新配置操作,否则就会产生错误事件,并发送系统错误到 PSM 和 PMC。另外,需要注意以下两点:

第一个窗口的时间可以设置为 0,从而跳过保护周期。

在看门狗运行的任意窗口期间,如果通过 LPD 和 FPD 的系统级别的复位对整个看门狗进行复位,不会产生额外中断以及系统错误。

为了进一步提高看门狗的安全性,窗口模式下还提供了两种防止系统异常操作的进阶功能。它们是签名方式(PSM)和问答方式(Q&A),如下图红框标注的功能。

4254c842-f8ca-11ee-a297-92fbcf53809c.png

1. 签名方式(PSM)

在启动看门狗计时之前,用户需要先在 Task_Sig0 寄存器中保存一个签名。然后应用程序在第二窗口刷新看门狗之前,先要对 Task_Sig1 寄存器写入和 Task_Sig0 一样的签名。当看门狗被正常刷新之后,会先去比较这两个签名是否一致,如果不一致就会立刻产生一个错误事件,并产生系统错误输出 PSM 和 PMC。

2. 问答方式(Q&A)

在运行看门狗之前,用户需要先在 Token_fb 寄存器中设定种子(seed)和反馈(FeedBack)值,这两个值和使能与状态寄存器(Enable_and_Status)中 ACNT 位会被用来计算写入 Token_Resp 寄存器的值。算法如下表所示。Token 对应种子值,Count 对应 ACNT 值,Feedback Value 对应反馈值。

4278f136-f8ca-11ee-a297-92fbcf53809c.png437c04e2-f8ca-11ee-a297-92fbcf53809c.png

举个例子,如果反馈(Feedback)的值是 3,那么应答(response)的每一位的计算方法就需要参考上面列表中的最后一列"11"来进行。那么 bit0 的值就是将 ACNT 的 bit1 值,异或种子(seed) bit 2 的值,再异或种子(seed)的 bit 3 的值。当应答 8 个位的值都计算好之后,写入 Token_resp 寄存器中即完成了一次问答。

当用户配置好看门狗功能设置,各个窗口时间以及问答种子和反馈值后,需要通过执行第一次应答(response)以后,看门狗才会开始启动计时。并且在第一窗口时间内,用户需要完成第二次和第三次应答,间隔的时间可以由用户自行来控制。当这两次应答完成后,即使第一窗口时间没有计完,也会立即进入第二窗口进行计时。接着,用户需要在第二窗口时间内完成第四次应答。一旦第四次应答在第二窗口完成,即使第二窗口时间没有计完,也会立即返回到第一窗口,重新开始计时。但是,如果在第二窗口内没有完成第四次应答,那么同样会回到第一窗口重新计时,不过接下来的应答还是需要按照第四次应答去完成。

在这个复杂的过程中,可以允许有限次数的应答失败,失败次数保存在使能与状态寄存器(Enable_and_Status)的失败计数位中(Fail count)。也就是说每当失败一次,失败计数就会增加 1,每应答成功一次失败计数就会减 1。当失败次数累计到 7 次以后,那么再出现失败,就会产生一个错误事件,并发送系统错误输出到 PSM 和 PMC。

4

总结

Vesal 器件中的看门狗模块提供了丰富的功能,从应用简易程度和安全性方面层层递进,让用户根据不同的应用场景来实现对自己系统的保护。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5453

    浏览量

    133987
  • 寄存器
    +关注

    关注

    31

    文章

    5328

    浏览量

    120116
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3575

    浏览量

    129287
  • soc
    soc
    +关注

    关注

    38

    文章

    4129

    浏览量

    217996
  • SoC芯片
    +关注

    关注

    1

    文章

    608

    浏览量

    34883
  • PSM
    PSM
    +关注

    关注

    1

    文章

    41

    浏览量

    13395
  • 看门狗定时器

    关注

    0

    文章

    38

    浏览量

    16245

原文标题:开发者分享|SWDT 在 AMD Versal™ Adaptive SoC 中的应用

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    通过JTAG启动Linux的方法和脚本

    AMD SoC 器件(AMD Zynq 7000 SoCAMD Zynq UltraSc
    的头像 发表于 12-22 10:27 1420次阅读
    通过JTAG启动Linux的方法和脚本

    【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍(2)

    【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍,以及Versal 芯片开发流程的简介。
    的头像 发表于 03-07 16:03 988次阅读
    【ALINX 技术分享】<b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> AI Edge 自适应计算加速平台之 <b class='flag-5'>Versal</b> 介绍(2)

    AMD Versal SoC刷新边缘AI性能,单芯片方案驱动嵌入式系统

    宣布扩展 AMD Versal™ 自适应片上系统( SoC )产品组合,推出全新第二代 Versal AI Edge 系列和第二代 Versal
    的头像 发表于 04-11 09:06 3684次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> <b class='flag-5'>SoC</b>刷新边缘AI性能,单芯片方案驱动嵌入式系统

    CSU SWDT、LPD SWDT和FPD SWDT的关系与使用

    Zynq MPSoC的器件里,PS (Processing System )集成了三个看门狗,分别是CSU SWDT,LPD SWDT和FPD SWDT。CSU
    的头像 发表于 06-15 11:52 2371次阅读

    使用QEMU启动Versal VCK190

    本篇博文涵盖了有关使用 PetaLinux 命令行来对 Versal Adaptive SoC 的 PetaLinux BSP 运行 QEMU 的信息,并演示了 QEMU 支持的部分网络选项。
    的头像 发表于 04-20 10:40 677次阅读

    Versal 自适应SoC设计指南

    电子发烧友网站提供《Versal 自适应SoC设计指南.pdf》资料免费下载
    发表于 12-14 16:22 1次下载
    <b class='flag-5'>Versal</b> 自适应<b class='flag-5'>SoC</b>设计指南

    AMD率先推出符合DisplayPort™ 2.1 8K视频标准的FPGA和自适应SoC

    AMD UltraScale+ FPGA 和 AMD Versal 自适应 SoC 产品系列已率先成为业界符合 VESA DisplayPort 2.1 标准的 FPGA 和自适应
    的头像 发表于 01-24 09:18 448次阅读

    AMD Versal SoC全新升级边缘AI性能,单芯片方案驱动嵌入式系统

    宣布扩展 AMD Versal™ 自适应片上系统( SoC )产品组合,推出全新第二代 Versal AI Edge 系列和第二代 Versal
    的头像 发表于 04-09 21:32 1032次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> <b class='flag-5'>SoC</b>全新升级边缘AI性能,单芯片方案驱动嵌入式系统

    AMD发布第二代Versal自适应SoC,AI嵌入式领域再提速

    AMD表示,第二代Versal系列自适应SoC搭载全新的AI引擎,相较上一代Versal AI Edge系列,每瓦TOPS功率可实现最多3倍的性能提升,同时,新款集成Arm CPU的高
    的头像 发表于 04-11 16:07 761次阅读

    AMD VersalAdaptive SoC CPM PCIE PIO EP设计CED示例

    本文可让开发者们看懂 AMD Vivado Design Tool 2023.2 的“AMD Versal Adaptive
    的头像 发表于 05-10 09:39 529次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b>™ <b class='flag-5'>Adaptive</b> <b class='flag-5'>SoC</b> CPM PCIE PIO EP设计CED示例

    ALINX VERSAL SOM产品介绍

    近日,2024 AMD Adaptive Computing Summit(AMD ACS)深圳举行,芯驿电子应邀出席作主题分享:《ALINX 基于
    的头像 发表于 08-05 10:33 617次阅读

    AMD Versal自适应SoC CPM5 QDMA的Tandem PCIe启动流程介绍

    本文将从硬件设计和驱动使用两个方面介绍基于 CPM5 QDMA 的 AMD Versal 自适应 SoC 的 Tandem 设计和启动流程。
    的头像 发表于 09-18 10:07 455次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b>自适应<b class='flag-5'>SoC</b> CPM5 QDMA的Tandem PCIe启动流程介绍

    AMD第二代Versal自适应SoC的主要特色

    AMD 第二代 AMD Versal AI Edge 和 Versal Prime 系列助力 AI 驱动型和经典的嵌入式系统实现单芯片智能性。可在性能、功耗、占板面积、功能安全和信息安
    的头像 发表于 09-18 10:14 453次阅读

    AMD推出第二代Versal Premium系列

    近日,AMD(超威,纳斯达克股票代码:AMD )今日宣布推出第二代 AMD Versal Premium 系列,这款自适应 SoC 平台旨在
    的头像 发表于 11-13 09:27 306次阅读

    AMD Vivado Design Suite 2024.2全新推出

    AMD Vivado Design Suite 2024.2 全新推出,使用 AMD Versal Adaptive SoC 进行设计的重大
    的头像 发表于 11-22 13:54 171次阅读