LINUX.ORG.RU

(нет решения) rk3399 pci сетевая карта вешает загрузку

 , ,


0

3

итог: (нет решения) rk3399 pci сетевая карта вешает загрузку (комментарий)


Всё ещё лежит у меня nanopc-t4, у него есть
«PCIe: One M.2 M-Key PCIe x4 socket, compatible with PCIe 2.1, Dual operation mode; Onboard M3 PCB nut for mounting M.2 2280 module»

В который я подключил вот такую железку от китайцев Сетевая карта M.2 на 2 порта RJ45 2,5G Gigabit Ethernet адаптер NIC 2500 Мбит/с B/M ключ M2 Размер 22*80 мм RealTek RTL8125B

После чего грузиться моя платка перестала выплёвывая в debug консоль такое

Starting kernel ...

[    3.118389] Internal error: synchronous external abort: 0000000096000210 [#1] PREEMPT SMP
[    3.119125] Modules linked in:
[    3.119410] CPU: 2 PID: 202 Comm: kworker/u12:6 Not tainted 6.7.9-1-MANJARO-ARM #1
[    3.120085] Hardware name: FriendlyElec NanoPC-T4 (DT)
[    3.120543] Workqueue: events_unbound deferred_probe_work_func
[    3.121084] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    3.121706] pc : rockchip_pcie_rd_conf+0x120/0x15c
[    3.122148] lr : rockchip_pcie_rd_conf+0x7c/0x15c
[    3.122578] sp : ffff800082ad3720
[    3.122876] x29: ffff800082ad3720 x28: ffff00000469d000 x27: 0000000000000000
[    3.123525] x26: 0000000000000001 x25: ffff00000469f000 x24: ffff800081a7c640
[    3.124172] x23: 0000000000000000 x22: ffff800082ad3824 x21: ffff800082ad3794
[    3.124818] x20: 0000000000000004 x19: ffff800084200000 x18: ffffffffffffffff
[    3.125466] x17: 000000006df8f788 x16: 0000000051a83996 x15: ffffffffffffffff
[    3.126113] x14: ffff000004692a1c x13: ffff00000469229d x12: 0000000026861548
[    3.126760] x11: 000000009ba7a2e7 x10: 0000000000000000 x9 : 00000000000005a4
[    3.127407] x8 : 000000003d4d554e x7 : ffff00000518c380 x6 : ffff00000469d000
[    3.128054] x5 : ffff00000469f000 x4 : 0000000000c00008 x3 : ffff800087000000
[    3.128700] x2 : 000000000080000b x1 : ffff800087c00008 x0 : ffff800087c0000c
[    3.129355] Call trace:
[    3.129583]  rockchip_pcie_rd_conf+0x120/0x15c
[    3.130004]  pci_bus_read_config_dword+0x7c/0xdc
[    3.130440]  pci_bus_generic_read_dev_vendor_id+0x30/0x190
[    3.130943]  pci_scan_single_device+0xa0/0x108
[    3.131354]  pci_scan_slot+0x68/0x1f4
[    3.131697]  pci_scan_child_bus_extend+0x44/0x2cc
[    3.132131]  pci_scan_bridge_extend+0x30c/0x5a4
[    3.132549]  pci_scan_child_bus_extend+0x1b8/0x2cc
[    3.132783] mmc_host mmc0: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[    3.132989]  pci_scan_bridge_extend+0x30c/0x5a4
[    3.134267]  pci_scan_child_bus_extend+0x1b8/0x2cc
[    3.134709]  pci_scan_root_bus_bridge+0x64/0xd8
[    3.135129]  pci_host_probe+0x18/0xbc
[    3.135471]  rockchip_pcie_probe+0x408/0x5b0
[    3.135874]  platform_probe+0x68/0xc0
[    3.136216]  really_probe+0x184/0x3c8
[    3.136566]  __driver_probe_device+0x7c/0x16c
[    3.136975]  driver_probe_device+0x3c/0x10c
[    3.137370]  __device_attach_driver+0xbc/0x158
[    3.137787]  bus_for_each_drv+0x80/0xdc
[    3.138149]  __device_attach+0x9c/0x1ac
[    3.138513]  device_initial_probe+0x14/0x20
[    3.138909]  bus_probe_device+0xac/0xb0
[    3.139272]  deferred_probe_work_func+0xb4/0x108
[    3.139704]  process_one_work+0x168/0x288
[    3.140089]  worker_thread+0x2b4/0x3cc
[    3.140448]  kthread+0xf4/0x100
[    3.140752]  ret_from_fork+0x10/0x20
[    3.141098] Code: 52800141 97fffb1b 7100129f 54fffb41 (b9400273)
[    3.141647] ---[ end trace 0000000000000000 ]---
[    3.142065] note: kworker/u12:6[202] exited with irqs disabled
[    3.142668] note: kworker/u12:6[202] exited with preempt_count 1
[    3.558604] dwmmc_rockchip fe310000.mmc: Successfully tuned phase to 217
[    3.577955] mmc0: new ultra high speed SDR104 SDIO card at address 0001
[   88.057910] random: crng init done

