Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

9365
557
421924


태그 : armv8 요약보기전체보기목록닫기

1 2 3 4 5 6 7 8 9

[Arm프로세서] Armv8: 시스템 레지스터

Armv8 아키텍처는 범용 레지스터 뿐만 아니라 시스템의 세부 속성을 설정할 수 있는 시스템 레지스터를 정의합니다. 이 중에 자주 사용되는 시스템 레지스터는 잘 익혀둘 필요가 있는데요. 이어서 Arm 스팩 문서를 보면서 시스템 레지스터에 대해 알아봅시다.4.3 System registersIn AArch64, system configuration is ...

[Arm프로세서] Armv8: 스페셜 레지스터

그런데 Armv8에서는 익셉션 레벨 별로 사용되는 레지스터가 있는데 이를 스페셜 레지스터라고 합니다. 그 목록은 다음 그림과 같습니다.  그림 2.4 Armv8(Aarch64) 아키텍처의 스페셜 레지스터 목록Armv7 에서는 각 동작 모드 별로 r13_<mode>/r14_<mode>와 같이 뱅크드된 레지스터가 있듯...

[리눅스커널] IPI Call 요청: SGI(Software Generated Interrupt) 요청 (로우 레벨 뷰)!

저번 포스트에서는 아래 실행 흐름으로 IPI Call을 요청하는 함수를 알아봤습니다.[리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이 레벨 뷰) 이어서 Arm 아키텍처에서 제공하는 SGI를 이용해 IPI Call을 처리하는 아키텍처에 의존적인 루틴을 분석하겠습니다.다음은 gic_ipi_send_mas...

[Arm프로세서] XEN 하이퍼바이저: EL2 익셉션 벡터 핸들러 코드 분석

XEN 하이퍼바이저의 익셉션 벡터 핸들러를 해석하는 방법을 소개했으니 이어서 익셉션 벡터 핸들러의 코드를 분석하겠습니다.먼저 2~14번째 줄을 보겠습니다. 2   26a800: 17fffc00  b 269800 <hyp_sync_invalid>3   26a804: d503201f ...

[Arm프로세서] XEN 하이퍼바이저: 익셉션 핸들러 코드 소개

운영체제나 RTOS 커널의 세부 동작을 파악하려면 익셉션이 유발되면 처리되는 익셉션 벡터 핸들러를 잘 알아야 합니다. 익셉션 벡터 핸들러의 코드를 보면 Armv8 아키텍처에서 정의된 스팩에 따라 익셉션 벡터 핸들러가 구현됐다는 사실을 알 수 있습니다. XEN 하이퍼바이저의 익셉션 벡터 핸들러 코드도 예외는 아닙니다. 게스트 OS와 하이퍼바이저와 통신하는...

[Arm프로세서] XEN 하이퍼바이저 소개

그런데 오픈 소스 기반으로 개발되고 있는 하이퍼바이저가 있는데 그 중에서 가장 많이 사용되는 하이퍼바이저는 XEN입니다. XEN은 오픈 소스 프로젝트라서 누구나 XEN 하이퍼바이저의 코드를 내려받아 빌드해 실행할 수 있습니다. XEN에 대한 소개는 다음 홈페이지에서 확인할 수 있습니다. https://xenproject.org/이번 절에서는 Armv8...

[Arm프로세서] 하이퍼바이저 관점의 익셉션 벡터 테이블 분석하기

이전 절에서 익셉션 벡터 테이블의 스팩을 분석했습니다. 이어서 EL2가 실행되는 하이퍼바이저 관점에서 익셉션 벡터 테이블을 분석하겠습니다.다음은 하이퍼바이저가 실행되는 EL2에서 본 익셉션 벡터 테이블의 동작 방식을 나타낸 표입니다.표 12.2 하이퍼바이저 관점에서 본 익셉션 벡터 테이블'EL2 with SP_EL0' 열의 내용을 분석하겠습니다. 'EL...

[Arm프로세서] 하이퍼바이저 관점으로 익셉션 벡터 테이블 스팩 문서 확인

Armv8 아키텍처는 하이퍼바이저를 지원하기 위해 다양한 기능을 제공합니다. 이전 절에서 살펴 본 HCR_EL2 레지스터와 hvc, wfe, wfi와 같은 명령어가 가장 큰 예입니다. Armv8 아키텍처 관점으로 하이퍼바이저가 어떤 방식으로 동작하는지 파악하려면 알아야 하는 기능들이 있습니다. 이 중에 가장 중요한 내용은 바로 하이퍼바이저의 익...

[Arm프로세서] 하이퍼바이저: HCR_EL2 레지스터에 접근하는 어셈블리 코드 분석

이번에는 HCR_EL2 레지스터를 읽은 예시 코드를 소개합니다.다음은 XEN 하이퍼바이저에서 호출되는 _show_registers() 함수의 어셈블리 명령어입니다.01 000000000025c550 <_show_registers.isra.14>:02  25c550: a9ba53f3  stp x19, x20, [sp, #-96...

[Arm프로세서] 하이퍼바이저: wfe/wfi 명령어

많은 개발자들은 hvc 명령어를 통해서만 EL1에서 EL2로 진입할 수 있다고 알고 있습니다. 사실 그렇지는 않습니다. 게스트 OS에서 하이퍼바이저로 진입하는 다른 방법은 wfe와 wfi 명령어를 실행하는 것입니다.원래 wfe와 wfi 명령어는 Arm 코어가 저전력 모드(low-power mode)으로 실행될 수 있게 동작합니다. HCR_EL2 레지스터...
1 2 3 4 5 6 7 8 9