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.

8148EVM开发板识别不到pcie设备



我们在使用一款TMDXEVM8148开发板,处理器型号x8148x3874....软件linux内核版本 2.6.37

问题:

最近我们在移植一个pcie接口的wifi模块,发现系统在/sys/bus/pci/下面 随机出现00:00  00:01这两个设备,似乎扫描不到wifi厂商的设备

源码使用的是dvr_rdk的默认配置,RC模式,是源码哪里配置有问题吗?

  • 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 not
    applicable for prior TI814X releases

    那么这个版本支持pcie RC模式吗?

  • JianLei Yan 说:
    时钟也测试了,RC和EP参考时钟均是100MHZ。

    请问是同源的么?

  • 是的,我测试的是CDCM61002RHBR芯片,引出PCI_CONN_REFP,PCI_CONN_REFN送到ep,SERDES_IN_REFP,SERDES_IN_REFN送到处理器

    管脚输出100MHZ的

  • 现在有几个现象

    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: 0    Not 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 : c4825e38  ip : c4825dd8  fp : c4825e64
    r10: c05e9110  r9 : 00000000  r8 : c4893000
    r7 : c057b180  r6 : c489305c  r5 : c4893040  r4 : c05c1a18
    r3 : c8830000  r2 : 00000604  r1 : 00000000  r0 : 00000000
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    Control: 10c5387f  Table: 80004019  DAC: 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:c04e8c01
     r7: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 ffffffff
     r8: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
    这些现象说明什么呢?
  • JianLei Yan 说:

    是的,我测试的是CDCM61002RHBR芯片,引出PCI_CONN_REFP,PCI_CONN_REFN送到ep,SERDES_IN_REFP,SERDES_IN_REFN送到处理器

    管脚输出100MHZ的

    我的意思是pcie slot上的参考时钟是否同源?

  • 插槽上REFCLK+ 和REFCLK-这两根信号线吗?他们都是从CDCM61002RHBR芯片输出的,算是同源吗?

  • 这个时钟不是从处理器引出的,应该是独立的时钟源

  • 你好,

    你看看下面链接的信息:

    http://processors.wiki.ti.com/index.php/TI81XX_PCIe_FAQs

    http://processors.wiki.ti.com/index.php/DM816x_AM389x_PCIe_Clocking_Schemes

  • Chris Meng 说:

    你好,

    你看看下面链接的信息:

    http://processors.wiki.ti.com/index.php/TI81XX_PCIe_FAQs

    http://processors.wiki.ti.com/index.php/DM816x_AM389x_PCIe_Clocking_Schemes

    我们在使用的是ti做的公板,TI81XX_PSP_PCI_Express_Root_Complex_Driver_User_Guide对814X说,RC模式是在

    SDK 04.01.00.06之后的版本添加的,我们用的是 DVRRDK_04.01.00.02.tar.lzma,能不能说明是这个问题造成的呢?

  • 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

  • Chris Meng 说:

    我们在使用的是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

    [/quote]

    HI,Chris  Meng:

    我们这边发现,在使用的PCIE EP设备是需要使用PCIE reset信号复位的,我两个问题需要向您请教一下

    1、/sys/bus/pci下面的pcie总线大多时候是空的目录,这个目录是在扫描到ep之后才会产生的吗

    2、在Uboot中bootcmd添加 i2c mw 0x20 ff ef ; i2c mw 0x20 ff ff,这样在8148 EVM平台上对SW的操作有几处?

  • 你好:

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_PCI_Express_Root_Complex_Driver_User_Guide#Taking_care_of_PERSTn

    Taking care of PERSTn

    Note: This section including sub-sections do not apply to TI814X/TI813X.

    我网上搜索了一下,复位可以使用下面的命令,你看看可行吗?

    echo "1" > /sys/bus/pci/devices/$NUMBER/reset