0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SWDT在AMD Versal? Adaptive SoC中的應(yīng)用案例分享

XILINX開發(fā)者社區(qū) ? 來源:AMD 開發(fā)者 ? 2024-04-15 10:36 ? 次閱讀

1

概述

系統(tǒng)看門狗定時器(System WatchDog Timer)通常用于嵌入式系統(tǒng),可以有效的防止軟件錯誤、系統(tǒng)死鎖、篡改以及意外行為,幫助維護健康和安全的系統(tǒng)。

AMD Versal 自適應(yīng) SoC中,分別在 FPD(Full power domain)和 LPD(Low power domain)中各自集成了一個 SWDT 用來幫助客戶開發(fā)穩(wěn)定的系統(tǒng)。其整體結(jié)構(gòu)框圖如下:

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

從框圖中可以看到 SWDT 中包含有 2 種不同的定時器,分別是窗口模式的定時器(Windowed WatchDog Timer)和通用模式的定時器(Generic WatchDog Timer)。

注意在使用 SWDT 之前,需要確認 LPD 和 FPD 的系統(tǒng)級別的復(fù)位是否已經(jīng)釋放,例如CRL.RST_LPD_SWDT 寄存器和CRF.RST_FPD_SWDT 寄存器。

2

通用模式定時器

通用模式定時器一共包含三個相關(guān)寄存器,分別是 G_Refresh,G_Offset 和 G_CSR 寄存器。

G_CSR 寄存器用來使能通用定時器模式,以及反饋狀態(tài)。

G_Offset 寄存器用來配置定時的周期時間。

G_Refresh 寄存器用來刷新定時器,即喂狗。

工作模式如下圖所示:

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

通用模式工作時最多會有兩個定時周期,當計數(shù)器計時達到第一個定時周期后,定時器會產(chǎn)生一個定時中斷。然后計數(shù)器會繼續(xù)計時,當計數(shù)器計時到達第二個定時周期后,定時器會產(chǎn)生一個超時中斷。在定時器的計數(shù)器到達第二個定時周期之前,軟件程序都可以通過 G_Refresh 寄存器刷新計數(shù)器計數(shù)值,從頭開始計時。

可以看到通用模式使用起來非常簡單。但是有一點需要注意,通用模式的定時器在超時發(fā)生之后,并不會輸出系統(tǒng)級錯誤到 PSM 的錯誤堆棧中,即不會產(chǎn)生系統(tǒng)錯誤,從而使得 PSM 或者 PLM 程序固件執(zhí)行相應(yīng)的系統(tǒng)層面的操作。

3

窗口模式定時器

窗口模式定時器功能較為全面,功能充分考慮了系統(tǒng)安全的各種應(yīng)用場景。

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

窗口模式基本流程如上圖所示,一共可以分成三個部分,分別是第一窗口(First Window),第二窗口(Second Window)和二次序列時間(Second Sequence Timer)。一共涉及到5個寄存器,分別是使能與狀態(tài)寄存器(Enable_and_Status),功能控制寄存器(Funct_Ctrl),第一窗口時間寄存器(First_Wind),第二窗口時間寄存器(Second_Wind)和二次序列時間寄存器(SST_COUNT)。

第一窗口時間是一個封閉的時間段,在這個時間段內(nèi)應(yīng)用程序是不能對看門狗進行刷新和復(fù)位操作。如果這個時間段內(nèi)對看門狗進行了刷新喂狗或是復(fù)位看門狗操作,那么就會產(chǎn)生一個錯誤事件,從而輸出一個系統(tǒng)錯誤到 PSM 和 PMC。這樣設(shè)計是考慮到用戶既然配置看門狗,那么就一定是要讓看門狗起到作用,所以設(shè)置了一個保護看門狗的時間,用來防范系統(tǒng)的異常操作。

當?shù)谝淮翱诒Wo期到了之后,看門狗會產(chǎn)生一個中斷通知系統(tǒng)。這個中斷的產(chǎn)生時間可以通過配置功能控制寄存器(Funct_Ctrl)中的 BSS 和 SBC 位設(shè)定。應(yīng)用程序可以在接收到中斷后刷新看門狗,或者復(fù)位/停止/重新配置看門狗。

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

