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

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

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

gic的寄存器 gicv3的LPI中斷

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-11-08 16:09 ? 次閱讀

(1)gicv2的寄存器

gicv2寄存器,都是使用memory-mapped的方式去訪問的

? ?GICD_: distributor的寄存器

? ?GICH_: 虛擬interface的控制寄存器

? ?GICV_:虛擬interface的控制寄存器

? ?GICC_: 虛擬cpu interface的寄存器

1-Distributor register

在這里插入圖片描述

0x100-0x17C — 》 GICD_ISENABLERn

這個地址范圍內(nèi)一共可以表示32個32bit的寄存器(n=0x7c/4+1)

所以n的值為0-31,共可以表示32*32=1024個中斷

提供了2種訪問方式:

? 一種是memory-mapped的訪問

? 一種是系統(tǒng)寄存器訪問

gicv3的LPI中斷

? ?在gicv3中,引入了一種新的中斷類型。message based interrupts,消息中斷 外設(shè),不在通過專用中斷線,向gic發(fā)送中斷,而是寫gic的寄存器,來發(fā)送中斷。這樣的一個好處是,可以減少中斷線的個數(shù),為了支持消息中斷,gicv3,增加了LPI,來支持消息中斷。并且為他分配了特別多的中斷號,從8192開始,移植到16777216

? LPI的中斷的配置,以及中斷的狀態(tài),是保存在memory的表中,而不是保存在gic的寄存器中的。

? ?GICR_PROPBASER:(64bit)保存LPI中斷配置表的基地址

? ?GICR_PENDBASER: (64bit)保存LPI中斷狀態(tài)表的基地址

? 當外部發(fā)送LPI中斷給redistributor,redistributor首先要查該表,也就是要訪問memory來獲取LPI中斷的配置。為了加速這過程,redistributor中可以配置cache,用來緩存LPI中斷的配置信息。

? 因為有了cache,所以LPI中斷的配置信息,就有了2份拷貝,一份在memory中,一份在redistributor的cache中。如果軟件修改了memory中的LPI中斷的配置信息,需要將redistributor中的cache信息給無效掉。

? LPI實現(xiàn)的兩種方法:

? ?使用ITS,將外設(shè)發(fā)送到eventID,轉(zhuǎn)換成LPI 中斷號

? ?forwarding方式,直接訪問redistributor的寄存器GICR_SERLPIR,直接發(fā)送LPI中斷

gicv2的bypass功能

GICv2支持中斷旁路模式,也就是gic外部的FIQ,IRQ直接接到core的FIQ,IRQ上,相當于gic是不使能的。也就是CFGSDISABLE是有效的,將GIC給無效掉。

