Netgear R7800 exploration (IPQ8065, QCA9984)

is anyone else getting opp/regulator dmesg bootup crashdumps on recent master (non-fatal)? Rebasing my dts ... probably missed something...

sample
[    0.108748] qcom-pcie 1b500000.pci: 1b500000.pci supply vdda not found, using dummy regulator
[    0.108873] qcom-pcie 1b500000.pci: 1b500000.pci supply vdda_phy not found, using dummy regulator
[    0.108979] qcom-pcie 1b500000.pci: 1b500000.pci supply vdda_refclk not found, using dummy regulator
[    0.109276] qcom-pcie 1b500000.pci: host bridge /soc/pci@1b500000 ranges:
[    0.109301] qcom-pcie 1b500000.pci: Parsing ranges property...
[    0.109346] qcom-pcie 1b500000.pci:    IO 0x0fe00000..0x0fefffff -> 0x0fe00000
[    0.109386] qcom-pcie 1b500000.pci:   MEM 0x08000000..0x0fdfffff -> 0x08000000
[    0.236285] qcom-pcie 1b500000.pci: PCIe controller is not set to bridge type (hdr_type: 0xff)!
[    0.236315] qcom-pcie 1b500000.pci: cannot initialize host
[    0.236393] ------------[ cut here ]------------
[    0.236432] WARNING: CPU: 0 PID: 1 at drivers/regulator/core.c:2044 _regulator_put.part.3+0x17c/0x180
[    0.236444] Modules linked in:
[    0.236463] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.50 #0
[    0.236473] Hardware name: Generic DT based system
[    0.236509] [<c030f954>] (unwind_backtrace) from [<c030b96c>] (show_stack+0x14/0x20)
[    0.236531] [<c030b96c>] (show_stack) from [<c0959420>] (dump_stack+0x94/0xa8)
[    0.236564] [<c0959420>] (dump_stack) from [<c031e7c0>] (__warn+0xb4/0xd0)
[    0.236587] [<c031e7c0>] (__warn) from [<c031e82c>] (warn_slowpath_fmt+0x50/0x90)
[    0.236612] [<c031e82c>] (warn_slowpath_fmt) from [<c067069c>] (_regulator_put.part.3+0x17c/0x180)
[    0.236637] [<c067069c>] (_regulator_put.part.3) from [<c06706d0>] (regulator_put+0x30/0x48)
[    0.236658] [<c06706d0>] (regulator_put) from [<c0670718>] (regulator_bulk_free+0x30/0x4c)
[    0.236681] [<c0670718>] (regulator_bulk_free) from [<c06a4c28>] (release_nodes+0x1b0/0x204)
[    0.236711] [<c06a4c28>] (release_nodes) from [<c06a09c0>] (really_probe+0x124/0x37c)
[    0.236735] [<c06a09c0>] (really_probe) from [<c06a10c4>] (device_driver_attach+0x6c/0x74)
[    0.236756] [<c06a10c4>] (device_driver_attach) from [<c06a112c>] (__driver_attach+0x60/0xd0)
[    0.236777] [<c06a112c>] (__driver_attach) from [<c069ecbc>] (bus_for_each_dev+0x6c/0x9c)
[    0.236797] [<c069ecbc>] (bus_for_each_dev) from [<c069fe28>] (bus_add_driver+0x1dc/0x1ec)
[    0.236820] [<c069fe28>] (bus_add_driver) from [<c06a1740>] (driver_register+0x84/0x11c)
[    0.236845] [<c06a1740>] (driver_register) from [<c03027a4>] (do_one_initcall+0x90/0x1fc)
[    0.236869] [<c03027a4>] (do_one_initcall) from [<c0c00fe4>] (kernel_init_freeable+0x1c8/0x274)
[    0.236895] [<c0c00fe4>] (kernel_init_freeable) from [<c0970b40>] (kernel_init+0x8/0x114)
[    0.236916] [<c0970b40>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    0.236929] Exception stack(0xdd43bfb0 to 0xdd43bff8)
[    0.236954] bfa0:                                     00000000 00000000 00000000 00000000
[    0.236992] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    0.237023] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    0.237046] ---[ end trace b6f315b519952b2c ]---

ah well i got it working in the end. i tried backporting some dsa stuff from 5.7 but then i couldn't set the MTU at all...some missing op definitions i think that 5.4 must bypass or uses defaults for.

anyway, the qca8k driver does not enable jumbo frames during initialization (which the old AR8327 driver does). i patched the qca8k driver and now the 'old' MTU override from UCI works.

can you tell me what you patched... i can try to propose them upstream if they are not too hacky... also i read somewhere that the mtu was changeable but i think that this feature got dropped in the dsa driver

oh no, it's 'real'...well it's taken from the AR8327 driver.

about mtu?

that's it. i don't think the 5.7 dsa stuff is needed for now. on master (with DSA) you could already set the wan MTU, but i think the cpu port MTU wasn't being set because jumbo frames weren't enabled, so then the packets got lost.

i created a PR:

Is this something I need to act on?...

ipq806x: enable jumbo frames on qca8k

@Ansuel with DSA, did you ever see disconnected (as in physically disconnected) ports wake up randomly for a second? this has happened a few times:

Sat Jul 18 09:40:54 2020 kern.info kernel: [120804.922489] br-lan: port 1(lan1) entered blocking state
Sat Jul 18 09:40:54 2020 kern.info kernel: [120804.930028] br-lan: port 1(lan1) entered forwarding state
Sat Jul 18 09:40:54 2020 daemon.notice netifd: Network device 'lan1' link is up
Sat Jul 18 09:40:55 2020 daemon.notice netifd: Network device 'lan1' link is down
Sat Jul 18 09:40:55 2020 kern.info kernel: [120805.942170] qca8k 37000000.mdio-mii:16 lan1: Link is Down
Sat Jul 18 09:40:55 2020 kern.info kernel: [120805.942286] br-lan: port 1(lan1) entered disabled state

I would like to promote a poll here, not completely serious but also not completly worthless, at least I hope.

Hello!
I'm wondering what performance I could achieve with R7800 and USB3 vs eSata?
Has anyone tested it with a performant multi-HDD RAID enclosure by any chance and could share results?

esata will perform better for sure... usb3 has lots of overhead compared to esata

Thanks @Ansuel
I am simply wondering how close to the theoretical maximums I could get (5Gbit for USB3 and 6Gbit for eSata)?

That is funny :slight_smile: I read references here on the forum about 20..40 Mbps for USB3. Maybe more, but well under 100Mbps. Just do a search.

Not even 100mbps for usb3
Think esata is much better but never tried since it doesn't have power

There are USB-powered esata cables like SATA 22Pin to eSATA Data USB Powered cable.
I bought esata with power cable and just cut power line and solder USB plug, works with old 2.5" HDD.

i know but i hate the fact that i have to connect 2 cable for one hard driver + add the fact that usb port is at the opposite side of the esata port and doesn't worth it.

Two options: USB charger or solder cables inside router :grin: I have power strip next to router so charger was no problem :smiley:
I thought also about soldering dual voltage power adapter but my last old 3.5" HDD went to the heaven of happy bits :wink:

I think that power esata is a different connector than the one on r7800 so someone need to desolder it and add the right one

Connector probably doesn't have any contacts for power - externally looks different inside than in laptop esata port but I thought about just trace power lines from esata cable (or make a kind of connector on it like USB plug) through holes into router :upside_down_face: