Skip to content

Add support for recoverable Ibex NMIs #128

Open
@jwnrt

Description

@jwnrt

There are two NMIs in OpenTitan (for EG at least):

  • Watchdog bark from the AON timer.
  • Alert escalation from the alert handler.

Ibex has a non-standard resumable NMI implementation from before smrnmi was ratified, described here: https://ibex-core.readthedocs.io/en/latest/03_reference/exception_interrupts.html#recoverable-non-maskable-interrupt

Can we add these NMIs without changing upstream QEMU code too much? #111 attempted this.

Alternatively, can we somehow hook into the smrnmi implementation to manipulate mcause and mstatus etc in addition to the official mncause and mnstatus?

Alternatively, can we try to migrate Ibex to smrnmi upstream and use that? This is a bigger but more robust change.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions