本帖最后由 szembed 于 2021-5-21 14:06 编辑
IoT-6ULX简要介绍: IoT-6ULX,主要面向Internet Of Things应用,该产品集成了 ARM Cortex-A7 900Hz(MAX) NXP I.MX6UL/L 处理器,并板载AP6214 WIFI模块+BT4.2,稳定运行Linux 4.14和YACTO。IoT-6ULX提供了3.3V I/O接口,可提供宽温的工业组件,运行于条件恶劣的工业现场!
产品特性: l 采用NXP公司Cortex-A7 I.MX6UL/L处理器,运行最高速度为900MHZ,低功耗; l 支持128M-1G BYTES DDR3 SDRAM; l 支持SLC NAND(256M-1G BYTES)或QSPI NOR FLASH可启动; l 最多可支持一路百兆以太网+AP6214 WIFI+BT 4.2; l 支持两路高速USB OTG,可接口4G/WIFI模块; l 支持最多4路串口,双路CAN BUS; l 支持DS1338高精度时钟,带电池备份 l 支持分辨率最高的1366*768显示接口; l 邮票孔式核心模块,性价比高,low Price,稳定性好; l 稳定的操作系统的支持,可预装LINUX 4.14.78/Yacto,欢迎客户定制 超小体积,尺寸为:39X39X1.0MM
评估板(工控板)实物图:
前言由于linux内核中使用brcmfmac驱动针对于AP6214稳定性不佳,经常无法连接NETGEAR R6220路由,且通信速度未能接近WiFi模块的标称值,故移植bcmdhd驱动。 下文简要介绍基于盈鹏飞嵌入式的IoT-6ULX/EVB-6ULx平台、i.MX Linux-4.14.98内核,如何集成bcmdhd驱动、并测试无线网络通信的过程。
1 IoT-6ULX中CPU与AP6214的硬件连接
2 驱动移植
bcmdhd驱动是Dongle Host Driver (DHD) 是一个可执行的模块,它基于SDIO总线之上提供了通信主机与Ampak (WiFi)模块之间的协议栈封装。DHD架构如图1-1所示:
驱动移植除了处理驱动代码,还要设定固件与NVRAM文件的存储路径。驱动加载时从指定的路径读取固件与NVRAM,当不能正常读取时,会导致WiFi模块不正常通信。 2.1 内核驱动
与集成其他的Linux驱动类似,bcmdhd驱动添加到Linux内核中,需要修改Kconfig与Makefile文件。步骤如下: 1、使能CFG80211以及移除BRCMFMAC驱动配置项 2、驱动配置 解压bcmdhd驱动代码bcmdhd.1.579.77.41.x.7z到drivers/net/wireless/目录,并重命名为bcmdhd(删除版本信息,为了缩短路径)。作如下修改: ① 在drivers/net/wireless/Kconfig中添加: source "drivers/net/wireless/bcmdhd/Kconfig" ② 在drivers/net/wireless/Makefile中添加: obj-$(CONFIG_BCMDHD) += bcmdhd/ 3、配置dts与修改代码 ① 配置dts 添加WiFi上电regulator,GPIO为WL_REG_ON。 cd-post属性检测不可插拔主机设备以及让客户启动已经就绪的端驱动程序。调试过程中,因为少了该属性,WiFi设备不能正常枚举。此外,还需注意添加wifi-host 属性,用于BCM WiFi设备卡检测。 ② 修改代码 从dts中可以看出,使用了外部中断,因此需在drivers/net/wireless/bcmdhd/Makefile打开: CONFIG_BCMDHD_OOB := y EVB-6ULx板载的AP6214A模块为SDIO接口,因此需在drivers/net/wireless/bcmdhd/Makefile打开: CONFIG_BCMDHD_SDIO := y WL_REG_ON与WL_HOST_WAKE使用dts配置,而不是hardcode,因此需在drivers/net/wireless/bcmdhd/Makefile打开: CONFIG_BCMDHD_DTS := y 在drivers/net/wireless/bcmdhd/Kconfig中修改固件与NVRAM文件的存储路径: default "/lib/firmware/brcm/fw_bcmdhd.bin" default "/lib/firmware/brcm/nvram.txt" 在drivers/net/wireless/bcmdhd/dhd_gpio.c中添加上电控制: 注:① 以上的打开是指,将Makefile中注释符号#删除; ② 固件与NVRAM的路径、文件名可随意指定。
4、配置WiFi驱动 选择Broadcom FullMAC wireless cards support,如图2-1所示:
|