在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

多系統(tǒng)中斷路由的9種示例

冬至子 ? 來源:我是Trustonic ? 作者:周賀賀 ? 2023-09-01 17:31 ? 次閱讀

說明:
本文不考慮EL2,默認NS-EL2、S-EL2都是disabled的
本文以Armv9-aarch64、Armv8-aarch64為基準,不討論aarch32的情況
中斷控制器以gicv3/gicv4為例,不討論其它中斷控制器和gicv2。

前置條件

我們先補充幾個概念:

(1)CPU有三種執(zhí)行環(huán)境(Runtime):

  • CPU執(zhí)行在ATF
  • CPU執(zhí)行在REE
  • CPU執(zhí)行在TEE

image.png

(2)而對于中斷,有3種分類:

  • NS-Group 1 :想給REE處理的中斷
  • S-Group 1 :想給TEE處理的中斷
  • Group 0:想給ATF處理的中斷

所以呢,就出現(xiàn)9種情況:

  • (1)CPU執(zhí)行在REE時,來了一個NS-Group 1中斷,想給REE處理的中斷
  • (2)CPU執(zhí)行在ATF時,來了一個NS-Group 1中斷,想給REE處理的中斷
  • (3)CPU執(zhí)行在TEE時,來了一個NS-Group 1中斷,想給REE處理的中斷
  • (4)CPU執(zhí)行在TEE時,來了一個S-Group 1中斷,想給TEE處理的中斷
  • (5)CPU執(zhí)行在ATF時,來了一個S-Group 1中斷,想給TEE處理的中斷
  • (6)CPU執(zhí)行在REE時,來了一個S-Group 1中斷,想給TEE處理的中斷
  • (7)CPU執(zhí)行在ATF時,來了一個Group 0中斷,想給ATF處理的中斷
  • (8)CPU執(zhí)行在TEE時,來了一個Group 0中斷,想給ATF處理的中斷
  • (9)CPU執(zhí)行在REE時,來了一個Group 0中斷,想給ATF處理的中斷

那么接下來,我們就開始分析,這9種情況,在整個多系統(tǒng)的軟硬件架構(gòu)中,是如何設(shè)計、如何處理的。

1、CPU執(zhí)行在REE時,來了一個NS-Group 1中斷

CPU執(zhí)行在REE時,來了一個NS-Group 1中斷,想給REE處理的中斷。

在REE執(zhí)行過程中,當發(fā)生一個來自NS-Group 1的中斷時,旨在傳遞給REE處理。鑒于當前CPU處于非安全狀態(tài)且中斷類型為NS-Group 1,因此該中斷被標記為IRQ。此時,由于SCR_EL3.IRQ的值為0,所以此IRQ將會被路由至EL1。這一路由機制十分簡潔明了,直接將IRQ傳遞,使得CPU會進入Linux Kernel的異常向量表中的irq向量,從而進行處理。

image.png

2、CPU執(zhí)行在ATF時,來了一個NS-Group 1中斷

CPU執(zhí)行在ATF時,來了一個NS-Group 1中斷,想給REE處理的中斷。

透過事物看本質(zhì),我們可以理解這是一種想給REE處理的中斷,因此最終目標是將CPU重新路由回REE,使其能夠正確處理此中斷。

接下來,我們將探討軟硬件設(shè)計問題。當CPU處于ATF執(zhí)行狀態(tài)時,PSTATE.I和PSTATE.F都被屏蔽(MASK),因此,此時CPU不會響應(yīng)任何中斷,所有產(chǎn)生的中斷都將保持在待處理狀態(tài)。只有在CPU從EL3切換回EL3以下狀態(tài)時,且PSTATE.F/I解除屏蔽(unmasked)時,待處理的中斷才會被taken。

考慮到CPU從EL3切換到EL3以下狀態(tài)有兩種路徑,因此,我們需要對此進行分組討論:

  • 當CPU從EL3返回到REE端時,情況等同于“CPU處于REE執(zhí)行狀態(tài),此時發(fā)生一個NS-Group 1中斷”,這會直接觸發(fā)將中斷傳遞到Linux內(nèi)核中的IRQ,使Linux內(nèi)核能夠繼續(xù)處理此中斷。
  • 當CPU從EL3返回到TEE端時,情況等同于“CPU處于TEE執(zhí)行狀態(tài),此時發(fā)生一個NS-Group 1中斷”,這時將會重復執(zhí)行第3小節(jié)所述的中斷路由步驟。

image.png

3、CPU執(zhí)行在TEE時,來了一個NS-Group 1中斷

