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.

[参考译文] DM3730:内核5.10:MTD 分区装入、ubi 不能始终如一

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1503522/dm3730-kernel-5-10-mtd-partitions-mount-ubi-doesn-t-consistently

部件号:DM3730

工具/软件:

您好、

我升级了我们的 Linux 内核文件系统版本,一般来说它似乎运行良好,但有一个特别麻烦的问题,我一直无法弄清楚如何过去。

~4/5,主板将正确启动,但每隔一段时间,我会在我的 RFS 安装上得到一个超时。 在这种情况下、我仍然看到 MTD 分区看起来正常。


[ 8.37646464] nand:找到器件、制造商 ID:0x2C、芯片 ID:0xb3
[8.384735] nand:Micron MT29X
[8.390075] nand:1024 MIB、SLC、擦除大小:128 KiB、页面大小:2048、OOB 大小:64
[8.398345] OMAP2-n 和20000000.nand:使用预取轮询 xfer 模式
[ 8.405151] OMAP2-n 和20000000.nand:NAND:使用 OMAP_ECC_HAM1_CODE_HW
[8.413940]在 MTD 设备 OMAP2-nand.0上找到18个固定分区
[8.421630]在"OMP2-nand.0"上创建18个 MTD 分区:

[8.427368] 0x000000000000-A:"MLO"
[8.473144] A-B:"U-Boot"
[8.514190] B-C :"环境"
[8.553131] C-D :"内核1"

...

[8.708160] J-K :"文件系统1"

...



引导过程看起来完全相同、直至达到的目的


[ 11.992401] ubi0:连接 mtd8

其中我看到:

[ 12.112304] ubi0错误:ubi_io_is_bad:检查 PEB 149是否损坏时出现错误-110
[ 12.130645] ubi0错误:ubi_attach_MTD_dev:连接 mtd8失败、错误-110
[ 12.139129] UBI 错误:无法附加 mtd8



这是在"rootwait/rootdelay"选项出现之前发生的、因为我看到(我有 rootwait 和 rootdelay=1):

[ 12.219329]安装根设备前等待1秒...
[ 13.298339] VFS:无法打开根设备"ubi0:compu-tdi7-rootfs"或 unknown-block (0、0):错误-19
[ 13.308349]请附加一个正确的"root="引导选项;以下是可用的分区:
[13.317321] 0100 16384 ram0
[ 13.317352](驱动程序?)
[13.324310] 0101 16384 ram1.
[ 13.324340](驱动器?)
...
[13.346008] 1f00 512 mtdblock0
[ 13.346038](驱动器?)
[13.353210] 1f01 1792 mtdblock1.
[ 13.353271](驱动程序?)
[13.360473] 1f02 128 mtdblock2.
[ 13.360504](驱动器?)
...
[ 13.467224](驱动程序?)
[13.474395] 1f11 49152 mtdblock17
...



这似乎与我的内核有问题有关、因为当我回到旧的3.19内核时、我看不到发生这种情况。

ti-staging-Linux 5.10启用了这些相关的 defconfig:




CONFIG_MTD_NAND_CORE=y
CONFIG_MTD_ONENAND=y
CONFIG_MTD_ONENAND_VERIFY_WRITE_=y
CONFIG_MTD_ONENAND_OMAP2=y
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC=y
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_NAND_OMAP2=y



&GPMC{
NAND@0、0
兼容="ti、OMAP2-nand"
reg =<0 0 4>;
中断父级=<&GPMC>;
Interrupts =<0 irq_type_none>、/* fifevent */
<1 irq_type_none>;/* termcount */
linux、mtd-name="micron、mt29X"
NAND 总线宽度=<16>;
TI、nand-ecc-opt ="ham1"
GPMC、器件宽度=<2>;
GPMC、cs-on-ns =<0>;
GPMC、cs-rd-off-ns =<36>;
GPMC、CS-wr-off-ns =<36>;
GPMC、高通 ns =<6>;
GPMC、高级关断 ns =<24>;
GPMC、高级关断 ns =<36>;
GPMC、oe-on-ns =<6>;
GPMC、oe-off-ns =<48>;
GPMC、we-on-ns =<6>;
GPMC、we-off-ns =<30>;
GPMC、rd-cycle-ns =<72>;
GPMC、wr 周期 ns =<72>;
GPMC、access-ns =<54>;
GPMC、wr 访问-ns =<30>;

#address-cells =<1>;
#size-cells =<1>;
/* MTD 分区表*/
/*分区大小最小长度
*可以独立编程的是一个块。
*擦除是基于块的。
*对于该 NAND 闪存、该值等于128K */
分区@0
标签="MLO"
reg =<0 a>;
};
分区@1
标签="U-Boot"
reg = ;
};
分区@2
标签="环境"
reg =
};
分区@3
label ="内核1"
REG = ;
};
...
分区@7
label ="文件系统1"
REG = ;
};
分区@8
label ="文件系统2"
REG = ;
};
...
};
};


有没有什么东西会坚持你作为一个原因,为什么我们会定期不正确地安装? 如果没有其他的, 你能给出任何指示,以通过 重新启动而不是内核在下一步崩溃自动从这种情况恢复的最佳方法吗? 我将开始查看回退初始化选项... ubi 检查的超时是否会减少? 我在运行时也偶尔看到超时:(我认为-110是超时)
[ 132.486480] ubi3警告:ubi_io_read:错误-110从 PEB 151:0读取64个字节时、只读0个字节、重试
请注意,我看到其他 ubi 挂载在其他分区上也失败,然后我重新运行该命令并成功(无需重新引导)。 这是因为所有的故障都是超时造成的、所以闻起来像是时钟速度问题?
我查找了版本之间的时钟频率变化、没有看到任何变化、因此我将继续查看。
希望您能有任何想法!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我打算添加:我确实使用 ubifformat 闪存,它似乎不是*如何*它被刷新,因为内核向后兼容旧的 RFS,所以我可以测试相同的3.19 RFS,它从来没有这样做的3.19内核,并看到它偶尔发生在5.10内核。  

    也是为了添加命令行为: console=ttyO0115200n8 Root与其 RW rootdelay=1 ubi.MTd=8512 rootfstype=ubifs root=ubi0:compu-tdi7-rootfs doops.mtdddev=ape2.n 且 earlyprintk=ttyO0115niftfb=systemapt=nopt0 noft= unifieds.fb

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

    您好、Nicole

    DM3730现在是一款传统器件、我们可能无法为此提供太多指导

    https://www.ti.com/product/DM3730 (请参阅产品文件夹上的注释)

    将查看团队中是否有人可以提供一些建议。 如果您愿意直接与一些3P 合作、请告知我们、我们可以提出一些建议。  

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

    谢谢-我想我最终得到了它。  向该节点添加 rb-GPIOs 属性后、我没有看到任何超时。 我没有尽可能地跟踪所需的更改(如果以前发生了故障、或者实际上能够在没有中断的情况下处理超时)、但这似乎已经解决了问题。 如果您对未来的问题有任何建议、通常愿意与3P 合作解决未来的问题。 谢谢!

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

    很高兴听到 Nicole。  

    我建议和像 Baylibre、Bootlin、Mistral Inc 这样的3P 交谈