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.

[参考译文] Linux/TCI6638K2K:面临刷写 UBI 的问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/659765/linux-tci6638k2k-facing-issue-with-flashing-ubi

器件型号:TCI6638K2K

工具/软件:Linux

您好!

设置详细信息:

SDK:TI-processor-sdk-linux-k2hk evm-02.00.02.11.

平台:XTCIEVMK2X

使用的图像:

ubi:tisdk-server-rootfs-image-k2hk-evm.ubi

U-boot:U-boot-spi-k2hk-evm.gph


我们尝试从 U-Boot 将预编译 ubi 映像闪存到 XTCIEVMK2X 平台、但我们遇到了以下问题:

U-Boot SPL 2015.07 (2016年4月5日- 20:26:28)


U-Boot 2015.07 (2016年4月5日- 20:26:28 -0400)

CPU:66AK2Hx SR1.1
I2C:  就绪
DRAM: DDR3A 速度将配置为1333操作。
检测到 SO-DIMM [SQR-SD3T-2G1333SED]
DDR3速度1333
DRAM:2 GiB (包括以下报告)
2GiB
NAND: 512 MiB
NET:  找不到 PHY 2
未找到 PHY 3
K2HK_EMAC、K2HK_EMAC1
错误:K2HK_EMAC1地址未设置。
K2HK_EMAC2
错误:K2HK_EMAC2地址未设置。
K2HK_EMAC3
错误:K2HK_EMAC3地址未设置。

按任意键停止自动引导: 0
ubi:将 mtd1连接到 ubi0
ubi:扫描完成
ubi:卷0 ("rootfs")将大小从3129调整为4000 LEB
ubi:将 mtd1 (名称"MTD=2"、大小为510 mib)连接到 ubi0
ubi:PEB 大小:131072字节(128 KiB)、LEB 大小:126976字节
ubi:最小值/最大值 I/O 单元大小:2048/248、子页大小2048
ubi:VID 标头偏移:2048 (对齐2048)、数据偏移:4096
ubi:良好 PEB:4080、不良 PEB:4、损坏 PEB:0
ubi:用户卷:1,内部卷:1,最大 卷数:128
ubi:最大/平均擦除计数器:1/0、WL 阈值:4096、图像序列号:1237718748
ubi:可用 PEB:0、总保留 PEB:4080、为不良 PEB 处理保留的 PEB:76
在卷'boot' errno=-22上读取超级块时出错!
ubifsmount -安装 UBIFS 卷

用法:
卸载
   -装载"卷名"卷
UBIFS 未安装,请先使用 ubifs 挂载来安装卷!
ubifsload -从 UBIFS 文件系统加载文件

用法:
子负载 [字节]
   -将文件'filename'加载到地址'addr'

是否有人可以帮助我解决此问题?

提前感谢。

此致、

