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.

[参考译文] AM3359:无法使用 flashcp 命令加载 dtb 文件

Guru**** 2439560 points
Other Parts Discussed in Thread: AM3359

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1542879/am3359-unable-to-load-dtb-file-using-flashcp-command

器件型号:AM3359


工具/软件:

中使用了基于 am3359 的定制硬件(对于 Linux、SDK 版本:4.19.59)。

下表概述了闪存分区的详细信息。

使用的闪存 分区编号 分区名称 大小 (MB) 大小 (KB)
或非 0 SPI_NOR.FPGA_img 15 0
1. SPI_NOR.TEST_PARAT 16 0
与非 2. MLO 0 128
3. U-Boot 1. 0
4. UBoot env 0 256
5. Uboot 冗余输入 0 256
6. 用户 dts 0 256
7. 用户内核 32 0
8. 用户 RootFS 96 0
9. 保留 8. 0
10. Golden DTS 0 256
11. Golden Kernel 32 0
12 Golden RootFS 84 0
13 测试分区 1. 0

当我对 zImage 和 rootFS 运行 flashcp 命令时、它将按预期运行。

此外、还会更新 FPGA BIN 文件、该文件位于 NOR 闪存中。

但是、当我尝试将 flashcp 用于 dtb 文件时、会出现以下错误。

root@RCU:~#
root@RCU:~# tftp -g 169.254.117.143 -r zImage
root@RCU:~# flashcp -v zImage /dev/mtd7
Erasing blocks: 130/130 (100%)
Writing data: 16516k/16516k (100%)
Verifying data: 16516k/16516k (100%)
root@RCU:~# tftp -g 169.254.117.143 -r my_am33xx.dtb
root@RCU:~# flashcp -v my_am33xx.dtb /dev/mtd6
Erasing blocks: 1/1 (100%)
Writing data: 35k/35k (100%)
While writing data to 0x001A0000-0x001DFFFF on /dev/mtd6: Invalid argument

注意: 一切正常运行。 我能够在 uboot 处刷写所有文件。 所有功能均按预期运行。 但是、flashcp 不用于 dtb 文件。

希望您能协助解决此问题。

谢谢您...

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

    尊敬的 Madhan:

    SDK 4.19 (6.3) 非常旧、不再支持此论坛。

    您可能需要获取 SDK6.3 中所用版本的 mtdutil 源代码并调试 flashcp 程序、以了解导致“Invalid argument“问题的原因。

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

    尊敬的 Bin:

    您能告诉我这个错误的原因吗?
    它适用于其他映像、但不适用于 DTB。
    分区大小在此上下文中是否有任何意义?

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

    尊敬的 Madhan:

    我不知道原因。 这就是为什么我要求您进行调试的原因。

    我没有使用 flashcp、我也不知道有其他人使用它。 通常、内核 zImage 和 dtb 文件存储在 Linux rootfs 中。 但你似乎将它们以原始格式存储在他们的专用分区中,我不知道任何其他人也做了类似的设计,所以我不知道是什么导致了错误在这种情况下。