При чём пару дней назад оно даже раз через несколько грузилось, сейчас стабильно на этом месте останавливается.

Если карточку вытащить, то соотв всё загрузится нормально, на одноплатнике у меня:

  • система живёт на emmc
  • Linux nanopct4 6.7.9-1-MANJARO-ARM #1 SMP PREEMPT Sat Mar 9 21:00:40 UTC 2024 aarch64 GNU/Linux
  • я накатил последнее доступное из стандартных репозиториев ядро
  • cmdline: initrd=/initramfs-linux.img console=ttyS2,1500000 root=/dev/mapper/nanopct4vg0-system rw audit=0 splash plymouth.ignore-serial-consoles
  • раньше на месте карточки был какой-то китайский noname ssd и работал без каких либо проблем

Сегодня добрался до ПК, к которому можно подключить pci-e карточку и она успешно заработала, вот что схоронил из того теста:

  • lspci -nnk
  • lshw
  • ethtool
  • dmesg (ошибки pcieport 0000:00:1c.7 можно игнорировать, это болячка данного ПК и лечится добавлением pcie_aspm=off)

Прошу подсказать можно ли как-то заставить эту pci-e карточку работать с моим одноплатником?

★★

Последнее исправление: Flotsky (всего исправлений: 1)

pci_bus_read_config_dword Оно как будто зависает на попытке базового обращения по шине к PCIE-устройству - считывания его ID, то есть ни до какого специфичного взаимодействия не доходит. Оно вероятно даже ещё не считало класс устройства и не знает что это сетевая карта, не говоря о каких-то ещё деталях.

Там при вставке этой штуки напряжение 3.3V не просаживаются случайно, особенно в момент инициализации?

GPFault ★★
()
Ответ на: комментарий от GPFault

Там при вставке этой штуки напряжение 3.3V не просаживаются случайно, особенно в момент инициализации?

Подцепился к gpio выводу 3.3 и gnd т.к. в распиновке на сайте производителя что на pci-e, что на gpio вывод подписан как " VCC3V3_SYS"
Напряжение в любом случае 3.31, не меняется, минут через 10 работы нагрелось и стало 3.33
Допускаю, что у меня дешевый китайский мультиметр и я просто не замечаю сильно кратковременных просадок.

Интересно, что при подключенном мультиметре плата с pci картой смогла загрузиться. (но только один раз, далее надо перевоткнуть питание и «дать остыть» для повторения «успешной загрузки»)

Я провалился по ssh и в dmesg дополнительно увидел (перед ошибкой в debug консоли)

