On 04/18/2017 01:49 PM, Jan Kiszka wrote:
On 2017-04-18 19:42, Vitaly Andrianov wrote:
On 04/18/2017 08:50 AM, Vitaly Andrianov wrote:
On 04/18/2017 06:41 AM, Jan Kiszka wrote:
On 2017-04-17 15:17, Vitaly Andrianov wrote:
Hi Ralf,
I tried what you proposed:
root@am57xx-evm:~# jailhouse cell load 1 ./loader.bin -a 0 ./inmate.bin
-a 0x80000000
Cell "AM57XX-EVM-PDK-LED" can be loaded
root@am57xx-evm:~# jailhouse cell start 1
Started cell "AM57XX-EVM-PDK-LED"
That didn't work for me.
I debugged this using CCS debugger. I set a breakpoint to the address
0x80000000, and execution stressfully stopped at that address. But it
looks like instruction cache is not invalidated.
From the memory window I can see that the loader.bin and inmate.bin
code
are loaded to the memory. I see the correct code from all three views:
physical, intermediate physical and CPU(virtual).
But for Disassembly window I can see only loader.bin code is valid
(address 0x0). Code at address 0x80000000 doesn't correspond to what I
see at the memory window at the same address.
Do you know what I could do wrong?
Weird. We explicitly call flush_icache_range in driver/cell.c,
load_image. That can't be nop on the AM57xx, can it?
Jan
Jan,
I disassembled the jailhouse.ko. The flash_icache_range is the
v7_coherent_user_range.
Actually I don't understand how it works. The jailhouse_cmd_cell_load
is running on ARM0 and
invalidation is done for L2 and L1 of ARM0. Does the
v7_coherent_user_range() also invalidates L1
instruction cache for ARM1?
Thanks,
-Vitaly
Jan, Ralf,
I found what was wrong. When I changed the linker address on my test_app
from 0x0 to 0x80000000, I forgot to change the app's MMU configuration.
When I fixed the bug everything started to work.
Except one thing which I still don't understand: the CCS disassembly
window doesn't show the correct code at the beginning of the 0x80000000
segment (about first 120 bytes). That confused me and I thought I had an
instruction cache issue.
Sorry for the false alarm.
No problem. Good to know that it works now.
Could it be that the debugger is confused by the active virtualization
extensions and the second level of page tables? Just a thought.
I'll ask CCS team about that.
-Vitaly
Jan
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.