TRACE32 HSM Debugging

TRACE32
이동: 둘러보기, 검색

Overview

본 자료에서는 AURIX CPU의 Cortex-M3 core로 구성된 HSM(Hardware Security Module) 을 디버깅 하기 위한 방법을 제공합니다.

 

사용환경

HSM 디버깅 환경설정 위한 필요 환경은 다음과 같습니다.

CPU AURIX
TRACE32 PowerView version Tricore, ARM 2014.02 이상 버전
TRACE32 ICD(In Circuit Debugger) = PDMU(Power Debug Modue) PowerDebug USB2 PowerDebug USB3 PowerDebug II
TRACE32 License Module Tricore JTAG cable with add-on ARM License

- PowerView : PC에서 동작하는 Trace32 Software GUI 개발환경의 이름입니다.

- ICD(PDMU) : PC와 통신 및 디버그 인터페이스 신호을 만들어 내는 본체를 통틀어 지칭하는 이름입니다.

- License Module : JTAG License Cable이라고도 하며 License 정보를 가지고 있으며 Target과 연결하기 위해 Cable을 포함하고 있는 삼각형 형태의 모듈


 HSM 모듈 디버깅 유의사항

HSM 모듈을 사용하기 위해서는 반드시 HSM BOOT영역에 이를 Enable 시키기 위한 값이 들어가야 한다. TC27x의 경우 Enable을 위한 정보는 아래와 같습니다.

주소

Enable data value

0xAF100800

0x00000001

0xAF100810

0x00000001

0xAF100870

0x43211234

0xAF100878

0x43211234

만약 해당영역에 잘못된 값을 넣거나 enable 되지 않은 상태에서 HSM User 코드를 프로그래밍 하면 CPU는 Protection 되고 복구가 불가능합니다.

 

How to config

여기서는 Trace32를 이용하여 HSM 디버깅 환경 셋업을 순서대로 진행합니다.

HSM 디버깅 환경 세팅

1) {T32설치경로}\bin\windows\T32start.exe 실행 -> Configuration Tree에서 마우스 우클릭 -> Add -> Configuration 클릭

2) 추가된 Configuration2의 이름을 HSM_Debugging으로 변경후 마우스 우클릭 -> Add -> Podbus Device Chain 선택

3) 추가된 Podbus Device Chain의 이름을 Tricore & HSM으로 변경후 마우스 우클릭 -> Add -> <사용중인 Power Debug Module 이름> 을 선택하여 추가. 이 문서에서는 Power Debug USB2를 이용하여 설명

4) 추가된 Power Debug USB 2에서 마우스 우클릭 -> Add Core 명령을 두 번 수행

5) 추가된 코어 중 첫번째 core의 이름을 Tricore로 변경하고 탭을 확장하여 Target을 Tricore로 선택

6) 추가된 코어 중 두번째 core의 이름을 HSM으로 변경하고 탭을 확장하여 Target을 ARM으로 선택

7) 각 추가된 코어의 속성에서 Advanced Settings -> Intercom Port -> Use Port를 yes로 수정. 해당 Intercom Port가 활성화 되야지만 각 코어에 대한 T32 소프트웨어끼리 통신하는 것이 가능함. 현재 세팅에서 Tricore의 Port Value는 10000, HSM의 Port Value는 10001이 된다.

8) 설정이 모두 완료 되면 Save를 눌러 저장

9) 여기까지 소프트웨어 실행을 위한 기본 설정은 마무리 완료. 이후 Tricore & HSM을 선택하여 우측 상단의 Start 버튼을 클릭하면 두 개의 TRACE32가 동시에 실행됨. Tricore와 HSM의 구분은 TRACE32 메인 화면의 Title을 통해 가능

10) 실행결과

 

HSM 모듈 Enable / Flash Programming

Tricore용 TRACE32 Software

1)     Tricore용 TRACE32 Software에서 {T32설치경로}\demo\tricore\flash\tc27x-hsm.cmm 파일을 이용하여 HSM enable 또는 HSM User 코드 위한 elf파일 다운로드

2)     tc27x-hsm.cmm 에서 HSM 모듈의 User 프로그램을 다운로드 하기 위한 명령

FLASH.ReProgram 0xA0060000--0xA007FFFF

Data.LOAD.auto *

FLASH.ReProgram.off

3)     tc27x-hsm.cmm 에서 HSM 모듈을 Enable 시키기 위한 명령

enableHSM:

  Data.Set D:0xAF100870--0xAF10087F %LE %Long 0x00000000 0x00000000 0x00000000 0x00000000 /DIFF

  LOCAL &found1

  &found1=FOUND()

  Data.Set D:0xAF100870--0xAF10087F %LE %Long 0x43211234 0x00000000 0x43211234 0x00000000 /DIFF

  IF !&found1||!FOUND()

  (

    ; Set HSMBOOTEN only, no protection/exclusive flags are configured.

    FLASH.AUTO 0xAF100800--0xAF100BFF

    Data.Set 0xAF100800 %Long 0x00000001

    Data.Set 0xAF100810 %Long 0x00000001

    Data.Set 0xAF100870 %Long 0x43211234

    Data.Set 0xAF100878 %Long 0x43211234

    FLASH.AUTO.off

  )

4)     {T32설치경로}\demo\tricore\flash\tc27x.cmm 파일을 이용하여 Tricore용 elf 파일 다운로드

ARM용 TRACE32 Software

1)     사용중인 AURIX CPU 이름 및 HSM 디버깅 위한 core 선택

2)     HSM User 프로그램의 디버깅 심볼정보만 다운로드

3)     아래와 같은 cmm 작성하여 설정 가능

sys.cpu tc275tf

sys.CONFIG.core 2. 1.

sys.u

Data.LOAD.Elf "C:\AurixWorkspace\HsmDemo_Tc27xC\2_Out\Tool2ndCpu\HsmDemo_Tc27xC_ArmCortexM3.elf" /nocode /noreg