问题描述:
- 嵌入在 SOC 中的 designware-spi 控制器
- evb CAN上的spi nor flash(MX25U25635F)运行良好。
- 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 的新手。谢谢