We are getting an Exception in our PCIe driver when we try to access a PCI register in our FPGA. Can you help us find out the cause of these exceptions.
They do not happen often but when they do it is a big problem.
We have a Cyclone IV FPGA connected to the TI processor via PCIe (2 lanes; Gen1)
Thanks in advance for all of your help.
-mike Hilley
*************************************************************************************************
Exception address is in R3. It is the SGDMA Status register
Time: 0000000425.151, Thread: 156, dlNone, CAerNCRSerialFPGA::ResetTx()
Time: 0000000425.172, Thread: 156, dlNone, CAerFile::Open(/dev/sda5, 0x00000001) NCRHack[1]
Time: 0000000425.172, Thread: 156, dlWarning, CAerFile::Open(/dev/sda5): 6
Time: 0000000425.172, Thread: 156, dlNone, CAerNCRSerialFPGA::Open() flowTx /dev/sda5 Size[2147483648] Blocks[524288 0x00080000]
Time: 0000000425.172, Thread: 156, dlNotice, TxThread() pFPGA->Open() ulLength[-2147483648] nProgressEvents[20] nBlockSize[4096] nMod[26214]
Time: 0000000425.172, Thread: 156, dlNone, CAerFile::Open(/dev/sda5, 0x00000001) NCRHack[1]
Time: 0000000425.172, Thread: 156, dlWarning, CAerFile::Open(/dev/sda5): 6
Unhandled fault: Precise External Abort on non-linefetch (0x1008) at 0xe0034000
Internal error: : 1008 [#1]
last sysfs file: /sys/devices/platform/ahci.0/host1/target1:0:0/1:0:0:0/block/sda/dev
Modules linked in: g_file_storage altfpgaNCR
CPU: 0 Not tainted (2.6.37 #1)
PC is at do_sgdma+0x7a0/0xa98 [altfpgaNCR]
LR is at schedule_timeout+0x160/0x190
pc : [<bf001398>] lr : [<c0216d88>] psr: 80000013
sp : dfba9ec0 ip : dfba9e30 fp : dfba9f3c
r10: 000003e4 r9 : 00000000 r8 : ffffffff
r7 : 43c30f80 r6 : 00003e20 r5 : 00003e00 r4 : bf003610
r3 : e0034000 r2 : e0034010 r1 : bf003610 r0 : 00000000
Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c5387d Table: 9fba4019 DAC: 00000015
Process Zipper (pid: 161, stack limit = 0xdfba82e8)
Stack: (0xdfba9ec0 to 0xdfbaa000)
9ec0: 00000000 00000000 df814000 00000000 00000000 43c30000 000000f8 00000001
9ee0: 00000f70 dfba8000 000000f9 000001f0 c00c2f68 bf000120 dfba9f14 dfba9f08
9f00: 9b8ce000 c0146754 dfba9f4c dfba9f18 c00b62ac dfa0a680 43c30000 dfba9f70
9f20: 000f9000 43c30000 dfba8000 00000000 dfba9f4c dfba9f40 bf0016ac bf000c04
9f40: dfba9f6c dfba9f50 c00b6a9c bf00169c 00000000 00000000 dfa0a680 000f9000
9f60: dfba9fa4 dfba9f70 c00b6b88 c00b69f8 00000000 00000000 c008dc74 00000001
9f80: 00000043 00097938 9ba5e354 403780c4 00000004 c003af48 00000000 dfba9fa8
9fa0: c003ada0 c00b6b50 00097938 9ba5e354 00000005 43c30000 000f9000 00000005
9fc0: 00097938 9ba5e354 403780c4 00000004 003d0f00 4002f3d8 00000000 4ae41c74
9fe0: 00000000 4ae41c40 4002b4dc 4002bbc4 80000010 00000005 e6e6e6e6 e6e6e6e6
Backtrace:
[<bf000bf8>] (do_sgdma+0x0/0xa98 [altfpgaNCR]) from [<bf0016ac>] (altfpga_write+0x1c/0x20 [altfpgaNCR])
[<bf001690>] (altfpga_write+0x0/0x20 [altfpgaNCR]) from [<c00b6a9c>] (vfs_write+0xb0/0xd8)
[<c00b69ec>] (vfs_write+0x0/0xd8) from [<c00b6b88>] (sys_write+0x44/0x70)
r7:000f9000 r6:dfa0a680 r5:00000000 r4:00000000
[<c00b6b44>] (sys_write+0x0/0x70) from [<c003ada0>] (ret_fast_syscall+0x0/0x30)
r8:c003af48 r7:00000004 r6:403780c4 r5:9ba5e354 r4:00097938
Code: e3a03000 e591204c e5823000 e5913048 (e5933000)
---[ end trace 461dd2641c46e9bb ]---