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.

[参考译文] Linux/TMDSICE3359:PRU 以太网在使用最新 SDK 时失败

Guru**** 2924210 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/664072/linux-tmdsice3359-pru-ethernet-fails-with-latest-sdk

器件型号:TMDSICE3359

工具/软件:Linux

尊敬的 TI 支持:

我们有一个 TI ICEv2.1A 开发套件、但无法让 PRU 以太网与开箱即用的 ti-processor-sdk-linux-rt-am335x-evm-04.02.00.09配合使用。 可以使用预编译的图像或从源创建图像而不进行任何修改来重现此问题。 我们将映像烧录到 micro SD 卡上、并将板从 micro SD 卡引导。

当我插入以太网线时、它无法从我们的 DHCP 服务器获取 IP。 大约5秒钟后,控制台打印出以下内容:

root@AM335x-EVM:~#[67.017181]  sched:RT 节流已激活
[67.032141]  NOHZ:local_softirq_pending 08
[67.035470]  NOHZ:local_softirq_pending 08
[67.037247]  NOHZ:local_softirq_pending 08
[67.047195]  NOHZ:local_softirq_pending 08
[67.057190]  NOHZ:local_softirq_pending 08
[67.063421]  NOHZ:local_softirq_pending 08
[67.067191]  NOHZ:local_softirq_pending 08
[68.040349]  NOHZ:local_softirq_pending 10e
[68.047256]  NOHZ:local_softirq_pending 10e
[68.057196]  NOHZ:local_softirq_pending 10e

大约1分钟后,我拔下控制台的以太网线,然后打印出以下内容:

