Oliver_Li 发表于 2023-5-13 09:32:00

优先你要先确定你配置的设备树节点,在 uboot 阶段是否给正确 probe 了,因为在 uboot 阶段,设备的 probe 是需要手动调用 probe 函数的,和 kenrel 的自动调用不一样。

rk3588 的 sf 是支持 winbond 的 flash 的。

Bennett 发表于 2023-5-18 20:05:32

Oliver_Li 发表于 2023-5-13 09:32
优先你要先确定你配置的设备树节点,在 uboot 阶段是否给正确 probe 了,因为在 uboot 阶段,设备的 probe...

现在就是在第一步sf probe 1:0的时候出错,读不到flash的ID,我在rk3588-u-boot.dtsi中添加的设备树如下:

&spi1 {
        u-boot,dm-spl;
        status = "okay";

        #address-cells = <1>;
        #size-cells = <0>;
        pinctrl-0 = <&spi1m2_cs0 &spi1m2_cs1 &spi1m2_pins>;
        pinctrl-1 = <&spi1m2_cs0 &spi1m2_cs1 &spi1m2_pins_hs>;
        spi_norflash: flash@00 {
                u-boot,dm-spl;
                compatible = "jedec,spi-nor";
                label = "spi_nor";
                reg = <0x00>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
                spi-max-frequency = <50000000>;
                status = "okay";
        };
};

Bennett 发表于 2023-5-18 20:09:19

Bennett 发表于 2023-5-18 20:05
现在就是在第一步sf probe 1:0的时候出错,读不到flash的ID,我在rk3588-u-boot.dtsi中添加的设备树如下 ...

还有一个问题是在id=67,就是UCLASS_SPI_FLASH的时候显示not found:
File:drivers/core/uclass.cFunction:uclass_getLine:153id = 67
File:drivers/core/uclass.cFunction:uclass_findLine:27
File:drivers/core/uclass.cFunction:uclass_getLine:155uc =00000000ebc1ec70
File:drivers/core/uclass.cFunction:uclass_find_device_by_seqLine:277ret = 0
File:drivers/core/uclass.cFunction:uclass_find_device_by_seqLine:283dev = 00000000ebc1ecb0dev->req_seq = -1dev->seq = -1dev->name: flash@00
File:drivers/core/uclass.cFunction:uclass_find_device_by_seqLine:293- not found

Bennett 发表于 2023-5-18 20:16:42

Bennett 发表于 2023-5-18 20:09
还有一个问题是在id=67,就是UCLASS_SPI_FLASH的时候显示not found:
File:drivers/core/uclass.cFuncti ...

在File:drivers/core/device.cFunction:device_probeLine:519ret = -2返回错误

if (drv->probe) {
                ret = drv->probe(dev);
                printf("File:%sFunction:%sLine:%dret = %d\n", __FILE__, __FUNCTION__, __LINE__, ret);
                if (ret) {
                        dev->flags &= ~DM_FLAG_ACTIVATED;
                        goto fail;
                }
        }

Oliver_Li 发表于 2023-5-25 14:15:46

其实你参照 kernel 的 dts 配置就行了,因为你在 kenrel 配置了 spi flash ,在 uboot 阶段, dtb 会给 overlay 的,内核的 dts 应该有相关的 spi flash 参考的。
然后你在 uboot 不需要在代码加 probe 的动作应该,你使用命令应该也可以进行 probe(手动)

Bennett 发表于 2023-5-25 15:57:56

Oliver_Li 发表于 2023-5-25 14:15
其实你参照 kernel 的 dts 配置就行了,因为你在 kenrel 配置了 spi flash ,在 uboot 阶段, dtb 会给 ove ...

rk3588的kernel并没有配置spi flash的设备树,我现在在kernel里面读出来的id是ffffffffffff..........
我把flash拔掉读出来的也还是ff ff ff ff ff ff.........
感觉没用。

Oliver_Li 发表于 2023-5-25 17:17:10

https://wiki.t-firefly.com/zh_CN/Core-3588J/usage_spi.html

有参考这个么?
页: 1 [2]
查看完整版本: ITX-3588J