[    3.092463] rockchip-pcie f8000000.pcie: wait 0 ms (from device tree) before bus scan
[    3.093217] rockchip-pcie f8000000.pcie: PCI host bridge to bus 0000:00
[    3.093242] pci_bus 0000:00: root bus resource [bus 00-1f]
[    3.093260] pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff]
[    3.093278] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0xfbe00000-0xfbefffff])
[    3.093342] pci 0000:00:00.0: [1d87:0100] type 01 class 0x060400
[    3.093478] pci 0000:00:00.0: supports D1
[    3.093492] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    3.099749] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    3.100092] pci 0000:01:00.0: [1b21:1182] type 01 class 0x060400
[    3.100307] pci 0000:01:00.0: Max Payload Size set to 256 (was 128, max 256)
[    3.100330] pci 0000:01:00.0: enabling Extended Tags
[    3.100659] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    3.100911] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:00.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    3.137315] pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    3.137557] Run /init as init process
[    3.137573]   with arguments:
[    3.137581]     /init
[    3.137590]     splash
[    3.137597]   with environment:
[    3.137604]     HOME=/
[    3.137611]     TERM=linux
[    3.137668] Internal error: synchronous external abort: 0000000096000210 [#1] PREEMPT SMP
[    3.138401] Modules linked in:
[    3.138684] CPU: 2 PID: 213 Comm: kworker/u12:9 Not tainted 6.7.9-1-MANJARO-ARM #1
... и дальше ошибка как в заголовке темы

Ссылка на полный dmesg этой загрузки https://pastebin.com/3H2ua73b

Flotsky ★★
() автор топика
Последнее исправление: Flotsky (всего исправлений: 1)
Ответ на: комментарий от GPFault

https://pastebin.com/3H2ua73b

Это загрузка при которой ядро не повесилось в процессе запуска и я смог провалиться на ssh и вытащить dmesg. При попытке lspci опять всё вешается.

Если неуспешной - то может ещё с успешной взять и найти первое отличие?

Успешной буду считать ту, при которой pci-e карточка увидится в системе.
Но вот dmesg и lspci загрузки с nvme ssd вместо pci-e карточки, если это имеет смысл.

Разница на глаз получается в наличии

[    3.137315] pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring

для подключенной pci-e карточки и

[    3.068152] pci_bus 0000:01: busn_res: [bus 01-1f] end is updated to 01
[    3.068177] pci 0000:00:00.0: BAR 14: assigned [mem 0xfa000000-0xfa0fffff]
[    3.068189] pci 0000:01:00.0: BAR 0: assigned [mem 0xfa000000-0xfa003fff 64bit]
[    3.068239] pci 0000:00:00.0: PCI bridge to [bus 01]
[    3.068250] pci 0000:00:00.0:   bridge window [mem 0xfa000000-0xfa0fffff]
[    3.068432] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    3.068663] pcieport 0000:00:00.0: PME: Signaling with IRQ 79
[    3.069286] pcieport 0000:00:00.0: AER: enabled with IRQ 79
[    3.069954] nvme nvme0: pci function 0000:01:00.0
...

для nvme ssd.

Разница между устройствами:
nvme ssd конечное устройство
pci-e карточка упрятана за парой ASM1182e 2-Port PCIe x1 Gen2 Packet Switch
Влияет ли это на что либо я не знаю.

Flotsky ★★
() автор топика
Ответ на: комментарий от burato

Попробовал, прямо в репозитории было Linux nanopct4 5.15.85-1-MANJARO-ARM #1 SMP PREEMPT Wed Dec 21 18:18:45 UTC 2022 aarch64 GNU/Linux. Я только dtb файл от ядра 6.7.9 скопировал т.к. его не было в пакете для 5.15.

С nvme ssd грузится, nvme видит, с ним общается, ничего необычного в логе.
С pci-e карточкой грузится, в debug консоль ничего не выплёвывет, но карточки нет в lspci, и в dmesg

[    4.810045] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[    4.810136] rockchip-pcie: probe of f8000000.pcie failed with error -110

Т.е. оно «не смогло» и просто пошло дальше, хотябы не вешается при запуске, но тоже не результат.

Flotsky ★★
() автор топика
Последнее исправление: Flotsky (всего исправлений: 1)

Собрал archlinux ядро https://github.com/archlinuxarm/PKGBUILDs/tree/master/core/linux-aarch64 т.к. оно 6.10.6.

Увы без изменений сообщение panic выглядит немного по другому, но внутренности +- те-же

