5.5. init_IRQ()

i386의 PC 계열에선 ISA 혹은 APIC를 지원하는 시스템인 경우에 따라 인터럽트 설정을 하고 타이머 인터럽트를 동작시킨다. 아직은 인터럽트가 사용가능하지 않으므로 인터럽트가 동작하진 않는다. 0x20 ~ 0x2f 까지의 벡터는 ISA 인터럽트용 벡터이고 0xf0 ~ 0xff는 SMP 시스템용 인터럽트 벡터로 사용된다. 나머지 0x30 ~ 0xee는 APIC가 사용한다. 단 0x80은 시스템 콜이 사용하므로 제외한다.

ARM Assabet 보드에 사용된 SA-1100 CPU의 경우 arch/arm/mach-sa1100/assabet.c에 정의된 것에 따라 sa1100_init_irq가 불리게 된다. 다음과 같다. ARM의 경우 cpu가 같아도 플랫폼이 다르거나 CPU의 종류도 많으므로 각 CPU나 시스템의 타입에 따라 다른 함수를 사용할 수 있도록 만들어져 있다.

MACHINE_START(ASSABET, "Intel-Assabet")
	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
	BOOT_PARAMS(0xc0000100)
	FIXUP(fixup_assabet)
	MAPIO(assabet_map_io)
	INITIRQ(sa1100_init_irq)
MACHINE_END