structirq_domain{// 链表节点,所有的irq_domain会放在一个全局的链表中structlist_headlink;// irq_domain nameconstchar*name;// irq_domain的操作函数集合conststructirq_domain_ops*ops;// `IC`私有数据,不同控制器类型自定义void*host_data;/* Optional data */// 对应的`IC`设备信息structfwnode_handle...
irq-domain的引入相当于一个中断控制器就是一个irq-domain。就是一个中断区域。这样一来所有的irq-contoller会出现级联的布局。 利用树状的结构可以充分的利用irq数目,而且每一个irq-domain区域可以自己去管理自己interrupt的特性 IRQ-Domain的作用 咋们通过/proc/interrupt的值来看下irq-domain的作用 从这图上可以看出...
irq-domain的引入相当于一个中断控制器就是一个irq-domain。就是一个中断区域。这样一来所有的irq-contoller会出现级联的布局。 IRQ-Domain的作用 中断之间连接在root-interrupt-controler中断控制器上,其中softirq_num为irq_req的irq号,hw_irq为dts(devices tree source) 中配置的irq号。 hwirq到softirq的映射 当...
IRQ domain IRQ domain用于将硬件的中断号,转换成Linux系统中的中断号(virtual irq, virq),来张图: 每个中断控制器都对应一个IRQ Domain; 中断控制器驱动通过irq_domain_add_*()接口来创建IRQ Domain; IRQ Domain支持三种映射方式:linearmap(线性映射),tree map(树映射),no map(不映射); linear map:维护固定...
这类接口的逻辑很简单,根据自己的映射类型,初始化struct irq_domain中的各个成员,调用__irq_domain_add将该irq domain挂入irq_domain_list的全局列表。 2、为irq domain创建映射 上节的内容主要是向系统注册一个irq domain,具体HW interrupt ID和IRQ number的映射关系都是空的,因此,具体各个irq domain如何管理映射...
管理irq domain 系统中维护一个list保存所有的irq domain,对它的读写受irq_domain_mutex的保护。 每个结构体中有个link,可以将自己挂入到全局list中。 staticLIST_HEAD(irq_domain_list);staticDEFINE_MUTEX(irq_domain_mutex);structirq_domain{structlist_headlink;...}; 创建irq...
这类接口的逻辑很简单,根据自己的映射类型,初始化struct irq_domain中的各个成员,调用__irq_domain_add将该irq domain挂入irq_domain_list的全局列表。 2、为irq domain创建映射 上节的内容主要是向系统注册一个irq domain,具体HW interrupt ID和IRQ number的映射关系都是空的,因此,具体各个irq domain如何管理映射...
当发生中断后,首先获取触发中断的HW interupt ID,然后通过irq domain翻译成IRQ nuber,然后通过IRQ number就可以获取对应的中断描述符。调用中断描述符中的highlevel irq-events handler来进行中断处理就OK了。而highlevel irq-events handler主要进行下面两个操作:...
本节学习下什么是irq domain, 以及irq domain的作用。...linux内核为了应对此问题,引入了IRQ-domain的概念 irq-domain的引入相当于一个中断控制器就是一个irq-domain。就是一个中断区域。...利用树状的结构可以充分的利用irq数目,而且每一个irq-domain区域可...
这类接口的逻辑很简单,根据自己的映射类型,初始化struct irq_domain中的各个成员,调用__irq_domain_add将该irq domain挂入irq_domain_list的全局列表。 2、为irq domain创建映射 上节的内容主要是向系统注册一个irq domain,具体HW interrupt ID和IRQ number的映射关系都是空的,因此,具体各个irq domain如何管理映射...