【MTK】 EMMC移植常見問題【一】

memory移植常見問題有:1、無法下載;2、下載後無法開機;
一、無法下載
MTK平臺會有以下幾種情況:在下載過程中經常出現enable Dram fail的錯錯誤,遇到這種情況第一反應先format 一下memory,然後再down,如果format不行過着還是沒法dwon的話,那麼再做如下分析;

一旦出現此問題,需做確認以下三點:

1,必須用最新版本的flash tool下載;

2,memory是不是經過MTK驗證過;

3,板子必須跑過ett測試,preloader裏面的MDL(memorydevicelist)裏面配置Dram timing必須是ett log輸出的對應的Dram timing;

去確認後還是無法下載那麼就做如下分析:

         a.軟件原因(一般問題出在研發端):
           a1.EMI沒有配置手機硬件本身用的memory信息,此問題一般在研發端下載未知的軟件版本時候發生,具體可以check 此文件:Custom_MemoryDevice.h是否配置了硬件本身用的memory的part number;

2               a2.修改了emigen.pl或者修改其他preloader的某些文件,導致tool解析不出build出的preloader.bin的EMI參數,此類一般是preloader客製化問題引起的,可以諮詢一下MTK;

        a3.DRAM 的時序timing有誤,可以對比一下ETT測試輸出的DRAM timing;

      b.硬件原因;
        b1.memory本身的問題,此時需要做交叉對比實驗確定是memory問題,還是板子問題,若是memory問題,請找memoryvendor;

        b2.板子硬件有問題,此類問題一般是由於Memory周邊的器件有貼錯或者虛焊導致;需要拿到硬件分析;

二、下載後無法開機;

       抓取串口log進行分析

      1、我遇到的情況是溫度過高強制斷電,原因可能是在焊接memory的時候將板子搞得有點問題了。如下的log

       

[    4.864498].(4)[68:bat_thread_kthr][Power/BatMeter] [force_get_tbat] 0,108,0,0,0,60
[    4.865459].(4)[68:bat_thread_kthr][Power/BatMeter] [oam_run_inf] 4045, 4045, 4010, 2592, 2592, 135, 135, 2, 2, 1782, 60, 16
[    4.866864].(4)[68:bat_thread_kthr][Power/BatMeter] [oam_result_inf] 16, 16, 16, 16, 16, 0
[    4.867902].(4)[68:bat_thread_kthr][Power/Battery] AvgVbat=(4010),bat_vol=(4010),AvgI=(0),I=(0),VChr=(359),AvgT=(60),T=(60),pre_SOC=(84),SOC=(84),ZCV=(4044)
[    4.869657].(4)[68:bat_thread_kthr][Power/Battery] [Battery] Tbat(60)>=60, system need power down.
[    4.871358].(4)[68:bat_thread_kthr][Power/Battery] charging_set_power_off=0
[    4.872229].(4)[68:bat_thread_kthr]mt_power_off
      電池溫度過高,導致板子強制下電;。我們只需要驗證一下memory時候Ok就可以了,所以我們可以先在代碼中將溫度檢測關閉掉
     具體做法如下:kernel/drivers/power/battery_common.c文件修改

       -               if(BMT_status.temperature >= 60)
      +               if(0)//(BMT_status.temperature >= 60)

      編譯重新down一下kerne看看是否OK;

      2、遇到如下log:


[    7.837171].(7)[191:thermal_manager]Power/battery_Thermal: reset, reset, reset!!!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*****************************************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[    7.839444]-(7)[191:thermal_manager]------------[ cut here ]------------
[    7.840299]-(7)[191:thermal_manager]kernel BUG at /home/qinzhonghua/MTK_Project/base_6592/6592/kernel/mediatek/platform/mt6592/kernel/drivers/thermal/mtk_ts_battery.c:394!
[    7.842208]-(7)[191:thermal_manager]Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
      將這一段找到對應的代碼,mediatek/platform/mt6592/kernel/drivers/thermal/mtk_ts_battery.c,讓代碼跳過這一段代碼,修改代碼:

529 int  mtktsbattery_register_cooler(void)
530 {
531     /* cooling devices */
532     cl_dev_sysrst = mtk_thermal_cooling_device_register("mtktsbattery-sysrst", NULL,
533         &mtktsbattery_cooling_sysrst_ops);
534     return 0;
535 }
    修改爲:

529 int  mtktsbattery_register_cooler(void)
530 {
531     /* cooling devices */
534     return 0;
535 }
    就可以正常的開機了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章