|
@@ -54,6 +54,21 @@ void gic_write_compare(cycle_t cnt)
|
|
|
(int)(cnt & 0xffffffff));
|
|
|
}
|
|
|
|
|
|
+void gic_write_cpu_compare(cycle_t cnt, int cpu)
|
|
|
+{
|
|
|
+ unsigned long flags;
|
|
|
+
|
|
|
+ local_irq_save(flags);
|
|
|
+
|
|
|
+ GICWRITE(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), cpu);
|
|
|
+ GICWRITE(GIC_REG(VPE_OTHER, GIC_VPE_COMPARE_HI),
|
|
|
+ (int)(cnt >> 32));
|
|
|
+ GICWRITE(GIC_REG(VPE_OTHER, GIC_VPE_COMPARE_LO),
|
|
|
+ (int)(cnt & 0xffffffff));
|
|
|
+
|
|
|
+ local_irq_restore(flags);
|
|
|
+}
|
|
|
+
|
|
|
cycle_t gic_read_compare(void)
|
|
|
{
|
|
|
unsigned int hi, lo;
|