Over the past couple weeks, I've been working on getting the ral(4)
driver updated for the 35xx chipset. Specifically version 0x3060 from
an Edimax EW-7128Gn. Although the mailing list page says tech@ is not a
"tech support", I was privately directed from misc@ to post in tech@.
I've previously tried getting a hold of mediatek (Linux vendor code
providers) and [email protected] (from ral(4) manpage, mailer daemon -
failure to deliver).
I've been having trouble comparing the vendor provided code against the
ral(4) driver. The hard part, is that I don't know the "correct"
information for certain registers (because I have nothing to compare the
3060 eeprom against). Is there anyone else I can contact about this? or
anyone running ral(4) (2860 or 3090) who would like to enable the debugging?
I've made the needed changes to /usr/src/sys/dev/pci/pcidevs, and
enabled the debugging macro of ral(4)'s "sys/dev/ic/rt2860.c" driver.
Here is the associated output of dmesg:
ral0 at pci4 dev 0 function 0 "Ralink RT3060" rev 0x00attaching ralink
driver: apic 2 int 20EFUSE_CTRL=0x80008800
EEPROM rev=1, FAE=0
EEPROM region code=0x0001
(8x:) BBP255=0xff
(10x:) RF255=0xff
EEPROM freq offset 30
EEPROM LED mode=0x01, LEDs=0x0110/0xfad9/0x88cc
EEPROM RF rev=0x08 chains=1T1R
EEPROM CFG 0x0086
chan 1: power1=16, power2=5
chan 2: power1=17, power2=5
chan 3: power1=17, power2=5
chan 4: power1=18, power2=5
chan 5: power1=18, power2=5
chan 6: power1=19, power2=5
chan 7: power1=19, power2=5
chan 8: power1=20, power2=5
chan 9: power1=21, power2=5
chan 10: power1=21, power2=5
chan 11: power1=22, power2=5
chan 12: power1=22, power2=5
chan 13: power1=23, power2=5
chan 14: power1=24, power2=5
chan 36-161: power1=-1, power2=-1
chan 165-173: power1=0, power2=-1
chan 0: power1=0, power2=-1
power compensation=0 (2GHz), 0 (5GHz)
ridx 0: power 20MHz=0xaaaa5555, 40MHz/2GHz=0xaaaa5555, 40MHz/5GHz=0xaaaa5555
ridx 1: power 20MHz=0xaaaa6688, 40MHz/2GHz=0xaaaa6688, 40MHz/5GHz=0xaaaa6688
ridx 2: power 20MHz=0xaaaa6688, 40MHz/2GHz=0xaaaa6688, 40MHz/5GHz=0xaaaa6688
ridx 3: power 20MHz=0xaaaa6688, 40MHz/2GHz=0xaaaa6688, 40MHz/5GHz=0xaaaa6688
ridx 4: power 20MHz=0xffff6688, 40MHz/2GHz=0xffff6688, 40MHz/5GHz=0xffff6688
TSSI 2GHz: 0x22 0x19 0x16 0x13 0x10 0x0d 0x0a 0x08 0x06 step=1
TSSI 5GHz: 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff step=255
tx mixer gain=3 (2GHz)
invalid LNA for channel group 2
invalid LNA for channel group 3
, address 80:1f:02:95:57:17
ral0: MAC/BBP RT3572 (rev 0x0223), RF RT3022 (MIMO 1T1R)
...
MCU command=0x30 slot=0 status=0x01
MCU command=0x31 slot=0 status=0x01
Then a ton of "tx stat 0x####", "GP timeout state=1", and "sending frame
qid=## wcid=## nsegs=## ridx=##" spamming my console
(Note, GP timeout state=1 means that the
At first I thought the 3060 used eeprom, but I'm now certain it uses
efuse. Because this information is correct:
MAC Address (80:1F:02 = Edimax Brand)
MAC/BBP RT3572 (comment in vendor code states: 35xx chips all report
3572 from eeprom)
MIMO 1T1R, (3060 has 1tx ring, and 1rx ring)
(TSSI 5GHz seems to be correct, the 3060 doesn't have 5GHz support AFAIK)
Everything else I cannot prove to be correct. Furthermore, I'm fairly
certain EEPROM region code=0x0001 is incorrect. Wikipedia's list of
WLAN channels for the USA matches the vendor code definition of region
9. Eeprom (from 2860 code) reports region 12, which includes 3 channels
not used in the USA.
I've profiled all the vendor code between 2860 and 35xx. Now I'm going
to profile between 35xx and 3090. In the meantime, I was hoping to get
in contact with someone who knew more about the ral(4) driver, or
wireless drivers in particular.
Thanks!
Nathan Goings