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.

[参考译文] AM625:从 QSPI Winbond NOR 闪存引导

Guru**** 2455560 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1467675/am625-boot-from-qspi-winbond-nor-flash

器件型号:AM625

工具与软件:

您好!

       我需要从 Winbond QSPI NOR 闪存中启动 AM6204。 我在偏移量为0x0、0x80000、0x280000的位置将 tiboot3.bin、tispl.bin 和 u-boot.img 刷写到 NOR 闪存中。 我已验证 defconfig 的位置偏移量。 我将引导模式引脚设置更改为 QSPI、然后可以看到 tiboot3.bin 日志。 但它在尝试从 SPI 引导后停止。  

1、我做什么错了吗?

2.是否需要 PHY 校准?

U-Boot SPL 2024.04-00003-g5fdf8a4b1e-dirty (2025年1月27日- 17:11:36 +0530)
SYSFW ABI:3.1 (固件版本0x0009 '9.2.8--v09.02.08 (Kool Koala)')
SPL 初始堆栈使用:13392字节
尝试从 SPI 引导

供参考:我尝试从 DFU 引导、我可以从 u-boot 控制台探测 NOR 闪存并对其进行读取和写入。

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

    Shibi

    Unknown 说:
    2. 它是否需要 PHY 校准?[/QUOT]

    这仅适用于高速 DDR/SDR 模式(>DDR 50MHz 速度)、例如由于缺少校准专利而导致此模式不起作用、通常不应阻止您执行基本启动、因为驱动程序应该回退到较慢的运行速度。

    [quote userid="600676" url="~/support/processors-group/processors/f/processors-forum/1467675/am625-boot-from-qspi-winbond-nor-flash FYI:我尝试从 DFU 引导,从 u-boot 控制台我可以探测 NOR 闪存并读取和写入它。

    该功能非常棒、这意味着您的系统中的许多功能似乎都可以正常工作、包括看起来的 QSPI 器件以及 DDR。

    我们应该仔细检查器件树配置。 您`d在此处发布与 QSPI 相关的完整更改(作为"论坛"`)。 您使用的是哪个特定闪存芯片?

    您还能在电路板上使用 JTAG 吗? 通常通过使用 CCS 等工具进行快速"连接"、并在这种情况下检查 R5F 内核运行情况、即可快速显示是否有关闭的情况。

    另外、可以通过添加以下行来启用 QSPI/OSPI 驱动程序的诊断/调试打印...

    diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
    index 0448b9929ca..223bdd972ee 100644
    --- a/drivers/spi/cadence_qspi.c
    +++ b/drivers/spi/cadence_qspi.c
    @@ -4,6 +4,8 @@
      * Altera Corporation <www.altera.com>
      */
    
    +#define DEBUG
    +
     #include <common.h>
     #include <clk.h>
     #include <log.h>

    此致、Andreas

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

    尊敬的 Andreas:

         很抱歉这么晚才回复。 我启用了调试控制台、发现此时启动卡住了。

    我是否需要添加下面一行? 它当前不存在

    include/mach/j721e_spl.h:18:#define BOOT_DEVICE_NOR BOOT_DEVICE_HYPERFLASH

    U-Boot SPL 2024.04-00003-g5fdf8a4b1e-dirty (2025年2月12日- 19:28:57 +0530)
    SYSFW ABI:3.1 (固件版本0x0009 '9.2.8--v09.02.08 (Kool Koala)')
    SPL 初始堆栈使用量:13416字节
    正在尝试从 NOR 闪存 SPI 引导
    正在加载图像
    drivers/pinctrl/pinctrl-ucclass.c:87-pinctrl_select_state_full () Cadence_spi@fc40000:pinctrl_select_state_full:uclass_get_device_by_phandle_id:err=-19
    drivers/pinctrl/pinctrl-ucclass.c:87-pinctrl_select_state_full () Cadence_spi@fc40000:pinctrl_select_state_full:uclass_get_device_by_phandle_id:err=-19
    drivers/pinctrl/pinctrl-ucclass.c:87-pinctrl_select_state_full () Cadence_spi@fc40000:pinctrl_select_state_full:uclass_get_device_by_phandle_id:err=-19
    drivers/pinctrl/pinctrl-ucclass.c:87-pinctrl_select_state_full () Cadence_spi@fc40000:pinctrl_select_state_full:uclass_get_device_by_phandle_id:err=-19

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

    我在使用 SPL_NOR 支持进行编译时遇到了一些构建错误。  我必须添加下面几行来修复它。 我不确定此配置是否正确。

    diff --git a/include/configs/am62x_evm.h b/include/configs/am62x_evm.h
    索引6ef79d1ba0..b4432779bf 100644
    --- a / include/configs/am62x_evm.h
    ++ b/include/configs/am62x_evm.h
    @@-28、4 + 28、6 @@μ s
    #define CFG_SYS_NAND_ECCBYTES 14.
    /*--结束 NAND 配置--*/

    +#define CFG_SYS_uBoot_BASE 0x50280000
    +
    #endif /*__CONFIG_AM625_EVM_H */

    --- a/arch/arm/mach-K3/include/mach/am62_spl.h
    ++ b/arch/arm/mach-k3/include/mach/am62_spl.h
    @@-7、6 @@ 7、11 μ s
    #ifndef _asm_arch_am62_SPL_H_
    #define _ASM_ARCH_AM62_SPL_H_

    +
    +#define BOOT_DEVICE_HYPERFLASH 0x00
    +#define BOOT_DEVICE_NOR BOOT_DEVICE_QSPI
    +
    +
    /*主引导模式器件*/
    #define BOOT_DEVICE_SERIAL_NAND 0x00
    #define BOOT_DEVICE_OSPI 0x01

    对象0 (&O)
    状态="正常";
    pinctrl-names ="默认值";
    @@-193、7 @@ 260、7 μ A
    闪存@0{
    兼容="JEDEC、SPI-NOR";
    reg=<0>;
    - spi-tx-bus-width =<4>;//四路 SPI NOR TRANSMIT
    + SPI-TX-BUS-width =<1>;//四路 SPI NOR TRANSMIT
    SPI-Rx-BUS-width =<4>;//四路 SPI NOR 接收
    spi-max-frequency =<50000000>;
    cdns,tshsl-ns =<60>;
    @@-203、28 +270、@@μ A
    CDN、读取延迟=<2>;
    cdns, phy-mode;

    -分区{
    -兼容性="固定分区";
    -#address-cells =<1>;
    -#size-cells =<1>;
    -启动全部;
    -
    -分区@0 {
    - label ="qspi.tiboot3";
    - reg =<0x00 0x80000>;
    -};
    +分区{
    +全部引导;
    + compatible ="固定分区";
    +#address-cells =<1>;
    +#size-cells =<1>;
    +
    + PARTITION@0 {
    + label ="ospi.tiboot3";
    + reg =<0x0 0x80000>;
    +};
    +
    +分区@80000 {
    + label ="ospi.tispl";
    + reg =<0x80000 0x200000 >;
    +};
    +
    + PARTITION@280000 {
    + label ="ospi.u-boot";
    + reg =<0x280000 0x400000>;
    +};
    +
    + PARTITION@680000 {
    + label ="ospi.env";
    + reg =<0x680000 0x40000>;
    +};
    +
    + PARTITION@6c0000 {
    + label ="ospi.env.backup";
    + reg =<0x6c0000 0x40000>;
    +};
    +
    +分区@800000 {
    + label ="ospi.rootfs";
    + reg =<0x800000 0x37c0000>;
    +};
    +
    + partial@3fc0000 {
    + bootph-pre-ram;
    + label ="ospi.phypatern";
    + reg =<0x3fc0000 0x40000>;
    +};
    +};

    -分区@80000 {
    - label ="qspi.tispl";
    - reg =<0x80000 0x200000 >;
    -};
    -分区@280000 {
    - label ="qspi.u-boot";
    - reg =<0x280000 0x400000>;
    -};
    -
    -
    -};

    };
    };

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

    Shibi

    这仍然需要注意吗? 如果是、请提供实验/调试工作的最新状态。

    此致、Andreas