4장. ARM 리눅스

차례
4.1. ARM 프로세서 MMU(Memory Management Unit)
4.1.1. 개요
4.1.1.1. TLB
4.1.1.2. 메모리 접근
4.1.1.3. 변환 테이블
4.1.1.4. 도메인
4.1.2. 변환 절차
4.1.3. 변환 테이블 베이스
4.1.4. 1레벨 읽기
4.1.5. 1레벨 디스크립터
4.1.6. 섹션 디스크립터와 섹션 변환
4.1.7. 페이지 테이블 디스크립터
4.1.8. 2레벨 디스크립터
4.1.9. 큰 페이지 변환
4.1.10. 작은 페이지 변환
4.1.11. 캐시와 쓰기 버퍼 제어
4.1.12. 접근 권한
4.2. Assabet 보드용 커널 컴파일
4.3. ARM 리눅스 Makefile 분석
4.3.1. $(TOPDIR)/arch/arm/Makefile
4.3.2. $(TOPDIR)/arch/arm/vmlinux.lds
4.3.3. $(TOPDIR)/arch/arm/boot/compressed/vmlinux.lds
4.3.4. Log 분석
4.4. 소스 분석
4.4.1. arch/arm/boot/compressed/head.S
4.4.2. arch/arm/kernel/head-armv.S

이 장에선 인텔의 개발 보드인 Assabet을 이용해 ARM 리눅스 커널을 올리는 방법에 대해 알아본다. Assabet 보드는 StrongARM SA1110을 사용하고 LCD 등이 달려 있다. 이전에 SA1100을 사용하던 Brutus 보드와 마찬가지로 리눅스 커널에서 공식 지원하고 있는 보드다.

이미 많은 사람들이 이 보드에서 개발을 하고 자신 만의 플랫폼을 만들기 때문에 표준이라할 수 있다. 게다가 인텔 사이트에서는 친절하게도 회로도를 공개하고 있기 때문에 많은 개발자가 별 수 없이(?) 이 프로세서와 함께 Assabet 보드를 사용한다.