qemu-system-arm -M virt,secure=on -cpu cortex-a7 -m 32M
arch_timer -PPI中断-> gic Distributor -> gic CPU interface --IRQ中断--> CPU
各模块的参考手册
ARMv7 ref : P1481
CNTP_TVAL
CNTP_CTL
cortex-a7 trm P179
Private Peripheral Interrupts
cortex-a7 trm P177
The integrated GIC is compliant with the version 2.0 of
the ARM Generic Interrupt Controller (GIC) Architecture Specification.
ARMv7 ref : P1481
c15 寄存器
cortex-a7 trm P79
CBAR :
cortex-a7 trm P178
我们只需要关注
0x1000 - 0x1FFF Distributor
0x2000 - 0x3FFF CPU interface
但是实际情况为 基址 + 0x1000 这块内存并不存在
查看设备树,设备树上写的为 reg = <0x00 0x8000000 0x00 0x10000 0x00 0x8010000 0x00 0x10000>;
即 基地址 为 0x8000000 0x8010000 ,根据我从CBAR读出的值可以判定 如下
Distributor 的偏移地址 为 0x00000
CPU interface 的偏移地址 为 0x10000
gic ref P75
Distributor register map
cortex-a7 trm P181
Distributor register summary
gic ref P76
CPU interface register map
cortex-a7 trm P188
CPU Interface register summary
实战情况
CBAR 为 0x8000000
所以 基址 为 0x8000000
查看设备树,设备树上写的为 reg = <0x00 0x8000000 0x00 0x10000 0x00 0x8010000 0x00 0x10000>;
即 基地址 为 0x8000000
这两个不知道以哪个为准,反正都是相同的.
|