This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCIe reads result in unhandled fault

Other Parts Discussed in Thread: AM3894

Hi,

Our system has an AM3894 running Linux (kernel version 2.6.37)

connecting via PCIe (2 lanes at 2.5GT/s) to a Xilinx FPGA end-point. We are not using DMA.

PCIe writes are fine but the reads result in the following unhandled fault :

________________________________________________________________

Unhandled fault: Precise External Abort on non-linefetch (0x1008) at 0xe08c0000

Internal error: : 1008 [#1]

last sysfs file: /sys/class/gpio/export

Modules linked in: arran_fpga pp_mem ds1746p

CPU: 0 Not tainted (2.6.37-rgb4 #7)

PC is at arran_fpga_ioctl+0x5d8/0x85c [arran_fpga]

LR is at 0x0

pc : [<bf00c6f8>] lr : [<00000000>] psr: 80000013

sp : db3e9e20 ip : 00000010 fp : db3e9ef4

r10: df836c00 r9 : db3e8000 r8 : be81ebe8

r7 : 00000003 r6 : be81ebe8 r5 : da92a0c0 r4 : 00000225

r3 : 00000000 r2 : 00000001 r1 : 00000000 r0 : e08c0000

Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user

Control: 10c5387d Table: 98a30019 DAC: 00000015

Process pcitest (pid: 363, stack limit = 0xdb3e82e8)

Stack: (0xdb3e9e20 to 0xdb3ea000)

________________________________________________________________

To debug this we wrote a simple test which does word reads with a programmable sleep between reads.If the sleep value is set to zero, the test fails with the above error. If the sleep value is set to 10 ms or greater, the test passes. (We don't have a way yet to reduce the timer below 10 ms).

Upon failure :

1. PCI_UNCERR register returns 0x4000 indicating

Completion timeout error.

2. DEV_STAT_CTRL register returns 0x22810 indicating non-fatal error detected.

We don't know what is wrong and how to proceed.

Please advice.

Thanks

Vishy