4.0-华为MW269V2模块wifi调试

一次mmc0: Timeout waiting for hardware interrupt问题分析过程 阅读详情
huawei MW269V2 是wifi+bt+fm三合一模块,wifi采用broadcom BCM4330,
SDIO接口。
s5pv210上面的android4.0.3 bsp,内核版本为3.0.8.
将开发板通过usb口上电,然后通过转接板插入tf卡接口,打印信息如下:
mmc_attach_sdio ENTER
mmc_attach_sdio mmc_attach_bus
mmc2: card claims to support voltages below the defined range. These will be ignored.
mmc2: error -84 whilst initialising SDIO card
mmc_rescan_try_freq not sdio!
mmc2: Timeout waiting for hardware interrupt.

查询头文件得到
#define EILSEQ          84      /* Illegal byte sequence */
对drivers/mmc/目录跟踪,
mmc_attach_sdio mmc_attach_bus
mmc_sdio_init_card ENTER >>
mmc_sdio_init_card ENTER
mmc_sdio_init_card mmc_host_is_spi
mmc_sdio_init_card mmc_alloc_card
mmc_sdio_init_card MMC_TYPE_SDIO
mmc_sdio_init_card init_card
mmc_sdio_init_card mmc_set_bus_mode
mmc_sdio_init_card mmc_send_relative_addr return 0
mmc_sdio_init_card mmc_sd_get_csd
mmc_sdio_init_card mmc_select_card
mmc_sdio_init_card set parameters
mmc_sdio_init_card sdio_read_cccr
mmc_sdio_init_card sdio_read_common_cis
mmc_sdio_init_card sdio_disable_cd
mmc_sdio_init_card sdio_enable_hs
mmc_sdio_init_card sdio_enable_4bit_bus
mmc2: error -84 whilst initialising SDIO card
mmc_rescan_try_freq not sdio!
而如果是烧写的android2.3.7的内核版本2.6.35.7,则很顺利识别到:
mmc2: new high speed SDIO card at address 0001

在找不到其他方法的情况下,决定将2.6.35.7的mmc堆栈移植到3.0.8.
将3.0.8中 drivers/mmc include/linux/mmc 删除,从2.6.35.7拷贝相应的
目录。然后需要改动的地方主要有arch/arm/mach-s5pv210和arch/arm/plat-samsung中一些文件。

其中arch/arm/mach-s5pv210/setup-sdhci.c 和  arch/arm/mach-s5pv210/setup-sdhci-gpio.c 如果完全采用2.6.35.7的,则可以正常的识别到sdio card。如果使用3.0.8
部分,则出现-84的错误。

经过排除,发现问题出在
void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
使用2.6.35.7的代码:
void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
{
unsigned int gpio;

switch (width) {
/* Channel 2 supports 4 and 8-bit bus width */
case 8:
/* Set all the necessary GPIO function and pull up/down */
for (gpio = S5PV210_GPG3(3); gpio <= S5PV210_GPG3(6); gpio++) {
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
s3c_gpio_set_drvstrength(gpio, S3C_GPIO_DRVSTR_2X);
}

case 0:
case 1:
case 4:
/* Set all the necessary GPIO function and pull up/down */
for (gpio = S5PV210_GPG2(0); gpio <= S5PV210_GPG2(6); gpio++) {
if (gpio != S5PV210_GPG2(2)) {
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
}
s3c_gpio_set_drvstrength(gpio, S3C_GPIO_DRVSTR_2X);
}
break;
default:
printk(KERN_ERR "Wrong SD/MMC bus width : %d\n", width);
}
}
则可以正常识别。
使用3.0.8的代码:
void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
{
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;

/* Set all the necessary GPG2[0:1] pins to special-function 2 */
s3c_gpio_cfgrange_nopull(S5PV210_GPG2(0), 2, S3C_GPIO_SFN(2));

switch (width) {
case 8:
/* Data pin GPG3[3:6] to special-function 3 */
s3c_gpio_cfgrange_nopull(S5PV210_GPG3(3), 4, S3C_GPIO_SFN(3));
case 4:
/* Data pin GPG2[3:6] to special-function 2 */
s3c_gpio_cfgrange_nopull(S5PV210_GPG2(3), 4, S3C_GPIO_SFN(2));
default:
break;
}

s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP);
s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2));
}
则识别出错-84。
经过测试,是一定要设置强度:
s3c_gpio_set_drvstrength(S5PV210_GPG2(3), S3C_GPIO_DRVSTR_2X);
还要增加1bit的情况:
case 1:
s3c_gpio_cfgrange_nopull(S5PV210_GPG2(3), 1, S3C_GPIO_SFN(2));
s3c_gpio_set_drvstrength(S5PV210_GPG2(3), S3C_GPIO_DRVSTR_2X);
for (gpio = S5PV210_GPG2(0); gpio <= S5PV210_GPG2(1); gpio++) {
if (gpio != S5PV210_GPG2(2)) {
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
}
s3c_gpio_set_drvstrength(gpio, S3C_GPIO_DRVSTR_2X);
}

