Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析

      SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。

     对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时候还是先以sdio的卡的设备去注册的。然后检测到卡之后就要驱动他的wifi功能了,显然,他是用sdio的协议,通过发命令和数据来控制的。下面先简单回顾一下SDIO的相关知识:

一、SDIO相关基础知识解析

1、SDIO接口

       SDIO 故名思义,就是 SD 的 I/O 接口(interface)的意思,不过这样解释可能还有点抽像。更具体的说明,SD 本来是记忆卡的标准,但是现在也可以把 SD 拿来插上一些外围接口使用,这样的技术便是 SDIO。

       所以 SDIO 本身是一种相当单纯的技术,透过 SD 的 I/O 接脚来连接外部外围,并且透过 SD 上的 I/O 数据接位与这些外围传输数据,而且 SD 协会会员也推出很完整的 SDIO stack 驱动程序,使得 SDIO 外围(我们称为SDIO 卡)的开发与应用变得相当热门。

       现在已经有非常多的手机或是手持装置都支持 SDIO 的功能(SD 标准原本就是针对 mobile device 而制定),而且许多 SDIO 外围也都被开发出来,让手机外接外围更加容易,并且开发上更有弹性(不需要内建外围)。目前常见的 SDIO 外围(SDIO 卡)有:

· Wi-Fi card(无线网络卡) 

· CMOS sensor card(照相模块) 

· GPS card 

· GSM/GPRS modem card 

· Bluetooth card 

        SDIO 的应用将是未来嵌入式系统最重要的接口技术之一,并且也会取代目前 GPIO 式的 SPI 接口。


2、SDIO总线

      SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的通信都是由HOST端 发送 命令 开始的,Device端只要能解析命令,就可以相互通信

CLK信号:HOST给DEVICE的 时钟信号,每个时钟周期传输一个命令。

CMD信号:双向 的信号,用于传送 命令 和 反应。

DAT0-DAT3 信号:四条用于传送的数据线。

VDD信号:电源信号。

VSS1,VSS2:电源地信号。


3、SDIO热插拔原理

方法:设置一个 定时器检查插拔中断检测

硬件:假如GPG10(EINT18)用于SD卡检测

GPG10 为高电平 即没有插入SD卡

GPG10为低电平  即插入了SD卡


4、SDIO命令

      SDIO总线上都是HOST端发起请求,然后DEVICE端回应请求。sdio命令由6个字节组成。

a -- Command:用于开始传输的命令,是由HOST端发往DEVICE端的。其中命令是通过CMD信号线传送的。

b -- Response:回应是DEVICE返回的HOST的命令,作为Command的回应。也是通过CMD线传送的。

c -- Data:数据是双向的传送的。可以设置为1线模式,也可以设置为4线模式。数据是通过DAT0-DAT3信号线传输的。

      SDIO的每次操作都是由HOST在CMD线上发起一个CMD,对于有的CMD,DEVICE需要返回Response,有的则不需要。

     对于读命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个读传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个响应。

    对于写命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个写传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个响应。


二、SDIO接口驱动

        前面讲到,SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以SDIO接口的WiFi驱动就是在wifi驱动外面套上了一个SDIO驱动的外壳,SDIO驱动仍然符合设备驱动的分层与分离思想


     设备驱动层(wifi 设备)

                      |

核心层(向上向下提供接口)

                      |

主机驱动层 (实现SDIO驱动)


        下面先分析SDIO接口驱动的实现,看几个重要的数据结构(用于核心层与主机驱动层 的数据交换处理)。

[ /include/linux/mmc/host.h ]

struct mmc_host     用来描述卡控制器

struct mmc_card     用来描述卡

struct mmc_driver  用来描述 mmc 卡驱动

struct sdio_func      用来描述 功能设备

struct mmc_host_ops   用来描述卡控制器操作接口函数功能,用于从 主机控制器层向 core 层注册操作函数,从而将core 层与具体的主机控制器隔离。也就是说 core 要操作主机控制器,就用这个 ops 当中给的函数指针操作,不能直接调用具体主控制器的函数。

      HOST层驱动分析在 前面的系列文章中 Linux SD卡驱动开发(二) —— SD 卡驱动分析HOST篇 有详细阐述,下面只简单回顾一下一些重要函数处理

1、编写Host层驱动

     这里参考的是S3C24XX的HOST驱动程序   /drivers/mmc/host/s

