setup_arch()는 arch/*/kernel/setup.c에 각 아키텍쳐에 따른 정의가 되어 있다.
여기서는 아키텍쳐(좀더 정확히는 타겟 보드에 따라)에 따른 설정을 한다. i386에서는 아래와 같은 정보를 수집하 거나 초기화 해 놓는다. CPU가 초기화 되면서 /var/log/dmesg에 "Initializing CPU#0"를 출력한다.
기본 루트 디바이스 선택
시스템에 연결되어 있는 드라이브 정보 수집
화면 정보 수집
APM 정보 수집
시스템 정보 수집
램디스크 플래그 설정
메모리 영역 설정
메모리 매니져 변수 초기화
커맨드 라인 명령 해석
부팅할 때 사용하는 메모리 초기화
페이징 시스템 초기화
전원 관리 초기화
표준 롬 초기화
ARM 의 경우 i386과는 달리 프로세서 종류가 몇 가지 되므로 프로세서와 아키텍쳐 타입에 따른 설정을 마친 후 커맨드 라인 명령을 해석한다. 이어 메모리 설정을 초기화하고 페이지 설정도 한다.