2013-05-22 1 views
1

아래의 ARM 문서 웹 사이트에서 ZedBoard의 "Secure world"및 "Normal world"를 실행하는 TrustZone 예제를 구현하는 방법을 알고 있습니까? 주제합니다 (ZedBoard 실행중인 트러스트 존 (TrustZone))도 도움이 될 것입니다ZedBoard에서 ARM TrustZone Secure/Normal world 예제 실행

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15417.html

ZedBoard은 자일링스가 있습니다.. ZedBoard에 Zynq® -7000 모든 프로그래머블 SoC를 듀얼 ARM® 코어 텍스 ™ -A9 MP 코어 ™ 추가 정보 여기에 있습니다 :

http://www.zedboard.org/content/overview

+0

대용량입니다. 여러 가지 문제가 있습니다. ** TrustZone ** 자체는 ARM 코어를 포함합니다. 그런 다음 SOC에 주변 장치가 있습니다. 각 * BUS 마스터 *와 * 슬레이브 *는 보호가 필요하며 이는 SOC와 관련이 있습니다. 주제에 [book] (http://stackoverflow.com/faq)을 쓸 수 있습니다. 질문의 범위를 줄여야합니다. 다른 [tag : trust-zone] 질문을 참조하십시오. –

+0

Zync에 포트가 없지만 관련성이 있습니다. [Fiasco 기능] (http://os.inf.tu-dresden.de/fiasco/features.html) –

답변

4

이것은 광범위한 주제입니다. 다음 정보 중 일부가 도움이되기를 바랍니다.

먼저 de-jargon으로 조금 떨어져 SOC == system-on-a-chip.

보드 제조업체 인 Digilent는 자일링스 툴 체인에 액세스 할 수있는 경우 보드 용 지원 파일을 제공합니다. 따라서 먼저 http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD으로 이동하면 "Linux Hardware Design for ISE"라는 파일 두 개가 < 버전 번호 >입니다. 또한

당신이 자일링스/< 버전 번호 > /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 포트에 연결하는 것이거나 전통적으로 "주변기기"라고 생각하는 것이 아닙니다.

자습서 끝 부분에는 주변 기기의 데이터를 읽는 데 도움이되는 링크가 있습니다.

처음 다운로드 한 압축 파일에 포함 된 system.xmp 파일을 사용하여 모든 단계를 반복하면 모든 어려운 작업이 완료되었음을 알 수 있습니다. 이미 TrustZone에서 작동하는 AXI 버스에 플러그인되어 있고 인터럽트 컨트롤러를 사용할 준비가되었습니다. 잠깐만 기다려주세요. 잠깐 기다려주세요.

하지만 그 hello world 기기로 무엇을 할 예정입니까? 어셈블리에있는 자습서를 살펴 본다면 주석에 "보안 구성 레지스터"라는 것이 많이 있습니다. 프로세서 설명서 (리소스 섹션의 http://www.arm.com/products/processors/cortex-a/cortex-a9.php)를보고 "TrustZone extensions"이라는 용어를 찾으면 (현재는 변경 될 수 있음이 분명하지만 34 페이지)이 레지스터를 설명하는 다른 페이지에 대한 링크를 찾을 수 있습니다. 이것은 튜토리얼에서 사용하는 것과 같은 레지스터입니다. 이론 상으로는 신뢰할 수있는 실행 환경을 설정했다면 이제 hello world 튜토리얼을 작동시킬 수 있습니다 (주로 당신이 할 일을하고 싶을 것입니다 vhdl 또는 verilog 코드를 사용하여 어셈블리를 작성하고 C에서 읽기 쉬운 결과를 노출하십시오.

이제 방금 언급 한 모든 내용을 통해 AXI 버스의 TrustZone 데이터에 액세스 할 수 있습니다. 이것으로 흥미로운 것을하기 위해서, 당신은 실제로 읽을 수있는 안전한 세계와 정상 세계를 만들어야 할 것입니다. 그렇지 않으면 데모를 함께 쓰면 "Hello World from Hello World"(또는 기능이 잘못됨)가 인쇄됩니다. 따라서이 튜토리얼을 압축 해제하고 소스를 실제로 읽으면 배당금을 지불하게됩니다.

내 답변은 아직 완성되지 않았지만, Hello World 튜토리얼은 정상 세계 (그리고 아마도 모니터 세계)를 만드는 법을 가르쳐주기 위해 설계된 것이 아니기 때문에 불완전합니다. ReadMe.txt에서 명시 적으로 말합니다. 따라서 소스를 읽는 것은 도움이되지 않습니다. 이를 위해서는 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/index.html 링크가 필요합니다. 거기에 많은 정보가 있지만 참조 용으로 의도 된 것이며 처음 두 장은 저의 겸허 한 견해로는 "건너 뛸 수있는 맛"이라고 부르는 것입니다. 비록 당신이 그것을 낭비 할 시간이 있다면 그것은 일반적으로 보안 이론만큼 매력적이고 유익합니다. 3 장에서는 TrustZone을 개발하는 방법을 설명하기 시작합니다.

내가 제공 한 정보는이 문제를 귀하에게 더 적은 권한 문제로, 그리고 교육 문제로 바꾸기를 바랍니다. 나는 아직도이 물건에 대해 교육하고있다.