CPU執(zhí)行在TEE時,來了一個NS-Group 1中斷,想給REE處理的中斷。

透過事物看本質(zhì),我們可以理解這是一種想給REE處理的中斷。因此,你的軟硬件協(xié)同設(shè)計的最終目標是將CPU拉回到REE,讓REE處理這個中斷。

我們接著關(guān)注軟硬件的設(shè)計。由于當前CPU運行在安全狀態(tài),中斷類型為NS-Group 1,因此中斷被標記為FIQ。然而,考慮到此刻的SCR_EL3.IRQ=0,所以這個FIQ將會被路由至EL1。CPU進入TEE OS的異常向量的FIQ向量,在fiq_handler的實現(xiàn)中,未讀取中斷IAR就調(diào)用了smc。這采用了一種主動的軟件調(diào)用方式,將CPU切回了ATF。ATF察覺到這是一個中斷轉(zhuǎn)換過來的情況,因此繼續(xù)將CPU切換回REE。在此過程中,該中斷一直保持為掛起狀態(tài)。

當CPU被重新引導回REE后,由于此時CPU運行在非安全狀態(tài),中斷類型仍為NS-Group 1,所以該中斷被重新標記為IRQ。隨之而來的是重新觸發(fā)中斷,該中斷被target至EL1,與下圖中的步驟4對應(yīng)。在中斷處理完成后,依次將CPU拉回TEE,使其回到被打斷的位置。

image.png

4、CPU執(zhí)行在TEE時,來了一個S-Group 1中斷

CPU執(zhí)行在TEE時,來了一個S-Group 1中斷,想給TEE處理的中斷。

由于當前CPU運行在Secure Security State、中斷類型為S-Group 1中斷,所以該中斷被標記為IRQ,由于此時SCR_EL3.IRQ=0,所以該中斷被標記為IRQ,并被target到EL1。所以這種路由很干脆直接,將直接產(chǎn)生IRQ,讓CPU進入TEE OS的異常向量表的irq向量去處理。

image.png

5、CPU執(zhí)行在ATF時,來了一個S-Group 1中斷

CPU執(zhí)行在ATF時,來了一個S-Group 1中斷,想給TEE處理的中斷。

我們透過事物看本質(zhì),這是想給TEE處理的中斷,所以最終的結(jié)果,一定是要把CPU拉回到TEE,讓TEE去處理這個中斷。

接下來我們討論軟硬件設(shè)計,CPU執(zhí)行在ATF的時候,此時PSTATE.I和PSTATE.F都是MASK的,所以此時不會taken任何中斷,一切產(chǎn)生的中斷將處于pending狀態(tài)。當CPU從EL3切回EL3以下的時候,PSTATE.F/I unmasked的時候,此時pending的中斷才會被taken。由于CPU從EL3切換EL3以下有兩條路徑,所以我們需要分組討論一下:

  • 當CPU從EL3往REE側(cè)返回后,此時條件等同于“CPU執(zhí)行在REE時,來了一個S-Group 1中斷”,此時會將第6小節(jié)的中斷路由步驟全部再走一遍。
  • 當CPU從EL3往TEE側(cè)返回后,此時條件等同于“CPU執(zhí)行在TEE時,來了一個S-Group 1中斷”,也就是將直接產(chǎn)生target到TEE O中的irq,讓TEE繼續(xù)處理這個中斷。

image.png

6、CPU執(zhí)行在REE時,來了一個S-Group 1中斷

CPU執(zhí)行在REE時,來了一個S-Group 1中斷,想給TEE處理的中斷.

我們透過事物看本質(zhì),這是想給TEE處理的中斷,所以最終的結(jié)果,你的軟硬件協(xié)同的設(shè)計,一定是要把CPU拉回到TEE,讓TEE去處理這個中斷。

我們再來看軟硬件的設(shè)計,由于當前CPU運行在Non Secure Security State、中斷類型為S-Group 1中斷,所以該中斷被標記為FIQ,由于此時SCR_EL3.IRQ=1,所以該FIQ將被target到EL3。CPU 進入 ATF的異常向量的FIQ向量,在ATF的fiq_handler實現(xiàn)中,它會繼續(xù)進行中斷轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)到TEE OS中特定的入口(這里與TEE OS廠商設(shè)計相關(guān),不同廠商有不同的實現(xiàn)),進入TEE OS后,真正處理這個中斷,處理完畢后,再依次返回。

image.png

7、CPU執(zhí)行在ATF時,來了一個Group 0中斷

CPU執(zhí)行在ATF時,來了一個Group 0中斷,想給ATF處理的中斷。

