AM5728---GPMC驱动 - AM57x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4016|回复: 5

[已解决] AM5728---GPMC驱动

[复制链接]

3

主题

10

帖子

1101

积分

金牌会员

Rank: 6Rank: 6

积分
1101
发表于 2019-4-17 09:44:04 | 显示全部楼层 |阅读模式
由于新内核采引入了了设备树。对于硬件配置上有些概念搞不清楚。我要实现GPMC与FPGA通讯,在编写AM5728---GPMC驱动时有些疑问希望能得到解答。
我在相应.dts文件里对GPMC的工作模式,时序等硬件配置做了如下设置:

                /* CONFIG1 ---配置: 地址,数据复用/非复用    异步/同步访问    访问位宽 */
                bank-width = <2>;                                /* 2字节,16位数据线。GPMC_CONFIG1_DEVICESIZE(1) */
                gpmc,sync-read;                                        /* GPMC_CONFIG1_READTYPE_ASYNC -异步读  */
                gpmc,sync-write;                                /* GPMC_CONFIG1_WRITETYPE_ASYNC --异步写  */
                gpmc,clk-activation-ns = <0>;                /* GPMC_CONFIG1_CLKACTIVATIONTIME(2) */
                // gpmc,burst-length = <16>;                    /* GPMC_CONFIG1_PAGE_LEN(2) */
                gpmc,mux-add-data = <0>;                    /* GPMC_CONFIG1_MUXTYPE(0) */
                //CONFIG2
                gpmc,sync-clk-ps = <10000>;         

                gpmc,cs-on-ns = <0>;
                gpmc,cs-rd-off-ns = <30>;         
                gpmc,cs-wr-off-ns = <30>;         
                //CONFIG3
                gpmc,adv-on-ns = <0>;
                gpmc,adv-rd-off-ns = <11>;           
                gpmc,adv-wr-off-ns = <11>;           
                //CONFIG4
                gpmc,we-on-ns = <7>;
                gpmc,we-off-ns = <22>;         
                gpmc,oe-on-ns = <7>;
                gpmc,oe-off-ns = <22>;         
                //CONFIG 5
                gpmc,page-burst-access-ns = <22>;
                gpmc,access-ns = <22>;              
                gpmc,rd-cycle-ns = <30>;            
                gpmc,wr-cycle-ns = <30>;     


问题1:我已经在.dts文件里对关键的几个寄存器进行了以上配置,那么我还需要在我的驱动文件(drv.c)里对CONFIG1~CONFIG1~再配置一次吗???
回复

使用道具 举报

36

主题

526

帖子

7608

积分

创龙

Rank: 8Rank: 8

积分
7608
发表于 2019-4-17 11:20:07 | 显示全部楼层
您好,
  您目前使用的是哪个内核,参照我们设备树文件的GPMC配置,修改成合适您们配置的参数即可,不需要写驱动。
回复 支持 反对

使用道具 举报

3

主题

10

帖子

1101

积分

金牌会员

Rank: 6Rank: 6

积分
1101
 楼主| 发表于 2019-4-17 11:45:54 | 显示全部楼层
梁淑怡-Tronlong 发表于 2019-4-17 11:20
您好,
  您目前使用的是哪个内核,参照我们设备树文件的GPMC配置,修改成合适您们配置的参数即可,不需要 ...

您好,我的是4.3的内核。
按照如上所述:在.dts文件里配置相应寄存器,在驱动文件里没有再次对CONFIG1~CONFIG7再次配置。在驱动文件只是把gpmc物理地址映射为虚拟地址。gpmc.virt_addr = ioremap(((unsigned int)GPMC_ADDR), GPMC_SIZE);
               现在通过该映射回来的虚拟地址gpmc与FPGA已经能正确读写数据了,但是通过抓波形发现     GPMC实际读写数据周期  和我在.dts文件里配置的时序不一致(相差很大),请问这是什么原因呢???
回复 支持 反对

使用道具 举报

36

主题

526

帖子

7608

积分

创龙

Rank: 8Rank: 8

积分
7608
发表于 2019-4-18 08:44:27 | 显示全部楼层
您好,
   配置GPMC通过设备树文件配置即可,驱动会去读取设备树文件的配置属性来配置。
   创龙提供资料SDK3.01(Linux-4.4.19),SDK4.03(Linux-RT-4.9.65)都是通过这种方式配置。
回复 支持 反对

使用道具 举报

3

主题

10

帖子

1101

积分

金牌会员

Rank: 6Rank: 6

积分
1101
 楼主| 发表于 2019-4-18 09:05:17 | 显示全部楼层
梁淑怡-Tronlong 发表于 2019-4-18 08:44
您好,
   配置GPMC通过设备树文件配置即可,驱动会去读取设备树文件的配置属性来配置。
   创龙提供资料SD ...

嗯呢,设备树文件我是参考创龙的并且结合自己的实际修改的。
       但是驱动程序是我自己写的,我怀疑是自己写的驱动程序有问题。你们是否也有相应的gpmc驱动程序供参考,在哪里可找到,可否发下链接或地址?
       非常感谢!!!

点评

[attachimg]4998[/attachimg]  详情 回复 发表于 2019-4-18 10:51
回复 支持 反对

使用道具 举报

36

主题

526

帖子

7608

积分

创龙

Rank: 8Rank: 8

积分
7608
发表于 2019-4-18 10:51:42 | 显示全部楼层
林格格 发表于 2019-4-18 09:05
嗯呢,设备树文件我是参考创龙的并且结合自己的实际修改的。
       但是驱动程序是我自己写的,我怀疑是 ...


本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 07:31 , Processed in 0.041210 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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