ARM64

Category
아이템: ARM64(14)
포스트 갯수14

[리눅스커널] Arm64: VMEMMAP_START, vmemmap, PAGE_OFFSET 위치 조정(v5.4)

By Guillermo Austin Kim | 2021년 8월 8일 | 
리눅스 커널 v5.4 버전부터 가상 주소 맵이 약간 변경됐습니다.그 중 대표적인 속성은 아래 정보입니다. VMEMMAP_START: 0xfffffffeffe00000PAGE_OFFSET: 0xffffff8000000000 이 정보를 직접 어셈블리 코드로 확인해보겠습니다. 관련 코드는 참고로 다음과 같습니다. vmemmap ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT)) 패치 코드 먼저 다음과 같은 패치 코드를 작성합시다. diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.cindex 9af647d..3000332 100644--- a/arch/arm64/mm/

라즈베리파이 폼펙터 싱글보드 컴퓨터 ROC-RK3328-CC 단점 위주 소감

By 잉여 Says | 2018년 10월 15일 | 
라즈베리파이 폼펙터 싱글보드 컴퓨터 ROC-RK3328-CC 단점 위주 소감
Rockchip RK3328 SoC4 ARM Cortex-A53 @ 1.4GHzCryptography Extensions2G + 2P ARM Mali-450 @ 500MHzOpenGL ES 1.1 / 2.0OpenVG 1.1Multi-Media ProcessorDecodersVP9 P2 4K60H.265 [email protected] 4K60H.264 [email protected] 4K60JPEGEncodersH.265 1080P30 or 2x H.265 720P30H.264 1080P30 or 2x H.264 720P30Up to 4GB DDR4-2133 SDRAM2 USB 2.0 Type A1 USB 3.0 Type AGigabit Ethernet3.5mm TRRS AV JackHDMI 2.0MicroUSB Power InMic

[Linux][ARM] Coprocessor(코프로세서) Assembly

By Guillermo Austin Kim | 2018년 5월 23일 | 
ARM 프로세스 내 Coprocessor라는 하드웨어가 있습니다. Co-Processor라는 것은 Co-worker랍니다. CPU 혼자 모든 일을 다 할 수 없으니 Co-Processor가 필요한 것입니다. Co-Processor는 C언어 같이 어떤 코드 흐름을 제어하는 일보다는 ARM Core나 Cache을 콘트롤하는 역할을 수행합니다. 그래서 ARM 프로세스로 칩을 디자인하는 개발자는 Co-Processor를 제어하는 명령어를 달달 외우고 있죠. Co-Processor가 있으니 당연히 Co-Processor하고 대화를 해야 겠죠. Co-Processor에게 말을 거는 방법을 역시 레지스터를 이용해서 주어진 명령어를 실행시키면 됩니다.Co-Processor에게 말을 걸면 Co-Processor가 알아듯

ARM64- Stack Push Userspace -> Kernel Space 코드리뷰

By Guillermo Austin Kim | 2017년 12월 31일 | 
유저 공간에서 실행된 레지스터가 커널 Bottom Stack에 Push 되는 디버깅 정보를 예전 페이지에 업데이트했잖아요.아래와 같은 메모리 덤프를 확인했었죠.(출처:http://rousalome.egloos.com/9966225)NUD:FFFFFFE4DE6A7EB8| 3C 6B 77 2B 46 76 A8 C2 0xC2A876462B776B3CNUD:FFFFFFE4DE6A7EC0| 45 00 00 00 00 00 00 00 0x45 // x0 NUD:FFFFFFE4DE6A7EC8| 80 37 81 AF 7B 00 00 00 0x7BAF813780 // x1NUD:FFFFFFE4DE6A7ED0| 16 00 00 00 00 00 00 00 0x16 // x2NUD:FFFFFF