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/AM5728:同时使用 QSPI 和 SPI 闪存

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/589334/linux-am5728-using-qspi-and-spi-flash-together

器件型号:AM5728

工具/软件:Linux

您好!

我使用的是 AM572x 定制板

如何在 U-boot 中同时使用 QSPI 和 MCSPI 闪存

我想同时使用 SPI 和四路 SPI。

但是、我无法使用它。 当我使用“u-boot SF 探测器命令”时......  不管用。

=> SF 探头0:0
SF:检测到页大小为256字节的 S25FL256S_64K、擦除大小为64 KiB、总共32 MIB、映射时间为5c000000
=> SF 探头0:1
SF:不支持的闪存 ID:Manuf 00、JEDEC 0000、ext_JEDEC 0000
无法在0:1初始化 SPI 闪存(错误-93)
=> SF 探头0:2
SF:不支持的闪存 ID:Manuf 00、JEDEC 0000、ext_JEDEC 0000
无法在0:2初始化 SPI 闪存(错误-93)
=> SF 探头0:3
SF:不支持的闪存 ID:Manuf 00、JEDEC 0000、ext_JEDEC 0000
无法在0:3初始化 SPI 闪存(错误-93)
=> SF 探头0:4
SF:检测到页大小为256字节的 S25FL256S_64K、擦除大小为64 KiB、总共32 MIB、映射时间为5c000000
=> SF 探头1:0
总线1无效(err=-19)
无法在1:0初始化 SPI 闪存(错误-19)
=> SF 探头1:1
总线1无效(err=-19)
无法在1:1初始化 SPI 闪存(错误-19)
=> SF 探头1:2
总线1无效(err=-19)
无法在1:2初始化 SPI 闪存(错误-19)
=> SF 探头1:3
总线1无效(err=-19)
无法在1:3初始化 SPI 闪存(错误-19)
=> SF 探头2:0
无效总线2 (err=-19)
无法在2:0初始化 SPI 闪存(错误-19)
=> SF 探头2:1
无效总线2 (err=-19)
无法在2:1初始化 SPI 闪存(错误-19)
=> SF 探头2:2
无效总线2 (err=-19)
无法在2:2初始化 SPI 闪存(错误-19)

我想表明您的意见。

谢谢你。

Pinmux U-Boot

QSPI:

{GPMC_A13、(M1 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A13.qspi1_rtclk *
{GPMC_A14、(M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}、// GPMC_A14.qspi1_D3 *
{GPMC_A15、(M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}、// GPMC_a15.qspi1_D2 *
{GPMC_A16、(M1 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A16.qspi1_d0 *
{GPMC_A17、(M1 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_a17.qspi1_D1 *
{GPMC_A18、(M1 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}、// GPMC_A18.qspi1_SCLK *

SPI1:  

{SPI1_SCLK、(M0 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A18.qspi1_SCLK *
{SPI1_D1、(M0 | PIN_INPUT_PULLUP)}、// SPI1_D1.GPIO7_8 *
{SPI1_D0、(M0 | PIN_INPUT_PULLUP)}、// SPI1_d0.GPIO7_9 *
{SPI1_CS0、(M0 | PIN_INPUT_PULLUP)}、// SPI1_cs0.GPIO7_10 *

U-Boot DTS 文件(am572x-idk.dts)

&QSPI{
状态="正常";

SPI-max-frequency =<76800000>;
m25p80@0{
兼容="s25fl256s1"、"SPI-flash";
SPI-max-frequency =<76800000>;
reg =<0>;
SPI-TX-bus-width =<1>;
SPI-Rx-bus-width =<4>;
#address-cells =<1>;
大小单元格=<1>;

};

};

mcspi1{(&M)
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&mcspi1_PINs>;
m25p80@1{
兼容="N25Q256A"、"SPI-FLASH";
reg =<0>;
};
};

我的开发环境

主机 PC 操作系统:Ubuntu 16.04 Linux 64位

AM5728 SDK:U-boot-2016.05 / Linux-RT-4.4.19

AM5728 SDK 版本:TI-processor-sdk-linux-rt-am57xx-evm-03.01.00.06

IPC:IPC_3_43_02_04

XDC:xdctools_3_32_00_06_core

谢谢、致以诚挚的问候。

John。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。

    SPI 闪存信息。
    QSPI:S25FL256SAGMFIR0 (四通道)
    MCSPI:N25Q256A13ESF40 (SPI)

    QSPI 正在工作。
    但是。 u-boot 未检测到 MCSPI

    此致
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    无法同时使用 QSPI 和 SPI?
    请提供建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您应该能够同时使用 MCSPI 和 QSPI。 您是否启用了 SPI 驱动程序(驱动程序/SPI/OMAP3_SPI)? 默认情况下不启用该功能。
    请参阅 drivers/SPI 中的 Kconfig 文件、并在 include/configs/am57xx_evm.h 中添加相应的定义

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

    我已经尝试定义 CONFIG_OMAP3_SPI。
    但是、QSPI 代码和 SPI 代码相互冲突。

    我认为需要合并两个代码。 正确吗?
    ----------------------------------------------------------------------
    SPL/drivers/SPI/ti_QSPI.o:在函数中`spi_init':
    /sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/ti_qspi.c:329:`spi_init'的多个定义
    SPL/DRIVERS/SPI/OMAP3_SPI.o:/sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/omap3_spi.c:466:首先在此处定义
    SPL/drivers/spi/ti_qspi.o:在函数中`spi_flash_copy_mmap':
    /sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/ti_qspi.c:284:`spi_setup_slave'的多个定义
    SPL/DRIVERS/SPI/OMAP3_SPI.o:/sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/omap3_spi.c:118:首先在此处定义
    SPL/drivers/spi/ti_qspi.o:在函数中`spi_flash_copy_mmap':
    /sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/ti_qspi.c:284:`sPI_FREE_SLAVE 的多个定义
    SPL/DRIVERS/SPI/OMAP3_SPI.o:/sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/omap3_spi.c:118:首先在此处定义
    SPL/drivers/spi/ti_qspi.o:在函数中`spi_flash_copy_mmap':
    /sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/ti_qspi.c:284:`spi_clary_bus'的多个定义
    SPL/DRIVERS/SPI/OMAP3_SPI.o:/sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/omap3_spi.c:118:首先在此处定义
    SPL/drivers/spi/ti_qspi.o:在函数中`spi_flash_copy_mmap':
    /sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/ti_qspi.c:284:`spi_release_bus'的多个定义
    SPL/DRIVERS/SPI/OMAP3_SPI.o:/sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/omap3_spi.c:118:首先在此处定义
    SPL/drivers/spi/ti_qspi.o:在函数中`spi_flash_copy_mmap':
    /sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/ti_qspi.c:284:`sπ xfer'的多个定义
    SPL/DRIVERS/SPI/OMAP3_SPI.o:/sanion/ur_ied/master/board-support/u-boot-2016.05/drivers/spi/omap3_spi.c:118:首先在此处定义
    ----------------------------------------------------------------------


    此致、
    John