Skip to content

sw-sysemu: Inject interrupts via validation1 in DV context #86

@vidas

Description

@vidas

Sysemu has several "virtual" (not present in silicon) validation registers that provide support during testing.

VALIDATION1 serves several functions, one of which is raising external interrupt, but it's only enabled in standalone (SYS_EMU defined) build. Also, it triggers external interrupt directly on CPU, bypassing the PLIC

case ET_DIAG_IRQ_INJ:

This functionality is used by DV on rtl emulator, and would be great to have it in sysemu/cosim context too.

Requested behavior: when user writes ET_DIAG_IRQ_INJ (0x5) together with subopcode (ET_DIAG_IRQ_INJ_MEI, ET_DIAG_IRQ_INJ_TI, ET_DIAG_IRQ_INJ_SEI), corresponding interrupt should be raised/cleared via PLIC (so that PLIC registers represent true situation). This should work when SYS_EMU is not defined. Q: Do we want to keep existing behavior when SYS_EMU is defined?

Note: I think on Erbium rvtimer interrupt does not go through PLIC, please verify.

Metadata

Metadata

Assignees

No one assigned

    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