另外,需要增加对s3c_gpio_set_drvstrength()函数的支持。
arch/arm/mach-s5pv210/include/mach/irqs.h
#define S5P_IRQ_GPIOINT(x)     (S5P_GPIOINT_BASE + (x))
arch/arm/plat-samsung/include/plat/gpio-core.h
struct s3c_gpio_chip {

+  int  eint_offset;

};
从2.6.35.7拷贝 arch/arm/mach-s5pv210/gpiolib.c到3.0.8中
修改 arch/arm/mach-s5pv210/Makefile
-  obj-$(CONFIG_CPU_S5PV210) += cpu.o init.o clock.o dma.o
+ obj-$(CONFIG_CPU_S5PV210) += cpu.o init.o clock.o dma.o gpiolib.o


可以正常识别sdio设备后,"insmod /system/etc/bcm4330.ko", 不能load firmware,
也不能生成socket设备wlan0,而移植2.6.35.7版本的mmc是可以生成wlan0的,
从github上同步samsung-kernel-aries下来,
jeff@translogic:samsung-kernel-aries$ git branch -a
  android-samsung-2.6.35
* android-samsung-3.0-ics
  remotes/origin/HEAD -> origin/android-samsung-3.0-ics
  remotes/origin/android-samsung-2.6.35
  remotes/origin/android-samsung-3.0-ics
  remotes/origin/bluetooth
  remotes/origin/dock_audio
  remotes/origin/docking
  remotes/origin/ics
  remotes/origin/newfmradio
  remotes/origin/samsung-merge
  remotes/origin/sound
将其中 drivers/mmc  include/linux/mmc 部分更新过来,测试可以生成wlan0。

解决mmc2: Timeout waiting for hardware interrupt问题 每次调SD/MMC都很头疼,感觉没什么规律,总是有些莫名其妙的错误。 最近又遇到TF卡读写抛timeout错误: <3>mmc2:Timeoutwaitingforhardwareinterrupt. <7>sdhci:===========REGISTERDUMP(mmc2)=========== <7>sdhci:Sysaddr:... 阅读详情

相关推荐

SDIO驱动(13)card的初始化

SDIO card的初始化

u013686019的专栏 8148

mmc0: error -84 whilst initialising SD card

mmc0: error -84 whilst initialising SD card Xilinx的zynqmp TF卡启动, 问题的解决办法

w2insert的博客 2698

SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card【学习笔记】...

SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card 打印了如下的log: 1 05-10 18:01:02.699 <3>[ 3079.000640] mmc1: data txfr (0x00100000) error: -110 after 163 ms 2 05-10 18:0...

2381

SD卡报错“error -110 whilst initialising SD card

