I am using jetson tx2 development board which has arm cortex a57 processor which uses arm trusted firmware(atf) to boot. Trusty is the secure world operating system provided by atf.
Following are my questions:
1) How to configure how much ram both secure and normal world should use?
2) How does the boot-loader figure out how much ram is available in the system?
3) How can secure world access memory from the normal world?
I tried looking for documentation but couldn't find any relevant documents. If you can answer my questions or point me to some manual, it will be very helpful.
1) "should" is hard to answer. Depends on your secure application.2) Check out the u-boot sources. Likely it is hard-coded (it is embedded)
42Bastian Schick said:1) "should" is hard to answer. Depends on your secure application.
How is the memory partitioned to be used by secure/normal world?
is this memory partitioned programmable?
This is SoC specific.ZYNQ 7000 has special registers/flags where you can decide which part of the memory is secure or normal. But this was not in the normal TRM. So maybe for Nvidia it is the same.
You might get better answers in the NVidia forum.
Edit: It is a Tegra X2
42Bastian Schick said:.ZYNQ 7000 has special registers/flags where you can decide which part of the memory is secure or normal.
can you also point me where in the reference manual for zynq 700 soc i can read more about this?
Since i am new in this area, it can help me understand things better.
It is a special manual called ug1019, "Programming ARM TrustZone Architecture on the Xilinx Zynq-7000 All Programmable SoC"
Can you tell me or point me to some documentation/keywords so that i can map normal world memory into secure world?
There is no special action. You have to set the NS bit in the page table entry and make it shared. (At least that's how it works on CA9, but I guess on Armv8-A it is the same.)
42Bastian Schick said:You have to set the NS bit in the page table entry
does this has to be manually set ? or after doing mmap to NW memory, SW will set it right?
42Bastian Schick said:make it shared.
what do you mean by this? how to make memory region shared between both worlds?
I am talking about "low level". I have no idea if and how this can be achieved with mmap().Anyway, checkout Armv8-A MMU docu.
View all questions in Cortex-A / A-Profile forum