[    3.643139] rockchip-pcie f8000000.pcie: PCI host bridge to bus 0000:00
[    3.643749] pci_bus 0000:00: root bus resource [bus 00-1f]
[    3.644231] pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff]
[    3.644842] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0xfbe00000-0xfbefffff])
[    3.645709] pci 0000:00:00.0: [1d87:0100] type 01 class 0x060400 PCIe Root Port
[    3.646368] pci 0000:00:00.0: PCI bridge to [bus 00]
[    3.646815] pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff]
[    3.647492] pci 0000:00:00.0: supports D1
[    3.647846] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    3.650242] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    3.651089] pci 0000:01:00.0: [1b21:1182] type 01 class 0x060400 PCIe Switch Upstream Port
[    3.651930] pci 0000:01:00.0: PCI bridge to [bus 00]
[    3.652391] pci 0000:01:00.0:   bridge window [io  0x0000-0x0fff]
[    3.652946] pci 0000:01:00.0:   bridge window [mem 0x00000000-0x000fffff]
[    3.653591] pci 0000:01:00.0:   bridge window [mem 0x00000000-0x000fffff 64bit pref]
[    3.654321] pci 0000:01:00.0: Max Payload Size set to 256 (was 128, max 256)
[    3.654957] pci 0000:01:00.0: enabling Extended Tags
[    3.655688] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    3.656434] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:00.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    3.660469] pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    3.661383] SError Interrupt on CPU4, code 0x00000000bf000002 -- SError
[    3.661388] CPU: 4 PID: 46 Comm: kworker/u25:0 Not tainted 6.10.6-1-aarch64-ARCH #1
[    3.661393] Hardware name: FriendlyElec NanoPC-T4 (DT)
[    3.661396] Workqueue: events_unbound deferred_probe_work_func
[    3.661409] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    3.661413] pc : rockchip_pcie_rd_conf+0x124/0x15c
[    3.661421] lr : rockchip_pcie_rd_conf+0x7c/0x15c
[    3.661425] sp : ffff800082efb720
[    3.661426] x29: ffff800082efb720 x28: ffff0000f576c000 x27: 0000000000000000
[    3.661432] x26: 0000000000000001 x25: ffff0000f576f800 x24: ffff800082bcd3a8
[    3.661437] x23: 0000000000000000 x22: ffff800082efb824 x21: ffff800082efb794
[    3.661442] x20: 0000000000000004 x19: 0000000000000000 x18: ffffffffffffffff
[    3.661447] x17: 00000000d4de5d9d x16: 00000000bff92aa7 x15: ffffffffffffffff
[    3.661452] x14: ffff0000f5777a1c x13: ffff0000f577729d x12: 000000006ae3a907
[    3.661456] x11: 00000000be5984c0 x10: 0000000000000000 x9 : 00000000000008bc
[    3.661461] x8 : ffff800082efb698 x7 : ffff0000f576d380 x6 : ffff0000f576c000
[    3.661465] x5 : ffff0000f576f800 x4 : 0000000000c00008 x3 : ffff800089000000
[    3.661470] x2 : 000000000080000b x1 : ffff800089c00008 x0 : ffff800089c0000c
[    3.661475] Kernel panic - not syncing: Asynchronous SError Interrupt
[    3.661478] CPU: 4 PID: 46 Comm: kworker/u25:0 Not tainted 6.10.6-1-aarch64-ARCH #1
[    3.661481] Hardware name: FriendlyElec NanoPC-T4 (DT)
[    3.661483] Workqueue: events_unbound deferred_probe_work_func
[    3.661489] Call trace:
[    3.661490]  dump_backtrace+0x98/0x118
[    3.661495]  show_stack+0x18/0x24
[    3.661498]  dump_stack_lvl+0x38/0x90
[    3.661503]  dump_stack+0x18/0x24
[    3.661507]  panic+0x344/0x358
[    3.661510]  nmi_panic+0x48/0x94
[    3.661513]  arm64_serror_panic+0x64/0x70
[    3.661516]  do_serror+0x3c/0x78
[    3.661519]  el1h_64_error_handler+0x30/0x48
[    3.661524]  el1h_64_error+0x64/0x68
[    3.661527]  rockchip_pcie_rd_conf+0x124/0x15c
[    3.661532]  pci_bus_read_config_dword+0x7c/0xdc
[    3.661536]  pci_bus_generic_read_dev_vendor_id+0x30/0x190
[    3.661543]  pci_scan_single_device+0xa0/0x108
[    3.661548]  pci_scan_slot+0x68/0x1f4
[    3.661552]  pci_scan_child_bus_extend+0x44/0x2cc
[    3.661557]  pci_scan_bridge_extend+0x31c/0x5b4
[    3.661562]  pci_scan_child_bus_extend+0x1b8/0x2cc
[    3.661566]  pci_scan_bridge_extend+0x31c/0x5b4
[    3.661571]  pci_scan_child_bus_extend+0x1b8/0x2cc
[    3.661576]  pci_scan_root_bus_bridge+0x64/0xd8
[    3.661580]  pci_host_probe+0x18/0xbc
[    3.661585]  rockchip_pcie_probe+0x3e4/0x54c
[    3.661589]  platform_probe+0x68/0xc4
[    3.661594]  really_probe+0xc0/0x38c
[    3.661599]  __driver_probe_device+0x7c/0x15c
[    3.661603]  driver_probe_device+0x3c/0x110
[    3.661607]  __device_attach_driver+0xbc/0x158
[    3.661612]  bus_for_each_drv+0x80/0xdc
[    3.661615]  __device_attach+0x9c/0x1ac
[    3.661620]  device_initial_probe+0x14/0x20
[    3.661625]  bus_probe_device+0xac/0xb0
[    3.661628]  deferred_probe_work_func+0xb8/0x10c
[    3.661633]  process_one_work+0x164/0x2c0
[    3.661637]  worker_thread+0x268/0x378
[    3.661641]  kthread+0xf4/0x100
[    3.661646]  ret_from_fork+0x10/0x20
[    3.661651] SMP: stopping secondary CPUs
[    3.661763] Kernel Offset: disabled
[    3.661764] CPU features: 0x04,00001041,a0100000,4200421b
[    3.661768] Memory Limit: none
[    3.688575] ---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]---
Flotsky ★★
() автор топика
Ответ на: комментарий от burato

