作者
Mayur Arakere
Mayur Arakere在半导体行业拥有超过10年的应用工程和产品管理经验。他目前常驻加利福尼亚州圣何塞,是恩智浦无线连接解决方案的资深软件产品经理,负责为Wi-Fi、蓝牙和Thread/Zigbee组合 SoC定义软件产品。工作之余,Mayur喜欢在旧金山湾区徒步旅行,享受周末时光。

本周的Wireless Wednesday将重点介绍恩智浦为无线连接SoC开发的统一Wi-Fi驱动程序——多芯片多接口驱动(MXM)。我们将详细说明其架构设计如何简化基于恩智浦无线连接SoC和i.MX应用处理器的开发过程。
MXM驱动 是恩智浦专有的Wi-Fi驱动实现,可用于支持Linux和Android的恩智浦i.MX MPU。该驱动采用灵活的双许可方案,有GPL-2.0和专有许可,可有效避免许可冲突。该驱动在恩智浦无线SoC固件和主处理器上的标准Linux网络协议栈/cfg80211之间提供无缝接口。它负责为内核和应用程序提供多种Wi-Fi功能,包括站点/客户端(STA)模式、微型接入点/软接入点(uAP)、P2P以及邻居感知网络/Wi-Fi感知(NAN)等功能。
恩智浦通过GitHub提供MXM驱动。访问MXM驱动的GitHub源代码存储库 ,查看和下载驱动的源代码。
MXM驱动支持恩智浦无线连接SoC产品组合,兼容PCIE、SDIO和USB接口。编译时可以通过Makefile设置轻松配置SoC/接口组合,甚至可以同时配置多个SoC/接口组合。编译后的驱动内核模块可以支持不同的SoC/接口组合,无需重新加载或重新编译驱动。对于想要从当前一代恩智浦设备升级到下一代产品的开发人员来说,这提供了一条更简单的迁移路径,减少了集成工作量,同时让跨产品代际进行维护变得更加轻松,无需担忧架构变更。
如图1所示,该驱动采用双层架构,包括MLAN层和MOAL层。这种设计主要是为了便于将驱动移植到Linux/Android以外的其他操作系统。这两层的功能如下:
MLAN模块包含大部分代码,可以直接使用,而MOAL模块则需要移植到目标操作系统。恩智浦已将MOAL模块移植到了支持恩智浦i.MX RT跨界MCU和通用MCU的多个常用实时操作系统,包括FreeRTOS和Zephyr。
FreeRTOS实现已集成在MCUXpresso SDK中,而Zephyr Wi-Fi驱动则是Zephyr项目 上游的一部分。这些实时操作系统驱动采用宽松的BSD-3条款许可,这很好地解决了开发人员和客户在偏好非 GPL许可证时的顾虑。
MCUXpresso SDK 24.12.00版本的发布为无线开发人员带来诸多优势。详细了解MCUXpresso SDK如何推进无线开发。
MXM驱动同时支持基于x86和Arm等处理器架构的平台,特别适用于i.MX MPU。该驱动具有出色的后向兼容性,可支持过去15年的Linux内核版本以及较早版本的Android系统。驱动持续更新以确保与新内核版本的兼容性,通过cfg80211应用程序接口(Linux 802.11配置API)支持多种标准和第三方应用程序,可与iw和wpa_supplicant等标准Linux工具协作。
恩智浦已将MXM驱动集成到i.MX应用处理器,并为i.MX 6、i.MX 7、i.MX 8和i.MX 9系列的评估套件(EVK)提供季度更新的Linux和Android板级支持包(BSP)。恩智浦针对工业、物联网和汽车领域的多样化应用场景,优化并验证了这些BSP,以实现卓越性能和丰富的功能集。这为用户评估恩智浦处理器和无线连接解决方案提供了卓越开箱即用体验。BSP提供维护版本和补丁支持,确保客户拥有较低的拥有成本。这些BSP,请参见面向i.MX应用处理器的嵌入式Linux和面向i.MX应用处理器的Android操作系统。
该驱动作为Linux Yocto项目构建的子模块提供,方便开发人员为基于恩智浦的EVK进行构建。此外,驱动以源代码的形式发布,可从GitHub等平台下载,便于与恩智浦和非恩智浦平台进行协作和集成。参阅用户手册 ,了解下载和构建MXM驱动的说明。对于使用基于Yocto系统的用户,请使用MXM驱动Yocto版本 ,简化MXM驱动移植到其他第三方平台的开发工作。
更便捷的协作和集成方式加速您的开发进程。 有关下载和构建MXM驱动的说明,请参阅用户手册。
恩智浦半导体无线连接解决方案的资深软件产品经理
Mayur Arakere在半导体行业拥有超过10年的应用工程和产品管理经验。他目前常驻加利福尼亚州圣何塞,是恩智浦无线连接解决方案的资深软件产品经理,负责为Wi-Fi、蓝牙和Thread/Zigbee组合 SoC定义软件产品。工作之余,Mayur喜欢在旧金山湾区徒步旅行,享受周末时光。