Porting u-boot-2020.04 to a EVB board, but spi nand flash(GD5F2GQ5xExxG) is not working

1

problem description:

  1. designware-spi controller embedded in SOC
  2. spi nor flash(MX25U25635F) on evb CAN works well.
  3. spi nand flash(GD5F2GQ5xExxG) on evb is not working, when entering command "nand device or nand info", u-boot returns "no devices available"

my effort:

**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
...

drivers\mtd\nand\raw\nand.c

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

Only config spi controller's related register in function board_nand_init( ), I want to call spinand_probe() in this function, but I don't know how to do it. Can somebody help me? I am a newbie to u-boot. Thanks

u-boot
dm
asked on Stack Overflow Jul 22, 2020 by qcmao • edited Jul 23, 2020 by Frant

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0