← Interrupt 상세 목차DUJINLABS.COM

Hardware · Interrupt detailed manual 05 · Linux v6.18.37

5. RISC-V INTC와 PLIC Linux domain을 계층으로 읽는다

local RISC-V interrupt controller가 external cause를 받고 PLIC chained handler가 claim ID를 child irqdomain hwirq로 전달한 뒤 driver handler와 complete로 돌아가는 흐름을 추적합니다.

상세 표
2
검증 행
14
절차
4 checkpoints
기준
RISC-V PLIC · AIA · Linux v6.18.37

CHAPTER 05

5. RISC-V INTC와 PLIC Linux domain을 계층으로 읽는다

local RISC-V interrupt controller가 external cause를 받고 PLIC chained handler가 claim ID를 child irqdomain hwirq로 전달한 뒤 driver handler와 complete로 돌아가는 흐름을 추적합니다.

root INTC

hart local cause를 Linux root domain에 매핑합니다.

chained handler

external cause의 parent IRQ에서 PLIC claim loop를 실행합니다.

child domain

PLIC source ID를 Linux virq와 irq_chip으로 연결합니다.

per-CPU handler

각 context의 claim MMIO와 enable shadow는 hart별 상태입니다.

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

항목소유자값의 의미정상 증거오류 해석
riscv INTC hwirqroot domainexternal cause numberscause와 일치cause mapping
PLIC parent virqLinux IRQ corehart external interruptper-CPU chained entryparent 연결 누락
PLIC child hwirqPLIC domainclaim source IDfirmware source와 일치off-by-one
child virq/descLinux IRQ coredriver actionrequest_irq action 존재mapping 없음
complete callbackPLIC irq_chipsource ID writebackhandler 후 수행gateway 고정

실패 경계 판정

증상직전 통과우선 확인반증 시험판정
trap은 오나 PLIC handler 없음scause externalparent domain/chained setuproot virq mappingLinux hierarchy
claim ID 수신, action 없음PLIC handlerchild mapping/actionirq_desc dumpdriver request 경계
action 실행, complete 없음driver handler returnirq_chip floweoi callback traceflow handler 설정
CPU마다 virq count 편중route/enable 정책per-hart contextenable/affinity 비교context 설정
DT source와 hwirq 불일치device statusdomain xlatefwspec dumpfirmware specifier
그림 1. 5. RISC-V INTC와 PLIC Linux domain을 계층으로 읽는다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 scause external
02 RISC-V INTC
03 PLIC parent handler
04 claim source ID
05 child irqdomain
06 irq_desc/action
07 device ack
08 PLIC complete

실제 검증 절차

순서실행남길 증거판정 목적
1scause→parent virq→claim ID→child virq를 한 행에 둡니다.번호 ledger계층 mapping
2claim loop와 generic_handle_domain_irq를 trace합니다.호출 순서dispatch 확인
3driver request_irq 전후 child mapping을 비교합니다.action 설치 시점lifecycle
4CPU affinity/hotplug 중 per-context enable과 count를 검증합니다.hart별 delivery상태 restore

주의RISC-V external interrupt cause 번호와 PLIC source ID는 다른 번호 공간입니다.

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

공개되지 않은 vendor register나 integration별 offset을 추측해서 채우지 않았습니다. 아래 제조사 자료, architecture 문서와 Linux v6.18.37 원본에서 다시 확인할 수 있는 범위만 사용했습니다.