Hi,
I'm trying to operate DM8168 EVM in PCIe endpoint mode.
The Linux kernel I'm using comes from TI816X-LINUX-PSP-04.00.02.14.tgz.
I followed the instructions listed in http://processors.wiki.ti.com/index.php/DM81xx_AM38xx_PCI_Express_Endpoint_Driver_User_Guide
, disabled PCI bus support, and then enabled PCIE endpoint module.
I boot my EVM (single board, no connection to any PCIe root complex, just for test) with the new kernel image from SD card.
When I invoke insmod ti81xx_pcie_epdrv.ko command, it just returned an error message:
Unhandled fault: external abort on non-linefetch (0x1028) at 0xcb001004
Internal error: : 1028 [#1]
last sysfs file: /sys/kernel/uevent_seqnum
Modules linked in: ti81xx_pcie_epdrv(+)
CPU: 0 Not tainted (2.6.37 #1)
PC is at ti81xx_ep_pcie_init+0x1b8/0x290 [ti81xx_pcie_epdrv]
LR is at kobject_put+0x48/0x5c
pc : [<bf000c1c>] lr : [<c018e724>] psr: 60000013
sp : c57cff18 ip : cb001050 fp : c57cff44
r10: 00000000 r9 : c57ce000 r8 : bf000e37
r7 : bf0011a8 r6 : 00000000 r5 : bf001198 r4 : cb000000
r3 : 00000000 r2 : cb001004 r1 : bf001210 r0 : bf001200
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c5387d Table: 854a4019 DAC: 00000015
Process insmod (pid: 1152, stack limit = 0xc57ce2e8)
Stack: (0xc57cff18 to 0xc57d0000)
ff00: bf000e37 bf0011a8
ff20: c0085678 00000000 bf001074 00012008 00012018 bf000a64 c57cff7c c57cff48
ff40: c003942c bf000a70 bf001074 00012008 00012018 c0043fa8 00000000 bf001074
ff60: 00012008 00012018 c0043fa8 00000000 c57cffa4 c57cff80 c009574c c0039368
ff80: c00c0f64 c00c0e7c 00000000 00004000 00000003 00000080 00000000 c57cffa8
ffa0: c0043e00 c00956bc 00000000 00004000 00012018 00002d43 00012008 00000001
ffc0: 00000000 00004000 00000003 00000080 00012008 00000000 00012018 00000000
ffe0: bedbdead bedbdc3c 00008da0 401ae7d4 60000010 00012018 00000000 00000000
Backtrace:
[<bf000a64>] (ti81xx_ep_pcie_init+0x0/0x290 [ti81xx_pcie_epdrv]) from [<c003942c>] (do_one_initcall+0xd0/0x1a4)
r8:bf000a64 r7:00012018 r6:00012008 r5:bf001074 r4:00000000
[<c003935c>] (do_one_initcall+0x0/0x1a4) from [<c009574c>] (sys_init_module+0x9c/0x1bc)
[<c00956b0>] (sys_init_module+0x0/0x1bc) from [<c0043e00>] (ret_fast_syscall+0x0/0x30)
r7:00000080 r6:00000003 r5:00004000 r4:00000000
Code: e284cd41 e2822004 e584618c e28cc010 (e5923000)
---[ end trace baf535189e0c806b ]---
I traced into ti81xx_pcie_epdrv.c.
It hanged on line 851 in function ti81xx_setup_msi(), which reads control registers in the 0x51000000 region.
I wrote a program to read 0x51000000 via /dev/mem, It also causes a similar error message.
Unhandled fault: external abort on non-linefetch (0x1018) at 0x4038c000
Can anyone help?