瑞芯微Rockchip开发者社区
直播中

qjqb

8年用户 1269经验值
擅长:5762
私信 关注
[经验]

浅析RK3568 PCIe接口异常初始化设备系统异常的原因及解决办法

PCIe3.0控制器初始化设备系统异常

[ 21.202444] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:

[ 21.202467] rcu: 3-...0: (1 GPs behind) idle=21a/1/0x4000000000000000 softirq=23/25 fqs=1856

[ 21.202473] rcu: (detected by 2, t=6302 jiffies, g=-1163, q=24)

[ 21.202482] Task dump for CPU 3:

[ 21.202488] rk-pcie R running task 0 54 2 0x0000002a

[ 21.202497] Call trace:

[ 21.202511] __switch_to+0xe4/0x138

[ 21.202518] 0x4

[ 21.205777] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:

[ 21.205796] rcu: 3-...!: (24 ticks this GP) idle=21a/1/0x4000000000000000 softirq=5/25 fqs=1

[ 21.205801] rcu: (detected by 2, t=6302 jiffies, g=-1183, q=2)

[ 21.205810] Task dump for CPU 3:

[ 21.205815] rk-pcie R running task 0 54 2 0x0000002a

[ 21.205823] Call trace:

[ 21.205831] __switch_to+0xe4/0x138

[ 21.205837] 0x4

[ 21.205846] rcu: rcu_sched kthread starved for 6299 jiffies! g-1183 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=0

[ 21.205851] rcu: RCU grace-period kthread stack dump:

[ 21.205856] rcu_sched I 0 11 2 0x00000028

[ 21.205863] Call trace:

[ 21.205869] __switch_to+0xe4/0x138

[ 21.205879] __schedule+0x2f4/0x930

[ 21.205886] schedule+0x38/0xa0

[ 21.205892] schedule_timeout+0x194/0x478

[ 21.205901] rcu_gp_kthread+0x4fc/0x840

[ 21.205909] kthread+0x12c/0x158

[ 21.205916] ret_from_fork+0x10/0x18

异常原因:
如果系统卡住此 log 附近,则表明 PCIe3.0 的 PHY 工作异常。

解决方法:
硬件上使用PCIe
1. 外部晶振芯片的时钟输入是否异常,如果无时钟或者幅度异常,将导致 phy 无法锁定。
2. 检查 PCIE30_AVDD_0V9 和 PCIE30_AVDD_1V8 电压是否满足要求。

硬件上不使用PCIe
kernel 的 dts 里把 PCIe disabled。

&pcie30phy {

status = "disabled";

};

&pcie3x2 {

status = "disabled";

};

原作者:firefly_zhongw

回帖(1)

bzhao

2022-8-30 16:22:18
我也碰到这样的问题, 确实管用,感谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分