首页 > 解决方案 > 将 u-boot-2020.04 移植到 EVB 板,但 spi nand flash(GD5F2GQ5xExxG) 无法正常工作

问题描述

问题描述:

  1. 嵌入在 SOC 中的 designware-spi 控制器
  2. evb CAN上的spi nor flash(MX25U25635F)运行良好。
  3. evb上的spi nand flash(GD5F2GQ5xExxG)不工作,当输入命令“ nand device or nand info ”时,u-boot返回“没有可用的设备

我的努力:

**dtsi snippet:**
    spi0: spi@80000000 {
        compatible = "snps,dw-ssi";
        reg = <0x0 0x80000000 0x0 0x1000>;
        #address-cells = <1>;
        #size-cells = <0>;
        clocks =  <&sysclk>;
        clock-names = "baudclk";
        status = "okay";
        spi_nand@1 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "spi-nand";
            spi-cpha = <1>;
            spi-cpol = <1>;
            spi-tx-bus-width = <1>;
            spi-rx-bus-width = <1>;
            reg = <1>;
            spi-max-frequency = <50000000>;
        };
    };

xxx_defconfig:

CONFIG_CMD_BIND=y
CONFIG_CMD_DM=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MTD=y
CONFIG_CMD_NAND=y
CONFIG_CMD_NAND_TRIMFFS=y
CONFIG_CMD_NAND_LOCK_UNLOCK=y
CONFIG_CMD_NAND_TORTURE=y
CONFIG_DM_MTD=y
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_SPI_NAND=y
CONFIG_SPI=y
CONFIG_DM_SPI=y

xxx_common.h

...
#define CONFIG_SYS_NAND_SELF_INIT
...

驱动程序\mtd\nand\raw\nand.c

void nand_init(void)
{
...
#ifdef CONFIG_SYS_NAND_SELF_INIT
    board_nand_init();
#else
    ...
#endif
}

函数中只配置了spi控制器的相关寄存器board_nand_init( ),我想spinand_probe()在这个函数中调用,但不知道怎么做。有人可以帮助我吗?我是 u-boot 的新手。谢谢

标签: u-bootdm

解决方案


推荐阅读