如果應(yīng)用程序在第二窗口沒有對看門狗有任何處理,計時器超過了用戶設(shè)定的第二窗口時間,這個時候會產(chǎn)生超時中斷。如果在看門狗運行之前使能了二次序列時間,那么看門狗此時不會立刻產(chǎn)生系統(tǒng)錯誤,而是等到二次序列時間計時結(jié)束之后再產(chǎn)生。這樣應(yīng)用程序就可以有時間去記錄一些狀態(tài),日志或是處理某些外設(shè)等操作,便于后續(xù)排查問題或是增加系統(tǒng)的安全性。但是要是沒有配置這個二次序列時間,那么看門狗在第二窗口時間超時之后會立刻產(chǎn)生錯誤事件,并發(fā)送系統(tǒng)錯誤到 PSM 和 PMC。

以上就是看門狗窗口模式下最基礎(chǔ)的功能??偟膩碚f,應(yīng)用程序只有在看門狗處于第二窗口時間段內(nèi),才能對看門狗進行刷新喂狗,復(fù)位/停止/重新配置操作,否則就會產(chǎn)生錯誤事件,并發(fā)送系統(tǒng)錯誤到 PSM 和 PMC。另外,需要注意以下兩點:

第一個窗口的時間可以設(shè)置為 0,從而跳過保護周期。

在看門狗運行的任意窗口期間,如果通過 LPD 和 FPD 的系統(tǒng)級別的復(fù)位對整個看門狗進行復(fù)位,不會產(chǎn)生額外中斷以及系統(tǒng)錯誤。

為了進一步提高看門狗的安全性,窗口模式下還提供了兩種防止系統(tǒng)異常操作的進階功能。它們是簽名方式(PSM)和問答方式(Q&A),如下圖紅框標注的功能。

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

1. 簽名方式(PSM)

在啟動看門狗計時之前,用戶需要先在 Task_Sig0 寄存器中保存一個簽名。然后應(yīng)用程序在第二窗口刷新看門狗之前,先要對 Task_Sig1 寄存器寫入和 Task_Sig0 一樣的簽名。當看門狗被正常刷新之后,會先去比較這兩個簽名是否一致,如果不一致就會立刻產(chǎn)生一個錯誤事件,并產(chǎn)生系統(tǒng)錯誤輸出 PSM 和 PMC。

2. 問答方式(Q&A)

在運行看門狗之前,用戶需要先在 Token_fb 寄存器中設(shè)定種子(seed)和反饋(FeedBack)值,這兩個值和使能與狀態(tài)寄存器(Enable_and_Status)中 ACNT 位會被用來計算寫入 Token_Resp 寄存器的值。算法如下表所示。Token 對應(yīng)種子值,Count 對應(yīng) ACNT 值,F(xiàn)eedback Value 對應(yīng)反饋值。

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

舉個例子,如果反饋(Feedback)的值是 3,那么應(yīng)答(response)的每一位的計算方法就需要參考上面列表中的最后一列"11"來進行。那么 bit0 的值就是將 ACNT 的 bit1 值,異或種子(seed) bit 2 的值,再異或種子(seed)的 bit 3 的值。當應(yīng)答 8 個位的值都計算好之后,寫入 Token_resp 寄存器中即完成了一次問答。

當用戶配置好看門狗功能設(shè)置,各個窗口時間以及問答種子和反饋值后,需要通過執(zhí)行第一次應(yīng)答(response)以后,看門狗才會開始啟動計時。并且在第一窗口時間內(nèi),用戶需要完成第二次和第三次應(yīng)答,間隔的時間可以由用戶自行來控制。當這兩次應(yīng)答完成后,即使第一窗口時間沒有計完,也會立即進入第二窗口進行計時。接著,用戶需要在第二窗口時間內(nèi)完成第四次應(yīng)答。一旦第四次應(yīng)答在第二窗口完成,即使第二窗口時間沒有計完,也會立即返回到第一窗口,重新開始計時。但是,如果在第二窗口內(nèi)沒有完成第四次應(yīng)答,那么同樣會回到第一窗口重新計時,不過接下來的應(yīng)答還是需要按照第四次應(yīng)答去完成。

