[Arm64-baikalm] [PATCH] device tree: BM-1000 PCI-e is NOT compatible with dw-pcie
Alexey Sheplyakov
asheplyakov на basealt.ru
Вт Июл 19 16:21:23 MSK 2022
For one NVME drives don't work:
[ 132.874676] nvme nvme1: I/O 13 QID 0 timeout, completion polled
[ 247.562614] INFO: task kworker/u16:1:64 blocked for more than 122 seconds.
[ 247.569714] Not tainted 5.19.0-rc7-00043-g385e32fcf0e8 #1
[ 247.575731] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 247.583656] task:kworker/u16:1 state:D stack: 0 pid: 64 ppid: 2 flags:0x00000008
[ 247.592107] Workqueue: events_unbound async_run_entry_fn
[ 247.597521] Call trace:
[ 247.600047] __switch_to+0xf8/0x170
[ 247.603618] __schedule+0x390/0xb3c
[ 247.607182] schedule+0x5c/0xd4
[ 247.610399] schedule_timeout+0xd8/0x110
[ 247.614401] __wait_for_common+0xb0/0x1d0
[ 247.618508] wait_for_completion+0x2c/0x40
[ 247.622681] __flush_work+0x200/0x4c0
[ 247.626420] flush_work+0x20/0x30
[ 247.629812] nvme_async_probe+0x28/0x50 [nvme]
[ 247.634349] async_run_entry_fn+0x44/0x170
[ 247.638527] process_one_work+0x264/0x684
[ 247.642612] worker_thread+0x80/0x42c
[ 247.646351] kthread+0x100/0x110
[ 247.649655] ret_from_fork+0x10/0x20
Other devices (PCI-e Ethernet controller) also fail due to timeouts.
This has been tested on several boards (TF307 rev 1.4, Rhodeola).
To avoid the problem remove "compatible = snps,dw-pcie" from PCI-E
nodes in the DTB.
---
src/kernel/arch/arm64/boot/dts/baikal/bm1000.dtsi | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/kernel/arch/arm64/boot/dts/baikal/bm1000.dtsi b/src/kernel/arch/arm64/boot/dts/baikal/bm1000.dtsi
index 8e5d49776..a201dfb2c 100644
--- a/src/kernel/arch/arm64/boot/dts/baikal/bm1000.dtsi
+++ b/src/kernel/arch/arm64/boot/dts/baikal/bm1000.dtsi
@@ -321,7 +321,7 @@
pcie0: pcie at 2200000 { /* PCIe x4 #0 */
device_type = "pci";
- compatible = "baikal,bm1000-pcie", "baikal,pcie-m", "snps,dw-pcie";
+ compatible = "baikal,bm1000-pcie", "baikal,pcie-m";
reg = <0x00000000 0x02200000 0x0 0x1000>,
<0x00000040 0x00000000 0x0 0x10000000>;
reg-names = "dbi", "config";
@@ -343,7 +343,7 @@
pcie1: pcie at 2210000 { /* PCIe x4 #1 */
device_type = "pci";
- compatible = "baikal,bm1000-pcie", "baikal,pcie-m", "snps,dw-pcie";
+ compatible = "baikal,bm1000-pcie", "baikal,pcie-m";
reg = <0x00000000 0x02210000 0x0 0x1000>,
<0x00000050 0x00000000 0x0 0x10000000>;
reg-names = "dbi", "config";
@@ -365,7 +365,7 @@
pcie2: pcie at 2220000 { /* PCIe x8 */
device_type = "pci";
- compatible = "baikal,bm1000-pcie", "baikal,pcie-m", "snps,dw-pcie";
+ compatible = "baikal,bm1000-pcie", "baikal,pcie-m";
reg = <0x00000000 0x02220000 0x0 0x1000>,
<0x00000060 0x00000000 0x0 0x10000000>;
reg-names = "dbi", "config";
--
2.32.0
Подробная информация о списке рассылки Arm64-baikalm