OP-TEE中的安全驅(qū)動是OP-TEE操作安全設(shè)備的載體。
TA通過調(diào)用某個安全驅(qū)動的接口就可實現(xiàn)對特定安全設(shè)備的操作。安全驅(qū)動在OP-TEE中的軟件框架如圖22-2所示。
(其實這里,你要搞清楚linux kernel與驅(qū)動的關(guān)系,那真的還是蠻簡單好理解的。但是我不知道~嚶嚶嚶)
系統(tǒng)服務(wù)層并非必需的,主要是為方便管理和上層使用。例如OP-TEE提供了各種各樣的密碼學(xué)算法,每一種算法的實現(xiàn)可通過不同的硬件引擎來完成。
為統(tǒng)一管理,可將這些硬件引擎驅(qū)動提供的操作接口統(tǒng)一集成到一個系統(tǒng)服務(wù)中,而上層用戶只需調(diào)用系統(tǒng)服務(wù)暴露的接口就可實現(xiàn)對硬件引擎的調(diào)用。(可能是通過輸入的參數(shù)進(jìn)行分發(fā))
下面展開講講這個框架的細(xì)節(jié)。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層在OP-TEE啟動過程中由initcall段的代碼進(jìn)行初始化和啟動,一個系統(tǒng)服務(wù)的初始化函數(shù)則是通過使用service_init宏來進(jìn)行定義并在編譯時鏈接到OP-TEE的鏡像文件中。
在編譯OP-TEE時,該初始化函數(shù)將被保存到OP-TEE鏡像文件的initcall段中。
至于系統(tǒng)服務(wù)的初始化函數(shù)所要執(zhí)行的內(nèi)容則由開發(fā)者自行決定,一般是在系統(tǒng)服務(wù)的初始化函數(shù)中進(jìn)行該服務(wù)的配置、狀態(tài)量的初始化以及系統(tǒng)服務(wù)提供給上層調(diào)用的操作接口變量的初始化,系統(tǒng)服務(wù)提供的結(jié)構(gòu)體變量會包含用于實現(xiàn)具體功能的函數(shù)指針變量,這些函數(shù)指針變量指向的函數(shù)就是安全驅(qū)動提供給TA調(diào)用的操作接口。
驅(qū)動層
OP-TEE啟動過程中會執(zhí)行各安全驅(qū)動的初始化,驅(qū)動的初始化函數(shù)是在OP-TEE執(zhí)行initcall段中的內(nèi)容時被調(diào)用的,在OP-TEE中通過使用driver_init宏來告訴編譯器,在編譯時將driver_init宏傳入的函數(shù)作為某個驅(qū)動的入口函數(shù)保存在鏡像文件的initcall段中。
安全驅(qū)動的初始化主要用來完成安全設(shè)備的寄存器的配置以及私有數(shù)據(jù)的初始化。
如果某個安全驅(qū)動需要系統(tǒng)服務(wù)的配合,則還需要將驅(qū)動提供的操作接口連接到系統(tǒng)服務(wù)中的操作接口變量中。
若該驅(qū)動不需以系統(tǒng)服務(wù)的方式向上層提供操作接口,則不用將對應(yīng)接口暴露給系統(tǒng)服務(wù),而是由TA通過系統(tǒng)調(diào)用的方式直接調(diào)用安全驅(qū)動的接口來操作安全設(shè)備。
driver_init service_init
驅(qū)動文件在源代碼中的位置
安全驅(qū)動需要被編譯到OP-TEE鏡像文件中,OP-TEE中有專門的目錄來存放驅(qū)動和系統(tǒng)服務(wù)的源代碼。
將驅(qū)動編譯到OP-TEE鏡像文件之前還需修改對應(yīng)的sub.mk文件。
-
接口
+關(guān)注
關(guān)注
33文章
9005瀏覽量
153778 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1918瀏覽量
86950 -
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
17903 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4668瀏覽量
71767
發(fā)布評論請先 登錄
TEE解決了什么問題?
請問Beal環(huán)境下編譯OP-TEE后生成FIP需要哪些文件?
如何將大量電源管理和計時工作從ATF轉(zhuǎn)移到OP-TEE上呢
如何在不使用op-tee的情況下進(jìn)行編譯?
請問HSE op-tee是什么關(guān)系?
OP-TEE無法在鎖定的i.MX6UL上初始化JR怎么解決?
物聯(lián)網(wǎng)終端應(yīng)用TEE的一些思考

安全驅(qū)動示例代碼和實現(xiàn)

OP-TEE的內(nèi)核初始化過程

OP-TEE的內(nèi)核初始化函數(shù)調(diào)用

OP-TEE服務(wù)項的啟動
ARM64位與ARM32位OP-TEE啟動過程的差異
ATF中bl32的啟動方法

OP-TEE的安全存儲的簡介

OP-TEE安全存儲安全文件的格式

評論