[Arm프로세서] 트러스트존(TrustZone): 시큐어 월드의 익셉션 벡터 핸들러 구현
Post
원문 보기 →[Arm프로세서] 트러스트존(TrustZone): 시큐어 월드의 익셉션 벡터 핸들러 구현
Armv7 아키텍처에서 트러스트존의 기능을 제대로 활용하려면 3개의 익셉션 벡터 핸들러가 구현돼 있어야 합니다. 이 내용을 다음 그림을 보면서 알아봅시다. 그림 11.5 시큐어 월드와 연관된 익셉션 벡터의 위치 먼저 그림의 가장 왼쪽 윗 부분에 있는 VBAR(NS)는 논 시큐어 상태에서 정의된 익셉션 벡터의 베이스 주소를 나타냅니다. 트러스트존의 개념을 배제하고 익셉션 벡터를 떠올리면 이 부분이 익셉션 벡터의 베이스 주소인 것입니다. 이번에는 왼쪽 아랫 부분에 보이는 MVBAR(NS)는 모니터 모드에서 처리되는 익셉션 벡터이 베이스 주소를 나타냅니다. 논 시큐어 상태에서 smc 명령어를 실행하면 MVBAR(NS) 주소에 +0x8을 더한 주소로 프로그램 카운터가 브랜치됩니다. 마지막으로 가장 오른쪽에
Related Posts
3 posts[Arm프로세서] GIC: 인터럽트 소스와 타입
GIC는 4가지 타입의 인터럽트 소스를 처리하며 그 종류는 다음 테이블에서 확인할 수 있습니다. 표 16.2 GIC를 구성하는 인터럽트 소스의 종류 GIC는 4가지 인터럽트 입력을 처리하는데 기능에 따라 다음과 같이 분류할 수 있습니다. ● PPI, SPI, LPI: 외부 I/O 디바이스에서 발생하는 하드웨어 인터럽트 ● SGI: 외부 I/O 장치가 아닌 소프트웨어적으로 유발되는 인터럽트 외부 I/O 장치에서 인터럽트가 발생하면 SPI나 PPI를 통해 CPU 코어로 전달됩니다. 먼저 SPI와 PPI에 대해 알아볼까요?
[Arm프로세서] GIC는 왜 배워야 할까?
Arm 아키텍처와 관련된 주제로 세미나를 진행하면 참석자들은 다음과 같은 질문을 종종 합니다. ● FIQ는 어떻게 설정할까? ● 시큐어 인터럽트는 어떻게 설정해야 할까? 이런 질문에 대해 답하려면 GIC(Generic Interrupt Controller)를 알아야 합니다. GIC를 구성하는 주요 기능(레지스터, 명령어)을 배우면 위에서 소개한 질문에 모두 답할 수 있습니다. 이 밖에도 리눅스 커널 드라이버의 세부 동작 방식을 파악하려면 GIC를 알아야 합니다. ● IPI(Inter-Processor Interrupt Call)의 세부 동작 원리 ● Arch 타이머의 구동 원리 Arm 아키텍처를 이루는 주요 기능을 심도있게 파악하거나
[Arm프로세서] GIC: 인터럽트 콘트롤러가 필요한 이유
인터럽트 콘트롤러가 필요한 이유는 무엇일까요? 컴퓨터는 다음과 같이 구성돼 있기 때문입니다. ● CPU ● 메모리 ● I/O 장치 마이크로 프로세서는 CPU와 메모리를 깊이 있게 다룹니다. 그런데 실제 고객이 사용하는 제품은 키보드나 마우스와 같은 외부 I/O 장치가 필요합니다. 외부 I/O 장치를 CPU가 다양한 방식으로 제어하는데, 이 중 가장 효율적인 방법이 인터럽트입니다. 예를 들어 휴대폰에서 터치 화면을 만지면 터치 인터럽트가 유발돼 CPU 코어에게 터치가 눌렸다는 사실을 알립니다. 또한 노트북에서 마우스나 키보드를 움직이면 인터럽트를 통해 CPU와 통신합니다. 외부 I/O 장치가 인터럽트를 올려주면 이를 통해(Consolidation)해서 CPU에


