Commit 7ab767a
committed
[ot] hw/intc: Only clear pending IRQs at PLIC when claimed
See the comment for more details; to allow for proper NMI functionality
based on regular IRQ and NMI handling routines, we must ensure that in
`sifive_plic_irq_request`, we only clear an IRQs pending status when
that IRQ has been claimed. Failure to do so can mean we clear an IRQ at
a peripheral as part of an NMI service routine and as such never call
into the IRQ handler when the NMI handler returns, as would be expected.
This commit updates the SiFive PLIC so that it works as expected.
Signed-off-by: Alex Jones <[email protected]>1 parent 650257a commit 7ab767a
1 file changed
+21
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
361 | 361 | | |
362 | 362 | | |
363 | 363 | | |
364 | | - | |
| 364 | + | |
365 | 365 | | |
366 | | - | |
| 366 | + | |
367 | 367 | | |
368 | | - | |
369 | | - | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
370 | 387 | | |
371 | 388 | | |
372 | 389 | | |
| |||
0 commit comments