AOSP5.0 MT6572平台。用H9TP32A4GDBCPR_KGM这颗4G的eMMC就能够。可是用H9TP65A8JDACPR_KGM这个8G的就开不了机,一直是重新启动。用串口抓LOG发现以下这个东东:

[    2.028532]<1>.(0)[6:kworker/u4:0]total reserve: l_otp_reserve = 0x0 blocks, l_mtk_reserve = 0xa800 blocks, l_offset = 0x7fd000 blocks

[    2.028538]<1>.(0)[6:kworker/u4:0]l_reserve = 0x807800

[    2.030884]<1>.(0)[6:kworker/u4:0][mmc_blk_probe]: mmcblk0 by manufacturer settings, quirks=0x10000000

[    2.032043]<1>.(0)[65:mmcqd/0]msdc0 -> Address offset in USER REGION(Capacity 7456 MB) is 0xffffd000 <- msdc_cal_offset() : L<2574> PID<mmcqd/0><0x41>

[    2.032057]<1>.(0)[65:mmcqd/0]msdc0 -> XXX Address offset error(-12288),please check MBR start address!! <- msdc_cal_offset() : L<2576> PID<mmcqd/0><0x41>

[    2.032075]<1>-(0)[65:mmcqd/0][KERN Warning] ERROR/WARN forces debug_lock off!

[    2.032079]<1>-(0)[65:mmcqd/0][KERN Warning] check backtrace:

依据上边“Address offset error”这个错误信息,定位代码到:...h10\kernel-3.10\drivers\misc\mediatek\mmc-host\mt6572\sd.c文件

开机正常的4G的eMMC的串口log例如以下:

[    2.016319]<0>.(1)[58:kworker/u4:1][mmc_blk_probe]: mmcblk0 by manufacturer settings, quirks=0x10000000

[    2.017554]<0>.(1)[65:mmcqd/0]msdc0 -> Address offset in USER REGION(Capacity 3696 MB) is 0x0 <- msdc_cal_offset() : L<2574> PID<mmcqd/0><0x41>

[    2.020739]<0>.(0)[1:swapper/0]warning init time too long!

[    2.021471]<0>.(0)[1:swapper/0][pdev] mtk-msdc

感觉应该是这里出了问题。结合代码分析。应该是MBR_START_ADDRESS_BYTE这个宏定义应该有问题,这个宏是......h10\bootable\bootloader\preloader\tools\emigen\MT6572\MemoryDeviceList_MT6572.xls这个文件里emmc_region表格Boot1(KB)+Boot2(KB)+RPMB(KB)的值。有人说在......h10\device\mediatek\build\build\tools\ptgen\MT6572\mbr_addr.pl中改MBR_Start_Address_KB即可。可是我试了试不行的,不知道为何。

在解决这个问题过程中查到一下几篇文章,可供參考,留作以后学习:

1、关于mt6572不能开机问题 - Tracy Mcgrady的专栏 - 博客频道 - CSDN.NET

刚接触mtk的平台,就遇到一个问题,新代码配置好flash之后,烧写到板子上,系统不可以正常启动,配置串口为115200,仅仅能得到例如以下信息:

[DL] 00001388 00000015 010301F0: 1028 0000F3: 0000 0000V0: 0000 0000 [0001]00: 1027 000201: 0000 0000BP: 0000 0051G0: 0090 0003T0: 0000 1499EC: 0000 0080 [0000]Jump to BL

一直循环打印这段信息,也没有太多信息输出。不是吧。连preloader都没进入,由于之前看过一点preloader的代码,至少也有几个print函数,难道flash配置有问题,或者是ddr配置的问题,查找了一下代码,也没有看见哪里配置ddr(后来才知道ddr和nand flash是一个模块)。

后来也没有找到原因。都快要放弃了的时候,在网上找到了相同的问题。改动mediatek/custom/projec_dir/preloader/inc/cust_bldr.h文件,改动部分例如以下:

-#define CFG_UART_LOG                (UART2)+#define CFG_UART_LOG                (UART1)

也就是log信息改成从UART1输出,波特率为921600,又一次编译烧写preloader之后。preloader的信息得到了。输出信息的最后发现了问题,问题例如以下:

[EMI] no flash ID match, no DRAM info match ! mt_emi.c:line 1048 0PL fatal error...PL delay for Long Press Rebootpl pmic powerkey Release[PLFM] emergency download mode(timeout: 5s).mtk_arch_reset at pre-loader!

哦。preloader是进入了的,也就是说并非之前想象的停留在mtk rom其中。还是跳转到了preloader中,仅仅是flash没有匹配正确,造成preloader不断重新启动,再又一次配置好flash之后,系统启动起来了。

这里也有一点疑问。假设说flash都配置不对的话,那么烧写也应该是不能成功的,难道preloader运行下载模式时不检測flash ID?

2、[FAQ08871]更换新(eMCP)emmc之后无法开机

[DESCRIPTION]

当更换一款新的emmc之后,尤其是更换的这款emmc容量较大。比如16G等等。会发现无法开机。

查看kernel log会有例如以下类似的错误信息:

[MSDC] msdc0 -> Address offset in USER REGION(Capacity 15032 MB) is 0xffffd000 <- msdc_cal_offset br style='font-size:14px;font-style:normal;font-weight:normal;font-family:Tahoma;color:rgb(51, 51, 51);' />L<2937> PID<0x40>

