中断/gic代码导读:在哪里配置安全中断的?
生活随笔
收集整理的這篇文章主要介紹了
中断/gic代码导读:在哪里配置安全中断的?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思考:在哪里配置安全中斷的? 在哪里配置中斷的G0、G1NS、G1S分組的?
1、optee
在optee中有一段默認的配置,將0-7配置成G1NS,8-15配置成G1S,16-31配置成G1NS,32之后的也全部都是G1NS
但是這段配置不一定會被調用,gic_init()由平臺的main_init_gic()函數調用,在大多數的場景下,gic_init()是不會被調用的。
如下也只是列舉了plat-rockchip平臺對gic_init()的調用。
不過呢,在optee中新增一個中斷時,會將該中斷號配置成G1S
2、ATF
ATF軟件中定義了三種類型的中斷
- INTR_TYPE_S_EL1 //給secure EL1使用的中斷,會設置成G1S
- INTR_TYPE_EL3 //給EL3使用的中斷,會設置成G0
- INTR_TYPE_NS //給non-secure EL1使用的中斷,會設置成G1NS
ATF中提供了一個API,可以設置中斷的類型
plat_ic_set_interrupt_type(map->intr, INTR_TYPE_EL3);
gicv3_set_interrupt_type()的原型如下所示:
總結
以上是生活随笔為你收集整理的中断/gic代码导读:在哪里配置安全中断的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [HOW TO]-ubuntu20.04
- 下一篇: armv8/arnv9的aarch64架