驱动学习2:EBI总线,问题:驱动加载不上或读取iic数据失败,待解决

EBI-----------External Bus Interface 外部总线接口

ARM手册解释:
设计外部总线接口(External Bus Interface,EBI)
是为了确保能在一些外部存储设备和ARM 内置的存储控制器之间进行正确的数据传输

静态存储,DDR,SDRAM 和 ECC 控制器都集成到 EBI 的外部存储控制器,它可以处理不
同类型的外部存储器和外设,例如 SRAM,PROM,EPROM,EEPROM,Flash,DDR2
和 SDRAM。
EBI 工作在 1.8V 或者 3.3V(VDDIOM1)的环境下。
EBI 的专用电路支持 CompactFlash 和 NAND Flash 协议,这样可以减少对外部元件的要
求。
EBI 可以处理最大 6 个外部存储设备的数据传输,每一个在嵌入存储控制器里定
义地址空间。数据可以通过 16-位或者 32-位数据总线,最大 26 位的地址总线,最大 6 个
片选(NCS[5:0])和其他一些复用引脚来对外部不同的存储器进行传输

然后在挂载到AHB上,除了(user Interface挂到APB上)

问题:arm广播通过EBI找不到外部存储设备?insmod不了设备节点或插入usb有时识别有时识别不到?

参考:https://bbs.csdn.net/topics/390832483 中用户微水的回答如下:
SDRARM本身就是挂载在EBI总线上,且在bootstrap中已经初始化好了,如果要在linux kernel中访问SDRAM,是不需要专门写一个驱动的,只要用ioremap函数将实际的物理地址映射就好了,然后操作那个映射后的地址,就可以了。

所以关于EBI设备是在bootstrap中已经初始化的。
所以需要查看电路上在bootstrap起来的过程中是否有效的初始化EBI设备

SMC设备 (静态存储控制)
fpga设备挂载EBI上的引脚
EBI_NRD_F //读使能
EBI_NWE_F //写使能
EBI_NCS2_F //片选线 --EBI_NCS2
对应arm9 上PC13/NCS2
驱动模块打印:
eeprom_read_page: i2c_read failed with error -998.
module_get_valid_info: read eeprom module info failed.
optic_init: get valid module info failed with err -998.
optic_init: optic eeprom maybe not found!
optic_init used 96004 us.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值