[MSDC] msdc0 ->  XXX Address offset error(-12288),please check MBR start address!! <- msdc_cal_offset br style='font-size:14px;font-style:normal;font-weight:normal;font-family:Tahoma;color:rgb(51, 51, 51);' />L<2939> PID<0x40>

[SOLUTION]

比如更换H9TP17ABLDMCNR_KGM_MMD2之后出现故障。

1、先去alps/mediatek/build/tools/emigen/MT65XX/MemoryDeviceList_MT65XX.xls里面的emmc_region页中寻找

H9TP17ABLDMCNR_KGM_MMD2所相应的BOOT1+BOOT2+RPMB的size总和(比如4096+4096+4096 = 12288)。

2、假设在emmc_region中找不到H9TP17ABLDMCNR_KGM_MMD2,可是能够找到H9TP17ABLDMCNR_KGM。则须要

H9TP17ABLDMCNR_KGM这行新拷贝到新的行,并将新复制出来的那行第一列名字改动为H9TP17ABLDMCNR_KGM_MMD2

3、打开alps/mediatek/config/project_name/mbr_addr.pl,查看$MBR_Start_Address_KB的值(比如6144)。假设

$MBR_Start_Address_KB < BOOT1 BOOTRPMBsize MBR_Start_Address_KB ="

BOOT1+BOOT2+RPMB的size总和($MBR_Start_Address_KB = 12288)

4、改动之后又一次build new

AOSP5.0换8G eMMC不能开机问题的更多相关文章

  1. Centos Cacti 0.8.8g

    一.Cacti简介1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因 ...

  2. [RK3288][Android6.0] 调试笔记 --- 系统第一次开机进入Recovery模式原因【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/53464461 latform: ROCKCHIPOS: Android 6.0Kernel: ...

  3. VSphere服务器ESXI4.1.0设置虚拟主机来电开机自启动

    vSphere服务器ESXI设置虚拟主机来电自启动 首先查看我自己VMware vSphere版本为4.1.0(需要在虚拟主机电源为关闭状态下编辑) 然后双击主机,点击配置---虚拟机启动/关机 点击 ...

  4. Android 4.0及以上版本接收开机广播BOOT_COMPLETED、开机自启动服务

    1.BootCompletedReceiver.Java文件 public class BootCompletedReceiver extends BroadcastReceiver { @Overr ...

  5. [RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/77318410 Platform: Rockchip OS: Android 6.0 Kern ...

  6. 【Android】Android 4.0 无法接收开机广播的问题

    [Android]Android 4.0 无法接收开机广播的问题   前面的文章 Android 开机广播的使用 中 已经提到Android的开机启动,但是在Android 4.0 有时可以接收到开机 ...

  7. centos6.8下LNMP (nginx1.8.0+php5.6.10+mysql5.6.12) - 部署手册

    在平时运维工作中,经常需要用到LNMP应用框架.以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库[root@opd ~]#yum install -y make ...

  8. 碎碎念android eMMC【转】

    本文转载自:https://blog.csdn.net/Fybon/article/details/44242549 一./dev/blockroot@:/dev/block #ls bootdevi ...

  9. Grafana3.0.1+Zabbix3.0.4监控系统平台搭建

    前言 本文的Zabbix部分知识只介绍它的基础安装,Zabbix的使用以及配置优化并不在本文的介绍范围之内. 本文只介绍在CentOS6系列下的安装和部署,其他发行版与其他版本号暂不涉及 本文默认使用 ...

随机推荐

  1. java Web笔记

    Get:标记在地址栏中 放在请求行中显示get?Username=...Password=... Post:使用的是二进制的上传下载 请求行不显示信息 数据传输量大数据隐蔽对文本没有 pst不能再浏览 ...

  2. Nutch的发展历程(转)

    2002年8月由Doug Cutting发起,托管于Sourceforge,之后发布了0.4.0.5.0.6三个版本 2004年9月Oregon State University(俄勒冈州立大学)采用 ...

  3. O2O研究系列——O2O知识思维导图整理

    本篇文章对O2O电子商务模式的常规知识点,使用思维导图的方式整理,表达的形式是名词纲领性的方式, 不会在图中详细说明各个点. 通过这个图研究O2O模式时,可以系统的对各个业务点进行更深入的研究,避免有 ...

  4. Oracle查询及删除重复数据

    1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 ) 2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录 ) ); 3.查找表中多余的重复记录 ...

  5. 中小型研发团队架构实践:Redis快速入门及应用

    Redis的使用难吗?不难,Redis用好容易吗?不容易.Redis的使用虽然不难,但与业务结合的应用场景特别多.特别紧,用好并不容易.我们希望通过一篇文章及Demo,即可轻松.快速入门并学会应用. ...

  6. 使用struct与使用class初始化对象效率对比

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  7. android Volley 上传文件上传图片

    Volley不解释了吧, android 官方的一个网络请求库. 源码的地址在: git@github.com:com314159/VolleyMultiPartRequest.git 上面的是ssh ...

  8. app产品设计碉堡了

    这个项目碉堡了 http://blog.csdn.net/googdev/article/details/54849715 2017-02-03 22:15 3898人阅读 评论(12) 收藏 举报 ...

  9. 利用putty的pscp命令上传文件

    1.有的时候,本地下载源码包的速度快过vps(主要指国内),那么可以用迅雷下载后上传到vps. 2.为了这么点事情,专门安装一个ftp软件,太麻烦,于是想到了putty贴心的pscp小程序. 3.首先 ...

  10. 推荐一个不错的plist拆解工具,untp

    需要安装python以及pip 中文说明 A command line tool to split TexturePacker published files. install pip install ...