Skip to content

Commit 005aff7

Browse files
dcpleungdleach02
authored andcommitted
interrupt_controller: ioapic_intr: revert CPU target change
Commit 5a9a33b changes interrupt destination in an attempt to broadcast interrupts. However, this change causes interrupts to stop working on the UP Squared board in non-SMP configuration. According to QEMU source code, physical destination address 0xFF000000 is a special case where it broadcasts the interrupts. However, none of the IOAPIC documentation (that I can find) describes this behavior. So, revert that commit. Signed-off-by: Daniel Leung <[email protected]>
1 parent c248cdf commit 005aff7

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/interrupt_controller/ioapic_intr.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ int _ioapic_init(struct device *unused)
117117
IOAPIC_PHYSICAL | 0 /* dummy vector */;
118118

119119
for (ix = 0; ix < CONFIG_IOAPIC_NUM_RTES; ix++) {
120-
ioApicRedSetHi(ix, 0xFF000000);
120+
ioApicRedSetHi(ix, 0);
121121
ioApicRedSetLo(ix, rteValue);
122122
}
123123
#endif
@@ -242,7 +242,7 @@ int ioapic_resume_from_suspend(struct device *port)
242242
IOAPIC_FIXED | IOAPIC_INT_MASK |
243243
IOAPIC_PHYSICAL | 0 ; /* dummy vector*/
244244
}
245-
ioApicRedSetHi(irq, 0xFF000000);
245+
ioApicRedSetHi(irq, 0);
246246
ioApicRedSetLo(irq, rteValue);
247247
}
248248
ioapic_device_power_state = DEVICE_PM_ACTIVE_STATE;
@@ -295,7 +295,7 @@ void z_ioapic_irq_set(unsigned int irq, unsigned int vector, u32_t flags)
295295

296296
rteValue = IOAPIC_FIXED | IOAPIC_INT_MASK | IOAPIC_PHYSICAL |
297297
(vector & IOAPIC_VEC_MASK) | flags;
298-
ioApicRedSetHi(irq, 0xFF000000);
298+
ioApicRedSetHi(irq, 0);
299299
ioApicRedSetLo(irq, rteValue);
300300
}
301301

0 commit comments

Comments
 (0)