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
--
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.