红联Linux门户
Linux帮助

linux GPMC驱动调试笔记

发布时间:2016-03-07 10:47:54来源:linux网站作者:NearXDU

先来简单介绍一下GPMC。TI特有的总线但是中文资料较少,有过嵌入式驱动开发经验的人最初一定会接触GPIO,而GPMC与GPIO类似,说白了就是一种总线扩展,通过配置其寄存器来进行一系列的操作。

配置GPMC寄存器是驱动程序最先考虑的部分。首先通过查看手册找到GPMC相关寄存器的物理地址:

linux GPMC驱动调试笔记

根据手册上的定义在驱动程序中进行预定义如下所示:

linux GPMC驱动调试笔记

依然是通过查看手册得知,GPMC控制片选CS0~CS6的寄存器由CONFIG7_i配置(项目所需),由此查看CONFIG7_i32位寄存器内容定义,如下所示:

linux GPMC驱动调试笔记

由此需要从CONFIG7_i中读出保留字进行分析(根据相关资料显示一般GPMC有八个片寻CS0-CS7,其中CS0-1是用来做FLASH的,其余的片选可根据需求来选。)

linux GPMC驱动调试笔记

读出来的数据对高6位左移24位作为基地址,后四位代表size(具体编码需要查看手册),这个范围就是就是片选空间了,这个范围必然落在0x00000000~0x3FFFFFFF这1G空间(详见手册)。

对读出来的值分析再通过查原理图发现:本例中CS0做FLASH,CS6做网卡驱动,而CS1-CS5是预留的后续工作就是根据自己的需求往里面写东西了。


本文永久更新地址:http://www.linuxdiyf.com/linux/18683.html