On Tue, 2020-02-04 at 15:26 +0200, Daniel Baluta wrote:
On Tue, Feb 4, 2020 at 2:47 PM Liam Girdwood liam.r.girdwood@linux.intel.com wrote:
On Tue, 2020-02-04 at 11:51 +0200, Daniel Baluta wrote:
Hi Liam,
We are working on integrating support for hifi4 DSP/imx8 with Qemu. I wonder if you had this problem when you did the work for Intel integration.
It looks like we get an exception when qemu is trying to execute first line of code:
596f8000 <_ResetVector>:
EXCCAUSE=0000000e (PIF address error during instruction fetch)
We think that we are correctly setting memory zones:
bridge-io: qemu-bridge-iram-mem fd 10 region 1 at 0x7fcbce733000 allocated 2048 bytes bridge-io: qemu-bridge-dram-mem fd 11 region 2 at 0x7fcbce72b000 allocated 32768 bytes bridge-io: qemu-bridge-sdram0-mem fd 12 region 3 at 0x7fcbbc6fc000 allocated 8388608 bytes
Reading the memory from Qemu monitor or gdb connected to Qemu looks good.
Can you turn on trace from the script, this should show you all instructions, TLB loads, etc
Wow, thanks! We didn't know about this option. We only see the following trace:
tlb_fill(596f8000, 2, 0) -> 596f8000, ret = 0 tlb_fill(596f863c, 2, 0) -> 596f863c, ret = 0
596f8000 is the entry point in SOF binary (ResetHandler) 596f863c is the address of DoubleException function were it gets stuck.
Best to also enable instruction trace, this will show what is being loaded. DEPC is usually a sign that the vecbase is wrong (since it can't find the initial exception handler for the initial fault).
Liam