openwrt / openwrt/mt76

mt7615 firmware init failed after soft reboot (reset required?)

Open
#316 19 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

@nbd @chunkeey @LorenzoBianconi
SoC is IPQ4019.

After a soft reboot, MT7615 no longer works

mt7615e 0000:01:00.0: enabling device (0140 -> 0142)
mt7615e 0000:01:00.0: Firmware is not ready for download
mt7615e: probe of 0000:01:00.0 failed with error -5

I checked the val in mt7615_load_firmware
https://github.com/openwrt/mt76/blob/6f7d0f503d1013f0909fe52075da5d5d500ddca4/mt7615/mcu.c#L519 and it is already 7 (FW_STATE_CR4_RDY)

It seems that either the PCIe driver does not power cycle the PCIe interface after reboot, or the mt76 driver does not warm reset the mt7615 chip.

Update: If I unload the driver manually by rmmod mt7615e, it will work after the reboot

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

Reproduce the IPQ4019 soft-reboot failure and compare it with unloading mt7615e before reboot. Start at mt7615/mcu.c, in mt7615_load_firmware around the referenced line, and trace the FW_STATE_CR4_RDY path and PCIe reset handling. Done means the firmware initializes successfully after a soft reboot without manually running rmmod mt7615e.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
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
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.