Yes that is correct, ... presently, however a model with 2 timer comparators, one for M mode and one for S mode would be possible, in much the same manner that the PLIC can deliver interrupts directly to S mode without monitor intervention. i.e. the model could be extended to timers and software interrupts.
There needs to be some evolution in the specification with respect to interrupts to support both software delegation as well as direct delivery of interrupts to S mode. Simple models will only require M mode interrupts, but more sophisticated models may have hardware controlled S mode interrupts.
1) M mode only, hardware controlled MEIP/MTIP/MSIP
2) M mode plus S mode, hardware controlled MEIP/MTIP/MSIP, software delegated SEIP/STIP/SSIP
3) M mode plus S mode, hardware controlled MEIP/MTIP/MSIP, hardware controlled SEIP, software delegated STIP/SSIP
4) M mode plus S mode, hardware controlled MEIP/MTIP/MSIP, hardware controlled SEIP/STIP/SSI
Currently QEMU models 1 and 3.
For example the mip.SEIP bit in the current specification can be either software delegated or hardware controlled. This actually presents unique problems. In QEMU we don’t allow software control of SEIP as a PLIC is usually attached and software control of this bit would interfere with hardware interrupt delivery. We intend to evolve the model in QEMU so that when the PLIC is attached, it claims control of SEIP, so that it can no longer be set by software. If a PLIC is not attached, Supervisor external interrupts could be software delegated like STIP/SSIP and the SEIP bit would be writable. It can’t be both user writable and controlled by hardware. Currently we have disallowed software writes to SEIP until we have better interrupt routing infrastructure i.e. interface that allows claims for these bits if hardware is attached to them.
Future interrupt controller models may allow direct delivery S mode software and timer interrupts without monitor intervention.
The PLIC is the starting point for interrupt controller models that have hardware delivered Supervisor interrupts with SEIP being hardware controlled.
I could speculate that there may even be PLIC variants that have separate M mode and an S mode MMIO control apertures by modifying the stride from { hart, mode } to { mode, hart }. I’m oversimplifying this for the sake of brevity, but currently S mode software has control of M mode interrupt routing, with the current models.