使用ARM的TrustZone技術,針對安全和非安全應用劃分系統(tǒng)
實時關鍵電機控制功能運行µC/OS-II,工作在內核1上,而Linux以及提供控制和通信通道的應用程序運行在內核0上。目的是提供一個隔離域,在處理器內核1中運行功能時不會受到內核0的干擾。對此,內核1 (µC/OS-II)運行在安全環(huán)境中,內核0 (Linux)運行在非安全環(huán)境中。兩個處理器內核通過共享物理存儲器通道進行通信,使用了OpenMCAPI標準。對YHPS系統(tǒng)進行了靜態(tài)劃分,每一操作系統(tǒng)(OS)只可訪問到其分配資源中。存儲器映射被劃分為分配給µC/OS-II或者Linux的區(qū)域,以及由二者共享的區(qū)域。
本文引用地址:http://www.ex-cimer.com/article/164382.htm同樣的,在µC/OS-II和Linux之間劃分了外設,外設是不共享的。主機配置表列出了HPS中的所有AXI主機及其TrustZone安全狀態(tài)。可以設置狀態(tài),這樣,外設總是產生安全或者非安全訪問,或者在每次“會話”基礎上進行安全訪問(例如,專門在每一訪問上設置安全狀態(tài))。
![](http://editerupload.eepw.com.cn/201309/c35dc3553d725e2d91b65fb54ae74bfb.jpg)
配置
每一Cortex-A9處理器都有自己的獨立L1高速緩存,獲取指令和數據,還有一個獨立的定時器/看門狗模塊。處理器共享L2高速緩存、通用中斷控制器(GIC)以及探測控制單元(SCU)。GIC管理優(yōu)先級、中斷和MPCore處理器的連接。可以將其配置為連接每一中斷和某一內核,還可以為每一中斷分配一個TrustZone狀態(tài)。
可以把L2高速緩存配置為以很多不同的方式進行工作。在我們的例子中,L2配置寄存器被設置為只能從安全主機進行寫操作,意味著,Linux不能修改L2高速緩存配置,除非它通過安全狀態(tài)監(jiān)視器來訪問寄存器。主機將L2高速緩存分開,兩個分配給µC/OS-II,六個分配給Linux內核。µC/OS-II內核分配了1Mb的DDR、UART1以及FPGA中的所有外設。所有其他資源都分配給Linux內核。
Linux內核能夠管理ARM處理器的存儲器管理單元,而µC/OS-II不能,因此,修改µC/OS-II BSP代碼以便在啟動期間建立靜態(tài)頁面表。分配給µC/OS-II的資源被放置在頁面表中,µC/OS-II被配置為只使用這一存儲器映射。對于Linux,描述系統(tǒng)的器件樹(在啟動時傳遞給內核)不包括分配給µC/OS-II的存儲器或者外設參考。
SoC的啟動是一個三級過程。第一級涉及到片內啟動ROM,完成內核0的最小配置,使能外部非易失存儲器。在這一存儲器中,它找到并驗證裝入到片內RAM中的“預裝入”軟件鏡像,用于配置SDRAM和SoC器件的外設I/O。器件初始化完成后,預裝入程序裝入并執(zhí)行第二級啟動加載程序(例如,U-boot)。第二級啟動加載程序負責裝入并執(zhí)行最終的OS。我們的AMP系統(tǒng)還有其他的要求,例如,把兩個獨立的操作系統(tǒng)裝入到存儲器中,在SoC中配置TrustZone安全選項等。內核1、UART1、看門狗定時器1中的本地定時器/看門狗外設以及µC/OS-II使用的中斷被配置為安全,因此,只能由µC/OS-II進行訪問。所有其他外設和中斷被配置為非安全。完成這一工作后,代碼啟動內核1運行µC/OS-II,然后在內核0上啟動運行Linux。
使用這一例子中描述的方法,設計人員受益于Altera SoC帶來的器件合并優(yōu)勢,同時滿足了安全關鍵應用嚴格的(TrustZone/硬件要求)軟件分離要求。
參考文獻:
[1]SoC FPGA ARM Cortex-A9 MPCore Processor Advance Information Brief[R/OL].http://www.altera.com.cn/literature/hb/soc-fpga/aib-01020-soc-fpga-cortex-a9-processor.pdf
[2]Functional Description—HPS Memory Controller[R/OL].http://www.altera.com.cn/literature/hb/external-memory/emi_fd_controller_HPS.pdf
[3]Cortex-A9 Microprocessor Unit Subsystem[R/OL].http://www.altera.com.cn/literature/hb/arria-v/av_54006.pdf
linux相關文章:linux教程
存儲器相關文章:存儲器原理
汽車防盜機相關文章:汽車防盜機原理
評論