MT7615E TX Power stuck at 6dBm (Invalid MAC) on BPI-R2 with Kernel 6.12

Hi everyone,

I’m working on my BPI-R2 using Frank’s legacy Debian 10 image, but I’ve upgraded the kernel to 6.12. I have an MT7615E PCIe WiFi card installed, and while I’ve made some progress, I’m struggling with very low signal strength.

The Setup:

  • Hardware: BPI-R2 + MT7615E PCIe card.
  • Kernel: 6.12.0
  • OS: Debian 13
  • Status: DBDC mode is working, both 2.4GHz and 5GHz bands are up.

The Problem:

The TX power is hard-capped at 6.0 dBm across all channels. Looking at dmesg, it seems to me that the driver is failing to load the calibration/EEPROM data, resulting in a random MAC address and “fail-safe” power limits.

Relevant dmesg output:

[15508.860587] mt7615e 0000:01:00.0: Invalid MAC address, using random address de:ce:28:d0:23:b6
[15509.039272] mt7615e 0000:01:00.0: N9 Firmware Version: _reserved_, Build Time: 20200814163649
[15509.064168] mt7615e 0000:01:00.0: CR4 Firmware Version: _reserved_, Build Time: 20190415154149

iw phy output snippet:

 Frequencies:
                        * 2412.0 MHz [1] (6.0 dBm)
                        * 2417.0 MHz [2] (6.0 dBm)
                        * 2422.0 MHz [3] (6.0 dBm)
                        * 2427.0 MHz [4] (6.0 dBm)
                        * 2432.0 MHz [5] (6.0 dBm)
                        * 2437.0 MHz [6] (6.0 dBm)
                        * 2442.0 MHz [7] (6.0 dBm)
                        * 2447.0 MHz [8] (6.0 dBm)
                        * 2452.0 MHz [9] (6.0 dBm)
                        * 2457.0 MHz [10] (6.0 dBm)
                        * 2462.0 MHz [11] (6.0 dBm)
                        * 2467.0 MHz [12] (6.0 dBm)
                        * 2472.0 MHz [13] (6.0 dBm)
                        * 2484.0 MHz [14] (disabled)
        Band 2:
                Capabilities: 0x1ff
                        RX LDPC
                        HT20/HT40
                        SM Power Save disabled
                        RX Greenfield
--
                Frequencies:
                        * 5180.0 MHz [36] (6.0 dBm)
                        * 5200.0 MHz [40] (6.0 dBm)
                        * 5220.0 MHz [44] (6.0 dBm)
                        * 5240.0 MHz [48] (6.0 dBm)
                        * 5260.0 MHz [52] (6.0 dBm) (radar detection)
                        * 5280.0 MHz [56] (6.0 dBm) (radar detection)
                        * 5300.0 MHz [60] (6.0 dBm) (radar detection)
                        * 5320.0 MHz [64] (6.0 dBm) (radar detection)
                        * 5500.0 MHz [100] (6.0 dBm) (radar detection)
                        * 5520.0 MHz [104] (6.0 dBm) (radar detection)
                        * 5540.0 MHz [108] (6.0 dBm) (radar detection)
                        * 5560.0 MHz [112] (6.0 dBm) (radar detection)
                        * 5580.0 MHz [116] (6.0 dBm) (radar detection)
                        * 5600.0 MHz [120] (6.0 dBm) (radar detection)
                        * 5620.0 MHz [124] (6.0 dBm) (radar detection)
                        * 5640.0 MHz [128] (6.0 dBm) (radar detection)
                        * 5660.0 MHz [132] (6.0 dBm) (radar detection)
                        * 5680.0 MHz [136] (6.0 dBm) (radar detection)
                        * 5700.0 MHz [140] (6.0 dBm) (radar detection)
                        * 5720.0 MHz [144] (6.0 dBm) (radar detection)

What I’ve Tried:

  1. EEPROM Binary: I managed to find a valid EEPROM binary (MT7615E1_EEPROM.bin from openwrt-mt7615/mtk/drivers/mt_wifi/src/bin/mt7615 at master · digizer0/openwrt-mt7615 · GitHub). hexdump confirms the 15 76 header and a valid MAC address (00:0c:43:...).
  2. Firmware paths: I’ve placed the file in /lib/firmware/mediatek/mt7615e_eeprom.bin (and tried various symlinks), but the driver doesn’t seem to pick it up automatically.
  3. ethtool: Running ethtool -e wlan0 returns Operation not supported, so I can’t dump the internal EEPROM.
  4. Driver info: modinfo mt7615e lists firmware for N9 and CR4, but unlike other drivers, it doesn’t list a default EEPROM/bin path.

Questions:

  • Is there a specific DTB property needed in Kernel 6.12 to point the mt7615e driver to an external EEPROM file?
  • Does the driver expect a specific filename for the fallback EEPROM in the /lib/firmware directory?
  • I’ve seen mediatek,eeprom-data mentioned in eeprom.c, but I’m unsure about the correct syntax for the PCIe node in the DTS for this specific kernel version.

Any help or insights from @frank-w or the community would be greatly appreciated!

Update: Kernel Downgrade & EEPROM Issues

Frank was spot on—after downgrading to the 6.1 kernel, the EEPROM file finally loaded successfully. I used the specific file linked earlier in this thread. However, I’ve run into a strange power limit issue. Before setting the regulatory domain to HU, I see 10dBm for 2.4GHz and 7dBm for 5GHz. Once I apply the reg set HU command, both bands get locked at a measly 7dBm. Something definitely isn’t right with the transmission power. Is there anyone here currently using this card who has managed to get normal power levels on this kernel?