← Interrupt 상세 목차

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는 다른 번호 공간입니다.

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

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