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.

[参考译文] DRA750:Samsung eMMC (HS200)的文件系统已损坏

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1166079/dra750-the-file-system-of-samsung-emmc-hs200-is-broken

器件型号:DRA750

大家好、专家

SoC:DRA750

SDK 版本:3.2

内核版本:Linux-4.4.84

我们的客户在其基于 DRA750的系统中遇到 Samsung eMMC 问题。 下面的列表是我们的客户提供的详细信息。 感谢你的帮助!

====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

 

我们收到了异常产品、下面将分析错误状态。

 

  • 此问题的基本信息:

在桌面/调试环境中重现:无

在实际产品中重现:2%

重现情况:系统启动/或运行。

问题详细信息:文件系统无法引导,因为密钥文件(显示在下面)丢失或损坏。 但内核是引导的。

  • 我们产品的基本信息:

SDK 版本:3.2

内核版本:Linux-4.4.84

客户修改 MMC 驱动程序:无。

  • KLM8G1GEUF-B04P-EMMC-8GB-Ver5.1-3.3V-8 (称为 Samsung eMMC)的产品信息
    • 元段(闪存类型 SLC):
      • eMMC 框架
      • 映射选项卡:逻辑和物理地址的地址映射
      • (__LW_AT__用户无法访问这些段
    • 用户数据部分(闪存类型:MLC):我们将此部分用于内核/rootfs 存储。

 

  • MMC 控制器在 HS200模式下工作、但 I/O 电压为3.3V、与规格(嵌入式多媒体卡(e•MMC)电气标准(5.1) JESD84-B51的6.6.2.2节)相违背。

  • 我们已经使用 MMC 驱动程序进行了仔细检查、发现该驱动程序已通过寄存器0x13c 将模式切换到1.8V (地址偏移量0x13c 来自源代码、实际地址可能为0x3c。 寄存器名称是 AC12)位19 (从源搜索 AC12_V1V8_SIGEN)。 问题是、为什么电压不是1.8V?

 

  • /opt/user/dms 或/opt/user/lib/init 文件(/opt 随/dev/mmcblk0p2一起安装、并且库和程序在此处编程。) 损坏。 内核错误日志如下。

[   36.242869] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 1, block bitmap and bg descriptor inconsistent: 387 vs 390 free clusters

[   36.260867] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 2, block bitmap and bg descriptor inconsistent: 8189 vs 8192 free clusters

[   36.285184] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 3, block bitmap and bg descriptor inconsistent: 3776 vs 3779 free clusters

[   36.300090] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 4, block bitmap and bg descriptor inconsistent: 1459 vs 1462 free clusters

[   36.315835] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 5, block bitmap and bg descriptor inconsistent: 7752 vs 7755 free clusters

[   36.330445] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 6, block bitmap and bg descriptor inconsistent: 8189 vs 8192 free clusters

[   36.344824] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 7, block bitmap and bg descriptor inconsistent: 1565 vs 1568 free clusters

[   36.360756] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 8, block bitmap and bg descriptor inconsistent: 917 vs 920 free clusters

[   36.375191] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 9, block bitmap and bg descriptor inconsistent: 1786 vs 1789 free clusters

[   36.390123] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:758: group 10, block bitmap and bg descriptor inconsistent: 877 vs 880 free clusters

 

[   56.762658] virtio_rpmsg_bus virtio2: msg received with no recipient

[[LPCan] destroySystemCan

[libcan] Release inUsd pool: 3

[   56.802772] virtio_rpmsg_bus virtio2: msg received with no recipient

[libcan] destroy CAN channel:90200 type:Physics endpoint:Client at pool[3] DONE !!![   56.810417] EXT4-fs error (device mmcblk0p3): ext4_mb_generate_buddy:758: group 1,

[libcan] destroySystemCan DONE !!!

block bitmap and bg descriptor inconsistent: 14509 vs 14510 free clusters

[   56.836192] JBD2: Spotted dirty metadata buffer (dev = mmcblk0p3, blocknr = 0). There's a risk of filesystem corruption in case of system crash.

Requesting system rebootesses

[   58.718159] reboot: Restarting system

 

 

  • 我们尝试更新系统、内核严重错误显示如下:

 [  234.138843] Unable to handle kernel paging request at virtual address ffffffec

[  234.146104] pgd = ee195d80

[  234.148821] [ffffffec] *pgd=80000080007003, *pmd=affa6003, *pte=00000000

[  234.155578] Internal error: Oops: 207 [#1] PREEMPT SMP ARM

[  234.161085] Modules linked in:

[  234.164161] CPU: 0 PID: 1222 Comm: tar Not tainted 4.4.84+ #1

[  234.169929] Hardware name: Generic DRA74X (Flattened Device Tree)

[  234.176049] task: eee24980 ti: e8162000 task.ti: e8162000

[  234.181476] PC is at iommu_fault_handler+0x18/0x14c

[  234.186375] LR is at handle_irq_event_percpu+0xb4/0x160

[  234.191622] pc : [<c02a15ec>]    lr : [<c0072968>]    psr: a0030193

[  234.191622] sp : e8163b00  ip : e8163b40  fp : e8163b3c

[  234.203148] r10: c06c8b67  r9 : eee2ca80  r8 : 00000169

[  234.208394] r7 : 00000000  r6 : 00000000  r5 : ee5f9a10  r4 : ee61a980

[  234.214947] r3 : c02a15d4  r2 : c05b8cbc  r1 : ee5f9a10  r0 : 00000000

[  234.221501] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user

[  234.228752] Control: 30c5387d  Table: ae195d80  DAC: fffffffd

[  234.234520] Process tar (pid: 1222, stack limit = 0xe8162210)

[  234.240289] Stack: (0xe8163b00 to 0xe8164000)

[  234.244665] 3b00: eee74f00 ffffffff eee249c8 337f0133 00000400 e8163b20 ee61a980 eee2cae0

[  234.252877] 3b20: 00000000 00000000 00000169 eee2ca80 e8163b84 e8163b40 c0072968 c02a15e0

[  234.261088] 3b40: e7cd5680 c06863a4 e8163bc4 c05b8cd0 c05b8cbc c05b8c94 c0063778 eee2ca80

[  234.269300] 3b60: eee2cae0 c06b0ca4 00000000 eec08000 00000000 000006b4 e8163ba4 e8163b88

[  234.277511] 3b80: c0072a54 c00728c0 eee2ca80 eee2cae0 c06b0ca4 00000000 e8163bc4 e8163ba8

[  234.285723] 3ba0: c0075d98 c0072a20 c068640c 00000169 00000000 00000000 e8163bd4 e8163bc8

[  234.293935] 3bc0: c0071f94 c0075ce4 e8163bfc e8163bd8 c007226c c0071f74 c068c7d4 fa21200c

[  234.302146] 3be0: e8163c28 fa212000 fa213000 00000000 e8163c24 e8163c00 c0009490 c0072214

[  234.310357] 3c00: c0189e1c a0030013 ffffffff e8163c5c 000a794c 00000000 e8163c8c e8163c28

[  234.318569] 3c20: c0013cc0 c000945c eef42000 0000148b 00000001 eef41c00 eef41800 00000002

[  234.326781] 3c40: 00000001 0000148b 000a794c 00000000 000006b4 e8163c8c e8163c90 e8163c78

[  234.334993] 3c60: c0189f48 c0189e1c a0030013 ffffffff 00000001 00000000 eef41800 00000002

[  234.343205] 3c80: e8163cb4 e8163c90 c0189f48 c0189df4 00001000 00000000 e7e8c0b0 e7e8c0b0

[  234.351416] 3ca0: 000a794c 00000000 e8163cd4 e8163cb8 c016c75c c0189f30 00000000 00001000

[  234.359629] 3cc0: 00000007 e7e8c0b0 e8163cfc e8163cd8 c01228f8 c016c730 e7e8c0b0 efeeda80

[  234.367839] 3ce0: 000a794c 00000000 000a794c 00000000 e8163d3c e8163d00 c012b7e8 c01228cc

[  234.376051] 3d00: 000006b4 000006b4 efeeda80 00000000 00000000 e7e8c0b0 00000000 000006b4

[  234.384262] 3d20: e7e8c17c ee84d800 e57cca80 000006b4 e8163d94 e8163d40 c016b5f8 c012b714

[  234.392473] 3d40: 000006b4 000006b4 efeeda80 00000000 ffeff000 ffefe000 000a8000 00000000

[  234.400684] 3d60: 000a794c 00000000 c0225e3c c016b4f0 e8163ef4 e7e8c17c 000006b4 0000094c

[  234.408896] 3d80: c04c3c9c 000006b4 e8163df4 e8163d98 c00b7ec4 c016b4fc 000006b4 000006b4

[  234.417108] 3da0: efeeda80 00000000 00000000 e8162000 00000000 e57cca80 000a794c 00000000

[  234.425319] 3dc0: efeeda80 00000000 000000ea 00000000 e57cca80 e8163f08 e7e8c17c e8163ef4

[  234.433530] 3de0: e7e8c118 00000000 e8163e44 e8163df8 c00b9b38 c00b7dac e8163e34 e8163e08

[  234.441742] 3e00: 000000ea 07a7dd4c 00000001 ee849148 e8163e60 00000000 ee614198 00000000

[  234.449954] 3e20: e8163f08 e7e8c0b0 e8163ef4 e57cca80 e7e8c118 00001000 e8163edc e8163e48

[  234.458166] 3e40: c0161070 c00b99a0 e8163e84 e8163e58 c01161a4 c00fe50c 000000ea 07a7dd4c

[  234.466378] 3e60: 000000ea 07a7dd4c 00001000 ee62ee30 eeff7d00 00000000 e8163edc 00000000

[  234.474589] 3e80: c0103f10 c01160fc 00020002 eeff7d18 ea40a780 e8162000 e8163ef4 c04bf918

[  234.482801] 3ea0: 00000000 00000000 00000006 ee62ee00 00001000 e57cca80 00000000 00001000

[  234.491012] 3ec0: e8163f80 000a794c 00000000 00000000 e8163f4c e8163ee0 c00fc138 c0160e40

[  234.499223] 3ee0: 00001000 c006a8cc ea40a780 bee17998 00001000 00000001 00000000 00001000

[  234.507434] 3f00: e8163eec 00000001 e57cca80 00000000 000a794c 00000000 00000000 e8163e7c

[  234.515647] 3f20: 00000000 00000000 e57cca80 00001000 bee17998 e8163f80 c000fac4 e8162000

[  234.523859] 3f40: e8163f7c e8163f50 c00fc924 c00fc090 00000000 00000000 e8163f7c e57cca80

[  234.532071] 3f60: e57cca80 bee17998 00001000 c000fac4 e8163fa4 e8163f80 c00fd194 c00fc898

[  234.540283] 3f80: 000a794c 00000000 00000000 0000004a bee17998 00000004 00000000 e8163fa8

[  234.548494] 3fa0: c000f920 c00fd154 00000000 0000004a 0000004a bee17998 00001000 ffffffff

[  234.556705] 3fc0: 00000000 0000004a bee17998 00000004 000c8e34 00000000 ffffffff 00001000

[  234.564917] 3fe0: 00000000 bee1795c 0001bac7 b6e33556 60030030 0000004a 8152900b 38299c89

[  234.573124] Backtrace:

[  234.575592] [<c02a15d4>] (iommu_fault_handler) from [<c0072968>] (handle_irq_event_percpu+0xb4/0x160)

[  234.584848]  r9:eee2ca80 r8:00000169 r7:00000000 r6:00000000 r5:eee2cae0 r4:ee61a980

[  234.592666] [<c00728b4>] (handle_irq_event_percpu) from [<c0072a54>] (handle_irq_event+0x40/0x64)

[  234.601573]  r10:000006b4 r9:00000000 r8:eec08000 r7:00000000 r6:c06b0ca4 r5:eee2cae0

[  234.609474]  r4:eee2ca80

[  234.612026] [<c0072a14>] (handle_irq_event) from [<c0075d98>] (handle_fasteoi_irq+0xc0/0x194)

[  234.620584]  r7:00000000 r6:c06b0ca4 r5:eee2cae0 r4:eee2ca80

[  234.626304] [<c0075cd8>] (handle_fasteoi_irq) from [<c0071f94>] (generic_handle_irq+0x2c/0x3c)

[  234.634949]  r7:00000000 r6:00000000 r5:00000169 r4:c068640c

[  234.640666] [<c0071f68>] (generic_handle_irq) from [<c007226c>] (__handle_domain_irq+0x64/0xbc)

[  234.649405] [<c0072208>] (__handle_domain_irq) from [<c0009490>] (gic_handle_irq+0x40/0x7c)

[  234.657789]  r9:00000000 r8:fa213000 r7:fa212000 r6:e8163c28 r5:fa21200c r4:c068c7d4

[  234.665604] [<c0009450>] (gic_handle_irq) from [<c0013cc0>] (__irq_svc+0x40/0x74)

[  234.673117] Exception stack(0xe8163c28 to 0xe8163c70)

[  234.678189] 3c20:                   eef42000 0000148b 00000001 eef41c00 eef41800 00000002

[  234.686400] 3c40: 00000001 0000148b 000a794c 00000000 000006b4 e8163c8c e8163c90 e8163c78

[  234.694611] 3c60: c0189f48 c0189e1c a0030013 ffffffff

[  234.699679]  r9:00000000 r8:000a794c r7:e8163c5c r6:ffffffff r5:a0030013 r4:c0189e1c

[  234.707502] [<c0189de8>] (ext4_journal_check_start) from [<c0189f48>] (__ext4_journal_start_sb+0x24/0x84)

[  234.717106]  r5:00000002 r4:eef41800

[  234.720716] [<c0189f24>] (__ext4_journal_start_sb) from [<c016c75c>] (ext4_dirty_inode+0x38/0x68)

[  234.729622]  r7:00000000 r6:000a794c r5:e7e8c0b0 r4:e7e8c0b0

[  234.735341] [<c016c724>] (ext4_dirty_inode) from [<c01228f8>] (__mark_inode_dirty+0x38/0x244)

[  234.743898]  r5:e7e8c0b0 r4:00000007

[  234.747504] [<c01228c0>] (__mark_inode_dirty) from [<c012b7e8>] (generic_write_end+0xe0/0x14c)

[  234.756150]  r9:00000000 r8:000a794c r7:00000000 r6:000a794c r5:efeeda80 r4:e7e8c0b0

[  234.763967] [<c012b708>] (generic_write_end) from [<c016b5f8>] (ext4_da_write_end+0x108/0x27c)

[  234.772612]  r10:000006b4 r9:e57cca80 r8:ee84d800 r7:e7e8c17c r6:000006b4 r5:00000000

[  234.780512]  r4:e7e8c0b0

[  234.783068] [<c016b4f0>] (ext4_da_write_end) from [<c00b7ec4>] (generic_perform_write+0x124/0x1bc)

[  234.792061]  r10:000006b4 r9:c04c3c9c r8:0000094c r7:000006b4 r6:e7e8c17c r5:e8163ef4

[  234.799962]  r4:c016b4f0

[  234.802515] [<c00b7da0>] (generic_perform_write) from [<c00b9b38>] (__generic_file_write_iter+0x1a4/0x200)

[  234.812206]  r10:00000000 r9:e7e8c118 r8:e8163ef4 r7:e7e8c17c r6:e8163f08 r5:e57cca80

[  234.820105]  r4:00000000

[  234.822659] [<c00b9994>] (__generic_file_write_iter) from [<c0161070>] (ext4_file_write_iter+0x23c/0x4f0)

[  234.832262]  r10:00001000 r9:e7e8c118 r8:e57cca80 r7:e8163ef4 r6:e7e8c0b0 r5:e8163f08

[  234.840161]  r4:00000000

[  234.842716] [<c0160e34>] (ext4_file_write_iter) from [<c00fc138>] (__vfs_write+0xb4/0xe4)

[  234.850925]  r10:00000000 r9:00000000 r8:000a794c r7:e8163f80 r6:00001000 r5:00000000

[  234.858824]  r4:e57cca80

[  234.861376] [<c00fc084>] (__vfs_write) from [<c00fc924>] (vfs_write+0x98/0x174)

[  234.868713]  r9:e8162000 r8:c000fac4 r7:e8163f80 r6:bee17998 r5:00001000 r4:e57cca80

[  234.876528] [<c00fc88c>] (vfs_write) from [<c00fd194>] (SyS_write+0x4c/0xa8)

[  234.883604]  r8:c000fac4 r7:00001000 r6:bee17998 r5:e57cca80 r4:e57cca80

[  234.890375] [<c00fd148>] (SyS_write) from [<c000f920>] (ret_fast_syscall+0x0/0x34)

[  234.897974]  r7:00000004 r6:bee17998 r5:0000004a r4:00000000

[  234.903690] Code: e24cb004 e24dd018 e1a05001 e5910010 (e5103014)

[  234.909811] ---[ end trace bdbbaabf06960aa5 ]---

[  234.914445] Kernel panic - not syncing: Fatal exception in interrupt

[  234.920834] CPU1: stopping

[  234.923559] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D         4.4.84+ #1

[  234.930812] Hardware name: Generic DRA74X (Flattened Device Tree)

[  234.936928] Backtrace:

[  234.939402] [<c0012fcc>] (dump_backtrace) from [<c00131c8>] (show_stack+0x18/0x1c)

[  234.947002]  r7:eec99f48 r6:20080193 r5:00000000 r4:c06b0964

[  234.952728] [<c00131b0>] (show_stack) from [<c0215fe8>] (dump_stack+0x8c/0xa0)

[  234.959986] [<c0215f5c>] (dump_stack) from [<c00155c0>] (handle_IPI+0x184/0x198)

[  234.967411]  r7:eec99f48 r6:00000000 r5:00000001 r4:c068640c

[  234.973128] [<c001543c>] (handle_IPI) from [<c00094c8>] (gic_handle_irq+0x78/0x7c)

[  234.980727]  r7:fa212000 r6:eec99f48 r5:fa21200c r4:c068c7d4

[  234.986441] [<c0009450>] (gic_handle_irq) from [<c0013cc0>] (__irq_svc+0x40/0x74)

[  234.993955] Exception stack(0xeec99f48 to 0xeec99f90)

[  234.999027] 9f40:                   00000000 ef338388 fe600000 00000000 eec98000 c068c4ac

[  235.007241] 9f60: c0685364 c04b8fa4 eec99fb8 c06c8b65 c068c4f8 eec99fa4 eec99f84 eec99f98

[  235.015452] 9f80: c0026300 c0010440 60080013 ffffffff

[  235.020521]  r9:c06c8b65 r8:eec99fb8 r7:eec99f7c r6:ffffffff r5:60080013 r4:c0010440

[  235.028342] [<c0010418>] (arch_cpu_idle) from [<c0069678>] (default_idle_call+0x28/0x34)

[  235.036470] [<c0069650>] (default_idle_call) from [<c00697a8>] (cpu_startup_entry+0x124/0x190)

[  235.045121] [<c0069684>] (cpu_startup_entry) from [<c00151a8>] (secondary_start_kernel+0x16c/0x178)

[  235.054203]  r7:c06ca288

[  235.056754] [<c001503c>] (secondary_start_kernel) from [<8000956c>] (0x8000956c)

[  235.064178]  r7:c06ca288 r6:30c0387d r5:00000000 r4:aec47380

[  235.069897] ---[ end Kernel panic - not syncing: Fatal exception in interrupt

 

  • 针对软件部门提出的问题、硬件部门测量了 Samsung eMMC 和 Micron eMMC 的时钟和数据波形

 

  • Samsung eMMC 的时钟频率约为192MHz、并且 clk 和数据波形严重失真

 

  • Samsung eMMC 的时钟波形

  • Samsung eMMC 的数据波形

  • Samsung eMMC 的数据波形眼图

  • Micron eMMC 的时钟波形

  • Micron eMMC 的时钟波形眼图

  • Micron eMMC 的数据波形

  • Micron eMMC 的数据波形眼图

 

  • 在 Samsung eMMC 的数据表中、3V I/O 端口的最大速度为52MHz

  • DRA750的总线速度模式说明

  • HS200模式选择流程图

  • 软件设置的总线速度模式为 HS200模式、eMMC 将首先检测 Vccq 引脚的电平、以确定是否选择了 HS200模式。由于 I/O 端口使用3.3V 电平、因此无法满足 HS200模式的工作条件。但是、DRA750和 Samsung eMMC 的时钟速度会自动协商 到192MHz。

 

  1. 为什么在不满足运行条件时仍协商 HS200模式
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tony、

    不支持在运行时为 DRA750上的 eMMC 接口进行电压切换、因此电源电压需要为固定的3.3V 或1.8V。为了禁用 HS200模式(以及降低允许协商的最大频率、直到必要时)、 请修改器件 dts 文件并注释掉 mmc2部分下突出显示的声明:

    mmc2

       {status ="确定";

        最大频率=<192000000>;

        总线宽度=<8>;

        SD-UHS-SDDR25;

        SD-UHS-SDDR12;

        MMC-HS200-1_8v;

        MMC-DDR-1_8v;};  

    您能否提供之前使用的 Micron eMMC 的器件型号? Micron eMMC 在哪个速度模式下运行、并且与当前使用的所有硬件(IO 源电压为3.3V)和软件(相同的 DTS 文件)相同?

    此致、

    Marco

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

    大家好、Marco

    明白了! 会尝试的。

    您可以参考下面的另一个 TT 列表、获取有关硬件设计的更多详细信息

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1165953/dra750-the-samsung-hs200-emmc-doesn-t-work-well

    感谢你的帮助!

    此致

    Tony

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="530635" URL"~/support/processors-group/processors/f/processors-forum/1166079/dra750-the-file-system-of-samsung-emmc-hs200-is-broken/4387702 #4387702]\n 您是否还可以提供先前使用的 Micron eMMC 的器件型号? Micron eMMC 在哪个速度模式下运行、并且与当前使用的所有硬件(IO 源电压为3.3V)和软件(相同的 DTS 文件)相同?

    我们客户以前使用的 Micron eMMC 的 PN 是 MTFC4GMWDM-3M AIT A。它运行良好。 我认为 Micron eMMC 在 JC64标准 SDR 模式下工作、因为我们的客户告诉我频率为24MHz、信号电压为3.3V。 然后、他们将 Micron eMMC 替换为 Samsung eMMC (KLM8G1GEUF-B04P)。 但它们没有改变任何东西、无论是硬件还是软件。

    他们告诉我有关速度协商的详细信息。 对于 Micron eMMC、HS200模式第一次失败、 第二次成功使用标准 SDR 模式。  对于 Samsung eMMC、第一次成功使用 HS200模式。 但是、正如您所知、硬件平台中没有1.8V 电源、因此信号电压不能更改为1.8V。

    此致

    Tony