x1000e rtl wifi 移植

本文记录了将rtl8189es WiFi芯片移植到君正x1000e平台的过程,包括代码移植、首次运行、代码分析和调试步骤。通过对比原厂demo板和新板,发现设备初始化存在问题,通过引入platform_driver_register解决了匹配问题。
摘要由CSDN通过智能技术生成

前情提要

这次是要换一个 wifi 芯片,就把这个换的过程记录下来,因为自己也是新手,很多东西都是自己一点点摸出来的,就希望一些东西能对跟我一样,新入门的人有些帮助,能快速入门。

基本设施

  • 基于 君正 x1000e, halley2
  • wifi 由原君正的换到 rtl8189es
  • 切换前是用的 原厂 demo 板,切换后用的是新画的板子,上面是新的wifi 芯片

一步步的经历

首先可以确定的,在原来的 demo 板上,一切OK。wifi 都是正常的。开始换新的芯片,并且移植代码

代码移植

替换的新 rtl 芯片是供应商提供源码的,所以第一步是将源码放到内核中去编译。当然,编译一般会挺顺利,修改了源码中的配置,设置对应的编译器之类的。(源码是供应商的,所以只能说明思路,代码不能展示)

首次运行

当然,很明显,运行起来没有效果,wlan0 设备没有生成。接着就开始想是哪里的问题。这个 wifi 芯片是 sdio 接口的,看原理图,sdio 部分基本不管,那么可操作的就只有 PWR_EN 和 WAKEUP,看起来,WAKEUP 像是休眠之类的功能,问的供应商可以不管,那么就只有 PWR_EN 了,但是这个不管怎么设置都还是没有效果。

下面肯定就没有什么办法了,也不知道怎么弄了,那么就只有源码对比,我开始对比原来的实现,和现在的实现有什么区别,这么大的代码量,对比起来还是很难下手的。但是大家的接口都是一样的 sdio,所以其实想一想,肯定就是一些配置的问题,于是就从配置部分去考虑,其它的不用去处理。

代码分析

首先开始了解一下代码。之前一直看驱动,但是没有实践,所以有些东西,理解不了它在代码上是个什么展示方式,所以有时候别人给你提示你也不知道怎么弄,想问别人也不知道怎么问。

这里首先有个所谓的 platform 模型,这是说内核已经做好的 驱动和设备的对应框架结构,使用者只需要设计好驱动,配置一下设备就可以用了。而一般驱动都是由芯片厂商提供好。那么终端用户就只要去配置设备部分就可以了。

                platform
         device  <---->   driver
         name    -----     name
      arch/xxx/xx     driver/net/wireless/xxx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值