emmc的上电流程、上电稳定性 .

power on流程:

<4>[    0.688753] (2)[5:kworker/u:0][<c0581df0>] (dump_stack+0x0/0x1c) from [<c03f48b0>] (msdc_emmc_power+0x98/0x160)
<4>[    0.688789] (2)[5:kworker/u:0][<c03f4818>] (msdc_emmc_power+0x0/0x160) from [<c03e92a0>] (msdc_set_power_mode+0xdc/0x210)
<4>[    0.688836] (2)[5:kworker/u:0][<c03e91c4>] (msdc_set_power_mode+0x0/0x210) from [<c03f4c78>] (msdc_ops_set_ios+0x88/0xb8c)
<4>[    0.688895] (2)[5:kworker/u:0][<c03f4bf0>] (msdc_ops_set_ios+0x0/0xb8c) from [<c02df3c0>] (mmc_power_up+0x74/0xa8)
<4>[    0.688940] (2)[5:kworker/u:0][<c02df34c>] (mmc_power_up+0x0/0xa8) from [<c02e057c>] (mmc_rescan+0x234/0x2f4)
<4>[    0.689020] (2)[5:kworker/u:0][<c02e0348>] (mmc_rescan+0x0/0x2f4) from [<c005ee10>] (process_one_work+0x11c/0x3a4)


/mmc/core/core.c  仔细查看power up过程中总共delay 30ms ,delay的时间是怎么确定的呢?

static void mmc_power_up(struct mmc_host *host)
{
int bit;


mmc_host_clk_hold(host);
/* If ocr is set, we use it */
if (host->ocr)
bit = ffs(host->ocr) - 1;
else
bit = fls(host->ocr_avail) - 1;
host->ios.vdd = bit;
if (mmc_host_is_spi(host))
host->ios.chip_select = MMC_CS_HIGH;
else
host->ios.chip_select = MMC_CS_DONTCARE;
host->ios.bus_mode = MMC_BUSMODE_PUSHPULL;
host->ios.power_mode = MMC_POWER_UP;
host->ios.bus_width = MMC_BUS_WIDTH_1;
host->ios.timing = MMC_TIMING_LEGACY;
mmc_set_ios(host);    // emmc driver 上电,mtk添加delay 10ms
/*
* This delay should be sufficient to allow the power supply
* to reach the minimum voltage.
*/
mmc_delay(10);    //delay 10ms
host->ios.clock = host->f_init;
host->ios.power_mode = MMC_POWER_ON;
mmc_set_ios(host);
/*
* This delay must be at least 74 clock sizes, or 1 ms, or the
* time required to reach a stable voltage.
*/
mmc_delay(10);   //delay 10ms


mmc_host_clk_release(host);
}


mtk emmc resume流程:

<4>[   38.631520] 1)[<c03f4818>] (msdc_emmc_power+0x0/0x160) from [<c03eceac>] (msdc_pm+0x3f0/0x6b4)
<4>[   38.631549] 1)[<c03ecabc>] (msdc_pm+0x0/0x6b4) from [<c03ed1c0>] (msdc_drv_resume+0x50/0x74)
<4>[   38.631582] 1)[<c03ed170>] (msdc_drv_resume+0x0/0x74) from [<c023fba8>] (platform_pm_resume+0x34/0x58)
<4>[   38.631602] 1)[<c023fb74>] (platform_pm_resume+0x0/0x58) from [<c0243d34>] (dpm_run_callback.isra.13+0x34/0x6c)
<4>[   38.631656] 1)[<c0244278>] (device_resume+0x0/0x404) from [<c0244c54>] (dpm_resume+0x104/0x21c)

标准emmc resume流程应该是emmc driver resume 调用emmc core driver 的resume函数:mmc_resume_bus 。

不知道mtk为什么要这么搞


mmc_delay(10);


 

http://blog.csdn.net/fybon/article/details/17223879

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SOC (System on Chip)是一种集成了多个功能模块的芯片,包括处理器、内存、存储、通信等。EMMC (Embedded Multi-Media Card)是一种嵌入式多媒体卡,主要用于手机、平板和其他嵌入式设备的存储。而DDR3 (Double Data Rate 3)是一种内存技术标准,提供高速的数据传输效率。下面是关于SOC、EMMC和DDR3业务流程的说明: 首先,SOC的设计和开发。SOC是根据客户的需求进行设计和定制的。设计团队会根据客户的要求确定所需的功能模块,如处理器类型、内存容量等。然后,团队会使用专业的设计工具来实现路布局、逻辑设计和系统级仿真等步骤。最后,设计团队会完成SOC原理图和物理布局,并进行验证和测试。 接下来,EMMC的集成和测试。EMMC是SOC的一个重要组成部分,用于存储应用程序、数据和多媒体内容。在SOC设计完成后,EMMC模块会被集成到SOC芯片上。然后,芯片会进行各种测试和验证,以确保EMMC的性能和稳定性。这些测试包括读写速度测试、数据完整性测试等。 最后,DDR3的集成和测试。DDR3是SOC的主要内存模块,用于暂时存储和读取数据。在SOC集成完成后,DDR3模块会与SOC芯片连接并进行性能和时序测试。这些测试步骤可以确保DDR3在高速数据传输中的稳定性和可靠性。 总结来说,SOC、EMMC和DDR3业务流程包括SOC的设计和开发、EMMC的集成和测试,以及DDR3的集成和测试。这些步骤是为了确保最终产生的芯片具有高性能、高稳定性和高可靠性。 ### 回答2: SOC是指系统片上集成路,EMMC是嵌入式多媒体卡,DDR3是一种类型的动态随机存取存储器。SOC EMMC DDR3业务流程说明如下: 首先,SOC是一种集成多种功能的芯片,其中包括处理器、存储器、外设控制器等。在SOC设计的过程中,需要根据具体的应用需求来确定芯片功能和架构。设计人员会进行各种仿真和验证工作,确保SOC能够正常运行并满足性能要求。 接下来是EMMC业务流程EMMC是一种嵌入式存储卡,通常用于移动设备和嵌入式系统中。EMMC提供了高速、可靠的存储解决方案,具有较大的存储容量。EMMC的业务流程包括制造、测试、烧录和集成。 首先是制造环节。EMMC的制造包括组装和焊接芯片、封装等工序,以及对EMMC进行质量控制和测试。制造过程中需要严格控制细节,确保EMMC的质量和性能符合规格要求。 然后是测试环节。EMMC在制造完成后,需要进行各种测试来验证其功能和可靠性。测试包括读写测试、气测试、容量测试等,以确保EMMC的正常工作和可靠性。 接下来是烧录环节。在烧录过程中,将预先设计好的软件、系统或数据存储到EMMC中。这个过程要求确保数据的准确性和完整性,以及烧录的成功率。 最后是集成环节。EMMC被集成到SOC中,与其他组件相连接并进行测试和验证。集成的过程通常需要进行硬件和软件的协调工作,以确保整个系统的正常运行和兼容性。 综上所述,SOC EMMC DDR3业务流程涉及到SOC设计、EMMC制造、测试、烧录和集成等多个环节,每个环节都要经过严格的验证和控制,以确保整个系统的可靠性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值