Skip to content

S-level external interrupts default priority order (when handled in M-mode) #110

@evgeniy-paltsev

Description

@evgeniy-paltsev

The AIA spec says

If supported, setting the priority number for supervisor-level external interrupts (bits 15:8 of
iprio2) to a nonzero value p has the effect of giving the entire category of supervisor external
interrupts nominally the same priority as a machine external interrupt with priority number p.

I'm a bit confused with the nominally the same priority as a machine external interrupt with priority number p statement.

For example, if we have set S-level external interrupts iprio = 42
and in M-mode we have pending both

  • S-level external interrupts
  • M-level external interrupts with external interrupt identity (mtopei.identity) = 42

do we have two interrupts with absolutely same priorities? How we determine which should trigger first?

On the other hand, if we should use the default priority order rules - then it's not clear why do we phrase it like
... the same priority as a machine external interrupt with priority number p
instead of
... the same priority as a supervisor external interrupt with priority number p

Such phasing should be valid but it clearly shows that default priority order should be used.

Thanks!

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