[112.077203] INFO:RCU_PRETER-DETALL SELF DETECTED STALL on CPU
[112.077223]  0-...:(2100次此 GP 周期) idle=71f/1/0 softirq=0/0 fqs=0
[112.077231]   (t=2100 jiffies g=1715 c=1714 q=789)
[112.077243] RCU_preempt kthread 为2100个吉夫! g1715 c1714 f0x0 RCU_GP_WAIT_FQS (3)->状态= 0x0
[112.077258] RCU_PRETERR     运行任务       0    8     2 0x00000000
[112.077264] 回溯:
[112.077296] [ ](__schedule)从[ ](计划+0x60/0xf8)
[112.077310]  R10:c0c15ec0 R9:00000001 R8:c0c14dc0 r7:c0c15ec0 R6:cf075ed0 R5:cf052d80
[112.077314]  R4:cf074000
[112.077330] [ ](计划)从[ ](schedule_timeout+0x15c/0x290)
[112.077336]  R5:c0c14dc0 R4:ffae64
[112.077350] [ ](schedule_timeout)从[ ](RCU_gp_kthread+0x720/0xa6c)
[112.077361]  R8:c0c145c0 r7:c0c145c8 r6:c0c145ca R5:cf074000 R4:c0c14480
[112.077382] [ ](RCU_gp_kthread)、来自[ ](kthread+0xf8/0x110)
[112.077386]  r7:c0c14480
[112.077406] [ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x34)
[112.077417]  R8:00000000 r7:00000000 R6:00000000 R5:c0146e9c R4:cf032400
[112.077423] CPU 的任务转储0:
[112.077432] swapper        R 运行任务       0         0 0x00000002
[112.077436] 回溯:
[112.077455][  ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[112.077464]  r7:c0c03d38 R6:00000000 R5:00000000 R4:c069c0
[112.077478] [ ](show_stack)从[ ](sched_show_task+b8/0x108)
[112.077490] [ ](sched_show_task)、来自[ ](dump_CPU_TASK_0x2C/0x30)
[112.077496]  R5:c0c00000 R4:c0c14480
[112.077518] [ ](dump_CPU_task)、来自[ ](RCU_Dump_CPU_STACK_bstack+0xb4/0xe4)
[112.077531] [ ](RCU_Dump_CPU_STACK_STACK_)、来自[ ](RCU_CHECK_callbacks+0x4cc/0x964)
[112.077543]  R10:c0c03d30 R9:c0c03d38 R8:c0c14480 r7:c0c15ec0 R6:00000000 R5:c0c14480
[112.077549]  R4:c0c14afc r3:c0c00000
[112.077564] [ ](RCU_CHECK_callback)、来自[ ](update_process_times_0x40/0x64)
[112.077576]  R10:00000003 R9:00000000 R8:c0c15f8c r7:0000001a R6:00000000 R5:c069c0
[112.077580]  R4:ffe000
[112.077601] [ ](update_process_times)从[ ](tick_sched_handle+0x50/0x54)
[112.077610]  r7:0000001a r6:17e4b319 r5:c0c01f10 r4:c0c167c0
[112.077623] [ ](tick_sched_handle)从[ ](tick_sched_timer+0x64/0xb8)
[112.077638] [ ](tick_sched_timer)、来自[ ](_hrtimer_run_quees.constprop.5+0x11c/0x27c)
[112.077647]  r7:c0c15f80 r6:c0c00000 r5:c0c15f00 r4:c0c167c0
[112.077661] [ ](__hrtimer_run_quees.constprop.5)来自[ ](hrtimer_interrupt+b4/0x280)
[112.077672]  R10:c0c16060 R9:c0c01db8 R8:ffff r7:7ffffffff R6:00000003 R5:c0c00000
[112.077676]  R4:c0c15f00
[112.077699] [ ](hrtimer_interrupt)、来自[ ](OMAP2_gp_timer_interrupt+0x30/0x38)
[112.077711]  R10:c0c48c7f R9:cf01a000 R8:00000010 r7:c0c01e6c R6:00000000 R5:cf01a000
[112.077715]  R4:c0c08cb4
[112.077738] [ ](OMAP2_gp_timer_interrupt)、来自[ ](__Handle_IRQ_EVENT_percup+b0x4/0x144)
[112.077753] [ ](_handle_irq_event_perpu)、来自[ ](handle_irq_event_perpu + 0x3c/0x78)
[112.077765]  R10:cff540 R9:c0c00000 R8:cf006000 r7:00000000 R6:00000000 R5:cf01a000
[112.077769]  R4:c0108588
[112.077782] [ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT+0x64/0xa4)
[112.077789]  R6:00000000 R5:cf01a010 R4:cf01a000
[112.077803] [ ](handle_irq_event)从[ ](handle_level_IRQ+b8/0x184)
[112.077809]  R5:cf01a010 R4:cf01a000
[112.077820][  ](handle_level_IRQ)、来自[ ](generic_handle_IRQ+0x2C/0x3c)
[112.077826]  R5:00000010 R4:c0c20774
[112.077838] [ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x5c/b0)
[112.077851] [ ](_handle_domain_IRQ)、来自[ ](OMAP-INTC_Handle_IRQ+0x3c/0x98)
[112.077863]  R9:c0c00000 R8:00000001 r7:c0c01f44 R6:ffff R5:60013 R4:c0c7e868
[112.077873][  ](OMAP-INTC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x6c/bb)
[112.077879] 异常堆栈(0xc0c01f10至0xc0c01f58)
[112.077889] 1f00:                                    00000000 0000271e 00000000 c0117620
[112.077902] 1f20:c0c00000 c0c03d08 c0c48c7c c098da2c 00000001 c0b3aa28 cff540 c0c01f6c
[112.077913] 1f40:c0c01f70 c0c01f60 c0108584 c0108588 60060013 ffffff
[112.077919]  R5:60013 R4:c0108588
[112.077935] [ ](arch_cpu_idle)从[ ](DEFAULT_IDLE_CALL + 0x34/0x40)
[112.077957] [ ](DEFAULT_IDLE_CALL)从[ ](CPU_STARTUP_END+0xa4/0x100)
[112.077969][  ](CPU_STARTUP_INPUK)、来自[ ](REST_INIT+0x8c/0x90)
[112.077975]  r7:ffff R4:00000002
[112.077995] [ ](REST_INIT)从[ ](start_kernel+0x3b0/0x3bc)
[112.078001]  R5:c0c48f00 R4:c0c48f4c
[112.078014][  ](start_kernel)从[<80008078>](0x80008078)
[131.027937] prueth pruss_eth eth1:链路断开

我使用预构建的 ti-processor-sdk-linux-rt-am335x-evm-04.01.00.06映像测试了 PRU Etherne、运行正常。 电路板从 DHCP 获得 IP、并且控制台上未打印任何错误。

我还使用两个映像测试了 CPSW 以太网、再次证明它可以与 CPSW 配合使用。

PRU 以太网似乎在最新的 SDK 中停止工作。 是否有人可以查看此内容或向我提供有关如何解决此问题的提示?

谢谢

Cody