Android 移植之 WIFI
2010-03-16 16:36:00 来源:WEB开发网{ 0xa027181c, 0x40214, 0xd24d}, //Mode 0: Single ANT with COEX enable
{ 0xa027181c, 0x40211, 0xd24d}, //Mode 1: Dual ANT with COEX enable
{ 0xa027181c, 0x40222, 0xd21c}, //Mode 2: single ANT for BT only
{ 0xa027801d, 0x18000, 0xd21c}, //Mode 3: Marvell default
};
wlan_offset_value RegBuffer;
RegBuffer.offset = (0xA5F0);
RegBuffer.value = BCACfgTbl[BCA_CONFIG][0];
wlan_prepare_cmd(priv,
HostCmd_CMD_MAC_REG_ACCESS,
HostCmd_ACT_GEN_SET,
HostCmd_OPTION_WAITFORRSP,
0,&RegBuffer);
RegBuffer.offset =(0xA58C);
RegBuffer.value = BCACfgTbl[BCA_CONFIG][1];
wlan_prepare_cmd(priv,
HostCmd_CMD_MAC_REG_ACCESS,
HostCmd_ACT_GEN_SET,
HostCmd_OPTION_WAITFORRSP,
0,&RegBuffer);
RegBuffer.offset = (0xA5A0);
RegBuffer.value = BCACfgTbl[BCA_CONFIG][2];
wlan_prepare_cmd(priv,
HostCmd_CMD_MAC_REG_ACCESS,
HostCmd_ACT_GEN_SET,
HostCmd_OPTION_WAITFORRSP,
0,&RegBuffer);
}
基本上这样就可以工作了;
4、其它问题:
(1)Sdio 口默认是用的 3.2V 这里需要修改相关的地方强制设成是 1.8V ,否则 SDIO 接口将无法工作;
(2)Android 平台上需要移植一些上层软件才能验证,比如 iwconfig , iwlist , wpa_supplicant 等。测试步骤:
iwlist mlan0 scan 如果能扫描到 AP 那么证明基本已经 OK 了;
wpa_supplicant -Dwext ?imlan0 -c/etc/wpa.conf &
dhcpcd mlan0 ;
这样的话,就可以 ping 通 IP 地址了;
5、常见问题
(1)WIFI 驱动注册 sdio 驱动的时候出错,也就是 probe 函数未被调用?需要检查 sdio 设备本身是否被检测到,内核是通过发送特定的命令来检测是 sdio 还是 SD 卡还是 mmc 的,在 mmc_rescan 函数里面可以看到 sdio 设备的加载过程,有可能就是你的电压设置不对;
(2)以太网接口一直出不来或者说 firmware 加载失败?这里需要确保 firmware 是否正确被加载,很可能是它找不到对应的 firmware
更多精彩
赞助商链接