linux arm irq ( 5):Linux ARM64 SoC GICv3

linux arm irq

(5) - Linux ARM64 SoC GICv3


Author: Yangkai Wang
wang_yangkai@163.com
Coding in 2026/08/16
转载请注明author,出处.

ARM64 SoC + GIC Linux 中断处理流程(简化)

Hardware Peripheral
        │
        │ interrupt
        ▼
       GIC
        │
        │ INTID / HW interrupt number
        ▼
ARM64 CPU IRQ exception entry
        │
        ▼
保存 CPU 寄存器现场
        │
        ▼
Linux IRQ entry
        │
        ▼
generic_handle_arch_irq()
        │
        ▼
根据 HW IRQ / irq_domain
找到对应 Linux IRQ number
        │
        ▼
irq_desc[irq]
        │
        ▼
desc->handle_irq()
        │
        ▼
IRQ flow handler
        │
        ▼
handle_irq_event()
        │
        ▼
irqaction
        │
        ▼
action->handler()
        │
        ▼
Driver ISR
        │
        ├── 读取 peripheral IRQ status
        ├── 清除 peripheral IRQ
        └── 处理/调度后续工作
        │
        ▼
IRQ flow handler 完成
        │
        ▼
GIC EOI / unmask 等操作
        │
        ▼
irq_exit()
        │
        ▼
恢复 CPU context
        │
        ▼
eret

posted @ 2026-08-16 12:15  王阳开  阅读(3)  评论(0)    收藏  举报