我们在使用一款TMDXEVM8148开发板,处理器型号x8148x3874….软件linux内核版本 2.6.37
问题:
最近我们在移植一个pcie接口的wifi模块,发现系统在/sys/bus/pci/下面 随机出现00:00 00:01这两个设备,似乎扫描不到wifi厂商的设备
源码使用的是dvr_rdk的默认配置,RC模式,是源码哪里配置有问题吗?
JianLei Yan:
menuconfig 中相关pcie debug配置,输出no_link,信息。可是有的时候系统是能检测到RC bridge的,有的时候自己的brige也检测不到,
不明白这里有什么问题?
时钟也测试了,RC和EP参考时钟均是100MHZ。
我们使用的8148发布版本是 DVRRDK_04.01.00.02.tar.lzma,Userguide说:
Support for TI814X Root Complex is added from 04.01.00.06 release, hence this document is notapplicable for prior TI814X releases
那么这个版本支持pcie RC模式吗?
Chris Meng:
回复 JianLei Yan:
JianLei Yan时钟也测试了,RC和EP参考时钟均是100MHZ。
请问是同源的么?
JianLei Yan:
回复 Chris Meng:
是的,我测试的是CDCM61002RHBR芯片,引出PCI_CONN_REFP,PCI_CONN_REFN送到ep,SERDES_IN_REFP,SERDES_IN_REFN送到处理器
管脚输出100MHZ的
JianLei Yan:
回复 JianLei Yan:
现在有几个现象
1、启动后大多数时候/sys/bus/pci这个目录是空的,有时候会有两个子目录
2、系统启动有时候会因为pcie启动失败,打印
ti81xx_pcie: Invoking PCI BIOS... ti81xx_pcie: Setting up Host Controller... ti81xx_pcie: Register base mapped @0xc8830000 ti81xx_pcie: forcing link width - x1 Unhandled fault: external abort on non-linefetch (0x1008) at 0xc8830004 Internal error: : 1008 [#1] last sysfs file:Modules linked in: CPU: 0Not tainted(2.6.37 #14) PC is at ti81xx_pcie_setup+0x324/0x5c4 LR is at schedule_timeout+0x148/0x174 pc : [<c0064110>]lr : [<c040250c>]psr: 60000013 sp : c4825e38ip : c4825dd8fp : c4825e64 r10: c05e9110r9 : 00000000r8 : c4893000 r7 : c057b180r6 : c489305cr5 : c4893040r4 : c05c1a18 r3 : c8830000r2 : 00000604r1 : 00000000r0 : 00000000 Flags: nZCvIRQs onFIQs onMode SVC_32ISA ARMSegment kernel Control: 10c5387fTable: 80004019DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc48242e8) Stack: (0xc4825e38 to 0xc4826000) 5e20:c4825e64 c4825e48 5e40: c00cbd04 c0584a00 c4893000 00000000 00000000 c0587500 c4825e94 c4825e68 5e60: c000c2e4 c0063df8 60000013 c056ff18 c056ff4c c05849c8 c05849c8 00000000 5e80: 00000000 00000000 c4825ea4 c4825e98 c0063bcc c000c250 c4825eb4 c4825ea8 5ea0: c023333c c0063b50 c4825ed4 c4825eb8 c02323ac c023332c c056ff18 c056ff4c 5ec0: c05849c8 00000000 c4825ef4 c4825ed8 c02324d0 c02322e8 c481ee34 c05849c8 5ee0: c4825ef8 c0232468 c4825f1c c4825ef8 c0231544 c0232474 c481ee38 c4888930 5f00: c05849c8 c4892180 c05a51f0 00000000 c4825f2c c4825f20 c0232044 c02314f8 5f20: c4825f5c c4825f30 c0231c48 c0232030 c04dda2e c4825f40 c05849c8 c002fb14 5f40: c0078e88 c0013430 00000000 00000000 c4825f84 c4825f60 c023272c c0231ba0 5f60: c002f6c8 c002fb14 c0078e88 c0013430 00000000 00000000 c4825f94 c4825f88 5f80: c02337f8 c0232688 c4825fa4 c4825f98 c0013444 c02337b8 c4825fdc c4825fa8 5fa0: c00424f8 c001343c c4825fc4 00000196 c05918dc c0078e88 c4825fdc c002f6c8 5fc0: c002fb14 c0078e88 00000013 00000000 c4825ff4 c4825fe0 c0008cfc c0042448 5fe0: 00000000 c0008c5c 00000000 c4825ff8 c0078e88 c0008c68 16969696 149e9694 Backtrace:[<c0063dec>] (ti81xx_pcie_setup+0x0/0x5c4) from [<c000c2e4>] (pci_common_init+0xa0/0x190)r8:c0587500 r7:00000000 r6:00000000 r5:c4893000 r4:c0584a00 [<c000c244>] (pci_common_init+0x0/0x190) from [<c0063bcc>] (ti81xx_pcie_probe+0x88/0xa0) [<c0063b44>] (ti81xx_pcie_probe+0x0/0xa0) from [<c023333c>] (platform_drv_probe+0x1c/0x20) [<c0233320>] (platform_drv_probe+0x0/0x20) from [<c02323ac>] (driver_probe_device+0xd0/0x18c) [<c02322dc>] (driver_probe_device+0x0/0x18c) from [<c02324d0>] (__driver_attach+0x68/0x8c)r7:00000000 r6:c05849c8 r5:c056ff4c r4:c056ff18 [<c0232468>] (__driver_attach+0x0/0x8c) from [<c0231544>] (bus_for_each_dev+0x58/0x88)r6:c0232468 r5:c4825ef8 r4:c05849c8 r3:c481ee34 [<c02314ec>] (bus_for_each_dev+0x0/0x88) from [<c0232044>] (driver_attach+0x20/0x28)r7:00000000 r6:c05a51f0 r5:c4892180 r4:c05849c8 [<c0232024>] (driver_attach+0x0/0x28) from [<c0231c48>] (bus_add_driver+0xb4/0x230) [<c0231b94>] (bus_add_driver+0x0/0x230) from [<c023272c>] (driver_register+0xb0/0x134) [<c023267c>] (driver_register+0x0/0x134) from [<c02337f8>] (platform_driver_register+0x4c/0x60) [<c02337ac>] (platform_driver_register+0x0/0x60) from [<c0013444>] (ti81xx_pcie_rc_init+0x14/0x20) [<c0013430>] (ti81xx_pcie_rc_init+0x0/0x20) from [<c00424f8>] (do_one_initcall+0xbc/0x190) [<c004243c>] (do_one_initcall+0x0/0x190) from [<c0008cfc>] (kernel_init+0xa0/0x154)r8:00000000 r7:00000013 r6:c0078e88 r5:c002fb14 r4:c002f6c8 [<c0008c5c>] (kernel_init+0x0/0x154) from [<c0078e88>] (do_exit+0x0/0x5d0)r5:c0008c5c r4:00000000 Code: e2833a01 e1c320ba f57ff04f e5943000 (e5932004)---[ end trace 1b75b31a2719ed1c ]--- Kernel panic - not syncing: Attempted to kill init! Backtrace:[<c004ffc4>] (dump_backtrace+0x0/0x110) from [<c040197c>] (dump_stack+0x18/0x1c)r6:c4822000 r5:0000000b r4:c05c1f98 r3:60000113 [<c0401964>] (dump_stack+0x0/0x1c) from [<c04019dc>] (panic+0x5c/0x178) [<c0401980>] (panic+0x0/0x178) from [<c0078ef0>] (do_exit+0x68/0x5d0)r3:c0588a4c r2:c4825c68 r1:00000001 r0:c04e8c01r7:00000000 [<c0078e88>] (do_exit+0x0/0x5d0) from [<c0050438>] (die+0x2b0/0x2ec)r7:00000000 [<c0050188>] (die+0x0/0x2ec) from [<c00504c8>] (arm_notify_die+0x54/0x58) [<c0050474>] (arm_notify_die+0x0/0x58) from [<c0042248>] (do_DataAbort+0x8c/0xa0) [<c00421bc>] (do_DataAbort+0x0/0xa0) from [<c04038ec>] (__dabt_svc+0x4c/0x60) Exception stack(0xc4825df0 to 0xc4825e38) 5de0:00000000 00000000 00000604 c8830000 5e00: c05c1a18 c4893040 c489305c c057b180 c4893000 00000000 c05e9110 c4825e64 5e20: c4825dd8 c4825e38 c040250c c0064110 60000013 ffffffffr8:c4893000 r7:c057b180 r6:c489305c r5:c4825e24 r4:ffffffff [<c0063dec>] (ti81xx_pcie_setup+0x0/0x5c4) from [<c000c2e4>] (pci_common_init+0xa0/0x190)r8:c0587500 r7:00000000 r6:00000000 r5:c4893000 r4:c0584a00 [<c000c244>] (pci_common_init+0x0/0x190) from [<c0063bcc>] (ti81xx_pcie_probe+0x88/0xa0) [<c0063b44>] (ti81xx_pcie_probe+0x0/0xa0) from [<c023333c>] (platform_drv_probe+0x1c/0x20) [<c0233320>] (platform_drv_probe+0x0/0x20) from [<c02323ac>] (driver_probe_device+0xd0/0x18c) [<c02322dc>] (driver_probe_device+0x0/0x18c) from [<c02324d0>] (__driver_attach+0x68/0x8c)r7:00000000 r6:c05849c8 r5:c056ff4c r4:c056ff18 [<c0232468>] (__driver_attach+0x0/0x8c) from [<c0231544>] (bus_for_each_dev+0x58/0x88)r6:c0232468 r5:c4825ef8 r4:c05849c8 r3:c481ee34 [<c02314ec>] (bus_for_each_dev+0x0/0x88) from [<c0232044>] (driver_attach+0x20/0x28)r7:00000000 r6:c05a51f0 r5:c4892180 r4:c05849c8 [<c0232024>] (driver_attach+0x0/0x28) from [<c0231c48>] (bus_add_driver+0xb4/0x230) [<c0231b94>] (bus_add_driver+0x0/0x230) from [<c023272c>] (driver_register+0xb0/0x134) [<c023267c>] (driver_register+0x0/0x134) from [<c02337f8>] (platform_driver_register+0x4c/0x60) [<c02337ac>] (platform_driver_register+0x0/0x60) from [<c0013444>] (ti81xx_pcie_rc_init+0x14/0x20) [<c0013430>] (ti81xx_pcie_rc_init+0x0/0x20) from [<c00424f8>] (do_one_initcall+0xbc/0x190) [<c004243c>] (do_one_initcall+0x0/0x190) from [<c0008cfc>] (kernel_init+0xa0/0x154)r8:00000000 r7:00000013 r6:c0078e88 r5:c002fb14 r4:c002f6c8 [<c0008c5c>] (kernel_init+0x0/0x154) from [<c0078e88>] (do_exit+0x0/0x5d0)r5:c0008c5c r4:00000000这些现象说明什么呢?
Chris Meng:
回复 JianLei Yan:
JianLei Yan
是的,我测试的是CDCM61002RHBR芯片,引出PCI_CONN_REFP,PCI_CONN_REFN送到ep,SERDES_IN_REFP,SERDES_IN_REFN送到处理器
管脚输出100MHZ的
JianLei Yan:
回复 Chris Meng:
插槽上REFCLK+ 和REFCLK-这两根信号线吗?他们都是从CDCM61002RHBR芯片输出的,算是同源吗?
JianLei Yan:
回复 JianLei Yan:
这个时钟不是从处理器引出的,应该是独立的时钟源
Chris Meng:
回复 JianLei Yan:
你好,
你看看下面链接的信息:
http://processors.wiki.ti.com/index.php/TI81XX_PCIe_FAQs
http://processors.wiki.ti.com/index.php/DM816x_AM389x_PCIe_Clocking_Schemes
JianLei Yan:
回复 Chris Meng:
Chris Meng
你好,
你看看下面链接的信息:
http://processors.wiki.ti.com/index.php/TI81XX_PCIe_FAQs
http://processors.wiki.ti.com/index.php/DM816x_AM389x_PCIe_Clocking_Schemes
Chris Meng:
回复 JianLei Yan:
JianLei Yan
我们在使用的是ti做的公板,TI81XX_PSP_PCI_Express_Root_Complex_Driver_User_Guide对814X说,RC模式是在
SDK 04.01.00.06之后的版本添加的,我们用的是 DVRRDK_04.01.00.02.tar.lzma,能不能说明是这个问题造成的呢?
原文是:
NOTE1: Support for TI814X Root Complex is added from 04.01.00.06 release, hence this document is not applicable for prior TI814X releases.
这里的软件版本是psp,也就是linux驱动的版本,不是dvr rdk的版本。
最新的驱动你可以在git上下载:
http://arago-project.org/git/projects/?p=linux-omap3.git;a=summary