Должна поддерживаться силами r8169 начиная с 5.8 или 5.9

rescuecd (x86_64 хост, 6.6.30) её прекрасно видит и использует
более старый rescuecd (x86_64 хост, уже нету, не подсмотрел какое ядро) пробовал грузить r8169, ругался unknown chip XID 641 и просто шёл дальше.

Flotsky ★★
() автор топика

Особо нет идей заметил, что в lshw выводе для x86_64 для pci-e root port

resources: irq:122 ioport:3000(size=8192) memory:d1000000-d11fffff

а у моей платки

resources: irq:79 memory:fa000000-fa0fffff

Гуглил рядом, наткнулся на ссылки
https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/ https://lkml.org/lkml/2021/5/26/741

Набросал patch к dts:

[root@nanopct4 archlinux-arm-linux-aarch64-custom]# cat rk3399_pcie_range.patch
diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index 9d5f5b083..068bbd364 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -318,7 +318,7 @@ pcie0: pcie@f8000000 {
 		      <&pcie_phy 2>, <&pcie_phy 3>;
 		phy-names = "pcie-phy-0", "pcie-phy-1",
 			   "pcie-phy-2", "pcie-phy-3";
-		ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
+		ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
 			<0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
 		resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
 			<&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
[root@nanopct4 archlinux-arm-linux-aarch64-custom]# cat rk3399_pcie_speed.patch 
diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index 9d5f5b0..0f68671 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -312,7 +312,7 @@ pcie0: pcie@f8000000 {
 				<0 0 0 2 &pcie0_intc 1>,
 				<0 0 0 3 &pcie0_intc 2>,
 				<0 0 0 4 &pcie0_intc 3>;
-		max-link-speed = <1>;
+		max-link-speed = <2>;
 		msi-map = <0x0 &its 0x0 0x1000>;
 		phys = <&pcie_phy 0>, <&pcie_phy 1>,
 		      <&pcie_phy 2>, <&pcie_phy 3>;
[root@nanopct4 archlinux-arm-linux-aarch64-custom]# 

Проблему это не решило, но nvme ssd теперь пишет

[    6.017189] pci 0000:01:00.0: 16.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x4 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)

вместо

[    3.246521] pci 0000:01:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)

Мне пока не хватает понимания есть ли смысл менять в dts файлах ranges и как

Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky

Мне пока не хватает понимания есть ли смысл менять в dts файлах ranges и как

В dts файле есть блоки