亚斯哈凡特

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

    刷写 ubi 映像之前或之后是否捕获了开机自检中的 u-boot 日志? 如果是刷写后尝试使用映像进行引导、您如何刷写映像、如果是从 u-boot 提示符处、您能否显示用于刷写 ubi 映像的命令? 闪存之前的 u-boot 版本是什么? 您列出了2个图像、您是否同时刷写这两个图像、或者您对它们执行了什么操作? 使用 ProcSDK 2.0.2.11而不是最新版本4.2.0.9的任何原因是什么? 很抱歉、对于所有这些问题、我只想看看我在流程中是否遇到任何问题。

    我的系统上没有安装2.0.2、您能否检查 ubi 的大小并确保它适合 NAND。 我不确定从哪个版本发布以来,tisdk-server-rootfs ubi 文件大小变得太大,不适合 NAND。 如果是这种情况、您可能需要尝试使用基于 Arago 的 ubi 映像。

    如果您真的想使用 tisdk-server-rootfs 进行开发,NFS 装载的文件系统是否适合您?

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

    尊敬的 Rex:

    SDK:ProSDK 4.2.0.9

    UBoot:U-Boot 2017.01-g340fb36f04

    我能够刷写 ProcSDK 4.2.0.9的预编译 UBI 映像、但在刷写新创建的 UBI 文件时遇到问题。

    ubi create 命令:

    /mkfs.ubifs -r tisdk-server-rootfs-image-k2hk-evm/-o tisdk-k2hk-evm.ubifs -f -m 2048 -e 126976 -c 3969

    VIM ubinize.cfg

    [ubifs_rootfs_volume]
    mode=ubi
    image=tisdk-k2hk-evm.ubifs
    VOL_id=0
    VOL_SIZE = 497MiB
    VOL_TYPE=动态
    VOL_NAME=rootfs
    VOL_flags=自动大小

    /ubbinize -o tisdk-k2hk-evm.ubi -m 2048 -p 128KiB -s 2048 -O 2048 ubinize.cfg

    刷写 UBI 所遵循的过程:

    => env 默认-f -a
    ##重置为默认环境
    => setenv serverip 192.168.1.2
    => setenv ipaddr 192.168.1.1
    => setenv tftp_root /tftpboot/sdk_4.02
    => nand ERASE.part ubifs


    NAND 擦除.part:器件0偏移量0x180000、大小0x1fe80000
    正在跳过 0x1ff80000处的坏块                                          
    正在跳过 0x1ffa0000处的错误块                                          
    正在跳过 0x1ffc0000处的错误块                                          
    正在跳过 0x1ffe0000处的错误块                                          

    好的


    => tftp ${addr_ubi}${tftp_root}/tisdk-k2hk-evm.ubi

    Netcp@2000000等待 SGMII 自动协商完成。 完成
    使用 netcp@2000000器件
    来自服务器192.168.1.2的 TFTP;我们的 IP 地址为192.168.1.1
    文件名"/tftpboot/sdk_4.02 tisdk-k2hk-evm.ubi"
    加载地址:0x82000000
    正在加载:############################################################################
            ####################################################

            2.1 MIB/s
    完成
    传输的字节= 520617984 (1f080000十六进制)
    => n 并写入${addr_ubi}ubifs ${filesize}

    NAND 写入:器件0偏移量0x180000、大小0x1f080000
     520617984字节写入:好的

    引导时从 u-boot 控制台刷写新创建的 ubi 后出现以下错误。

    =>引导
    ubi0:分离 mtd1
    ubi0:mtd1已断开
    ubi0:连接 mtd1
    ubi0:扫描完成
    ubi0:附加的 mtd1 (名称"MTD=2"、大小510 MIB)
    ubi0:PEB 大小:131072字节(128 KiB)、LEB 大小:126976字节
    ubi0:最小值/最大值 I/O 单元大小:2048/248、子页大小2048
    ubi0:VID 标头偏移:2048 (对齐2048)、数据偏移:4096
    ubi0:良好 PEB:4080、不良 PEB:4、损坏 PEB:0
    ubi0:用户卷:0,内部卷:1,最大 卷数:128
    ubi0:最大/平均擦除计数器:1/1、WL 阈值:4096、图像序列编号:0
    ubi0:可用 PEB:4000、总保留 PEB:80、为不良 PEB 处理保留的 PEB:76
    读取卷'ubi:rootfs' errno=-19上的超级块时出错!
    ubifsmount -安装 UBIFS 卷

    用法:
    卸载
       -装载"卷名"卷
    UBIFS 未安装,请先使用 ubifs 挂载来安装卷!
    ubifsload -从 UBIFS 文件系统加载文件

    用法:
    子负载 [字节]
       -将文件'filename'加载到地址'addr'
    UBIFS 未安装,请先使用 ubifs 挂载来安装卷!
    ubifsload -从 UBIFS 文件系统加载文件

    用法:
    子负载 [字节]
       -将文件'filename'加载到地址'addr'
    UBIFS 未安装,请先使用 ubifs 挂载来安装卷!
    ubifsload -从 UBIFS 文件系统加载文件

    用法:
    子负载 [字节]
       -将文件'filename'加载到地址'addr'
    UBIFS 未安装,请先使用 ubifs 挂载来安装卷!
    ubifsload -从 UBIFS 文件系统加载文件

    用法:
    子负载 [字节]
       -将文件'filename'加载到地址'addr'

    图像尺寸:

    tisdk-k2hk-evm.ubi - 497 MB ->新建映像(引导时失败)

    tisdk-server-rootfs-image-k2hk-evm.ubi - 497 MB ->预编译 UBI 映像(刷写成功后可以完全启动)

    NAND 大小- 512 MB

    => mtdparts

    器件 nand0 ,#部件= 3.
     #:名称               大小           偏移         MASK_FLAGS
     0:引导加载程序         0x00100000     0x00000000     1.
     1:参数             0x00080000     0x00100000     1.
     2:ubifs              0x1fe80000     0x00180000     0

    活动分区:nand0、0 -(引导加载程序) 0x00100000 @ 0x00000000

    默认值:
    mtdds :nand0=Davinci_nand.0
    mtdparts:mtdparts=Davinci_nand.0:1024k (引导加载程序) ro、512K (params) ro、-(ubifs)

    您能不能告诉我、我在执行该程序时是否有任何问题?


    提前感谢。

    此致、

    亚斯哈凡特

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

    好的。 如果预编译的 ubi 映像正常工作、则问题是 ubi 文件创建。 让我来看看。

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

    我能够将映像二进制并从 ubi 引导。

    2218 mkfs.ubifs -r tisdk -o k2hk.ubifs -F -m 2048 -e 126976 -c 3970
    2229 ubbinize -o k2hk.ubi -m 2048 -p 128KiB -s 2048 -O 2048 ubinize.cfg

    我使用的是"-c 3970"而不是"-c 3969"、因为当我像在 Yocto Build 中一样使用"-c 3900"时、系统会给出建议。

    我的 ubinize.cfg 是

    [子项]
    mode=ubi
    image=k2hk.ubifs
    VOL_id=0
    VOL_TYPE=动态
    VOL_NAME=rootfs
    VOL_flags=自动大小

    UDB-station:~/tftpboot/psdk4209-k2h ll *。ubi
    lrwxrwxrwx 1 xxxxxxxx cleartnp 2月8日9 15:13 k2hk evm-ubifs.ubi -> k2hk ubi
    rw-r--r-- 1 xxxxxxxx cleartnp 520617984二月9 16:16 k2hk ubi


    引导日志:

    =>运行 get_ubi-net

    Netcp@2000000等待 SGMII 自动协商完成。 完成
    BOOTP 广播1
    BOOTP 广播2.
    BOOTP 广播3.
    DHCP 客户端绑定到地址158.218.109.236 (1065ms)
    使用 netcp@2000000器件
    来自服务器158.218.109.194的 TFTP;我们的 IP 地址为158.218.109.236
    文件名"psdk4209-K2H/k2hk EVM-ubifs.ubi"。
    加载地址:0x82000000
    正在加载:############################################################################
    ####################################################
    ####################################################
    2.1 MIB/s
    完成
    传输的字节= 520617984 (1f080000十六进制)
    =>运行 burn_ubi

    NAND 擦除.part:器件0偏移量0x180000、大小0x1fe80000
    正在跳过0x1ff80000处的坏块
    正在跳过0x1ffa0000处的错误块
    正在跳过0x1ffc0000处的错误块
    正在跳过0x1ffe0000处的错误块

    好的

    NAND 写入:器件0偏移量0x180000、大小0x1f080000
    520617984字节写入:好的
    => pri init_ubi
    init_ubi=run args_all args_ubi;ubi 零件子项;ubifsmount ubi:rootfs;
    => ubi 部件子部件
    ubi0:连接 mtd1
    ubi0:扫描完成
    ubi0:卷0 ("rootfs")的大小从3970调整为4000 LEB
    ubi0:附加的 mtd1 (名称"MTD=2"、大小510 MIB)
    ubi0:PEB 大小:131072字节(128 KiB)、LEB 大小:126976字节
    ubi0:最小值/最大值 I/O 单元大小:2048/248、子页大小2048
    ubi0:VID 标头偏移:2048 (对齐2048)、数据偏移:4096
    ubi0:良好 PEB:4080、不良 PEB:4、损坏 PEB:0
    ubi0:用户卷:1,内部卷:1,最大 卷数:128
    ubi0:最大/平均擦除计数器:1/0、WL 阈值:4096、图像序列号:444634120
    ubi0:可用 PEB:0、总保留 PEB:4080、为不良 PEB 处理保留的 PEB:76
    => ubifsmount ubi:rootfs
    => setenv 引导 ubi
    =>引导
    卸载 UBIFS 卷 rootfs!
    ubi0:分离 mtd1
    ubi0:mtd1已断开
    ubi0:连接 mtd1
    ubi0:扫描完成
    ubi0:附加的 mtd1 (名称"MTD=2"、大小510 MIB)
    ubi0:PEB 大小:131072字节(128 KiB)、LEB 大小:126976字节
    ubi0:最小值/最大值 I/O 单元大小:2048/248、子页大小2048
    ubi0:VID 标头偏移:2048 (对齐2048)、数据偏移:4096
    ubi0:良好 PEB:4080、不良 PEB:4、损坏 PEB:0
    ubi0:用户卷:1,内部卷:1,最大 卷数:128
    ubi0:最大/平均擦除计数器:1/0、WL 阈值:4096、图像序列号:444634120
    ubi0:可用 PEB:0、总保留 PEB:4080、为不良 PEB 处理保留的 PEB:76
    正在将文件'/boot/skern-k2hk.bin 加载到 addr 0x87000000...
    完成
    K2_BM_15.07-53-ge1f885a soc:k2hk built:09:52:35、2017年12月23日

    ##已安装显示器@ 0xc5f0000、freq [200000000]、状态207552512
    正在将文件'/boot/zImage 加载到 addr 0x82000000...
    完成
    正在将文件'/boot/k2-fw-initrd.cpio.gz 加载到 addr 0x88080000...
    完成
    正在将文件'/boot/keystone-k2hk-evm.dtb 加载到 addr 0x88000000...
    完成
    ###展开的设备树 blob、88000000
    使用0x88000000处的 FDT blob 进行引导
    正在将 Ramdisk 加载到8fff3000,结束8ff3a... 好的
    正在将设备树加载到8ffe5000,结束8fff2ba5... 好的

    正在启动内核...

    [0.000000]在物理 CPU 0x0上引导 Linux
    [0.000000] Linux 版本4.9.59-ga75d8e9305 (gtbldadm@ubuntu-16)(gcc 版本6.2.1 20161016 (Linaro GCC 6.2-2016.11))#1 SMP 优先于 EST 2017年12月23日10:05:30日星期六
    [0.000000] CPU:ARMv7处理器[412fc0f4]修订版4 (ARMv7)、CR=30c5387d
    [0.000000] CPU:可用的 div 指令:修补分部代码
    [0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、PIPT 指令高速缓存
    [0.000000]、共页:FDT:机器模型:德州仪器 Keystone 2 Kepler/Hawking EVM
    [0.000000]将物理地址空间切换为0x8000000
    [0.000000] EFI:从 FDT 获取 EFI 参数:
    [0.000000] EFI:未找到 UEFI。
    [0.000000]保留内存:创建了0x000000081f800000的 CMA 内存池,大小为8 MIB
    [ 0.000000]、共模:已初始化节点 DSP_common_CMA_pool@81f800000、兼容 ID shared-dma-pool
    [0.000000]保留存储器:已创建 DMA 存储器池、地址为0x0000000820000000、大小为256 mib
    [ 0.000000]、共模:已初始化节点 DSP_common_mpm_pool@820000000、兼容 ID shared-dma-pool

    尽管 ubi 文件的大小小于512MB、但我不确定是因为我有一些坏扇区、内核启动不会获得登录提示、而是获得"sh-3.2#"、如下所示。 这是我通常在图像不适合闪存时看到的症状。 一旦我将其更改为 Arago 图像、它就可以正常工作。 希望您的图像适合您。

    [39.858527] USB USB2:我们不知道该主机的 LPM 算法、因此禁用 LPM。
    [39.867194]集线器2-0:1.0:找到 USB 集线器
    [39.870978]集线器2-0:1.0:检测到1个端口
    [42.635007] netcp-1.0 2620110.netcp eth0:链路速率高达- 1Gbps/全速率-流控 Rx/TX
    [42.642962] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪

    SH-3.2#[279.130074] random:完成 crng 初始化

    SH-3.2#
    SH-3.2#
    SH-3.2#
    SH-3.2#

    如果这有助于解决您的问题、请单击"解决"按钮。

    雷克斯