This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:eMMC

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1048375/tda4vm-emmc

器件型号:TDA4VM

尊敬的专家:

  最近、当在我们自己的硬件上调试 EMMC 时、我遇到了一个问题、想咨询您。相同的映像文件可以在 SD 卡上正常启动、然后将程序刻录到 EMMC 中、然后切换到 EMMC (BOOT0)启动模式。 从 EMMC 启动时、有时它可以从 EMMC 启动、但大多数时间都无法从 EMMC 启动(请参阅串行端口打印日志、它不应运行到 uboot 阶段)。 使用相同的 EMMC 格式化方法、开发板上的 EMMC 没有问题、可以正常运行、但在我们自己的硬件板上有问题 错误信息如下:


U-Boot SPL 2021.01 (2021年10月14日- 16:40:12 +0800)
型号:德州仪器 K3 J721E SoC
校验板--hhw
多板检测
ep->header=0xadead12c
hw-config_EEPROM_BUS_ADDRES=0x00
hw-ret=0x01
EEPROM 在0x50处不可用、尝试在0x51处读取
在0x51读取板载 EEPROM 失败1.
电路板:J721EX-PM1-SOM 修订版 E2
SYSFW ABI:3.1 (固件版本0x0015 '21.5.0--v2021.05 (极好的 Llam')
多板检测
ep->header=0xadead12c
hw-config_EEPROM_BUS_ADDRES=0x00
hw-ret=0x01
EEPROM 在0x50处不可用、尝试在0x51处读取
在0x51读取板载 EEPROM 失败1.
LPDDR4_Prob--- 嗯
K3_LPDDR4_init:hw
k3_ddrss_init_freq---hhw
K3_LPDDR4_START--> 嗯
k3_LPDDR4_freq_update--hhhw
ddrss->ddrss_ctrl_MMR=0x114000
CTRLMMR_DDR4_FSP_CLKCHNG_REQ_OUTS=0x80
ddrss->DDR_FHS_cnt = 0xA
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 1、请求编号 = 0
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 0、请求编号 = 1
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 1、请求编号 = 2
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 0、请求编号 = 3
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 1、请求编号 = 4
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 2、请求编号 = 5
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 1、请求编号 = 6
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 2、请求编号 = 7
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 1、请求编号 = 8
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
K3_LPDDR4_freq_update:接收到的频率变化请求:请求类型= 2、请求编号 = 9
k3_LPDDR4_freq_update:ddrss->DDR_freq1 = 450000000
K3_LPDDR4_freq_update:ddrss->DDR_freq2 = 450000000
k3_LPDDR4_freq_update:ddrss->DDR_freq0 = 15000000
k3_LPDDR4_freq_update:ddrss->DDR_clk = 1103650356
writel (0x1):ddrss->ddrss_ctrl_MMR=0x114000
writel (0x0):ddrss->ddrss_ctrl_MMR=0x114000
SPL_board_init--HHW
Boot_FROM 器件---- 嗯
尝试从 MMC1引导
MMC_LOAD_IMAGE_RAW_Sector:MMC 块读取错误
**分区1在设备0**上无效
SPL_register_fat_device:fat 寄存器错误--1
SPL_LOAD_IMAGE_Fat:读取图像 tispl.bin 时出错、错误--1
SPL:未找到分区表
SPL:无法从所有引导设备引导
###错误###请重置电路板###

我们使用以下方法将映像文件从 SD 卡刻录到 EMMC:

采用了'eMMC (boot0)'的引导方法。 BOOT0分区使用"fatload"和"mc write"两种方法将引导文件从 SD 卡烧录到 EMMC。 根文件系统使用文件系统复制方法(错误不应到达 uboot 阶段)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否查看此链接 :https://e2e.ti.com/support/processors-group/processors/f/processors-forum/886980/faq-processor-sdk-dra8x-tda4x-boot-uboot-from-emmc/3282312#3282312

    按照定制板上的步骤操作、并告诉我这是否有帮助?

    -凯尔西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的回复  

      我的方法与您提供的链接中的方法相同。 我根据链接中的方法再次重复该过程、结果是相同的。 同样、我们可以每次从开发板上的 EMMC 成功启动、但我们将在自己的硬件板上失败。  

     我还有一个问题。 在我们自己的硬件板上,虽然我们大多数时间都无法从 eMMC 引导并报告上述错误,但为什么我们有时可以成功启动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您可以共享正在使用的 eMMC 器件吗? 还有 eMMC 部件的大小? 它是否与 TDA4开发板中的器件相同?

    -凯尔西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 

    我们的 EMMC 模型不同于开发板、其容量为8G、但开发板容量为16G。 最近、我发现通过降低 emmcc 的通信速率、系统可以从 EMMC 正常启动。 修改方法是在 u-boot-2021.01\arch\arm\dts\k3-j721e-main.dtsi 文件中将属性 max-frequency =< 50000000 >添加到 sdhci0中。

    u-boot-2021.01\arch\arm\dts\k3-j721e-main.dtsi

    main_sdhci0:sdhci@4f80000{

    + 最大频率=<50000000>;μ s

    重新编译后,我会将 tiboot3.bin tispl.bin u-boot.img 三个文件刻录 到 EMCC 中,并发现它可以正常从 EMMC 启动,而不会出现先前的错误报告 ,并引导至 u-boot 提示符,然后输入以下命令 :

    => mmcinfo

    器件:sdhci@4f80000
    制造商 ID:15.
    OEM:100
    姓名:8GUF4
    总线速度:50000000 //之前为200000000
    模式:HS200 (200MHz)
    Rd 块 Len:512
    MMC 版本5.1
    高容量:是
    容量:7.3 GiB
    总线宽度:8位
    擦除组大小:512 KiB
    HC WP 组大小:8 MiB
    用户容量:7.3 GiB WRREL
    引导容量:31.9 MIB ENH
    RPMB 容量:4 MIB 增强型
    引导区域0不受写保护
    引导区域1不受写保护

    因此,我有两个问题要与您确认:

    1)。我想知道我降低频率的方法是否正确、因为我还看到其他人已经从这个论坛修改了频率  

    2)。这样、在降低 EMMC 频率后、系统可以从 EMMC 正常启动。 将来,我们应该分析这个问题,使 EMMC 在正常频率下正常工作的方向  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    eMMC 器件是 Samsung KLM8G1GEUF 、8GB、 TDA4-EVM 是微型品牌。 MTFC16GAPALBH-AAT

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Keerty

    感谢您的帮助,我们的硬件工程师确认,我们使用的 EMMC 启动频率仅支持52M。 降低 EMMC 启动频率后、系统可以从 EMMC 正常启动。