Having trouble with TP-LINK AC600 Archer T2UH based on Ralink's MT7650
chipset with run driver on OpenBSD 6.0-stable with all the latest source
tree patches installed.

Just after I've added MT7650 by patching files listed below and
recompiled the kernel the USB stick shows its identities as:

run0 at uhub0 port 2 configuration 1 interface 0 "MediaTek WiFi" rev
2.01/1.00 addr 2
run0: MAC/BBP RT7650 (rev 0x2000), RF RT3053 (MIMO 1T1R), address  "MAC"

During boot It configured to associate with AP in BSS mode and having IP
address from DHCP.

$ cat hostname.run0
dhcp media autoselect mode 11g nwid NAME wpa wpakey KEY chan 11

while issuing # sh /etc/netstart run0 command I have error message:

run0: timeout waiting for MCU to initialize
run0: could not load 8051 microcode

To test it out I've downloaded win7 driver and extract the firmware
files from it
mt7650.bin , mt7610.bin. Renamed them to run-mt7650 and run-mt7610
respectively and put into /etc/firmware
When I added firmware in the source (as shown below) and rebuild the
kernel afterwards.

While boot when DHCP requests are sent by network adapters I have the
same meessage "run0: could not load 8051 microcode"

--- /usr/src/sys/dev/usb/usbdevs.h.old    Thu Mar 23 19:00:27 2017
+++ /usr/src/sys/dev/usb/usbdevs.h    Thu Mar 23 16:33:07 2017
@@ -3550,6 +3550,7 @@
 #define    USB_PRODUCT_RALINK_RT3573    0x3573        /* RT3573 */
 #define    USB_PRODUCT_RALINK_RT5572    0x5572        /* RT5572 */
 #define    USB_PRODUCT_RALINK_MT7601    0x7601        /* MT7601 */
+#define    USB_PRODUCT_RALINK_MT7650    0x761A        /* MT7650 */
 #define    USB_PRODUCT_RALINK_RT8070    0x8070        /* RT8070 */
 #define    USB_PRODUCT_RALINK_RT2570_3    0x9020        /* RT2570 */
 #define    USB_PRODUCT_RALINK_RT2573_2    0x9021        /* RT2573 */


--- /usr/src/sys/dev/usb/if_run.c.old    Thu Mar 23 18:59:36 2017
+++ /usr/src/sys/dev/usb/if_run.c    Thu Mar 23 19:02:46 2017
@@ -257,6 +257,7 @@
     USB_ID(RALINK,        RT3573),
     USB_ID(RALINK,        RT5370),
     USB_ID(RALINK,        RT5572),
+    USB_ID(RALINK,        MT7650),
     USB_ID(RALINK,        RT8070),
     USB_ID(SAMSUNG,        WIS09ABGN),
     USB_ID(SAMSUNG2,    RT2870_1),
@@ -830,7 +831,7 @@
     if (sc->mac_ver != 0x2860 &&
         sc->mac_ver != 0x2872 &&
         sc->mac_ver != 0x3070)
-        fwname = "run-rt3071";
+        fwname = "run-mt7610";
     else
         fwname = "run-rt2870";
 
@@ -839,13 +840,13 @@
             sc->sc_dev.dv_xname, fwname, error);
         return error;
     }
-    if (size != 4096) {
+/*    if (size != 4096) {
         printf("%s: invalid firmware size (should be 4KB)\n",
             sc->sc_dev.dv_xname);
         free(ucode, M_DEVBUF, 0);
         return EINVAL;
     }
-
+*/
     run_read(sc, RT2860_ASIC_VER_ID, &tmp);
     /* write microcode image */
     run_write_region_1(sc, RT2870_FW_BASE, ucode, size);

----------------------------------


Reply via email to