openwrt / openwrt/mt76

mt7603e: MCU message -1 (seq 1) timed out

Open
#475 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
888
Forks
436
PR merge metrics
No merged PRs in 30d

Description

There seems to be a weird issue with a miniPCIe card and mt76 on a big endian system. Here's the relevant pieces of the log:

[    2.529610] nwl-pcie 1018000000.pcie: Link is UP
[    2.530145] nwl-pcie 1018000000.pcie: host bridge /plb/xhsif1/pcie@1018000000 ranges:
[    2.530959] nwl-pcie 1018000000.pcie:      MEM 0x101a020000..0x101fffffff -> 0x001a020000
[    2.531786] nwl-pcie 1018000000.pcie:      MEM 0x1300000000..0x13ffffffff -> 0x0400000000
[    2.532644] nwl-pcie 1018000000.pcie:   IB MEM 0x0100000000..0x01ffffffff -> 0x0000000000
[    2.533470] nwl-pcie 1018000000.pcie:   IB MEM 0x0200000000..0x02ffffffff -> 0x0200000000
[    2.534668] nwl-pcie 1018000000.pcie: PCI host bridge to bus 0000:00
[    2.535258] pci_bus 0000:00: root bus resource [bus 00-0f]
[    2.535747] pci_bus 0000:00: root bus resource [mem 0x101a020000-0x101fffffff] (bus address [0x1a020000-0x1fffffff])
[    2.536823] pci_bus 0000:00: root bus resource [mem 0x1300000000-0x13ffffffff] (bus address [0x400000000-0x4ffffffff])
[    2.537946] pci 0000:00:00.0: [19aa:e00c] type 01 class 0x060400
[    2.538562] pci 0000:00:00.0: enabling Extended Tags
[    2.539086] pci 0000:00:00.0: supports D1 D2
[    2.543559] pci 0000:01:00.0: [14c3:7603] type 00 class 0x028000
[    2.544169] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    2.545023] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.549387] pci 0000:00:00.0: PCI bridge to [bus 01-0c]
[    2.549943] pci 0000:00:00.0: BAR 8: assigned [mem 0x101a100000-0x101a1fffff]
[    2.550626] pci 0000:01:00.0: BAR 0: assigned [mem 0x101a100000-0x101a1fffff]
[    2.551311] pci 0000:00:00.0: PCI bridge to [bus 01-0c]
[    2.551770] pci 0000:00:00.0:   bridge window [mem 0x101a100000-0x101a1fffff]
....
[ 1004.931655] mt76: loading out-of-tree module taints kernel.
[ 1013.580432] mt7603e 0000:01:00.0: ASIC revision: 76030010
[ 1013.590463] mt7603e 0000:01:00.0: Firmware Version: ap_pcie
[ 1013.590981] mt7603e 0000:01:00.0: Build Time: 20160107100755
[ 1016.649794] mt7603e 0000:01:00.0: MCU message -1 (seq 1) timed out
[ 1016.650383] mt7603e 0000:01:00.0: Download request failed
[ 1016.651125] mt7603e: probe of 0000:01:00.0 failed with error -110

It looks like the firmware loading doesn't work. The system is a big endian PowerPC SoC (ppc476fp, to be precise).
The same miniPCIe adapter seems to work on a little endian x86 laptop. I'm not sure whether it's a problem with mt76 or our system, because ath9k and other PCIe devices seem to work with no issue. Any hints where to dig for treasure bugs are much appreciated!

Versions of mt76 tested so far: mainline as of v5.5.0 and commit b54157df7c272df0186cad4efc4edf976da5f96f

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the mt7603e probe on the big-endian PowerPC system and tracing firmware loading through the MCU message path. Compare the failing logs with the working little-endian x86 setup, focusing on the timeout and download request failure. Done means identifying the cause of the firmware-loading failure and confirming a fix on the affected hardware.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
embedded-iot, networking, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.