About Netgear WNDR4300v1 5GHz missing problem

After flashing OpenWRT to Netgear WNDR4300v1, I surprisingly found that 5GHz wireless card was missing. And I tried to flash back to OEM version but ended up in dead loop rebooting.

The 5GHz wifi of WNDR4300 is provided by AR9580 which is connected by the PCI interface. I used dmesg to inspect the log of openwrt and found that PCI found nothing when starting.

Was the chip broken? I nearly gave up and tried to disconnect the router with its power and went to dinner. After the dinner, I powered up the router and -- it just worked! Here is the log from dmesg.


[    0.391671] PCI host bridge to bus 0000:00
[    0.396044] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[    0.403409] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.409340] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.416575] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.425036] pci 0000:00:00.0: [168c:0033] type 00 class 0x028000
[    0.425047] pci 0000:00:00.0: invalid calibration data
[    0.430556] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x0001ffff 64bit]
[    0.430610] pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.430691] pci 0000:00:00.0: supports D1
[    0.430702] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.430929] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.430958] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1001ffff 64bit]
[    0.438759] pci 0000:00:00.0: BAR 6: assigned [mem 0x10020000-0x1002ffff pref]
[    0.446485] pci 0000:00:00.0: using irq 40 for pin 1


PCI worked well.

Why? According to OpenWRT WNDR4300 project page:(https://openwrt.org/toh/netgear/wndr4300)

Sometimes the 5G wifi interface (a separate AR9580 chip attached on PCIe) will completely disappear, because the PCIE_RC strap bit gets stuck at '0'. This can be checked by running “devmem 0x180600b0” and looking at bit 6:
  • GOOD: 0x002F055A
  • BAD: 0x002F051A
On OpenWrt this causes the kernel to completely ignore the PCIe interface and everything attached to it, so only the onchip 2.4GHz radio will work. On the original firmware it may cause the unit to get stuck in a reboot loop.
If this happens, just power the unit off for about 30 seconds. In fact it might be a good idea to power cycle the unit before OpenWrt's initial boot. 

评论

此博客中的热门博文

Openwrt路由器上配置shadowsocks透明代理+gfwlist(PAC)

Configure shadowsocks transparent proxy + gfwlist(PAC) on OpenWRT Router

Using Haproxy + shadowsocks (ha + ss) to setup multi ss backend and load balance