Hello all, I am attempting to write PCIe drivers for my OP-TEE project against the Cortex-A57 using the virt machine. I am using the default packaged qemu, 3.0.93v3.1.0-rc3-dirty and v4.0.0-rc4. I have added the PCIE device to the page table of the OS and when I try to write to PIO (0xCF8) I get an unhandled fault. Tracing this down I found the memory access was falling into unassigned_mem_write. Unfortunately I don't have an example of PCIe working so I don't know what this is supposed to look like. Is this normal behavior and the issue lies elsewhere? Or is unassigned_mem_write always a problem? The debug text for the unassigned_mem_write does say the correct physical address and value for the operation.
>E/TC:0 0 >E/TC:0 0 Core data-abort at address 0x107f0cf8 >E/TC:0 0 esr 0x96000050 ttbr0 0x0e29f000 ttbr1 0x00000000 cidr 0x0 >E/TC:0 0 cpu #0 cpsr 0x600003c4 >E/TC:0 0 x0 00000000107f0cf8 x1 00000000107f0000 >E/TC:0 0 x2 00000000117fffff x3 000000000e14a6a0 >E/TC:0 0 x4 0000000001200000 x5 000000000000000d >E/TC:0 0 x6 000000003eff0000 x7 0000000000000020 >E/TC:0 0 x8 000000000e127c48 x9 000000000e146d24 >E/TC:0 0 x10 000000000e142f20 x11 00000000f1906769 >E/TC:0 0 x12 00000000113044e7 x13 000000000e2a693c >E/TC:0 0 x14 0000000011800000 x15 0000000000000000 >E/TC:0 0 x16 0000000000000000 x17 0000000000000000 >E/TC:0 0 x18 0000000000000000 x19 0000000080000000 >E/TC:0 0 x20 0000000000000000 x21 000000000e1480b4 >E/TC:0 0 x22 000000000e1480a2 x23 0000000000000001 >E/TC:0 0 x24 0000000000000002 x25 000000000000000a >E/TC:0 0 x26 0000000000000000 x27 0000000000000000 >E/TC:0 0 x28 0000000000000000 x29 000000000e2a6990 >E/TC:0 0 x30 000000000e125af4 elr 000000000e125af4 >E/TC:0 0 sp_el0 000000000e2a6990 >D/TC:0 0 get_fault_type:602 [abort] Unhandled fault! Thanks, Adam Parker