TZ_VMM demo on i.mx53

Stefan Kalkowski stefan.kalkowski at genode-labs.com
Tue Sep 11 15:32:05 CEST 2018


Hi,

On Mon, Sep 10, 2018 at 04:44:14PM +0800, lzSun wrote:
> Hello,
> I am new to Genode and the version I am using is 18.05. I am  trying to boot genode on the secure world and linux on normal world on i.MX53-QSB board. I follow steps in this link: https://sourceforge.net/p/genode/mailman/message/33588666/. The system  can boot successfully ,but after the linux started,it periodically print this message:
> mmc0: Timeout waiting for hardware interrupt.                               
> mxsdhci: ============== REGISTER DUMP ==============                            
> mxsdhci: Sys addr: 0x00000000 | Version:  0x00001201                            
> mxsdhci: Blk size: 0x00000000 | Blk cnt:  0x00000001                            
> mxsdhci: Argument: 0x00000c00 | Trn mode: 0x341a0000                            
> mxsdhci: Present:  0xff880008 | Host ctl: 0x00000121                            
> mxsdhci: Clock:    0x000010ff                                                   
> mxsdhci: Int stat: 0x00010001                                                   
> mxsdhci: Int enab: 0x107f010b | Sig enab: 0x107f000b                            
> mxsdhci: Caps:     0x07f30000                                                   
> mxsdhci: ===========================================

if you just used the tz_vmm.run script without modifications, it
should work without these messages.
> 
> I am not sure whether this is normal, or it's because something wrong.And I have a few question about the TZ_VMM demo on i.MX53 board hope to get help:
> 1.  I looked up the code in repos/os/src/server/tz_vmm,  in target.mk file, there's only empty.cc was declared to be compiled. So how can other files can be compiled and used?

In the target file there is a tz_vmm library stated as a dependency.
That library is built platform-specific. In your case, you will find
the library description in `repos/os/lib/mk/spec/imx53_qsb/tz_vmm.mk`.
All relevant compilation units are described there.

> 2. I want to implement a secure app in Genode OS and provide service to normal world.But I have difficult to achieve this goal.  To my understanding, I should implement the server module that can be used by VMM. Also, I should design help module in the linux kernel which uses SMC instruction to trap to VMM. 

Yes.

> Is it right? Actually, in tz_vmm dictionary, I can only see a block driver and serial driver which are used to handle block and serial driver smc respectively. So I don't know where can I add my code to serve normal world's smc request.  Is there any suggestion or  guidance that I can refer to? 

Well, this whole VMM is an example. It is a prototype implementation
to showcase how communication in between legacy TrustZone normal world
OS and Genode running securely can be done. That's why there is no
hook or plugin API you can just take. But you can use the block and
serial APIs as examples to hard-code your own extension.

I'm sorry, there is no how-to or manual on how to do that, but a lot
of e-mail communication in the list's archive that references your
issue.

Regards
Stefan

> Best Regards,

> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users


-- 
Stefan Kalkowski
Genode labs

https://github.com.skalk | https://genode.org



More information about the users mailing list