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 升級之后可能無法使用 的情況,這里可以直接將其中的版本報錯返回的代碼注釋掉。將
也可以如下所示修改,這部分判斷版本范圍直接修改為打印版本號。
2、4412 的 uboot 修改 mmc 硬件升級之后,uboot 部分,除了 4412 開發板需要簡單修改,其它開發板不影響。 將 4412 的 uboot 源碼下的 drivers/mmc 目錄下的 mmc.c 文件替換為壓縮包中 4412uboot 文件夾下的 mmc.c 文件即可。 請注意,其它開發板不需要修改,這個驅動文件是 4412 的源碼。 |