AM5708 SPI FLASH驱动开发问题 - AM57x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2799|回复: 3

[已解决] AM5708 SPI FLASH驱动开发问题

[复制链接]

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
发表于 2019-12-4 09:59:38 | 显示全部楼层 |阅读模式
我们有一个应用场景是从ARM端对FPGA的程序进行升级,具体的思路是由ARM通过SPI总线对FPGA的Flash进行更新。

1.    我们使用的spi1,设备树是这样配置的:

    &mcspi1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&spi1_pins_default>;
          ti,pindir-d0-out-d1-in;

          m25p80@0 {
                    #address-cells = <1>;
                    #size-cells = <1>;
                    compatible  = "s25fl256s1","spi-flash";
                    spi-max-frequency = <32000000>;
                    reg = <0>;
                    m25p,fast-read;

                    partition@0 {
                              label = "fpga";
                              reg = <0x00000000 0x02000000>;
                    };
          };
};


        spi1_pins_default: spi1_pins_default {
                pinctrl-single,pins = <
                            DRA7XX_CORE_IOPAD(0x37a4, (PIN_OUTPUT | MUX_MODE0))          /* spi1_sclk.spi1_sclk (C24) */
                            DRA7XX_CORE_IOPAD(0x37a8, (PIN_INPUT | MUX_MODE0))          /* spi1_d1.spi1_d1 (D24) */
                            DRA7XX_CORE_IOPAD(0x37ac, (PIN_OUTPUT | MUX_MODE0))          /* spi1_d0.spi1_d0 (D25) */
                            DRA7XX_CORE_IOPAD(0x37b0, (PIN_OUTPUT_PULLUP | MUX_MODE0)) /* spi1_cs0.spi1_cs0 (B24) */
                >;
        };

2.    硬件电路如下:



3.    配置完成后,没有发现spi或mtd相关的设备节点,查看dmesg,发现:

root@AM57xx-Tronlong:/sys/class/mtd# dmesg | grep spi
[   10.558944] m25p80 spi1.0: unrecognized JEDEC id bytes: 00, 00, 00

请问是哪个地方的配置有问题啊?我们这边应该怎么修改,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2019-12-4 10:10:36 | 显示全部楼层
Dear ,

      根据您提供的报错信息,目前驱动应该是已经生效,但是无法正常扫描到SPI FLASH的ID,问题原因可能有两个:一是驱动配置有误,而是FLASH硬件有问题。
       若是驱动问题,建议您可以:
1.    参考Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt文档配置;



2.    参考我司TL5728F-EVM设备树文件中的SPI FLASH进行配置:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

36

主题

526

帖子

7569

积分

创龙

Rank: 8Rank: 8

积分
7569
发表于 2019-12-5 09:39:34 | 显示全部楼层
您好,采用以上方法测试如下:
&mcspi1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&spi1_pins_default>;
          ti,pindir-d0-out-d1-in;

          spiflash@0 {
                    #address-cells = <1>;
                    #size-cells = <1>;
                    spi-tx-bus-width = <1>;
                    spi-rx-bus-width = <1>;
                    compatible  = "s25fl256s1", "jedec,spi-nor";
                    spi-max-frequency = <50000000>;
                    reg = <0>;

                    partition@0 {
                              label = "fpga";
                              reg = <0x00000000 0x02000000>;
                    };
          };
};
进行了测试,还是会出现:
root@AM57xx-Tronlong:~# dmesg | grep spi
[    9.836254] m25p80 spi1.0: unrecognized JEDEC id bytes: 00, 00, 00

随后,又采用compatible  = "s25fl256s1"进行了测试,现象是一样的。


尝试性的采用compatible  = "m25p80-nonjedec", 会创建mtd设备节点,但是查看/proc/mtd的情况,size只有0x100000, eraseSize为0x10000.


请问这有可能是什么原因造成的呢?


谢谢!




回复 支持 反对

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2019-12-6 11:58:42 | 显示全部楼层
根据您配置的compatible  = "m25p80-nonjedec",查询底层驱动所生成的size就是0x100000, 这个是没有问题的,具体如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-29 13:40 , Processed in 0.038234 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表