Part Number:TDA4VM
hi,
我们使用了8.1的 linux+rtos SDk,想要优化开机时间。
无论是定制板还是evm板上,开机过程中在内核加载sdhci驱动时,中间会有很长两段较长的等待,如log。
[ 1.430224] mmc0: Command Queue Engine enabled
[ 1.438618] mmc0: new DDR MMC card at address 0001
[ 1.450390] mmcblk0: mmc0:0001 DG4032 29.1 GiB
[ 1.467513] mmcblk0boot0: mmc0:0001 DG4032 partition 1 4.00 MiB
[ 1.473549] mmcblk0boot1: mmc0:0001 DG4032 partition 2 4.00 MiB
[ 1.479584] mmcblk0rpmb: mmc0:0001 DG4032 partition 3 4.00 MiB, chardev (237:0)
[ 1.493692] mmcblk0: p1 p2 p3 p4 p5
[ 3.011698] mmc1: CQHCI version 5.10
[ 4.077407] mmc1: SDHCI controller on 4fb0000.mmc [4fb0000.mmc] using ADMA 64-bit
[ 4.085753] Waiting for root device PARTUUID=ea9d4087-02…
[ 4.141906] mmc1: new ultra high speed DDR50 SDHC card at address aaaa
[ 4.148802] mmcblk1: mmc1:aaaa SC16G 14.8 GiB
[ 4.159082] mmcblk1: p1 p2
[ 4.185135] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[ 4.193263] VFS: Mounted root (ext4 filesystem) on device 179:98.
[ 4.205618] devtmpfs: mounted
[ 4.209102] Freeing unused kernel memory: 1792K
[ 4.218536] Run /sbin/init as init process
1、在1.5s-3s期间的等待,目前不清楚原因,evm板上没有emmc,这段时间不长。只能判断出现在mmc0的初始化结束与mmc1的sdhci_am654_probe之前;
2、在3s-4s期间的等待,通过查看源码,已经定位。
源文件是:board-support/linux/drivers/mmc/host/sdhci.c 和 board-support/linux/drivers/mmc/host/sdhci_am654.c
函数调用关系是:sdhci_set_power -> sdhci_set_power_noreg -> sdhci_am654_write_b
函数 sdhci_am654_write_b 中在对寄存器写power on操作时,会检查是否上电并等待,这个过程大概会持续1s
想请问是否有办法在硬件或软件上缩短这两段时间,谢谢!
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛寻求帮助,链接如下,如有答复将尽快回复您。
e2e.ti.com/…/tda4vm-sdchi-initialization-delay-issue
,
Cherry Zhou:
Hi dear,目前英文论坛关于您的问题已有工程师跟进,请您持续关注,如您仍需其他技术支持,请随时联系我们。