struct irq_desc:一个中断描述符,一个中断所需要的资源都集中在这个结构体中描述,如果没有定义选项CONFIG_SPARSE_IRQ,irq_desc会在系统初始化的时候被分配到一个数组中存放,其中数组下标代表的就是virq(虚拟中断,而不是硬中断),如果定义了选项那么irq_desc会被分配到radix tree中; struct irq_data:一个具体中断...
1.1 Radix tree形式 只对系统的16个legacy中断进行irq_desc的初始化 229 int __init early_irq_init(void) 230 { 231 int i, initcnt, node = first_online_node; 232 struct irq_desc *desc; 233 234 init_irq_default_affinity(); //默认的中断亲和力是所有CPU,如果想绑定cpu到某个cpu上该怎么做?ht...
irq_domain_set_mapping中的映射包含两个部分,一是在该控制器支持一定的线性映射前提下,当hwirq <domain->revmap_size时进行线性映射。否则以hwirq作为键值将irq_data放入该domain的revmap_tree基树中,搭建起通过hwirq快速查询virq的途径。 五、总结 通过以上操作,可以以virq=>从irq_desc_tree中获取该irq的中断...
RK3399平台开发系列讲解(中断篇)13.6、中断irq_desc_tree描述,文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1
Notes:中断描述符irq_desc是用于描述一个中断的;irq_chip是中断控制器的callback函数;irq_data是描述中断控制器的,常挂在irq_desc下。 1、底层irq chip相关的数据结构 中断描述符中应该会包括底层irq chip相关的数据结构,linux kernel中把这些数据组织在一起,形成struct irq_data,具体代码如下: ...
static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node, const struct irq_domain_ops *ops, void *host_data) { return __irq_domain_add(of_node, 0, ~0, 0, ops, host_data); } (3)no map。有些中断控制器很强,可以通过寄存器配置HW interrupt ID而不是由物理连...
static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node, const struct irq_domain_ops *ops, void *host_data) { return __irq_domain_add(of_node, 0, ~0, 0, ops, host_data); } (3)no map。有些中断控制器很强,可以通过寄存器配置HW interrupt ID而不是由物理连...
1、创建一个irq domain,注意是tree型的 (linux/drivers/irqchip/irq-gic-v3.c) static int __init gic_init_bases(void __iomem *dist_base, struct redist_region *rdist_regs, u32 nr_redist_regions, u64 redist_stride, struct fwnode_handle *handle) ...
radix_tree_insert(&domain->revmap_tree, hwirq, irq_data); mutex_unlock(&domain->revmap_tree_mutex); } } irq和irq_desc的关系 在分配一个softirq的时候,其实最终也会分配一个irq_desc结构的 这里有两种管理方式,一种是通过线性固定开机固定分配好了的,一种是动态分配的 ...
在linux kernel中,使用struct irq_desc来描述一个外设的中断,我们称之中断描述符,具体代码如下: struct irq_desc { struct irq_data irq_data; unsigned int __percpu *kstat_irqs;---IRQ的统计信息 irq_flow_handler_t handle_irq;---(1) struct irqaction...