關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > 設(shè)計(jì)應(yīng)用 > 使用ARM的TrustZone技術(shù),針對安全和非安全應(yīng)用劃分系統(tǒng)

使用ARM的TrustZone技術(shù),針對安全和非安全應(yīng)用劃分系統(tǒng)

——
作者:StefanoZammattio CliveDavies 時(shí)間:2013-08-28 來源:電子產(chǎn)品世界 收藏

  實(shí)時(shí)關(guān)鍵電機(jī)控制功能運(yùn)行µC/OS-II,工作在內(nèi)核1上,而Linux以及提供控制和通信通道的應(yīng)用程序運(yùn)行在內(nèi)核0上。目的是提供一個(gè)隔離域,在處理器內(nèi)核1中運(yùn)行功能時(shí)不會(huì)受到內(nèi)核0的干擾。對此,內(nèi)核1 (µC/OS-II)運(yùn)行在環(huán)境中,內(nèi)核0 (Linux)運(yùn)行在非環(huán)境中。兩個(gè)處理器內(nèi)核通過共享物理存儲(chǔ)器通道進(jìn)行通信,使用了OpenMCAPI標(biāo)準(zhǔn)。對Y系統(tǒng)進(jìn)行了靜態(tài)劃分,每一操作系統(tǒng)(OS)只可訪問到其分配資源中。存儲(chǔ)器映射被劃分為分配給µC/OS-II或者Linux的區(qū)域,以及由二者共享的區(qū)域。

本文引用地址:http://butianyuan.cn/article/164382.htm

  同樣的,在µC/OS-II和Linux之間劃分了外設(shè),外設(shè)是不共享的。主機(jī)配置表列出了中的所有AXI主機(jī)及其狀態(tài)??梢栽O(shè)置狀態(tài),這樣,外設(shè)總是產(chǎn)生安全或者非安全訪問,或者在每次“會(huì)話”基礎(chǔ)上進(jìn)行安全訪問(例如,專門在每一訪問上設(shè)置安全狀態(tài))。

  配置

  每一Cortex-A9處理器都有自己的獨(dú)立L1高速緩存,獲取指令和數(shù)據(jù),還有一個(gè)獨(dú)立的定時(shí)器/看門狗模塊。處理器共享L2高速緩存、通用中斷控制器(GIC)以及探測控制單元(SCU)。GIC管理優(yōu)先級、中斷和MPCore處理器的連接??梢詫⑵渑渲脼檫B接每一中斷和某一內(nèi)核,還可以為每一中斷分配一個(gè)狀態(tài)。

  可以把L2高速緩存配置為以很多不同的方式進(jìn)行工作。在我們的例子中,L2配置寄存器被設(shè)置為只能從安全主機(jī)進(jìn)行寫操作,意味著,Linux不能修改L2高速緩存配置,除非它通過安全狀態(tài)監(jiān)視器來訪問寄存器。主機(jī)將L2高速緩存分開,兩個(gè)分配給µC/OS-II,六個(gè)分配給Linux內(nèi)核。µC/OS-II內(nèi)核分配了1Mb的DDR、UART1以及中的所有外設(shè)。所有其他資源都分配給Linux內(nèi)核。

  Linux內(nèi)核能夠管理處理器的存儲(chǔ)器管理單元,而µC/OS-II不能,因此,修改µC/OS-II BSP代碼以便在啟動(dòng)期間建立靜態(tài)頁面表。分配給µC/OS-II的資源被放置在頁面表中,µC/OS-II被配置為只使用這一存儲(chǔ)器映射。對于Linux,描述系統(tǒng)的器件樹(在啟動(dòng)時(shí)傳遞給內(nèi)核)不包括分配給µC/OS-II的存儲(chǔ)器或者外設(shè)參考。

  SoC的啟動(dòng)是一個(gè)三級過程。第一級涉及到片內(nèi)啟動(dòng)ROM,完成內(nèi)核0的最小配置,使能外部非易失存儲(chǔ)器。在這一存儲(chǔ)器中,它找到并驗(yàn)證裝入到片內(nèi)RAM中的“預(yù)裝入”軟件鏡像,用于配置SDRAM和SoC器件的外設(shè)I/O。器件初始化完成后,預(yù)裝入程序裝入并執(zhí)行第二級啟動(dòng)加載程序(例如,U-boot)。第二級啟動(dòng)加載程序負(fù)責(zé)裝入并執(zhí)行最終的OS。我們的AMP系統(tǒng)還有其他的要求,例如,把兩個(gè)獨(dú)立的操作系統(tǒng)裝入到存儲(chǔ)器中,在SoC中配置安全選項(xiàng)等。內(nèi)核1、UART1、看門狗定時(shí)器1中的本地定時(shí)器/看門狗外設(shè)以及µC/OS-II使用的中斷被配置為安全,因此,只能由µC/OS-II進(jìn)行訪問。所有其他外設(shè)和中斷被配置為非安全。完成這一工作后,代碼啟動(dòng)內(nèi)核1運(yùn)行µC/OS-II,然后在內(nèi)核0上啟動(dòng)運(yùn)行Linux。

  使用這一例子中描述的方法,設(shè)計(jì)人員受益于Altera SoC帶來的器件合并優(yōu)勢,同時(shí)滿足了安全關(guān)鍵應(yīng)用嚴(yán)格的(TrustZone/硬件要求)軟件分離要求。

  參考文獻(xiàn):
  [1]SoC 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— 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相關(guān)文章:linux教程


存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


汽車防盜機(jī)相關(guān)文章:汽車防盜機(jī)原理

上一頁 1 2 下一頁

關(guān)鍵詞: ARM TrustZone 安全 FPGA HPS 201309

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