Hi everyone,
I'm trying to understand the architecture underneath normal world and realm world.
So in FVP, I can boot the normal world first, then boot the realm world to run application in it. But by doing so, I can't debug the application since I can only do it in Arm DS.
If I want to create a realm VM, I will need to invoke libraries from RME(RMM) to create a realm world VM and then it counts as running an application in realm world.
My question is:
what's the difference between running an application in realm world in FVP and writing a C++ program using RME libraries but I run the application in normal world in FVP.
Do they count as all running applications in realm world or not?
Much appreciated if anyone can help me!
Have you seen the RME and Arm CCA guides in the Learn the Architecture page? If not, you might them useful as introduction to how RME works and how the CCA software stack is structured.
https://www.arm.com/architecture/learn-the-architecture/a-profile
Shizhe Yang said: what's the difference between running an application in realm world in FVP and writing a C++ program using RME libraries but I run the application in normal world in FVP.
This is going to partly depend on what differences you care about.
At the ISA level, to an application Non-secure and Realm state can look the same. You have the same instructions, that execute the same way, available to you.
I say "can" because it's not just a question of hardware. If you're comparing running your application on the host in Non-secure state to running it on a Realmed VM, then the question is more how different the VM is to the host (libraries, etc..). With that caveat, you can develop something in Non-secure/Normal world and then deploy to a Realm.