U-Boot 2020.04: Probing SPI flash fails - Invalid bus 0 (err=-19)

问题描述 投票:0回答:1

我是刚编好的 U-Boot 2020.04 用于 PINE64 ROCK64 媒体板。它编译得很好,没有错误。但是当我试图探测SPI闪存时,我遇到了一个问题。

U-Boot命令行的输出。

=> sf probe
Invalid bus 0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)
=>

板上的Device-Tree SPI部分。

&spi0 {
    status = "okay";

    spiflash@0 {
        compatible = "jedec,spi-nor";
        reg = <0>;

        /* maximum speed for Rockchip SPI */
        spi-max-frequency = <50000000>;
    };
};

我也试过不同的总线和芯片选择,但都没有用 根据板子上的原理图,SPI闪存器件 GD25Q128CS 是用的。

我是如何编纂这些资料的。

$ make rock64-rk3328_defconfig
$ make CROSS_COMPILE=/path/to/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/aarch64-none-elf- -j 4

我使用了官方的 海湾合作委员会ARM网站.

还尝试了旧版和新版的U-Boot。同样的问题。我按照U-Boot文档的要求刷新了microSD卡。

$ dd if=idbloader.img of=/dev/mmcblk0 seek=64
$ dd if=u-boot.itb of=/dev/mmcblk0 seek=16384

我怎么才能缩小这个问题的范围呢?是不是少了什么东西?

更新。

似乎U -Boot没有从板子上加载SPI驱动。

=> dm tree    
 [...]
  spi           0  [   ]   rockchip_spi          |-- spi@ff190000                                                        
  spi_flash     0  [   ]   spi_flash_std         |   `-- spiflash@0
 [...]
=>

我也试过了

我在板子的文件中加入了以下配置。

CONFIG_ROCKCHIP_SPI=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_GIGADEVICE=y

驱动文件 我试着把一个简单的 printf() 在函数的开头 rockchip_spi_probe(). 我还在驱动中添加了一个兼容的标识符(与Device-Tree中的字符串相同)。但不幸的是,probe函数从未被调用。

我是U-Boot的新手。我是一个U-Boot的新手,非常感谢任何形式的帮助。

c arm spi u-boot kbuild
1个回答
0
投票

你可以尝试在文件中的别名部分添加:

spi0 = &spi0;

添加到文件rk3399.dtsi的别名部分?有什么变化吗?

© www.soinside.com 2019 - 2024. All rights reserved.