gicv2支持bypass功能,這樣gic就不起作用了,core的中斷管腳,直接由soc的其他部門信號驅(qū)動。

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120384
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    898

    瀏覽量

    41504
  • LPI
    LPI
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5421
收藏 人收藏

    評論

    相關(guān)推薦

    ARM GIC(一)之ARM soc中斷的處理介紹

    優(yōu)先級中斷,發(fā)送給CPU。當CPU接受到gic發(fā)送的中斷,通過讀取gic寄存器,就可以知道,中斷
    發(fā)表于 04-06 10:12

    ARM GIC(四) 之GICv3架構(gòu)基礎(chǔ)知識介紹

    寄存器訪問方式,實現(xiàn)在core的內(nèi)部?這樣做,是有什么好處?我認為,gicv3的上述安排,第一是為了軟件編寫能夠簡單,通用,第二是為了讓中斷響應(yīng)能夠更快。首先要先了解,在gic
    發(fā)表于 04-06 10:33

    ARM GIC(五)關(guān)于gicv3架構(gòu)的gic stream協(xié)議解析

    interface給redistributor,回clear acknowledge響應(yīng)。?如果此時,cpu讀取IAR寄存器,CPU會獲取到一個假的中斷號。3、兩個中斷redistr
    發(fā)表于 04-07 10:42

    ARM GIC(六)gicv3架構(gòu)中的消息中斷

    gicv3中,引入了一種新的中斷類型。message based interrupts,消息中斷。一、消息中斷外設(shè),不在通過專用中斷線,向
    發(fā)表于 04-07 10:50

    ARM GIC(八)GICv3架構(gòu)的變化

    memory-mapped方式訪問。下圖是GICv3架構(gòu),cpu interface從gic內(nèi)部剝離,實現(xiàn)在PE的內(nèi)部。并且將cpu interface的寄存器,提供了系統(tǒng)寄存器訪問方
    發(fā)表于 04-07 10:59

    ARM GIC(九)GICv3架構(gòu)中的中斷分組

    GICv3架構(gòu)中,對中斷進行了分組。分成了以下三個組:?group0,用于EL3處理的中斷?secure group1:用于secure EL1處理的
    發(fā)表于 04-08 10:00

    ARM GIC(十) GICv3中斷的相關(guān)介紹

    的group0軟中斷這三個寄存器的位域是一樣的,如下圖:?Aff3.Aff2.Aff1:表示軟中斷目的CPU的屬性層次。?TargetList:表示要發(fā)給哪些CPU。?INTID:表示
    發(fā)表于 04-08 10:04

    ARM GIC(十一) gicv3架構(gòu)中的2種安全狀態(tài)

    是影響中斷分組,所使用IRQ和FIQ管腳的映射,以及gic中的寄存器訪問。一、中斷線的映射當gic架構(gòu),使用
    發(fā)表于 04-08 10:07

    ARM GIC(十二) GICv3支持中斷bypass功能

    外部發(fā)送的中斷。在gicv3架構(gòu)描述中,提到了中斷bypass功能,會受到下面幾個配置的影響:一個是,是否運行系統(tǒng)寄存器訪問icc寄存器,也
    發(fā)表于 04-08 10:10

    有關(guān)ARM GICv3中斷控制器的相關(guān)知識介紹

    )LPIGICv3中的新特性,它們在很多方面與其他類型的中斷不同。LPI始終是基于消息的中斷,它們的配置保存在表中而不是
    發(fā)表于 05-26 16:35

    Arm通用中斷控制器GICv3GICv4對虛擬化的支持

    體系結(jié)構(gòu)規(guī)范GIC體系結(jié)構(gòu)版本3和4詳細說明寄存器和行為的描述。 在本指南的最后,您將能夠: ?列出生成虛擬中斷的不同方式。 ?為軟件在CPU接口內(nèi)管理
    發(fā)表于 08-02 10:43

    Arm通用中斷控制器GICv3/v4詳解

    本指南介紹了在GICv3/v4。 中斷是向處理發(fā)出的一個信號,表示發(fā)生了需要處理的事件 具有中斷通常由外圍設(shè)備產(chǎn)生。LPI通常用于產(chǎn)生消息
    發(fā)表于 08-02 09:20

    GICv3GICv4軟件概述

    本文檔以軟件為重點概述了GICv3的功能,并描述了符合GICv3標準的中斷控制器的操作。 它也是關(guān)于如何配置GICv3中斷控制器以在裸機環(huán)境
    發(fā)表于 08-22 08:24

    gicv2與gicv3的區(qū)別

    一、gicv2與gicv3 但是在gicv3之前一直都是使用的giv2,這兩者有什么區(qū)別? 最近在做實驗室的版本兼容,很我一直以為這個gicv2和g
    的頭像 發(fā)表于 11-07 17:54 ?907次閱讀

    gic和ARM Core的連接

    ? ?nVIRQ: 虛擬普通中斷 ? ?nVFIQ: 虛擬快速中斷 (2)gicv3和ARM Core的連接 gicv3 AXI-stream協(xié)議 ? ?
    的頭像 發(fā)表于 11-07 18:07 ?634次閱讀
    <b class='flag-5'>gic</b>和ARM Core的連接