1. 程式人生 > 其它 >MYD-YA157C系列定製板AP6234無線網絡卡適配筆記

MYD-YA157C系列定製板AP6234無線網絡卡適配筆記

MYD-YA157C系列定製板AP6234無線網絡卡適配筆記 2021.8.13

MYD-YA157C定製板標配採用了AP6212(BCM43430A0)wifi&Bluetooth二合一模組,且官方已對其做好了驅動適配,該網絡卡驅動需要與韌體配合使用。

此次我們定製的開發板使用了AP6234(BCM43340B0),支援5G頻段,原版系統映象中已包含AP6212的驅動,但沒有針對AP6234做適配,執行ifconfig,裡面並沒有出現wlan0等介面。

root@myir:~# ifconfig
eth0      Link encap:Ethernet  HWaddr D2:9C:38:63
:E6:C1 inet addr:192.168.10.2 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::d09c:38ff:fe63:e6c1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5939 errors:0 dropped:1 overruns:0 frame:0 TX packets:5772 errors:0 dropped:0
overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:501741 (489.9 KiB) TX bytes:2401061 (2.2 MiB) Interrupt:51 Base address:0x8000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:
65536 Metric:1 RX packets:376 errors:0 dropped:0 overruns:0 frame:0 TX packets:376 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:23344 (22.7 KiB) TX bytes:23344 (22.7 KiB) usb0 Link encap:Ethernet HWaddr B6:1F:9D:BB:2B:CE inet addr:192.168.7.2 Bcast:192.168.7.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

接下來我們執行dmesg | grep brcmfmac

root@myir:~# dmesg | grep brcmfmac
[   14.757669] brcmfmac: F1 signature read @0x18000000=0x1602a94c
[   14.806110] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43340-sdio for chip BCM43340/2
[   14.836721] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43340-sdio.bin failed with error -2
[   15.887412] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

發現這裡有一條錯誤:Direct firmware load for brcm/brcmfmac43340-sdio.bin failed with error -2

由於米爾官方已經對另一個相似的wifi模組AP6212進行適配,所以這裡我們直接更換韌體進行試驗。

從GitHub下載brcmfmac43340-sdio.bin放到/lib/firmware/brcm目錄下 (韌體連結放在文章最後),並在此目錄下新建一個txt檔案,命名為brcmfmac43340-sdio.myir,stm32mp157c-ya157c-v2.txt,並把以下內容複製到該文字檔案中,注意nvram裡面的xtalfreq改為xtalfreq=26000並儲存。

#AP6234_NVRAM_V1.1_20131225
manfid=0x2d0
prodid=0x0653
vendid=0x14e4
devid=0x4386
boardtype=0x0653
boardrev=0x1203
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=3
#boardflags: 
# bit 19 3tswitch:   2.4GHz FEM: SP3T switch share with BT
# bit 16     nopa:   no external pa
#            keep original 0x200
boardflags=0x0090201
xtalfreq=37400  /*模組使用26M晶振,此處應改為26000*/
nocrc=1
ag0=255
aa2g=1
ccode=ALL
pa0itssit=0x20
#PA parameters for 2.4GHz
pa0b0=6957 default
#pa0b0=6727 
pa0b1=-808
pa0b2=-178
tssifloor2g=69
# rssi params for 2.4GHz
rssismf2g=0xf
rssismc2g=0x8
rssisav2g=0x1
cckPwrOffset=3

# rssi params for 5GHz
rssismf5g=0xf
rssismc5g=0x7
#rssisav5g=0x1
rssisav5g=0x3

#PA parameters for lower a-band
#pa1lob0=5659 default
pa1lob0=5859
#pa1lob0=5659
pa1lob1=-693
pa1lob2=-178
tssifloor5gl=77

#PA parameters for midband
pa1b0=5372 
#pa1b0=5172
pa1b1=-671
pa1b2=-212
tssifloor5gm=77

#PA paramasdeters for high band
#pa1hib0=5320 default
pa1hib0=5620
#pa1hib1=-963
pa1hib1=-663
pa1hib2=-179
tssifloor5gh=74

rxpo5g=0
maxp2ga0=76
#  19.5dBm max; 18dBm target
#Per rate power back-offs for g band, in .5 dB steps. Set it once you have the right numbers.
cck2gpo=0x2222 
ofdm2gpo=0x333333333
# R54 16dBm; R48 17dBm; others 18dBm
mcs2gpo0=0x5555
# M0~ M4 17dBm
mcs2gpo1=0x5555
# M5M6 15dBm; M7 14.5dBm
#max power for 5G
maxp5ga0=68
# 16dBm target; 17.5dBm Max 
maxp5gla0=68
maxp5gha0=68
#Per rate power back-offs for a band, in .5 dB steps. Set it once you have the right numbers.
ofdm5gpo=0x66666666
# R54 13.5dBm
ofdm5glpo=0x66666666
ofdm5ghpo=0x66666666
mcs5gpo0=0x8888
# M0~M4 16dBm (1dB higher than ofdm)
mcs5gpo1=0x8888
# M5M6 13.5dBm; M7 12dBm
mcs5glpo0=0x7777
mcs5glpo1=0x7777
mcs5ghpo0=0x7777
mcs5ghpo1=0x7777
# Parameters for DAC2x mode and ALPF bypass
# RF SW Truth Table: ctrl0 for BT_TX; ctrl1 or 5G Tx; ctrl2 for 5G Rx; Ctrl3 for 2G Tx; Ctrl4 for 2G Rx
swctrlmap_2g=0x00080008,0x00100010,0x00080008,0x011010,0x11f
swctrlmap_5g=0x00040004,0x00020002,0x00040004,0x011010,0x2fe
gain=32
triso2g=8
triso5g=8
#tx parameters
loflag=0
iqlocalidx5g=40
dlocalidx5g=70
iqcalidx5g=50
lpbckmode5g=1 
txiqlopapu5g=0
txiqlopapu2g=0
dlorange_lowlimit=5
txalpfbyp=1
txalpfpu=1
dacrate2xen=1
papden2g=1
papden5g=1
#rx parameters
gain_settle_dly_2g=4
gain_settle_dly_5g=4
noise_cal_po_2g=-1
noise_cal_po_40_2g=-1
noise_cal_high_gain_2g=73
noise_cal_nf_substract_val_2g=346
noise_cal_po_5g=-1
noise_cal_po_40_5g=-1
noise_cal_high_gain_5g=73
noise_cal_nf_substract_val_5g=346
cckpapden=0
# Enable OOB interrupt: level trigger
muxenab=0x10

儲存後,重啟定製板。

root@myir:~# reboot

重啟後,使用dmesg命令檢視關於該模組的日誌。

dmesg | grep brcmfmac

執行ifconfig,發現列表中沒有wlan相關介面。

繼續執行ifconfig -a

這次發現列表中已經有wlan0,但並沒有被啟用。

輸入以下命令啟用wlan0

ifconfig wlan0 up

再次執行ifconfig,wlan0已出現在列表中。

輸入以下命令掃描周圍WiFi

iw dev wlan0 scan | grep SSID

2.4G和5G訊號均能搜尋到,無線網絡卡已成功適配。