CPU執(zhí)行在ATF的時候,此時PSTATE.I和PSTATE.F都是MASK的,所以此時不會taken任何中斷,一切產(chǎn)生的中斷將處于pending狀態(tài)。當cpu從EL3切回EL3以下的時候,PSTATE.F/I unmasked的時候,此時pending的中斷才會被take。由于CPU從EL3切換EL3以下有兩條路徑,所以我們需要分組討論一下:

  • 當CPU從EL3往REE側(cè)返回后,此時條件等同于“CPU執(zhí)行在REE時,來了一個Group 0中斷”,此時會將第9小節(jié)的中斷路由步驟全部再走一遍。
  • 當CPU從EL3往TEE側(cè)返回后,此時條件等同于“CPU執(zhí)行在TEE時,來了一個Group 0中斷”,此時會將第8小節(jié)的中斷路由步驟全部再走一遍。

image.png

8、CPU執(zhí)行在TEE時,來了一個Group 0中斷

CPU執(zhí)行在TEE時,來了一個Group 0中斷,想給ATF處理的中斷.

此時根據(jù)中斷類型為Group 0,該中斷將被標記為FIQ,根據(jù)SCR_EL3.FIQ=0,該fiq將直接被target到EL1,在tee中的fiq_handler中,將采取軟件主動方式將CPU切回ATF,進入ATF后,該中斷仍不會被taken,因為此時PSTATE.I/R都是masked的。直至CPU再返回REE端的時候,將重新產(chǎn)生target到EL3的FIQ,那時中斷才會被處理。

image.png

9、CPU執(zhí)行在REE時,來了一個Group 0中斷

CPU執(zhí)行在REE時,來了一個Group 0中斷,想給ATF處理的中斷。

由于是Group0中斷,中斷將被標記為FIQ,又由于SCR_EL3.FIQ=1,F(xiàn)IQ將被直接target到EL3,進入ATF的異常向量表的fiq向量進行處理。

