태그>arm프로세서(총 124개의 글)
'arm프로세서' 관련 최근글
-
- [Arm프로세서][Armv7] 트러스트존(TrustZo..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/30 06:22
이번에는 Armv7 아키텍처에서 정의된 전체 동작 모드를 보면서 논 시큐어 월드에서 시큐어 월드로 실행 흐름이 바뀌는 과정과 이 때 SCR.NS 비트가 어떻게 바뀌는지 알아봅시다. 그림 11.4 모드, privilege 레..
- [Arm프로세서][Armv7] 트러스트존(TrustZo..
-
- [Arm프로세서][Armv7] 트러스트존(TrustZo..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/30 06:19
트러스트존 아키텍처에서 논 시큐어 월드와 시큐어 월드를 기준으로 트러스트존의 주요 개념을 설명합니다. 그런데 Arm 아키텍처의 스팩 문서를 살펴보면 시큐어 상태와 논 시큐어 상태라는 용어를 만나게 됩니다..
- [Arm프로세서][Armv7] 트러스트존(TrustZo..
-
- [Arm프로세서] 트러스트존(TrustZone): 시..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/29 18:54
대부분 트러스트존을 설명할 때 논 시큐어 월드와 시큐어 월드의 개념과 smc 명령어까지만 다루는 경우가 많습니다. 하지만 세세한 구현 방식을 파악하려면 모니터 모드와 시큐어 모드는 물론 익셉션 벡터 테이블..
- [Arm프로세서] 트러스트존(TrustZone): 시..
-
- [Arm프로세서] 트러스트존(TrustZone): 시..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/28 06:21
논 시큐어 월드에서 시큐어 월드로 진입하려면 smc 명령어를 실행해야 합니다. 먼저 arm 스팩 문서를 분석하면서 smc 명령어를 알아봅시다. B1.9.5 Secure Monitor Call (SMC) exceptionThe Secure..
- [Arm프로세서] 트러스트존(TrustZone): 시..
-
- [Arm프로세서] 트러스트존(TrustZone)의 유래
-
Arm Linux Kernel Hacks by AustinKim|2021/12/27 10:13
트러스트존의 유래를 소개하려면 먼저 시스템의 공격을 방지하기 위한 시스템의 설계 과정에 대해 언급할 필요가 있습니다. 2000년 초부터 다양한 소프트웨어 기술들이 소개되고 발전되는데, 이에 비례해 해킹 기..
- [Arm프로세서] 트러스트존(TrustZone)의 유래
-
- [Arm프로세서] 트러스트존(TrustZone)이 ..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/21 08:01
IT 기술이 발전하면서 사회 전반적으로 많은 분야에 소프트웨어가 활용되고 있습니다. 인터넷 뱅킹에서 학교 수업까지 우리 생활에서 프로그램을 자연스럽게 사용하고 있습니다. 이에 비례해 하드웨어에서 소프..
- [Arm프로세서] 트러스트존(TrustZone)이 ..
-
- [Arm프로세서] Armv8: XEN 하이퍼바이저에서 ..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/14 09:53
EL1에서 실행되는 리눅스 커널과 마찬가지로, EL2에서 구동되는 XEN 하이퍼바이저도 익셉션 레벨을 읽어서 제어하는 코드를 볼 수 있습니다. 이번에는 EL2에서 구동되는 XEN 하이퍼바이저에서 익셉션 레벨을..
- [Arm프로세서] Armv8: XEN 하이퍼바이저에서 ..
-
- [Arm프로세서] Armv8: 리눅스 커널에서 익셉션 ..
-
Arm Linux Kernel Hacks by AustinKim|2021/12/07 06:48
먼저 리눅스 커널이 부팅하는 과정에서 익셉션 레벨을 읽어서 제어하는 루틴을 소개합니다. Armv8 기반 리눅스 커널이 부팅을 할 때 el2_setup 레이블이 호출되는데, 이 레이블에서는 현재 익셉션 레벨을 읽어..
- [Arm프로세서] Armv8: 리눅스 커널에서 익셉션 ..
-
- [Arm프로세서] Armv8 익셉션 레벨과 privilege l..
-
Arm Linux Kernel Hacks by AustinKim|2021/10/22 21:28
Armv8 아키텍처는 PL0-PL3까지 4개의 privilege levels(접근 권한)을 제공합니다. 여기서 소개하는 privilege levels은 Armv7 아키텍처에서 다룬 내용과 거의 유사합니다. [정보]privilege levels은 ..
- [Arm프로세서] Armv8 익셉션 레벨과 privilege l..
-
- [Arm프로세서] Armv7: subs와 movs 명령어를 실행해 Arm 동작 모드 변경
-
Arm Linux Kernel Hacks by AustinKim|2021/10/01 11:26
Arm 동작 모드를 바꾸는 다른 방법은 spsr 레지스터의 [7:0] 비트를 변경하고 다음과 같은 형식의 명령어를 실행하는 것입니다. ❑ subs pc, lr, #4 ❑ movs pc, lr sub은 뺄셈 연산, mov는 레지스터의 값을 이동시키는 연산을 수행하는 명령어입니..
- [Arm프로세서] Armv7: subs와 movs 명령어를 실행해 Arm 동작 모드 변경
-
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 -..
-
Arm Linux Kernel Hacks by AustinKim|2021/09/01 11:33
6.4 절에서 Armv7 아키텍처에서 다룬 AAPCS는 실무에 적용할 만한 실용적인 내용이 많다고 설명했습니다. Armv8 아키텍처의 AAPCS도 마찬가지입니다. 이번 절에서는 Armv8 아키텍처의 AAPCS에서 성능 ..
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 -..
-
- [Arm프로세서] AAPCS: Armv8: 함수를 호출할 때..
-
Arm Linux Kernel Hacks by AustinKim|2021/08/31 08:54
SP 레지스터, X30 레지스터와 더불어 눈여겨봐야 할 레지스터가 X0-X7 레지스터입니다.함수를 호출할 때 전달되는 인자는 X0-X7 레지스터에 저장되고, 함수가 반환하는 값은 X0 레지스터로 저장되기 때문입..
- [Arm프로세서] AAPCS: Armv8: 함수를 호출할 때..
-
- [Arm프로세서] AAPCS: Armv8: SP(스택 포인..
-
Arm Linux Kernel Hacks by AustinKim|2021/08/29 22:25
SP는 스택 포인터(Stack Pointer) 레지스터라고 하는데, Armv8 아키텍처에서는 SP_ELn로 표기합니다. SP_ELn 레지스터와 익셉션 레벨 6장에서는 SP은 프로세스의 스택 공간 내에서 업데이트된다고 ..
- [Arm프로세서] AAPCS: Armv8: SP(스택 포인..
-
- [Arm프로세서] AAPCS: Armv8: AAPCS와 관련..
-
Arm Linux Kernel Hacks by AustinKim|2021/08/29 22:24
지금까지 AAPCS와 관련된 레지스터인 SP_ELn, X30 그리고 X0-X7 레지스터에 대해 알아봤습니다. 또한 서브 루틴을 호출할 때 실행되는 어셈블리 명령어를 소개했습니다. 이번 절에서는 어셈블리 명령어를..
- [Arm프로세서] AAPCS: Armv8: AAPCS와 관련..
-
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 ..
-
Arm Linux Kernel Hacks by AustinKim|2021/08/28 09:33
마지막으로 AAPCS와 연관된 명령어로 RET 에 대해 알아봅시다. 다음은 Arm 스팩 문서에서 명시된 RET 명령어에 대한 내용입니다. C6.2.219 RET Return from subroutine branches unconditionally to..
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 ..