I assume this can be an issue when you are
managing interrupts. As far as I know, we cannot have interrupts handled
by two partitions: in that case, which one acknowledges the interrupts?
How to keep track of the number of ticks? And how to finally get the
time?
Even if partitions are isolated, we still need
to manage the hardware and answer to handle (at least some) interrupts.
For example, managing the timer interrupt. Some devices can be managed
without managing the timer (for example, a network driver can be
implemented using polling) but it might be critical for other to
acknowledge the interrupt as soon as possible.
To
enable time management, you need to have a separate partition to
receive the timer interrupts and keep track of the time. This partition
is then connected to other partitions that need timing services. I think
this is what has been done for SMACCM. If we keep partitions access the
same hardware resources, this is potentially a security design flaw
(access of a shared resource from partitions at different security
level/domains).