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 sof
tirq=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