= gic_dist_base(gic); /* * Set priority on PPI and SGI interrupts */ for (i = 0; i < 32; i += 4) writel(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4 / 4); writel(GICC_INT_PRI_THRESHOLD, base + GIC_CPU_PRIMASK); writel(GICC_ENABLE, base + GIC_CPU_CTRL); ...
计算当前GIC最大支持多少个中断源; (3)初始化distributor: a.disable distributor; b.设置中断分组; c.设置SPI中断的路由; d.设置SPI中断的触发类型; e.disactive和disable所有中断源; f.enable distributor; (4)初始化CPU Interface: a.设置GIC_CPU_PRIMASK,设置中断优先级mask level; b.enable...
processor ack了中断之后,CPU interface就会deassert nIRQCPU和nFIQCPU信号线。 (c)中断处理完毕的通知。当interrupt handler处理完了一个中断的时候,会向写CPU interface的寄存器从而通知GIC CPU已经处理完该中断。做这个动作一方面是通知Distributor将中断状态修改为deactive,另外一方面,CPU interface会priority drop,从而允...
(4)初始化CPU Interface: a.设置GIC_CPU_PRIMASK,设置中断优先级mask level; b. enable CPU interface; 相关寄存器说明 1.设置分组 group0:安全中断,由nFIQ驱动 group1:非安全中断,由nIRQ驱动 6.3 注册中断 (1) 初始化外设; (2)查找该外设的中断在GIC-400的中断号,例如PNS timer中断号为30; (3)设置GIC_...
等待状态(pending): 中断处理有效状态,但是等待 CPU 响应该中断。 活跃(active) : CPU 相应该中断。 活跃并等待状态(active and pending): CPU 正在相应该中断的同时该中断源又发送新的中断过来。 2.4. GIC-V2中断控制器 GIC -V2 有两个硬件单元组成的。
Distributor的主要的作用是检测各个interrupt source的状态,控制各个interrupt source的行为,分发各个interrupt source产生的中断事件分发到指定的一个或者多个CPU interface上。虽然Distributor可以管理多个interrupt source,但是它总是把优先级最高的那个interrupt请求送往CPU interface。Distributor对中断的控制包括: ...