[trustzone]-TZC400学习总结
★★★ 個人博客導(dǎo)讀首頁—點擊此處 ★★★
文章目錄
- 1、系統(tǒng)架構(gòu)圖
- 2、tzc400的硬件框圖
- 3、FPIDs and NSAIDs
- 4、region setup
- 5、NSAID
思考:
如果硬件是這種連接cpu–>tzc–>dmc–>ddr, 那么配置某塊region對cpu的nsaid權(quán)限后,cpu再次讀寫該region范圍的內(nèi)存時,cache中已經(jīng)緩存了該數(shù)據(jù),那么這個數(shù)據(jù)流在cache中就完成了,不會經(jīng)過TZC,那么是怎么保證安全的呢?
1、系統(tǒng)架構(gòu)圖
我們先看一張系統(tǒng)架構(gòu)圖,了解一下TZC400的作用或位置,其實就是下core和DDR(DMC)之間,添加了一個TAC, 其作用其實就是memory Filter。
2、tzc400的硬件框圖
從圖中可以看出
- apb接口 : 用于cpu讀寫tzc-400的寄存器;
- ACE-Lite接口 : TZC400的通過ACE-Lite接口接到Master和DDR中間,
對Master訪問DDR進(jìn)行filter控制 : 一塊TZC400支持0-x個filter,x一般是1、2、3 - 也就是說,tzc400中,有一個control unit單元、x個filter unix單元;
- 一個TZC400,支持9個region(包含region0)
那么最多支持4個Filter和最多支持9個region, Filter和Region到底是什么關(guān)系呢?
什么關(guān)系都不是!!!
Filter就是Filter,Region就是Region,無論您是幾個Filter,一個TZC最多只支持9個region。
因為有著不同類型的Master,都需要連接到TZC上,所以才需要的多個Filter。 如下圖所示便有一個示例:
- Core和GPC 通過ACE接口與Filter0相連
- DMA/LCD 通過AXI接口與Filter1相連
3、FPIDs and NSAIDs
對應(yīng)每一個filter unit, TZC400提供了兩種identity path :FPIDs和NSAIDs
- Fast Path IDentity
- Non-secure Access IDentity
4、region setup
Region 0 永遠(yuǎn)是enable的,整塊DDR中未設(shè)置region的區(qū)域,都屬于region 0.
建立一塊region,需要配置:Top address、Base address、Region enables、Secure access permissions、Non-secure ID filtering
region的overlap規(guī)則:
- 不在Regionx(x=1-8)范圍內(nèi)的地址,屬于region0
- 在同一個Filter中,Regionx(x=1-8)不能有互相覆蓋的情況,
如果進(jìn)行了overlap的配置,那么當(dāng)訪問該地址時,將產(chǎn)生一個中斷,暗示 overlapping access - 不同F(xiàn)ilter中的Regionx(x=1-8)可以相互overlap
secure access permissions的權(quán)限參見 region_attributes寄存器
nsaid權(quán)限訪問的路由規(guī)則 : 先檢查Master的身份,若是secure發(fā)起的訪問,則去檢查Secure access permissions, 如果是non-secure發(fā)起的訪問,則取檢查nsaid權(quán)限
5、NSAID
對于Non-Secure的訪問,NSAID從何而來?
其實如果是Non-Secure發(fā)起的訪問(NSAccess_Identifiers為True),那么AWNSAID 和 ARNSAID的接口就必需提供.
- 如果Master支持nsaid,那么它會自動提供AWNSAID 或ARNSAID,
- 如果Master不支持nsaid,那么可以在SOC設(shè)計的時候,在系統(tǒng)寄存器種增加NSAID標(biāo)志位,該Master發(fā)起讀寫時,則自動傳送相關(guān)NSAID value
如下是AMBA-AXI總線協(xié)議中nsaid相關(guān)的bit位
與之對應(yīng)的TZC400接口,每個Filter都有NSAIDR0[3:0]、NSAIDW0[3:0]、NSAIDRx[3:0]、NSAIDWx[3:0]、
總結(jié)
以上是生活随笔為你收集整理的[trustzone]-TZC400学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python常用指令速查
- 下一篇: [reference]-ARM/TEE/