image.png

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

    關(guān)注

    2

    文章

    150

    瀏覽量

    44356
  • ARM處理器
    +關(guān)注

    關(guān)注

    6

    文章

    361

    瀏覽量

    41986
  • 中斷處理
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    11026
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    316

    瀏覽量

    21780
  • 中斷控制器
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    9499
收藏 人收藏

    評論

    相關(guān)推薦

    Aurix的DMA硬件請求源自于中斷路由模塊,請問是否支持一個外設(shè)請求(中斷)對應(yīng)多個DMA通道?

    Aurix的DMA硬件請求源自于中斷路由模塊,請問是否支持一個外設(shè)請求(中斷)對應(yīng)多個DMA通道?
    發(fā)表于 01-26 07:15

    [求助]如何判斷路由器電源適配器的進出接線?

    [求助]如何判斷路由器電源適配器的進出接線?各位大大,小弟請教一事。天熱,改裝路由器,加風扇,拆了電源適配器,220v轉(zhuǎn)9v,1a的不小心把拆后的塑料外殼弄丟,只剩下一個里面的線圈,一時大意剪斷
    發(fā)表于 07-06 22:10

    請教一下汽車can總線路由表中的信號路由、報文路由和診斷路由中各個參數(shù)的設(shè)置要求規(guī)則?

    本帖最后由 zhshw12345 于 2017-10-17 22:00 編輯 請教一下各位汽車電子大牛,汽車can路由表中的信號路由、報文路由和診斷路由中各個參數(shù)的設(shè)置要求規(guī)則,
    發(fā)表于 10-16 21:34

    中斷系統(tǒng)的外部中斷示例

    中斷系統(tǒng)(2)–外部中斷示例1.想實現(xiàn)的目標2.分析3.代碼#include#include***it LED1=P1^0;***it LED2=P1^1; //對兩個led燈進行位定
    發(fā)表于 12-07 13:33

    中斷系統(tǒng)的相關(guān)資料推薦

    中斷系統(tǒng)TC27x中斷系統(tǒng)框圖TC27x中的中斷系統(tǒng)中斷路
    發(fā)表于 02-22 06:38

    PCI中斷機制分析

    PCI中斷機制分析:PCI 總線有四條中斷線,所有PCI 設(shè)備共同使用這四條線向系統(tǒng)申請中斷,中斷請求經(jīng)可編程
    發(fā)表于 06-28 19:21 ?26次下載

    AdHoc網(wǎng)中一播QoS路由協(xié)議_吳丹

    AdHoc網(wǎng)中一播QoS路由協(xié)議_吳丹
    發(fā)表于 03-19 11:26 ?0次下載

    示例標記學習方法

    針對現(xiàn)有的大部分示例標記( MIML)算法都沒有考慮如何更好地表示對象特征這一問題,將概率潛在語義分析( PLSA)模型和神經(jīng)網(wǎng)絡(luò)(NN)相結(jié)合,提出了基于主題模型的
    發(fā)表于 01-05 10:22 ?0次下載
    <b class='flag-5'>多</b><b class='flag-5'>示例</b><b class='flag-5'>多</b>標記學習方法

    基于半監(jiān)督學習的示例標簽改進算法

    在MIML框架下,有兩解決問題的方式,一是應(yīng)用退化的方式,以示例學習或標簽學習作為橋梁,對MIML問題進行退化,如MIMLSVM[6
    的頭像 發(fā)表于 10-01 17:12 ?3123次閱讀
    基于半監(jiān)督學習的<b class='flag-5'>多</b><b class='flag-5'>示例</b><b class='flag-5'>多</b>標簽改進算法

    單片機學習##中斷系統(tǒng)(2)--外部中斷示例

    中斷系統(tǒng)(2)–外部中斷示例1.想實現(xiàn)的目標2.分析3.代碼#include<reg52.h>#include<intrins.h>sbit
    發(fā)表于 11-24 16:21 ?3次下載
    單片機學習##<b class='flag-5'>中斷</b><b class='flag-5'>系統(tǒng)</b>(2)--外部<b class='flag-5'>中斷</b><b class='flag-5'>示例</b>

    AURIX系列之TC275學習筆記(五):中斷系統(tǒng)

    中斷系統(tǒng) TC27x中斷系統(tǒng)框圖TC27x中的中斷
    發(fā)表于 12-27 19:20 ?18次下載
    AURIX系列之TC275學習筆記(五):<b class='flag-5'>中斷</b><b class='flag-5'>系統(tǒng)</b>

    電動機運行中斷路器跳閘檢查項目總結(jié)

    有關(guān)電動機運行中斷路器跳閘需要檢查的項目,包括配電柜故障、電纜故障、電機故障等,一起來了解下。 電動機運行中斷路器跳閘的問題 電動機運行中斷路器跳閘檢查的項目,主要包括:
    發(fā)表于 11-01 13:16 ?778次閱讀

    51單片機中斷程序示例

    51單片機中斷程序示例
    發(fā)表于 05-17 18:03 ?0次下載

    硬件中斷事件的示例

    根據(jù)硬件中斷模塊觸發(fā)的示例來說明 S7-1500 CPU 中面向事件的程序執(zhí)行的功能原理。
    的頭像 發(fā)表于 08-29 09:45 ?1326次閱讀
    硬件<b class='flag-5'>中斷</b>事件的<b class='flag-5'>示例</b>

    時間中斷函數(shù)的編程示例

    在以下示例中,將讀取延時中斷 OB (OB20) 的狀態(tài),設(shè)置新的延時并啟動或禁用 OB20。
    的頭像 發(fā)表于 09-01 09:47 ?1246次閱讀
    時間<b class='flag-5'>中斷</b>函數(shù)的編程<b class='flag-5'>示例</b>
    主站蜘蛛池模板: 性生大片一级毛片免费观看 | 天天舔天天操天天干 | 日本黄a | 亚欧乱色束缚一区二区三区 | 国产三片高清在线观看 | 色拍拍综合网 | 亚洲高清一区二区三区 | 农村三级毛片 | 性欧美高清久久久久久久 | 中文在线 | 中文 | 国产毛片久久久久久国产毛片 | 亚洲色图 第一页 | 久久美女视频 | 亚洲欧美圣爱天天综合 | 日本福利片午夜免费观着 | 亚洲欧美一区二区三区四区 | 欧美一级艳片视频免费观看 | hd性欧美 | 手机看片国产免费久久网 | 欧美猛交lxxxxxxxxx | 开心综合网 | 特黄特黄aaaa级毛片免费看 | 波多野结衣中文字幕教师 | 欧美色欧| 天天干天天射天天爽 | 亚洲人成电影 | 欧美xxxxbbbb在线播放 | 高清国产一区二区三区 | 一级片一级片一级片 | 窝窝午夜看片免费视频 | 日本二区免费一片黄2019 | 狼狼狼色精品视频在线播放 | 成人爽爽激情在线观看 | 狠狠五月深爱婷婷网 | 国产在线播 | 123456成年免费视频 | 天天干夜夜操美女 | 欧美精品黑人性xxxx | 日日摸人人看97人人澡 | 黑色丝袜美女被视频网站 | 色综合天天综合网国产国产人 |