Hello,
I am facing some issues with the 'SMC' instruction on the i.mx6.
I can run the tz_vmm example, based on the veax9 code since they both have
a TZASC, on the board and the world switch from secure to normal world
works as intended. However when trying to switch back from normal world to
secure world, execution simply hangs after the 'smc' assembler instruction.
It was my understanding that this instruction should trap to the secure
world and then the tz_vmm continues to work with that. In my case
everything simply stops.
I am using Genode in both normal and secure world since I'm mainly going
for a proof of concept at this point. In order to execute the 'smc'
instruction, I implemented a public syscall so the kernel will be the one
to give the command which should ensure that the processor is in a
privileged mode when completing the call.
Should I perhaps add a new core service to base-hw to make the call to the
kernel? And if so, are there any pointers as to how to go about this? The
only real advantage this method offers as far as I can see is that it is
better for Genode's access control policy and gives more control to which
applications can call for the 'smc' instruction.
Best regards,
Vincent