海思HI3516移植使用AP6181 BCM43362
备注
- 平台:Hi3516dv300
- WiFi:AP6181 (AP6XXX应该都差不多,我猜的);SDIO2.0接口(时钟设置在50M左右,其他 SDIO3.0的设置在150M左右,电压设置在1.8V)。
- kernel:Linux4.9
- 驱动:BCM通用驱动1.363.59
硬件连接
WL_REG_ON | 内部电源调节开关(就是WIFI开关) |
---|---|
WL_HOST_WAKE | 外部信号唤醒(这个引脚取决于配置,配置成OOB则使用,IB不使用) |
SDIO | SDIO连接在SDIO1上(设备树添加MMC2) |
备注: 如果使用了GPIO11则要注意,GPIO11的使用与PMC有关,
PMC要处于工作状态,RTC也要处于工作模式,PWR控制寄存器也要设置PMC域上的GPIO复用使能。
开始
- 将源码解压到kernel中的 drivers/net/wireless/ 目录
- 修改wireless里面的Kconfig,添加 source “drivers/net/wireless/bcmdhd/Kconfig”
- 修改wireless里面的Makefile,添加obj-$(CONFIG_BCMDHD) += bcmdhd/
- 修改驱动源码里面的dhd_gpio.c,对应上面硬件的两个引脚。(海思GPIO,8个一组,引脚号:GPIO2_3,就是2*8+3=19。)
内核配置
- Network support->Wireless,设置cfg80211和mac80211。
- 如果要使用iwconfig,iwlist调试工具,需要配置WEXT.
- AP6181需要配置IPV6,Network support->Networking options,设置The IPv6 protocol 。
- MMC相关和GPIO相关的默认已经配置好了,可以不管。
- Device Device->Network device support->wireless LAN,设置Broadcom FullMAC wireless cards support(设置为M,方便调试),下面设置固件路径和接口,中断类型与上面硬件的WL_HOST_WAKE是否使用设置IB和OOB.
设备树修改
- 设备树文件在kernel,arch/arm/boot/dts,里面有一个dts,和dtsi,一般只需要修改dts即可。
- 在dts里面将MMC2设置为*“okay”*。
- 在dtsi的mmc2中添加属性mmc-hs200-1_8v
- 若上面的配置中断类型设置为IB,内部中断,则需要在dtsi的mmc2属性中添加cap-sdio-irq
uboot修改
- Hi3516的SDIO1默认是没有配置成的SDIO复用的(刚开始没注意,被坑了好久)。
- 在U-boot目录下编译出U-boot.bin,复制到osdrv/tools/pc/uboot_tools/。
- 在tools/pc/hi_gzip编译一下gzip,把bin文件复制到arch/arm/cpu/armv7/hi3516cv500/hw_compressed/
- 修改配置表格,在pinout里面配置对应的管脚成SDIO,之后在main里面点击Generate reg bin file(需要宏,注意检查宏是否开启),会生成reg_info.bin。
- 将reg_info.bin复制到U-boot目录,重命名成 .reg
- 执行make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin,生成的bin文件就是需要的U-boot。
调试
- 编译内核和模块,烧录新的内核、U-boot、dtb(如果开始的U-boot没有传递设备树文件,这里要记得修改启动传参)
- 加载ko,iwconfig(需要移植wireless_tools)或者ifconfig -a 查看是否有wlan0网口,有就初始化成功了。
- ifconfig wlan0 up启动网口。看是否成功
- 之后就可以移植wpa_supplicant,hostapd进一步调试。
海思HI3516移植使用AP6181 BCM43362相关推荐
- 海思Hi3516移植opencv以及错误调试
opencv移植总结------------------------------------------------------------ 使用cmake-gui------------------ ...
- 海思3559移植yolov3
此人博客上有完整教程: https://blog.csdn.net/avideointerfaces/article/category/8762084 海思3559移植yolov3 海思AI芯片(Hi ...
- 关于 海思Hi3516横竖屏Qt使用QGraphicsScene代理窗口强制旋转导致弹窗旋转与阴影不显示的 解决方案
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128592671 红胖子(红模仿)的博文大全:开发技术集 ...
- 海思Hi3516使用srs-librtmp推送视频流至阿里直播平台
srs-librtmp可以直接推送H264格式的rtmp数据流,所以可以将海思HI3516通过VENC编码后的H264裸流数据直接通过srs-librtmp发送到阿里直播平台. 这里需要注意的是srs ...
- 我的内核学习笔记16:海思Hi3516平台PWM使用记录
本文介绍海思平台 Hi3516 的 PWM 使用,包括手册介绍及用户空间控制. 一.PWM 概览 芯片一共提供2路独立的 PWM,分别以 PWM0 和 PWM1 称呼.PWM 时钟有3种选择:3MHz ...
- 我的内核学习笔记15:海思Hi3516平台GPIO使用记录
本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...
- 海思Hi3559AV100移植Qt5.9.9(一)
目录 前言 1 基础环境搭建 1.1 概述 1.2 Ubuntu虚拟机安装 1.2.1 准备 1.2.2 安装 1.3 软件包安装 2 安装编译SDK 2.1 准备 2.2 解压缩SDK 2.3 展开 ...
- 海思3559U-Boot移植(二):更换新的SPI Nand Flash
前言: 在开发板上的折腾终归是小打小闹,真正的实践还需要从实际项目和自己参考画的板子选的器件入手,记录更换未经SDK包测试过的国产FLASH调试记录和踩到的坑,重点参考SDK文档包下的Releas ...
- gpio复用 海思_我的内核学习笔记15:海思Hi3516平台GPIO使用记录
本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...
最新文章
- windows共享wifi
- Codeforces Round #375 (Div. 2)
- mysql索引失效_导致MySQL索引失效的几种常见写法
- 4.android.mk编写规范
- Codeforces 666E. Forensic Examination
- 面试--输入一堆随机数(0-1000),这里面会有重复的数字,把他们去除掉。然后由大到小排列。
- Juniper大中国区于肇烈
- 关于电脑周边配件的问题
- linux指令 sed,Linux命令sed
- 蔚来ET5将于2022年9月开启交付 补贴前售价32.8万元起
- linux下tmux
- CheckBox复选框控件
- 网络通信数据传输原理
- cad插件加载bplot成功用不了_CAD批量打印,加载Batchplot.vlx那个。 为什么我电脑输入BPLOT命令后没反应啊??急急急,求大神们解救!...
- MMA8452Q 三轴加速度传感器驱动
- 最长递增子序列O(NlogN)算法
- 智能算法系列之粒子群优化算法
- 物联网应用技术学习内容及就业前景
- 50个BA分析工具第五个-Business Model Cavans
- CSS 滚动条: 自定义滚动条样式