MT7697 Wi-Fi MAC地址获取接口注意事项
从SDK V3.3.x开始,MAC地址默认从Efuse【地址4~9】获取: • 因为Efuse默认只有一个MAC, 所以读取后会将该MAC 进行计算: STA/APCLI Port 的MAC = Efuse的MAC, AP Port的MAC = Efuse MAC with Last Byte+1 • 如Efuse没有 , 则从NVDM中去查找 Group为”AP” or “STA”, Item 为”MacAddr”的值。 SDK V3.3.x Wi-Fi Reference Guide中也有对此做详细说明。 【SDK V3.3.x之前默认都是从 NVDM中获取】
因MAC地址来源可能很多, 所以对于该 Get Mac 地址的接口有open source出来, 让用户能够加入自己的设计。 但这个接口proto type不能被更改, 因为SDK内部有一些module 会调用该common SDK API (比如DHCPD, LwIP 和Supplicant这边的初始化)。 在使用上,对于产品/模块厂商生产的产品: 1: 如果要采用mtk 默认的设计, 厂商写入到Efuse 的MAC地址, 需要跳号, 以确保生产出的板子不会 有MAC地址冲突的情况 比如: 第1片板子的Efuse【地址4~9】 中写成了 00:0c:43:11:11:11 第2片板子的Efuse【地址4~9】 中要写成 00:0c:43:11:11:13 第3片板子的Efuse【地址4~9】 中要写成 00:0c:43:11:11:15
2: 如果厂商用自己的机制, 则修改Common API 内部: wifi_config_get_mac_address()的内部实现即可。 需要注意在Repeater Mode下, AP port 和 AP Client Port 读取的MAC地址需要不一样。