I am using a XUPV5-LX110T evaluation platform board to run xilkernel on the MMU-enabled Microblaze (virtual mode), s.t.C_USE_MMU = 3.
Trying to run the xilkernel_posix_threads_demo application from the template xilkernelon EDK/SDK 13.1.
However, the execution does not proceed beyond xilkernel_init() function.
The execution jumps into the exception handler module and keeps looping there due to multiple TLB miss exceptions.
I traced the execution flow and discovered that the VM mode initialization in the mpu_init() function is responsible for this execution flow break .
When the VM mode initialization section is commented out, the execution continues for the main thread and it keeps looping in the idle_task() (which it should do).
However a master process, though created, is not scheduled for execution and never executes(or may be prematurely terminated).
Could someone give some feedback as to why the virtual mode initialization leads to a TLB miss during the mpu initialization step?
Note: The application works fine for the hardware generated with (C_USE_MMU<=1)
I just wanted to add some update.
I discovered that after the VM mode enabling, the application incurs a TLB miss because the TLB is not updated with instruction addresses while mpu initialization.
However, even after i add the tags and RPN entries in tlbhi and tlblo registers during mpu initialization, the application still incurs a TLB miss immediately after the VM mode initialization.