← Interrupt 상세 목차

Hardware · Interrupt detailed manual 01 · Linux v6.18.37

1. legacy PIC, virtual wire와 ACPI MADT topology를 구분한다

8259 PIC의 IRQ0~15, ExtINT virtual wire, IOAPIC GSI base와 interrupt source override를 부팅할 때 선택한 APIC mode와 함께 읽습니다.

상세 표
2
검증 행
14
절차
4 checkpoints
기준
x86 APIC · IOAPIC · MSI · Linux v6.18.37

CHAPTER 01

1. legacy PIC, virtual wire와 ACPI MADT topology를 구분한다

8259 PIC의 IRQ0~15, ExtINT virtual wire, IOAPIC GSI base와 interrupt source override를 부팅할 때 선택한 APIC mode와 함께 읽습니다.

PIC

두 개의 8259가 16개 legacy IRQ를 mask/priority 처리합니다.

virtual wire

PIC 출력을 LAPIC LINT0 ExtINT로 받아 APIC 환경으로 이행할 수 있습니다.

MADT

Local APIC/x2APIC, IOAPIC, source override와 NMI 정보를 제공합니다.

GSI

ACPI global system interrupt는 Linux virq나 IDT vector와 다른 번호입니다.

레지스터·번호·소유권 대조

항목소유자값의 의미정상 증거오류 해석
PIC IMR/ISR/IRR8259mask/in-service/request선택 mode에서 기대 상태legacy source 고정
LVT LINT0/1Local APICExtINT/NMI/maskMADT policy와 일치중복 delivery
MADT IOAPICfirmwareID/address/GSI baseMMIO ID와 일치topology 오류
MADT ISOfirmwarelegacy IRQ→GSI, polarity/trigger실제 wiring과 일치IRQ0/SCI 등 override 오류
APIC modeLinuxPIC/virtual wire/IOAPIC 선택boot log와 register 일치fallback mode

오류가 발생한 단계 확인

증상직전 통과우선 확인반증 시험판정
timer만 안 옴CPU/APIC onlineIRQ0 override/LAPIC timerMADT ISO와 clockevent 확인legacy routing
IRQ가 두 번 옴source 정상PIC와 IOAPIC 동시 enablePIC mask 후 count 비교중복 route
특정 GSI 없음device statusIOAPIC GSI base 계산RTE index와 MADT 비교topology
polarity 반대로 stormRTE unmaskISO flagsline level과 RTE bit 비교firmware trigger
noapic에서만 부팅PIC path 성공MADT/IOAPIC 초기화IOAPIC ID/address readAPIC topology
그림 1. 「1. legacy PIC, virtual wire와 ACPI MADT topology를 구분한다」의 실행 순서왼쪽부터 신호나 데이터를 처리하는 순서를 나타냅니다. 각 단계에서 확인할 항목을 함께 표시했습니다.
01 firmware MADT
02 APIC mode 선택
03 legacy IRQ/ISO
04 GSI
05 IOAPIC 또는 virtual wire
06 LAPIC vector
07 IDT

실제 검증 절차

순서실행남길 증거판정 목적
1MADT 항목을 APIC ID/GSI base/override 표로 풉니다.firmware topology입력 확인
2PIC mask와 LINT0/IOAPIC route를 동시에 dump합니다.활성 경로 하나중복 배제
3legacy source별 실제 GSI와 trigger를 자극해 확인합니다.source mapoverride 검증
4PIC/IOAPIC boot mode 결과를 분리해 저장합니다.fallback 차이경계 판정

주의ISA IRQ 번호, ACPI GSI, IOAPIC pin, Linux virq와 IDT vector를 같은 숫자로 취급하지 않습니다.

공개적으로 다시 확인할 수 있는 자료

공개되지 않은 제조사 레지스터나 제품별 오프셋은 추측하지 않았습니다. 아래의 제조사 자료, 아키텍처 문서, Linux v6.18.37 원본으로 확인할 수 있는 내용만 다뤘습니다.