pcie0: pcie@f8000000 {
        compatible = "rockchip,rk3399-pcie";
        reg = <0x0 0xf8000000 0x0 0x2000000>,
              <0x0 0xfd000000 0x0 0x1000000>;
        reg-names = "axi-base", "apb-base";
        device_type = "pci";
        #address-cells = <3>;
        #size-cells = <2>;
        #interrupt-cells = <1>;
        aspm-no-l0s;
        bus-range = <0x0 0x1f>;
        clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
                 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
        clock-names = "aclk", "aclk-perf",
                      "hclk", "pm";
        interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
                     <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
                     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
        interrupt-names = "sys", "legacy", "client";
        interrupt-map-mask = <0 0 0 7>;
        interrupt-map = <0 0 0 1 &pcie0_intc 0>,
                        <0 0 0 2 &pcie0_intc 1>,
                        <0 0 0 3 &pcie0_intc 2>,
                        <0 0 0 4 &pcie0_intc 3>;
        max-link-speed = <1>;
        msi-map = <0x0 &its 0x0 0x1000>;
        phys = <&pcie_phy 0>, <&pcie_phy 1>,
               <&pcie_phy 2>, <&pcie_phy 3>;
        phy-names = "pcie-phy-0", "pcie-phy-1",
                    "pcie-phy-2", "pcie-phy-3";
        ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
                 <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
        resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
                 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
                 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
                 <&cru SRST_A_PCIE>;
        reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
                      "pm", "pclk", "aclk";
        status = "disabled";

        pcie0_intc: interrupt-controller {
                interrupt-controller;
                #address-cells = <0>;
                #interrupt-cells = <1>;
        };
};

pcie0_ep: pcie-ep@f8000000 {
        compatible = "rockchip,rk3399-pcie-ep";
        reg = <0x0 0xfd000000 0x0 0x1000000>,
              <0x0 0xfa000000 0x0 0x2000000>;
        reg-names = "apb-base", "mem-base";
        clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
                 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
        clock-names = "aclk", "aclk-perf",
                      "hclk", "pm";
        max-functions = /bits/ 8 <8>;
        num-lanes = <4>;
        resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
                 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
                 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
                 <&cru SRST_A_PCIE>;
        reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
                      "pm", "pclk", "aclk";
        phys = <&pcie_phy 0>, <&pcie_phy 1>,
               <&pcie_phy 2>, <&pcie_phy 3>;
        phy-names = "pcie-phy-0", "pcie-phy-1",
                    "pcie-phy-2", "pcie-phy-3";
        rockchip,max-outbound-regions = <32>;
        pinctrl-names = "default";
        pinctrl-0 = <&pcie_clkreqnb_cpm>;
        status = "disabled";
};
Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky
Ответ на: комментарий от Flotsky

Также вдруг наткнулся на https://github.com/KingKoro/RK3399_PCIe_Switch_Fix/tree/main

Приложенный там patch для 6.10 собирается только если заранее применить PCIe-bus-scan-delay.patch

И по факту pci просто перестаёт работать что туда не подключай.

[    4.284526] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[    4.284611] rockchip-pcie f8000000.pcie: probe with driver rockchip-pcie failed with error -110

Патч заявлен для 5.19, позже попробую собрать именно 5.19 или максимально близкое по версии что найду

Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky

Странно 5.19.17 что с config от стандартного manjaro ядра, что с моим «урезанным» собирается, грузится, но падает с ошибками загрузки т.к. не видит сеть, microsd(где у меня /boot), pci…

При этом pcie_rockchip_host собирается модулем и вообще ничего не пишет, даже если его перезагрузить. И не важно что в pci порт подключено, просто тишина.