在這個復(fù)雜的過程中,可以允許有限次數(shù)的應(yīng)答失敗,失敗次數(shù)保存在使能與狀態(tài)寄存器(Enable_and_Status)的失敗計數(shù)位中(Fail count)。也就是說每當失敗一次,失敗計數(shù)就會增加 1,每應(yīng)答成功一次失敗計數(shù)就會減 1。當失敗次數(shù)累計到 7 次以后,那么再出現(xiàn)失敗,就會產(chǎn)生一個錯誤事件,并發(fā)送系統(tǒng)錯誤輸出到 PSM 和 PMC。

4

總結(jié)

Vesal 器件中的看門狗模塊提供了豐富的功能,從應(yīng)用簡易程度和安全性方面層層遞進,讓用戶根據(jù)不同的應(yīng)用場景來實現(xiàn)對自己系統(tǒng)的保護。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • amd
    amd
    +關(guān)注

    關(guān)注

    25

    文章

    5468

    瀏覽量

    134160
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120362
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3593

    瀏覽量

    129472
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4165

    瀏覽量

    218255
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    612

    瀏覽量

    34921
  • PSM
    PSM
    +關(guān)注

    關(guān)注

    1

    文章

    41

    瀏覽量

    13413
  • 看門狗定時器
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    16253

