Hi Liu, On 30/05/14 03:25, tiger...@via-alliance.com wrote: > Hi, Marc: > I am studying ARMv8's u-boot code with FVP model. > In do_nonsec_virt_switch() function in bootm.c : > It will call smp_kick_all_cpus() function : > It seems it would set GICD_SGIR[24] = 1, forward the interrupt to all > CPU interfaces except tha tof the processor that requested the > interrupt. > > So, who generated the interrupt(which would be forwarded to other > cores)?
I suggest you have a look at the GICv2 architecture document, section 4.3.15, which describes the GICD_SGIR register. Writing to this register generates the interrupt (SGI number in GICD_SGIR[3:0}), and GICD_SGIR[25:24] determines who gets it. In short, if you're setting GICD_SGIR[24] to 1, you're sending SGI0 to all CPUs but yourself. This seems to match the name of the function, doesn't it? M. -- Jazz is not dead. It just smells funny... _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot