mmc 升級之后,用戶如果使用老的鏡像(201805 月之前的代碼),會打印 mmc 的錯誤,并無法啟動。這是因為在默認的 mmc 驅動源碼中有幾行判斷 mmc 版本的代碼,隨著時間流逝,mmc 硬件版本一直在升級,導致超出了預留的 mmc 版本號,其實 mmc 硬件驅動是一模一樣的,只需要注釋掉 mmc 驅動中版本判斷的代碼即可。
本文檔適用于 iTOP-4412 精英版/全能版,iTOP-4418/6818 全能版,iTOPIMX6Q/D/UL 全能版。
1、mmc 驅動修改
mmc 驅動要修改的文件為內核源碼“/drivers/mmc/core/”下的 mmc.c 驅動文件。
在該驅動文件下找到函數“mmc_read_ext_csd”,如下圖所示。
在“mmc_read_ext_csd”函數中的判斷 mmc 硬件版本代碼部分如下圖所示。
請注意,可能在部分開發板中已經簡單修改,但是還是存在 mmc 升級之后可能無法使用
的情況,這里可以直接將其中的版本報錯返回的代碼注釋掉。將
1 2 3 | err = -EINVAL; goto out; |
直接注釋掉重新編譯是最簡單的修改方法。
也可以如下所示修改,這部分判斷版本范圍直接修改為打印版本號。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #if 0 printk(KERN_ERR '%s: unrecognised EXT_CSD revision %dn', mmc_hostname(card->host), card->ext_csd.rev); err = -EINVAL; goto out; #else printk(KERN_ERR '%s: EXT_CSD revision %dn', mmc_hostname(card->host), card->ext_csd.rev); #endif |
2、4412 的 uboot 修改
mmc 硬件升級之后,uboot 部分,除了 4412 開發板需要簡單修改,其它開發板不影響。
將 4412 的 uboot 源碼下的 drivers/mmc 目錄下的 mmc.c 文件替換為壓縮包中
4412uboot 文件夾下的 mmc.c 文件即可。
請注意,其它開發板不需要修改,這個驅動文件是 4412 的源碼。
上一篇:迅為IMX6ULL開發板交叉編譯器的安裝和使用
下一篇:迅為IMX6Q開發板QT系統移植tinyplay
推薦閱讀最新更新時間:2025-06-05 22:56




設計資源 培訓 開發板 精華推薦
- 【RA】瑞薩mcu聲光控制器
- BD48K55電壓檢測IC在BD48xxx系列中的典型應用
- OP213FSZ-REEL耳機輸出放大器多媒體聲音編解碼器典型應用
- 【立創開發板】灰灰四驅智能小車
- 使用 ROHM Semiconductor 的 BU4918 的參考設計
- AH1308 應用提示 - Mantis TJA1057 5V 高速 CAN 收發器
- LF25ABDT-TR 2.5V低壓燈泡典型應用
- DC1418A-B,使用 LT6604-5、5MHz 雙通道、匹配、全差分低通濾波器的演示板
- LT3091MPT7 500mA LED 驅動器的典型應用,具有接地 LED 接線片(散熱器)
- LTC1855、8 通道、10V 輸入、14 位、100ksps ADC 轉換器的典型應用,具有停機功能
- 跟著wince5 help 實做Create a Device Driver時遇到的問題
- 麥克風的輸出電壓一般幅度多大?
- 誰有合適的PADS2007,發個給我 謝謝 上網沒搜到
- 請教各位大蝦!stm8PB口與中斷沖突問題!
- 深度資料|5G NR無線通信技術
- 突然想問個很童年的問題。。。走過路過進來看看啊。。。。
- 破解DXP2004
- 如何實現nand flash 存取 LOGO(在EBOOT中)?
- ======WINCE6.0下這些異常怎么定位解決---Exception 'Undefined Instruction'++++Exception 'Pref
- 有proteus 7.4 DEMO版(全中文的,好用,但不能保存文件)的破解方法嗎