原文標題:開發(fā)者分享|SWDT 在 AMD Versal? Adaptive SoC 中的應(yīng)用

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【ALINX 技術(shù)分享】AMD Versal AI Edge 自適應(yīng)計算加速平臺之 Versal 介紹(2)

    【ALINX 技術(shù)分享】AMD Versal AI Edge 自適應(yīng)計算加速平臺之 Versal 介紹,以及Versal 芯片開發(fā)流程的簡介。
    的頭像 發(fā)表于 03-07 16:03 ?1037次閱讀
    【ALINX 技術(shù)分享】<b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> AI Edge 自適應(yīng)計算加速平臺之 <b class='flag-5'>Versal</b> 介紹(2)

    AMD Versal SoC刷新邊緣AI性能,單芯片方案驅(qū)動嵌入式系統(tǒng)

    宣布擴展 AMD Versal? 自適應(yīng)片上系統(tǒng)( SoC )產(chǎn)品組合,推出全新第二代 Versal AI Edge 系列和第二代 Versal
    的頭像 發(fā)表于 04-11 09:06 ?3739次閱讀
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> <b class='flag-5'>SoC</b>刷新邊緣AI性能,單芯片方案驅(qū)動嵌入式系統(tǒng)

    CSU SWDT、LPD SWDT和FPD SWDT的關(guān)系與使用

    Zynq MPSoC的器件里,PS (Processing System )集成了三個看門狗,分別是CSU SWDT,LPD SWDT和FPD SWDT。CSU
    的頭像 發(fā)表于 06-15 11:52 ?2412次閱讀

    使用QEMU啟動Versal VCK190

    本篇博文涵蓋了有關(guān)使用 PetaLinux 命令行來對 Versal Adaptive SoC 的 PetaLinux BSP 運行 QEMU 的信息,并演示了 QEMU 支持的部分網(wǎng)絡(luò)選項。
    的頭像 發(fā)表于 04-20 10:40 ?697次閱讀

    Versal 自適應(yīng)SoC設(shè)計指南

    電子發(fā)燒友網(wǎng)站提供《Versal 自適應(yīng)SoC設(shè)計指南.pdf》資料免費下載
    發(fā)表于 12-14 16:22 ?1次下載
    <b class='flag-5'>Versal</b> 自適應(yīng)<b class='flag-5'>SoC</b>設(shè)計指南

    AMD率先推出符合DisplayPort? 2.1 8K視頻標準的FPGA和自適應(yīng)SoC

    AMD UltraScale+ FPGA 和 AMD Versal 自適應(yīng) SoC 產(chǎn)品系列已率先成為業(yè)界符合 VESA DisplayPort 2.1 標準的 FPGA 和自適應(yīng)
    的頭像 發(fā)表于 01-24 09:18 ?470次閱讀

    AMD Versal SoC全新升級邊緣AI性能,單芯片方案驅(qū)動嵌入式系統(tǒng)

    宣布擴展 AMD Versal? 自適應(yīng)片上系統(tǒng)( SoC?)產(chǎn)品組合,推出全新第二代 Versal?AI Edge?系列和第二代 Versal
    的頭像 發(fā)表于 04-09 21:32 ?1080次閱讀
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> <b class='flag-5'>SoC</b>全新升級邊緣AI性能,單芯片方案驅(qū)動嵌入式系統(tǒng)

    AMD發(fā)布第二代Versal自適應(yīng)SoC,AI嵌入式領(lǐng)域再提速

    AMD表示,第二代Versal系列自適應(yīng)SoC搭載全新的AI引擎,相較上一代Versal AI Edge系列,每瓦TOPS功率可實現(xiàn)最多3倍的性能提升,同時,新款集成Arm CPU的高
    的頭像 發(fā)表于 04-11 16:07 ?795次閱讀

    AMD Versal? Adaptive SoC CPM PCIE PIO EP設(shè)計CED示例

    本文可讓開發(fā)者們看懂 AMD Vivado Design Tool 2023.2 的“AMD Versal Adaptive
    的頭像 發(fā)表于 05-10 09:39 ?589次閱讀
    <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設(shè)計CED示例

    ALINX VERSAL SOM產(chǎn)品介紹

    近日,2024 AMD Adaptive Computing Summit(AMD ACS)深圳舉行,芯驛電子應(yīng)邀出席作主題分享:《ALINX 基于
    的頭像 發(fā)表于 08-05 10:33 ?658次閱讀

    AMD Versal自適應(yīng)SoC CPM5 QDMA的Tandem PCIe啟動流程介紹

    本文將從硬件設(shè)計和驅(qū)動使用兩個方面介紹基于 CPM5 QDMA 的 AMD Versal 自適應(yīng) SoC 的 Tandem 設(shè)計和啟動流程。
    的頭像 發(fā)表于 09-18 10:07 ?551次閱讀
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b>自適應(yīng)<b class='flag-5'>SoC</b> CPM5 QDMA的Tandem PCIe啟動流程介紹

    AMD第二代Versal自適應(yīng)SoC的主要特色

    AMD 第二代 AMD Versal AI Edge 和 Versal Prime 系列助力 AI 驅(qū)動型和經(jīng)典的嵌入式系統(tǒng)實現(xiàn)單芯片智能性。可在性能、功耗、占板面積、功能安全和信息安
    的頭像 發(fā)表于 09-18 10:14 ?504次閱讀

    AMD推出第二代Versal Premium系列

    近日,AMD(超威,納斯達克股票代碼:AMD )今日宣布推出第二代 AMD Versal Premium 系列,這款自適應(yīng) SoC 平臺旨在
    的頭像 發(fā)表于 11-13 09:27 ?370次閱讀

    AMD Vivado Design Suite 2024.2全新推出

    AMD Vivado Design Suite 2024.2 全新推出,使用 AMD Versal Adaptive SoC 進行設(shè)計的重大
    的頭像 發(fā)表于 11-22 13:54 ?264次閱讀

    如何通過PMC_GPIO喚醒AMD Versal? Adaptive SoC Linux系統(tǒng)

    功耗敏感的系統(tǒng)里,我們通常會在系統(tǒng)空閑的時候?qū)⑾到y(tǒng)休眠,然后可以通過一些外設(shè)的輸入來喚醒系統(tǒng),比如 Uart、USB 和 GPIO。AMD Versal?Adaptive
    的頭像 發(fā)表于 12-17 10:07 ?141次閱讀
    如何通過PMC_GPIO喚醒<b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b>? <b class='flag-5'>Adaptive</b> <b class='flag-5'>SoC</b> Linux系統(tǒng)