synchronization between normal and secure world

Martin Stein martin.stein at ...1...
Tue May 12 15:43:35 CEST 2015

Hi Stefan,

Sorry for interfering in the discussion. Just an idea:

On 12.05.2015 15:14, Stefan Brenner wrote:
> (secure world=Genode, normal world=Linux)
> 1) normal world allocates a buffer in normal world memory
> 2) normal world issues an SMC and transmits the buffer's address to
> secure world where addresses are translated
> 3) secure world stores the address
> 4a) normal world writes something to the shared buffer and modifies some
> meta data structures. Basically, it writes to the metadata "Hey, secure
> world, there is something for you".
> 4b) secure world busy-waits (ugly) until it reads something new from the
> normal world, and starts processing it.

Why don't you tell the secure world via another SMC ID that there's
something in the buffer? The secure monitor then could write replies to
the buffer, reference them inside the corresponding requests, and
continue the guest. AFAIK, there would be no problem with IRQs and no
polling in this solution.


PS: You don't want to poll at the secure side for a non-secure state, at
least because its against the scheduling priorization between secure and
non-secure world.

More information about the users mailing list