Hi Franc,
On 16.04.2015 14:11, Franc sylvester wrote:
Currently, I am working on i.MX6 board. I just want to create a function like dump() in tz_vmm as in another application which will print the state of the system without using vmm.
I tried to use cpu_sate.h in my application but when i tried to read the register r0 like vm_base.h it gives me the page fault error.
Just to avoid misconceptions: The 'Vm_base' you mention above is a kernel object that stores the state of a VM subject. That said, this state information can be read-out only in the kernel and shows the state of a VM at the point in time it trapped into the kernel. It can't be read from any user application and shouldn't be read from core without special care.
Back to dump(). First of all, we need to know where exactly you are. Do you want to dump inside the kernel, core, or a user application? To determine that, it would be best if you send the source file and function you're in when calling dump().
Second, I'm not sure whose state do you want to print. If you like to, e.g., print R0 of the active CPU state, you don't have to read any state object. You can use inline assembly in this case (take care that the R0 state that you want to read isn't polluted by the compiler meanwhile). If you like to print the R0 state of any user thread from the point in time it entered the kernel lastly, you would have to be inside the kernel, lookup the appropriate 'Kernel::Thread' object, and print its member variable 'r0'.
Cheers, Martin