ARM GIC V3

ARM GIC V3

gic_raise_softirq

MPIDR_LEVEL_SHIFT(level)
MPIDR_LEVEL_SHIFT(0) = (((1 << 0) >> 1) << 3) = 0
MPIDR_LEVEL_SHIFT(1) = (((1 << 1) >> 1) << 3) = 1<<3 = 8
MPIDR_LEVEL_SHIFT(2) = (((1 << 2) >> 1) << 3) = 0b10<<3 = 0b10000 = 0x10
MPIDR_LEVEL_SHIFT(3) = (((1 << 3) >> 1) << 3) = 0b100<<3 = 0b100000 = 0x20

MPIDR_AFFINITY_LEVEL(mpidr, 0)
((mpidr >> 0) & 0xff)
MPIDR_AFFINITY_LEVEL(mpidr, 1)
((mpidr >> 8) & 0xff)
MPIDR_AFFINITY_LEVEL(mpidr, 2)
((mpidr >> 16) & 0xff)
MPIDR_AFFINITY_LEVEL(mpidr, 3)
((mpidr >> 32) & 0xff)

http://www.lujun.org.cn/?p=4000

https://blog.csdn.net/yhb1047818384/article/details/86708769

原文地址:https://www.cnblogs.com/aspirs/p/15724988.html