### 回答1: Z820图形工作站是惠普(HP)推出的一款高性能工作站。当我们谈论升级“boot block”以支持e526xx v2时,我们实际上指的是升级工作站的BIOS固件,以便支持Intel的E5-2600 v2系列处理器。 在升级boot block之前,我们需要了解当前的BIOS版本。我们可以在开机时按下F10键进入BIOS设置界面,然后找到关于系统信息的部分。在此部分,我们可以找到当前BIOS版本的详细信息。 一旦我们确认当前的BIOS版本,我们就可以开始升级boot block。首先,我们需要访问惠普的官方网站,然后找到与Z820图形工作站相应的支持页面。在该页面上,我们可以找到最新的BIOS固件版本以及下载链接。 点击下载链接后,我们可以下载一个可执行文件,该文件包含了最新的BIOS固件。下载完成后,我们需要确保工作站已经连接到电源,并且我们不会在升级过程中断电,以免造成损坏。 双击下载的可执行文件后,一个安装程序将启动。按照这个安装程序的指示,我们将会同意使用条款并开始升级过程。升级过程可能需要一些时间,期间我们没有任何操作,直到升级完成并提示我们重新启动系统。 重新启动系统后,我们可以再次进入BIOS设置界面来确认boot block是否已经成功升级。在关于系统信息的部分,我们应该能够看到新的BIOS版本信息,并确认支持e526xx v2处理器。 通过升级boot block以支持e526xx v2,我们可以在Z820图形工作站上享受到更高的性能和更先进的处理器技术,从而提升工作效率和应用程序的运行速度。 ### 回答2: z820图形工作站是一种高性能的工作站,用于专业图形设计、CAD、视频编辑等领域。升级boot block支持e526xx v2是指将该工作站的启动程序(boot block)进行升级,以支持第二代e526xx系列的Intel Xeon处理器。 e526xx v2系列处理器是Intel的第二代Xeon E5处理器,采用了更先进的22纳米制程工艺和更高的处理性能。通过升级boot block,z820图形工作站可以兼容这些处理器,从而提升工作站的计算能力、多任务处理和运行速度。 升级boot block的过程相对复杂,需要遵循一定的步骤。首先,需要下载最新的boot block升级程序,并将其安装到工作站上。然后,根据升级程序的指引,选择适合的e526xx v2处理器型号,并进行相应的设置和配置。 在升级boot block之前,建议备份工作站中的重要数据,以防升级过程中出现意外。升级完成后,需要重新启动工作站,并进行一系列的系统测试和稳定性检查,确保升级成功并不会对工作站的正常运行产生任何负面影响。 值得注意的是,升级boot block对于工作站来说属于硬件方面的操作,具有一定的风险。因此,在进行升级前,建议咨询专业的技术人员或生产商的支持团队,以获取详细的操作指引和支持。 ### 回答3: 要升级z820图形工作站的boot block以支持e526xx v2处理器,我们需要按照以下步骤进行操作: 1. 首先,我们需要从制造商的官方网站上下载最新的BIOS固件升级文件。确保选择与z820图形工作站相匹配的型号和版本。 2. 在下载完成后,将BIOS固件升级文件保存到一个可靠的存储设备中,例如USB闪存驱动器。 3. 将USB闪存驱动器插入z820图形工作站的USB接口,并启动电脑。 4. 在计算机启动时,按下适当的按键(通常是F10、F12或Del键)以进入BIOS设置界面。 5. 在BIOS设置界面中,查找和选择固件更新选项。这通常被标记为"Update BIOS"、"BIOS Flash Utility" 或类似的选项。 6. 进入固件更新界面后,选择从USB设备中读取固件文件的选项。 7. 浏览USB闪存驱动器,找到并选择之前下载的固件升级文件。 8. 开始执行固件升级程序,并按照屏幕上的指示完成升级过程。请确保在升级过程中不要关闭电源或中断操作。 9. 当固件升级完成后,重新启动电脑并进入BIOS设置界面。 10. 在BIOS设置界面中,查找并选择CPU设置选项。 11. 在CPU设置选项中,查找CPU兼容性或类似的选项,并启用对e526xx v2处理器的支持。 12. 保存设置并退出BIOS设置界面。 13. 重新启动电脑,让新的CPU设置生效。 通过以上步骤,我们就成功将z820图形工作站的boot block升级,并使其支持e526xx v2处理器。请注意,升级BIOS可能存在一定的风险,如果操作不当可能导致系统损坏,请务必谨慎操作,并确保备份重要数据。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值