移植88W8987A驱动和MFG程序到ARM平台

把88W8987A的驱动和MFG软件移植到明远智睿的MY-IMX6-EK200开发板,Linux-4.1.15平台上:

  1. 按“MY-IMX6 Linux-4_1_15 编译参考手册”文档的说明搭建交叉编译环境。如果打开新的终端窗口,则用以下命令设置和检查交叉编译环境:

tangb@myzr:~/my-work/8987a/wlan_src$ source /opt/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

tangb@myzr:~/my-work/8987a/wlan_src$ echo $CC

arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/opt/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi

  1. 修改驱动包里的 ”SD-UAPSTA-UART-BT-8987-U16-MMC-W16.68.1.p174-16.26.1.p174-C4X16604-GPL/wlan_src/Makefile”:

#COMPATDIR=/lib/modules/$(KERNELVERSION_X86)/build/compat-wireless-3.2-rc1-1/include

#CC=                  $(CROSS_COMPILE)gcc -I$(COMPATDIR)

#LD=                  $(CROSS_COMPILE)ld

#KERNELVERSION_X86 :=       $(shell uname -r)

#KERNELDIR ?= /lib/modules/$(KERNELVERSION_X86)/build

KERNELDIR = /home/tangb/my-work/02_source/linux-4.1.15

然后“make build”。

把生成的下列文件复制到U盘:mlan.ko   sd8987.ko

  1. 修改MFG软件“mfg8987brg.p164\Bridge\bridge\Makefile”:

#CONFIG_NONPLUG_SUPPORT=y

CONFIG_NONPLUG_SUPPORT=n

#CC=/usr/local/arm-marvell-krkwd-linux-gnueabi/gcc/bin/arm-none-linux-gnueabi-gcc

然后“make build”。

把生成的“mfgbridge”复制到U盘。

  1. 把“E:\Temp\mfg8987brg.p164\bin\FwImage\sdio8987_uart_combo.bin”和“E:\Temp\mfg8987brg.p164\Bridge\bin_mfgbridge\bridge_init.conf”也复制到U盘。
  2. 把U盘插入MY-IMX6-EK200开发板,把sdio8987_uart_combo.bin复制到/lib/firmware/mrvl目录。然后加载驱动和运行MFG软件,详见”log.txt”文件。

insmod hci_uart.ko

insmod mlan.ko

insmod sd8987.ko drv_mode=1 mfg_mode=1 cal_data_cfg=none fw_name=mrvl/w8987o_SDIO_UART_WLAN.bin fw_serial=0

mkdir /lib/firmware/mrvl

cp w8987o_SDIO_UART_WLAN.bin /lib/firmware/mrvl/

./mfgbridge

  1. 修改“E:\Temp\mfg8987brg.p164\bin\release\labtool\ SetUp.ini”,使其中的DutIpAddress 和HostIpAddress与开发板和电脑的IP地址一致。
  2. 把驱动包中的“wlan_src\mapp\mlanconfig\config\ cal_data.conf”复制到labtool目录里,并改名为“WlanCalData_ext.conf”。

大功告成,labtool的运行结果如下图所示。

如果要测试蓝牙,那么:

  1. 修改驱动包里的 ”SD-UAPSTA-UART-BT-8987-U16-MMC-W16.68.p174-16.26.1.p174-C4X16604-GPL/muart_src/Makefile”:

KERNELDIR = /home/tangb/my-work/02_source/linux-4.1.15

# Debug Option

# DEBUG LEVEL n/1/2:

然后“make build”。

把生成的下列文件复制到U盘:hci_uart.ko

  1. 修改驱动包里的 ”SD-UAPSTA-UART-BT-8987-U16-MMC-W16.68.1.p174-16.26.1.p174-C4X16604-GPL/uartfwloader_src/linux/Makefile”:

#CC=gcc

#CFLAGS=-g -O2 -I.

然后“make make”。

把生成的下列文件复制到U盘:fwloader

  1. 在开发板的终端上执行下面的命令:

insmod mlan.ko

sleep 1

insmod sd8987.ko drv_mode=1 mfg_mode=1 cal_data_cfg=none fw_name=mrvl/w8987o_SDIO_UART_WLAN.bin fw_serial=0

插入模组,若FW初始化出错,则先拔掉FTDI USB-UART工具的USB口,然后再插模组,等模组初始化成功,再插工具的USB口。如果用开发板的UART2,则把ttyUSB0改为ttymxc1。

killall hciattach

./fw_loader /dev/ttyUSB0 115200 0 helper_uart_3000000.bin

./fw_loader /dev/ttyUSB0 3000000 1 w8987d_SDIO_UART_BT.bin

insmod hci_uart.ko

hciattach /dev/ttyUSB0 any -s 3000000 3000000 flow

./mfgbridge

用 combo的FW 也可以,步骤如下

insmod mlan.ko

sleep 1

insmod sd8987.ko drv_mode=1 mfg_mode=1 cal_data_cfg=none fw_name=mrvl/sdio8987_uart_combo_mfg.bin

sleep 1

insmod hci_uart.ko

hciattach /dev/ttyUSB0 any 115200 flow

hciconfig hci0 up

./mfgbridge

然后,在Windows  端启动labtool, 分别88 查看WLAN和BT 版本号,一切正常。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值