這是一個廣泛的話題。希望下面的一些信息會有所幫助。
首先,我們來談談一下SOC ==系統芯片。
如果您有權訪問賽靈思工具鏈,則該董事會的製造商Digilent擁有一些支持文件。因此,首先,如果您訪問http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD,底部會出現兩個名爲「ISE的Linux硬件設計」的文件<版本號>。
而且假設你正在使用的Xilinx開發工具,如果你瀏覽到賽靈思/ <版本號> /ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/axi_interconnect_v1_06_a/doc/ds768_axi_interconnect.pdf,你會發現在AXI信息你的主板使用的中斷控制器這包括它支持TrustZone和實際使用它的一些信息。
接下來,如果你去http://zedboard.org/content/creating-custom-peripheral,你會發現一些關於製造「外圍」設備的說明。我把它放在引號中,因爲設備實際上完全存在於可編程邏輯中;這不是你插入微型USB端口或你傳統上認爲是「外設」的東西。
在本教程的最後,還有一個鏈接可以幫助您從外設讀取數據。
如果您重複所有這些步驟以及您最初下載的zip中包含的system.xmp文件,那麼您會注意到所有繁重的工作已經完成。你已經插入並準備好去AXI總線上的中斷控制器,它已經可以和TrustZone一起工作了,隨時準備好,並等待你將一個小小的Hello World設備連接到它。
但是你打算怎麼處理這個hello world設備?如果您在程序集中查找鏈接的教程,您會在評論中看到很多關於稱爲「安全配置寄存器」的內容。如果您查看處理器的文檔(在此處的資源部分中,http://www.arm.com/products/processors/cortex-a/cortex-a9.php)並搜索術語「TrustZone擴展」(當前是第34頁,但顯然這可能會發生更改),您會找到詳細說明此寄存器的另一頁的鏈接。這與他們在本教程中使用的註冊表相同,因此從理論上講,如果您設置了可信的執行環境,那麼現在可以製作hello world教程(大多數情況下,您可能希望執行他們的操作使用vhdl或verilog代碼進行彙編,並將結果暴露在易於在C中讀取的地方)。
現在我剛剛提到的所有內容都只能讓您訪問AXI總線中的TrustZone數據。爲了做到這一點有趣,你將不得不創造一個安全的世界和正常的世界來閱讀。否則,您放在一起的任何演示將僅打印「來自Secure World的Hello」(或功能不正確)。所以這就是解壓你鏈接到的教程並真正閱讀他們的源代碼將會帶來好處的地方。
儘管我的回答到目前爲止還不完整,因爲您鏈接的Hello World教程並非旨在教您如何創建正常世界(也可能是監控世界)。它在ReadMe.txt中明確表示。所以閱讀源代碼不會幫助你。爲此,您將需要鏈接http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/index.html。這裏有很多信息,但它的目的是作爲參考,前兩章,我的愚見,正是我喜歡稱之爲「可滑動的味道文本」。雖然如果你確實有時間浪費一些信息,那麼就一般的安全理論而言,這些內容是非常有趣的。第3章將開始教你如何開發TrustZone。
但希望我提供的信息能夠將您的權限問題轉化爲更少的問題,並解決更多的教育問題。我仍然在教育自己這個東西。
這是一個很大的問題。涉及各種問題。 ** TrustZone **本身涉及ARM內核。然後你的SOC上有外設。每個* BUS master *和* slave *都需要保護,這是SOC特定的。你可以在這個主題上寫一個[book](http://stackoverflow.com/faq)。您需要縮小問題的範圍。看到一些其他的[標籤:信任區]問題。 –
沒有端口到Zync,但相關。 [Fiasco功能](http://os.inf.tu-dresden.de/fiasco/features.html) –