TRACE32을 활용한 

System Memory Management Unit(SMMU)디버깅

©everythingpossible/123RF.com


TRACE32를 사용하여 Arm SMMU를 쉽고 완벽하게 디버깅할 수 있습니다.

Arm Cortex-A 계열 코어가 적용된 최신 SoC들은 대부분 System Memory Management Unit (SMMU)가 적용되어 있으며 TRACE32를 사용하여 SMMU를 쉽게 디버깅할 수 있습니다.

SMMU Arm 기반의 칩에 설계된 블록으로 Hypervisor에 의해서 관리되는 Guest OS를 동작시키는 가상화 시스템의 중요한 구성 요소입니다. 이러한 가상환경에서는 다양한 주변장치가 DMA(Direct Memory Access)를 실행할 수 있도록 가상 주소와 실제 물리주소를 매칭해주어야 하는데 SMMU는 이러한 기능을 담당하고 있습니다.

Arm SMMU를 효율적이고 편리하게 디버깅할 수 있도록 TRACE32는 전용 명령어와 스크립트 및 PowerView GUI를 제공하고 있으며 SMMU 구성을 위해 쉽고 직관적인 인터페이스가 제공됩니다. 또한 SMMU의 레지스터와 필드 명을 보는 것과 같이 다양한 이벤트와 fault condition, 주소변환에 대한 Stage-1/2 페이지테이블 및 Stream Sub-stream 설정 등을 확인함으로써 빠른 디버깅이 가능하도록 도와줍니다.

현재는 MMU-400/401/500 MMU-600이 완벽히 지원되며 MMU-700이 곧 지원될 예정입니다.

 “SMMU의 복잡한 구성을 Decoding하기 위해서는 여러 OS간의 상호작용을 이해하고 이에 필요한 상세한 지식이 필요합니다. 하지만 TRACE32를 통해서 복잡한 SoC를 쉽게 디버깅하고 추적할 수 있도록 효율적인 솔루션을 제공하게 되었으며. TRACE32를 통해 사용자는 디버깅하고 개발하는데 만 집중할 수 있습니다” – Dr. Philipp Kröner (Lauterbach 수석 시스템 엔지니어)

Arm SMMU 지원에 대하여 자세한 정보가 필요하거나 기술지원이 필요하실 경우 한컴MDS로 연락해 주시면 됩니다.


[SMMU 디버깅 메뉴]


[SMMU Steam 테이블 분석]