Может надо попробовать выковырять config и patch`и от armbian ядра, но выглядит странно

Flotsky ★★
() автор топика

Наткнулся на https://www.spinics.net/lists/linux-rockchip/msg30871.html, выглядит печально, процитирую

Due to a hardware bug the rk3399 PCIe controller signals error conditions to the cpu when scanning for PCIe devices, which are not available. So PCIe bridges are not supported.

The rk3399 Cortex-A72 cores generate SError interrupts for these false PCIe errors, Cortex-A53 cores generate Synchronuos External Aborts.

This hack enables PCIe device probing on buses behind bridges by ignoring the generated SError. Device probing needs to be done on Cortex-A72 cores, e.g. use taskset -c 4 modprobe pcie_rockchip_host

Т.е. в теории мне надо собрать pcie_rockchip_host модулем, запретить его автоматом подгружать и уже после запуска грузить его с привязкой к ядру, да ещё и модуль научить игнорировать SError (ну для этого у меня хотябы patch есть)

Ну, я попробую, но выглядит как страшные костыли…

Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky

в теории мне надо собрать pcie_rockchip_host модулем

Собрал, вернулся к

[    4.284526] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[    4.284611] rockchip-pcie f8000000.pcie: probe with driver rockchip-pcie failed with error -110

Что при запуске, что при перезагрузке модуля.

Догуглил до https://forum.armbian.com/topic/31929-nanopi-r4s-enp1s0-ethernet-device-not-found-after-reboot/ и до предложенных по ходу темы 2-ух патчей 1, 2

Патчи пришлось адаптировать, функции в 6.10 по строкам сместились.
Увы, наверное мне не хватило мозгов правильно адаптировать т.к. теперь грузится с

[    6.713070] [ffff800087000308] pgd=100000000393c003, p4d=100000000393c003, pud=100000000393d003, pmd=00680000fd000711
[    6.714028] Internal error: Oops: 0000000096000035 [#1] SMP
[    6.714527] Modules linked in: gpio_keys pcie_rockchip_host(+) adc_keys rockchipdrm drm_dma_helper analogix_dp dw_hdmi cec rc_core drm_display_helper dw_mipi_dsi drm_kms_helper drm drm_panel_orientation_quirks backlight rtc_rk808
[    6.716397] CPU: 3 PID: 256 Comm: (udev-worker) Not tainted 6.10.6-1-aarch64-MANJARO-ARM #1
[    6.717139] Hardware name: FriendlyElec NanoPC-T4 (DT)
[    6.717598] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    6.718220] pc : mutex_lock+0x44/0x74
[    6.718564] lr : mutex_lock+0x18/0x74
[    6.718900] sp : ffff8000834cb630
[    6.719198] x29: ffff8000834cb630 x28: 000000000003e7ff x27: ffff000001028c10
[    6.719844] x26: 0000000010624dd3 x25: 0000000000900004 x24: 0000000000000005
[    6.720491] x23: ffff000003d8dad0 x22: 0000000000000000 x21: ffff800087000308
[    6.721139] x20: ffff000007b25b80 x19: ffff800087000308 x18: ffffffffffffffff
[    6.721786] x17: 7469772074756f65 x16: 6d697420316e6567 x15: 20676e696e696172
[    6.722432] x14: 00000000000001ef x13: 00000000ffffffea x12: ffff8000815a20d0
[    6.723079] x11: 0000000000000001 x10: 0000000000000001 x9 : 000000000002ffe8
[    6.723725] x8 : c0000000ffffdfff x7 : ffff8000814f2078 x6 : 00000000000affa8
[    6.724372] x5 : ffff8000815a2078 x4 : 0000000000000000 x3 : 0000000000000000
[    6.725016] x2 : 0000000000000000 x1 : ffff000003dbb480 x0 : 0000000000000000
[    6.725663] Call trace:
[    6.725888]  mutex_lock+0x44/0x74
[    6.726195]  phy_power_off+0x28/0xd0
[    6.726525]  rockchip_pcie_host_init_port+0x26c/0x69c [pcie_rockchip_host]
[    6.727154]  rockchip_pcie_probe+0x15c/0x5bc [pcie_rockchip_host]
[    6.727709]  platform_probe+0x68/0xc4
[    6.728052]  really_probe+0xc0/0x38c
[    6.728382]  __driver_probe_device+0x7c/0x15c
[    6.728780]  driver_probe_device+0x3c/0x110
[    6.729164]  __driver_attach+0xf4/0x1fc
[    6.729516]  bus_for_each_dev+0x74/0xd0
[    6.729869]  driver_attach+0x24/0x30
[    6.730198]  bus_add_driver+0x110/0x234
[    6.730550]  driver_register+0x60/0x128
[    6.730904]  __platform_driver_register+0x28/0x34
[    6.731334]  rockchip_pcie_driver_init+0x20/0x1000 [pcie_rockchip_host]
[    6.731934]  do_one_initcall+0x6c/0x254
[    6.732287]  do_init_module+0x60/0x1f4
[    6.732632]  load_module+0x7f8/0x830
[    6.732960]  init_module_from_file+0x88/0xdc
[    6.733349]  idempotent_init_module+0x130/0x364
[    6.733760]  __arm64_sys_finit_module+0x68/0xcc
[    6.734173]  invoke_syscall+0x70/0xf8
[    6.734515]  el0_svc_common.constprop.0+0x40/0xe0
[    6.734946]  do_el0_svc+0x1c/0x28
[    6.735256]  el0_svc+0x38/0x100
[    6.735551]  el0t_64_sync_handler+0x100/0x12c
[    6.735951]  el0t_64_sync+0x1a4/0x1a8
[    6.736293] Code: d50323bf d65f03c0 d2800002 f9800271 (c85ffe60) 
[    6.736835] ---[ end trace 0000000000000000 ]---

и не даёт перезагрузить модуль.

Посмотрел на https://github.com/armbian/build репозиторий, там нет патча 2, пересобрал без него, всё равно PCIe link training gen1 timeout
Перезагрузка модуля (с delay или с tasksel) не меняет ситуацию, а если много раз пытаться, то оно в итоге оно падает с (обычно на 3-5 попытке)

[root@nanopct4 ~]# modprobe pcie_rockchip_host bus_scan_delay=1000
[  215.001768] Unable to handle kernel paging request at virtual address ffff8000764ab000
[  215.002470] Mem abort info:
[  215.002718]   ESR = 0x0000000096000006
[  215.003049]   EC = 0x25: DABT (current EL), IL = 32 bits
[  215.003517]   SET = 0, FnV = 0
[  215.003787]   EA = 0, S1PTW = 0
[  215.004065]   FSC = 0x06: level 2 translation fault
[  215.004495] Data abort info:
[  215.004750]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[  215.005232]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[  215.005676]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[  215.006143] swapper pgtable: 4k pages, 48-bit VAs, pgdp=000000000336a000
[  215.006730] [ffff8000764ab000] pgd=100000000393c003, p4d=100000000393c003, pud=1000000004d33003, pmd=0000000000000000
[  215.007670] Internal error: Oops: 0000000096000006 [#1] SMP
...

и больше его не выгрузишь

Flotsky ★★
() автор топика

Сдаюсь, оно меня победило.

Опираясь на https://www.spinics.net/lists/linux-rockchip/msg30871.html

Due to a hardware bug the rk3399 PCIe controller…

я пытаюсь править аппаратный баг софтовыми костылями и мозгов мне для такого в ближайшее время не хватит, если это вообще можно сделать.

Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky

У меня так Creative AE-7 работает на Manjaro или Artix с лайв системы - по-другому непонятно как заводить. Остальные дистры вешаются при загрузке.

anonymous
()
Ответ на: комментарий от anonymous

Не вариант. Данные из rescuecd собраны на отдельном x86_64 ПК для доказательства работы сетевой карты и получения инфо о ней.

Проблема в том, что ARM одноплатник nanopc-t4 с этой карточкой дружить отказывается.

И нет, x86_64 ядро от rescuecd он загрузить не сможет, использовать config этого ядра скорее всего тоже не имеет смысла т.к. оборудование абсолютно другое

Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky

Да я о том что можно лайв CD сделать. Void к примеру работает на армах. Ну да ладно, тут наверное только с Gentoo еще поиграться можно. Тогда проще вернуть ее обратно. Слишком заморочно все это.

anonymous
()
Ответ на: комментарий от Flotsky

Ах да, там есть Void on alien distribution с переносом xbps-src и компиляцией. Но проблема то явно больше чем просто как загрузить это дело и собрать. Хотя если оно работает на другом компе, то и тут может заработать с новой прошивкой. Но фирмвари можно и вручную подкинуть новому ядру. А то просо поставить новое ядро может быть недостаточно и нужно будет его собрать явно указав новый файл фирмвари.

anonymous
()
Ответ на: комментарий от Flotsky

А вот если не заработает можно и лайв диск состряпать со всеми нужными программами, если она работает только так, а вернуть не получится.

anonymous
()
Ответ на: комментарий от Flotsky

Как свежая идея попробовал готовые сборки, тоже нет.

Armbian(правда для похожей, а не конкретно моей платы) - ядро 6.6.47, pcie_rockchip_host вкомпилен, та-же проблема с PCIe link training gen1 timeout как и у меня.

Готовые образы от производителя
Debian, ядро 4.19.232 с патчами от производителя, всё равно PCIe link training gen1 timeout, pcie_rockchip_host вкомпилен
Friendlywrt, ядро 6.1.63, загрузиться не смогло, ошибки как в начале поста.

Flotsky ★★
() автор топика
Ответ на: комментарий от anonymous

Увы в упор не понимаю что мне даст попробовать другое ядро/систему.

нужно будет его собрать явно указав новый файл фирмвари

фирмвари чего? pci контроллера? До общения с самой сетевой картой не доходит, падает на попытке общения с pci хабом ASM1182e который находится на pci карточке.

Flotsky ★★
() автор топика