0

arm imx28 系统有问题,我有 linux 内核 5.10.50,我有 u-boot 和以下 boot.scr

setenv mtdparts "mtdparts="gpmi-nand:3m(bootloader)ro,512k(environment),512k(redundant-environment),8m(kernel),512k(fdt),8m(ramdisk),120m(filesystem),-(data)"";
setenv nandargs "setenv bootargs console=${console_mainline},${baudrate} rootfstype=ubifs ubi.mtd=6 root=ubi0_0 ${mtdparts}";
setenv mmcroot "/dev/mmcblk0p3";
setenv nandboot "mtdparts default; run nandargs; nand read ${loadaddr} kernel 0x00600000; if test ${boot_fdt} = yes; then nand read ${fdt_addr} fdt 0x00080000; bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = no; then bootz; else echo \"ERROR: Set boot_fdt to yes or no.\"; fi; fi";
setenv nandinstall "nand device 0; nand erase.part environment; nand erase.part redundant-environment; run update_nand_firmware_full; run update_nand_fdt; run update_nand_kernel; run update_nand_filesystem;
setenv -f bootcmd run nandboot; saveenv";
run nandinstall; run nandboot

当内核启动时,我看到以下几行:

8 cmdlinepart partitions found on MTD device gpmi-nand
Creating 8 MTD partitions on "gpmi-nand":
0x000000000000-0x000000300000 : "bootloader"
0x000000300000-0x000000380000 : "environment"
 0x000000380000-0x000000400000 : "redundant-environment"
0x000000400000-0x000000c00000 : "kernel"
0x000000c00000-0x000000c80000 : "fdt"
0x000000c80000-0x000001480000 : "ramdisk"
0x000001480000-0x000008c80000 : "filesystem"
0x000008c80000-0x000010000000 : "data"

即内核正确解释引导参数

但稍后我看到以下几行无休止地重复:

ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry

依此类推4次及以上

CPU: 0 PID: 1 Comm: swapper Not tainted 5.10.50
Hardware name: Freescale MXS (Device Tree)
[<c0010084>] (unwind_backtrace) from [<c000dea4>] (show_stack+0x10/0x14)
 [<c000dea4>] (show_stack) from [<c03ce4fc>] (ubi_io_read+0x110/0x2f0)
[<c03ce4fc>] (ubi_io_read) from [<c03ce900>] (ubi_io_read_ec_hdr+0x44/0x244)

等等。我在 linux 内核 4.14.67 上观察到同样的情况。我得出结论,该错误与内核无关,而是与 u-boot 相关。

请告诉我我需要从哪个方向寻找错误原因,如果没有足够的信息,那么写什么添加。谢谢你。

4

1 回答 1

0

我发现解决方案需要在 uboot-2017.11/include/configs/mx28evk.h 文件中添加一行

#define CONFIG_SYS_NAND_ONFI_DETECTION
于 2021-08-11T11:43:42.820 回答