OP-TEE中的安全驅(qū)動(dòng)是OP-TEE操作安全設(shè)備的載體。
TA通過(guò)調(diào)用某個(gè)安全驅(qū)動(dòng)的接口就可實(shí)現(xiàn)對(duì)特定安全設(shè)備的操作。安全驅(qū)動(dòng)在OP-TEE中的軟件框架如圖22-2所示。
(其實(shí)這里,你要搞清楚linux kernel與驅(qū)動(dòng)的關(guān)系,那真的還是蠻簡(jiǎn)單好理解的。但是我不知道~嚶嚶嚶)
系統(tǒng)服務(wù)層并非必需的,主要是為方便管理和上層使用。例如OP-TEE提供了各種各樣的密碼學(xué)算法,每一種算法的實(shí)現(xiàn)可通過(guò)不同的硬件引擎來(lái)完成。
為統(tǒng)一管理,可將這些硬件引擎驅(qū)動(dòng)提供的操作接口統(tǒng)一集成到一個(gè)系統(tǒng)服務(wù)中,而上層用戶只需調(diào)用系統(tǒng)服務(wù)暴露的接口就可實(shí)現(xiàn)對(duì)硬件引擎的調(diào)用。(可能是通過(guò)輸入的參數(shù)進(jìn)行分發(fā))
下面展開講講這個(gè)框架的細(xì)節(jié)。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層在OP-TEE啟動(dòng)過(guò)程中由initcall段的代碼進(jìn)行初始化和啟動(dòng),一個(gè)系統(tǒng)服務(wù)的初始化函數(shù)則是通過(guò)使用service_init宏來(lái)進(jìn)行定義并在編譯時(shí)鏈接到OP-TEE的鏡像文件中。
在編譯OP-TEE時(shí),該初始化函數(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)體變量會(huì)包含用于實(shí)現(xiàn)具體功能的函數(shù)指針變量,這些函數(shù)指針變量指向的函數(shù)就是安全驅(qū)動(dòng)提供給TA調(diào)用的操作接口。
驅(qū)動(dòng)層
OP-TEE啟動(dòng)過(guò)程中會(huì)執(zhí)行各安全驅(qū)動(dòng)的初始化,驅(qū)動(dòng)的初始化函數(shù)是在OP-TEE執(zhí)行initcall段中的內(nèi)容時(shí)被調(diào)用的,在OP-TEE中通過(guò)使用driver_init宏來(lái)告訴編譯器,在編譯時(shí)將driver_init宏傳入的函數(shù)作為某個(gè)驅(qū)動(dòng)的入口函數(shù)保存在鏡像文件的initcall段中。
安全驅(qū)動(dòng)的初始化主要用來(lái)完成安全設(shè)備的寄存器的配置以及私有數(shù)據(jù)的初始化。
如果某個(gè)安全驅(qū)動(dòng)需要系統(tǒng)服務(wù)的配合,則還需要將驅(qū)動(dòng)提供的操作接口連接到系統(tǒng)服務(wù)中的操作接口變量中。
若該驅(qū)動(dòng)不需以系統(tǒng)服務(wù)的方式向上層提供操作接口,則不用將對(duì)應(yīng)接口暴露給系統(tǒng)服務(wù),而是由TA通過(guò)系統(tǒng)調(diào)用的方式直接調(diào)用安全驅(qū)動(dòng)的接口來(lái)操作安全設(shè)備。
driver_init service_init
驅(qū)動(dòng)文件在源代碼中的位置
安全驅(qū)動(dòng)需要被編譯到OP-TEE鏡像文件中,OP-TEE中有專門的目錄來(lái)存放驅(qū)動(dòng)和系統(tǒng)服務(wù)的源代碼。
將驅(qū)動(dòng)編譯到OP-TEE鏡像文件之前還需修改對(duì)應(yīng)的sub.mk文件。
-
接口
+關(guān)注
關(guān)注
33文章
8611瀏覽量
151236 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1840瀏覽量
85307 -
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17500 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4515瀏覽量
70660
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論