目前开发遇到了某些SD卡和TI的SOC芯片的驱动不协调的地方,具体表现为:uboot 阶段初始化mmc dev 1 没有任何串口信息输出,无法读写mmcKernel阶段报错”SD卡初始化失败 error -110 whilst initialising SD card“具体的原因是SD的某些CMD操作不支持,返回-110的错误,需要uboot阶段,在dts中屏蔽掉:main_sdhci1: sdhci@4fb0000 { ti,otap-del-sel-legacy = ; /*ti,otap-d...

xuerongdeng的专栏 5567

【信息科学与工程学】【产品体系】第三十三篇 DPU/smartinic芯片中的学科知识03

需求实现DMA 与流边界检测优化​分级超时状态机(短/中/长)+ 积压计数 + 批量触发DMA 控制器优化​描述符预取(深度 4)+ 中断合并(阈值 8)Fence 语义正确性验证​RTL 断言 + C 语言序列号检测 + 性能对比 + 硬件计数器所有代码均为可综合 Verilog,已在仿真器中通过基本功能测试。在 FPGA 原型上运行上述 RTL,配合 ChipScope 观察 fence 时序在 BlueField-3 上运行 DOCA DPA 测试程序,对比加/不加 fence 的结果。

weixin_49199313的博客 281

【信息科学与工程学】信息工程领域——第三十六篇 电路电子06 电路设计01

问题的数学分析及组合数学分析(涵盖材料科学、材料力学、数学物理、电路/电气/电机/电子/控制科学/控制论、微电子/电路系统架构、半导体器件物理、几何学/拓扑学/代数学/数论/离散数学/泛函分析/复变函数和时变函数/数理逻辑/运筹学、数学物理、数学华为、计算机系统架构设计、通信科学、信息科学、光科学、电科学、热科学、力学科学、网络科学 、复杂系统、其他学科知识)③LED驱动、PD接收、跨阻放大、带通滤波、ADC、数字处理;③三电极体系(工作、对、参比)、恒电位电路、电流-电压转换、低通滤波;

weixin_49199313的博客 330

【信息科学与工程学】【通信工程】第三百零五篇 网络中的几何/拓扑/离散数学/组合数学 01

矩 accountant 累计。Bluetooth LE广告包。单细胞RNA-seq计数矩阵。梯度AllReduce算法。蛋白质-蛋白质相互作用网络。联邦学习本地epoch数。资本资产定价模型beta。联邦学习客户端采样比例。联邦学习服务器聚合权重。变分量子本征求解器参数。抵押贷款支持证券现金流。数据加载器工作进程数。流水线并行微批次数量。学习感知图像块相似度。边缘设备CPU利用率。ZigBee网络地址。量子近似优化算法参数。宇宙微波背景温度涨落。

weixin_49199313的博客 242

STM32实现薄膜压力传感器数据采集(标准库和HAL库实现)

薄膜压力传感器采集压力数据

XiaoCaiDaYong的博客 3万+

Linux内核报错 mmc0: Timeout waiting for hardware interrupt.

Linux内核报错

从无到有,守正出奇。 3057

【RS】哨兵系列数据下载(哨兵2号Sentinel-2波段介绍、下载)

以哨兵二号为示例,分享如何下载欧空局的哨兵系列数据

Remote Sensing迷途小书童 1万+

Cadence SKILL 语言实战指南:从函数列表到高效自动化脚本

本文是Cadence SKILL语言实战指南,旨在帮助芯片设计工程师从掌握核心函数列表出发,高效构建自动化脚本。文章详细解析了数据处理、数据库访问、流程控制及错误处理四类关键函数,并通过版图层批量修改与参数化单元生成两大实战场景,演示如何将函数组合成解决实际问题的自动化方案,从而显著提升Virtuoso环境下的工作效率。

beta5的博客 705

mmc0: Timeout waiting for hardware interrupt.

no-1-8-v;emmc

奔跑的蜗牛 2080

多源异构数据融合(Kaggle+Google Trends联合分析)

本文详细介绍了如何利用Python实现多源异构数据融合,以Kaggle电商销售数据与Google Trends搜索指数为例,展示了数据清洗、预处理、时间对齐、数据合并、相关性分析、回归建模和可视化全过程。数据预处理与内存优化通过分块加载、数据类型转换和缺失值处理,有效降低了大规模数据在内存中的占用,并确保数据质量。时间对齐与数据融合策略采用重采样与内连接方法对齐不同数据源的时间维度,实现了高质量数据的融合,为后续联合分析奠定基础。模型构建与分析。

闲人编程的博客 1016

Exynos4412 移植针对Samsung的Linux-6.1(三)SD卡驱动——解决mmc0: Timeout waiting for hardware interrupt.

Linux6.1,移植SD卡驱动,解决mmc0: Timeout waiting for hardware interrupt.问题。问题的解决,关键是对设备树的修改。现记录下来,供大家参考以避坑。sd2_cd的原来的上拉配置更改为NONE,驱动能力修改为2,问题就没有再出现。

weixin_42408707的博客 1468

WEB浏览器视频流播放方案

基于Media Source Extensions播放视频流 浏览器播放视频的几种方法 一、H5 video标签 在浏览器播放视频,可以使用HTML5原生的video标签。但其播放的格式使用一定限制的,目前video只支持三种格式WebM、Ogg、MP4。 WebM:WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器 Ogg :Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器 MP4: MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器 上面三种

machh的专栏 2381

C#与倍福TwinCAT3通信实战:ADS协议封装与设备变量读写完整源码

倍福(Beckhoff)TwinCAT3 作为工业自动化领域主流的软PLC系统,其内置的ADS(Automation Device Specification)协议是实现上位机与TwinCAT3通信的核心标准。传统ADS通信开发存在门槛高(协议细节复杂)、稳定性差(缺乏统一异常处理)、复用性低(重复编码)等问题。本文基于 C# 技术栈,聚焦“协议封装标准化、变量读写易用化、通信稳定工业化”核心需求,提供一套完整的 ADS 协议封装方案与设备变量读写源码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1987

Linux GPIO口配置冲突导致问题

问题背景 在设备进行休眠时,休眠成功后被唤醒,查看休眠GPIO口被拉高,排除单片机拉高的可能,打印如下: suspend: set mcu wakeup(pin2) to high level 休眠下去 Detect USB Vbus is:0(off) 关vbus msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_DISCONNECT_EVENT receiv...

TSZ0000的博客 2933

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(二)(附源码)

这篇文章我们将继续实现曲线射击与两种不需要实体子弹的射击方式 源码在文章末尾。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5060

核烧写及UBOOT调试经验总结

在某项目经历了内核移植的全过程某项目沿用FORLINX开发板的uboot及内核版本,项目整体版本虽然稳定但比较旧,在调试过程中遇到不少困难,就本次CID项目内核烧写及UBOOT调试经验总结如下:一、 上电后使用烧录工具烧录故障二、 LTIB工具编译过程中出现的错误三、 EMMC版本故障四、 启动后EMMC故障五、UBOOT阶段打印丢失以及无法进入文件系统输入故障 某项目沿用FORLINX开发板的u...

weixin_40983190的博客 2845

手机VPN的连接方法分享

6、返回到VPN页面,可以看到刚刚新添加的VPN,点击开启VPN后面的开关。5、在打开的添加VPN的页面中输入VPN的信息后点击右上角的“保存”按钮。7、待VPN开关开启后,可以看到添加的VPN正在连接的提示信息了。2、在打开的小米手机设置页面中点击“更多连接方式”的菜单项。3、然后在打开的更多连接方式页面中点击VPN的菜单项。4、在打开的VPN设置页面中点击“添加VPN”的按钮。1、首先在手机屏幕左右的滑动,找到手机的设置图标。

惠惠软件 3万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SD卡无法识别的问题解决 ”mmc0: error -110 whilst initialising SD card”

硬件环境:am335x + SD卡 SD卡类型:class4,class10 问题现象:板子使用sd卡启动,内核启动后,在检测sd卡的时候出错:”mmc0: error -110 whilst initialising SD card” ,换一张就的sd卡却可以正常识别。不能识别的卡是class10的,可以识别的卡是class4的,那么由此推断卡的速度太快导致无法正常识别卡?想想也说不通,因...

MENGHUANBEIKE的专栏 3万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

解决树莓派 Error -110 whilst initializing SD card的一种方法

解决树莓派 Error -110 whilst initializing SD card的一种方法 Error -110 whilst initializing SD card的一种方法) 最近玩树莓派4B的时候,可能是由于电源供电不够稳定,突然遇到开机无法加载sd卡的情况,具体表现为使用官方的5v3A的电源,开机绿色的ACT等一直闪,红色的电源灯常亮,屏幕显示Error -110 whilst initializing SD card。 换了两张sd卡都不起作用,更新了最新的eeprom也不行,无奈只好通

xiongxiaozhou86的博客 5942

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

err -110 while initial SD card failed enmmm否系解决方案

报错:mmc0: error -110 whilst initialising SD card 将SD卡拔出 清理一下灰尘 重新放入

qq_68308828的博客 1732

mmc: error -110 whilst initialising SD card

表现为识别不了sd卡,并且报错使用的sdmmc0(在系统里叫mmc1,设备树定义),先查找一下基地址,好多抓取些日志分析可以看到基地址为ff880000,其系统里的别名为mmc1。按这两个名称检索内核日志。插上TK卡,打开开发板串口终端先贴一份“正常”的日志为什么说是“正常”的呢?因为这里可以看到这是high speed SDHC card。我们实际插入的是支持超高速SDR104模式的TF卡。错误日志代码分析打开opengrok检索错误日志,-110替换成%d。这种检索可适当缩减检索信息。

qq_42925353的博客 2821
上一篇: 4.0-Tablet UI
下一篇: 4.0-rtl8188cus wifi调试
knock
博客等级 码龄25年 79粉丝 100原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值