I am trying to learn about optee. What is the best way to get started?
Can I run an example system in QEMU? If so, how would I start?
I have heard references on videos and see in README.md a reference to a shell script based setup. Do I follow these directions given at optee_os/README.md:
$ cd $HOME $ mkdir devel $ cd devel $ git clone https://github.com/OP-TEE/optee_os.git
or these:
$ mkdir -p $HOME/devel/optee $ cd $HOME/devel/optee $ repo init -u https://github.com/OP-TEE/manifest.git -m ${TARGET}.xml [-b ${BRANCH}] $ repo sync
I see an entry.S in plat-sunxi, but not in any of the other platforms. Is this the new way of doing things or is it the old way. (The exception table seems to be defined in generic_entry_a32.S and generic_entry_a64.S.
For the ARMv7-A architectures, it seems that bootstrap code is included. Is that correct?
Does the bootstrap code also launch the Linux kernel?
How is flash access mediated? I was expecting to find that TrustZone was used to isolate, e.g. the SDIO controller from the normal world and that the TEE would mediate access to the nonvolatile storage. But that would require changes to the Linux kernel, which I don't see. Instead, I see support for secure storage in the normal world.
It seems that the following architectures are supported:
cortex-a7 cortex-a9 cortex-a15 cortex-a53 cortex-a57
I prefer to ask these questions on a public mailing list. They seem a little too involved for IRC, and I'm sure there are others besides I who would benefit from the answers.
Thank you for your time.
--wpd