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.

[参考译文] J722SXH01EVM:无法从 OSPI NAND 中读取大小超过67MB 的文件

Guru**** 2482045 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1451813/j722sxh01evm-unable-to-read-a-file-of-size-more-than-67mb-from-the-ospi-nand

器件型号:J722SXH01EVM

工具与软件:

大家好、团队成员:

我目前使用的是 J722S 10.00 SDK。

我需要从 OSPI NAND 的 rootfs 分区读取大小为80MB 的文件。 执行相同的读取操作时、我观察到读取没有发生、并显示以下日志:

=> MTD 读取 spi-nand0 ${loadaddr}0x2000000 0x4C53EC0
大小不在页边界上(0x1000)、四舍五入为0x4c54000
在偏移量0x02000000处读取80035840字节(19540页)

我观察到,我只能在该分区中读取高达66MB 的文件。

虽然 rootfs 分区与95MB 一起提供,你能告诉我为什么我不能读取80MB 文件吗?

此致、

安·罗斯·安东尼

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

    嗨、团队:

    我还有一个观察结果、

    当我使用了9.02的 u-boot 二进制文件的修改支持 NAND 从 e2e 查询 ,我可以读取90MB 的文件本身如下所示:  

    => MTD 读取 spi-nand0 ${loadaddr}0x2000000 0x5938A00
    大小不在页边界(0x1000)、四舍五入为0x5939000
    读取偏移量0x02000000处的93556736个字节(22841页)
    =>

    您能否告诉我、从9.02 SDK 更改为10.00 SDK 可能会有什么问题?

    此致、

    安·罗斯·安东尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    => MTD 读取 spi-nand0 ${loadaddr}0x2000000 0x5938A00
    大小不在页边界(0x1000)、四舍五入为0x5939000
    读取偏移量0x02000000
    处的93556736字节(22841页)

    您是否使用10.0 SDK 尝试过上述大小?

    您使用精确命令时会遇到什么错误?

    此致、

    基尔西  

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

    Keerthy、您好!

    感谢您的答复。

    我使用了如下所示的相同命令和观察点。 除了点之外、我没有观察到任何误差。

    => MTD 读取 spi-nand0 ${loadaddr}0x2000000 0x4C53EC0
    大小不在页边界上(0x1000)、四舍五入为0x4c54000
    在偏移量0x02000000处读取80035840字节(19540页)

    此致、

    安·罗斯·安东尼

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

    您好!

    感谢您的观看。 我会在内部跟进并回复您。  

    -基尔西

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

    Keerthy、您好!

    是否有此问题的更新?

    此致、

    安·罗斯·安东尼

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

    您好!

    https://lore.kernel.org/u-boot/20241210135059.1043095-1-p-mantena@ti.com/

    您能尝试使用上述补丁吗?

    我尚未能够对其进行测试、但我收到内部团队的反馈、认为上述补丁应该会有所帮助。
    请尝试并告知我们。

    -基尔西

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

    Keerthy、您好!

    我已检查这些更改、但这似乎是内核级别的更改。  

    我在从 u-boot 本身读取 NAND 闪存内容时遇到问题。

    请您确认 u-boot 电平问题的任何更新。

    此致、

    安·罗斯·安东尼

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

    您好!

    board-support/ti-u-boot-2024.04+git

    drivers/dma/ti/k3-udma.c

    这是我分享的一个 U-Boot 补丁。

    -基尔西

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

    Keerthy、您好!

    我在 u-boot 中尝试了相同的补丁、下面是该补丁。 但可以观察到相同的问题。

    发出"MTD Read"命令时、我观察到相同的错误:

    此致、

    安·罗斯·安东尼

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

    好的。 我将在下周下半年对此进行探讨。 我会在这里呆几天的。
    如果我有反馈、我会在这里发布。

    感谢您的耐心等待、
    基尔西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我使用9.02的 u-boot 二进制文件并通过 e2e 查询修改支持 NAND 时 ,我可以读取如下所示的90MB 文件本身: 

    一个明显的区别是、在上面的 DMA 未启用、而是 CPU 复制并且在最新的 DMA 中启用。

    我们在内部重复了这个问题。 我们的开发团队正在努力解决该问题。 收到他们的反馈后、我会发布更新。

    此致、
    基尔西

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

    Keerthy、您好!

    感谢您的更新。 请随时关注我们。

    此致、

    安·罗斯·安东尼

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

    你好 Ann Rose Antony

    这是开发团队修复的问题:

    From 29df55f57ce51cb2001c735a0f9b4eb3bbc5e7e1 Mon Sep 17 00:00:00 2001
    From: Prasanth Babu Mantena <p-mantena@ti.com>
    Date: Fri, 27 Dec 2024 22:36:24 +0530
    Subject: [PATCH] arm: dts: k3-j722s: Fix ospinand phandle
    
    Fix the dereferencing of ospinand phandle of the parent
    device node.
    
    Fixes: 232696a8abe ("arm: dts: k3-j722s: Enable PHY for NAND")
    Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
    ---
     arch/arm/dts/k3-j722s-evm-u-boot.dtsi | 2 +-
     drivers/dma/ti/k3-udma.c              | 1 +
     2 files changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/arch/arm/dts/k3-j722s-evm-u-boot.dtsi b/arch/arm/dts/k3-j722s-evm-u-boot.dtsi
    index 2e81fbeabc9..b229d1bfe85 100644
    --- a/arch/arm/dts/k3-j722s-evm-u-boot.dtsi
    +++ b/arch/arm/dts/k3-j722s-evm-u-boot.dtsi
    @@ -68,7 +68,7 @@
     		cdns,phy-mode;
     	};
     
    -	ospi0_nand {
    +	nand@0 {
     		cdns,phy-mode;
     	};
     };

    进行上述修复。 I 已测试64MB 读取、它可以正常工作 .

    >64 MB 仍然失败、并出现相同的故障。 但是、如果64 MB 就足够了、请尝试以上操作。

    -基尔西

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

    大家好、keerthi、

    感谢您的更新。

    在上述补丁中、K3-udma.c 文件中存在更改、但该更改不可用。

    您能给我对 同一文件的更改吗?

    此致、

    安·罗斯·安东尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="604839" url="~/support/processors-group/processors/f/processors-forum/1451813/j722sxh01evm-unable-to-read-a-file-of-size-more-than-67mb-from-the-ospi-nand/5587914 #5587914"]

    在上述补丁中、K3-udma.c 文件中存在更改、但该更改不可用。

    您能给我对 同一文件的更改吗?

    [报价]

    这是多余的。 那么、您能单独尝试通过 DTS 更改吗?

    -基尔西

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

    尊敬的 Keerthi:

    我想读取一个88 MB 的文件。 我在读取67 MB 以上数据时遇到问题。

    此致、

    安·罗斯·安东尼

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

    您好!

    diff --git a/arch/arm/dts/k3-j722s-evm-u-boot.dtsi b/arch/arm/dts/k3-j722s-evm-u-boot.dtsi
    index 2e81fbea..b229d1bf 100644
    --- a/arch/arm/dts/k3-j722s-evm-u-boot.dtsi
    +++ b/arch/arm/dts/k3-j722s-evm-u-boot.dtsi
    @@ -68,7 +68,7 @@
                    cdns,phy-mode;
            };
     
    -       ospi0_nand {
    +       nand@0 {
                    cdns,phy-mode;
            };
     };
    

    diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
    index 893a2f50..7d21f931 100644
    --- a/drivers/dma/ti/k3-udma.c
    +++ b/drivers/dma/ti/k3-udma.c
    @@ -1802,6 +1802,7 @@ static int *udma_prep_dma_memcpy(struct udma_chan *uc, dma_addr_t dest,
                                     ARCH_DMA_MINALIGN));
     
            udma_push_to_ring(uc->tchan->t_ring, tr_desc);
    +       dma_free_coherent(tr_desc); // Free the descriptor
     
            return 0;
     }

    我能够成功执行:

    MTD 读取 spi-nand0 ${loadaddr}0x2000000 0x5938A00
    大小不在页边界(0x1000)、四舍五入为0x5939000
    读取偏移量0x02000000处的93556736个字节(22841页)

    BTW 开发团队正致力于这一点。 如果您需要将其解除阻止、请立即尝试上述操作。

    一旦获得经过完全验证的套件、我将再次共享这些补丁程序。

    -基尔西

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

    Keerthy、您好!

    感谢您的更新。 我们将使用此补丁进行检查、并告知您更新情况

    此致、

    安·罗斯·安东尼