IDT CPS1848 SRIO交换芯片使用

作者

CSDN:黑客三遍猪 主页 https://blog.csdn.net/Zhu_Zhu_2009
QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

RapidIO规范《RapidIO_Rev_2.2_Specification》
书籍《RapidIO The Embedded System Interconnect》
IDT CPS1848手册《CPS-1848™ User Manual》
Zynq-Linux移植学习笔记之13-i2c驱动配置

IDT CPS1848

  1. CPS1848结构图,最大18个port,注意的是port从0到17,即0x00到0x11。
    这里写图片描述
  2. CPS1848路由方式,每个端口提供256个缓存来存储设备路由表,还有256个缓存来存储域路由表,这样设计的目的是,在大型的系统里会用到域路由表,大型系统有很多底板,每个底板上也会有很多子板,域路由表用来选择包被发送到哪一块板卡,而设备路由表用来将包发送到某个处理单元(某个芯片的SRIO端口)。RIO_DOMAIN由RapidIO Domain Register寄存器确定。
    这里写图片描述
  3. 单播(unicast)编程,CPS1848每个端口都有自己的路由表,所以可以支持虚拟网络,路由配置时,有寄存器The Route Port Select Register selects来控制路由表项是添加到所有端口还是某个端口。路由配置主要是三个寄存器Standard Route Table Entries Configuration destID Select CSR,Standard Route Table Entry Configuration Port Select CSR和Standard Route Table Entry Default Port CSR。
    这里写图片描述
  4. 多播编程,用到再说。
  5. 上面配置路由的方法是非直接方式(Indirect Programming),配置路由需要操作多次,在多(线程)设备的环境下要做互斥,CPS1848支持另外一种直接方式(Direct Programming)可以支持这种情况。
    这里写图片描述
  6. Switch Port Information CAR寄存器,这个寄存器很重要,在多个Switch互联的系统里,用于确定拓扑关系。
    这里写图片描述
  7. Port General Control CSR寄存器,会用到DISCV位,是发现标志位。
    这里写图片描述
  8. Port Error and Status CSR寄存器,第1位PORT_OK。
    这里写图片描述
  9. Host Base deviceID Lock CSR寄存器,同xilinx SRIO IP。
    这里写图片描述

SRIO维护包配置芯片

待续。。。

I2C Slave模式配置芯片

以7位地址为例,采用1字节地址+3字节寄存器地址+7字节数据模式,写波形,
334
读波形,
335
读芯片ID,

$ i2ctransfer -y 0 w3@0x60 0x00 0x00 0x00 r4        

NMS1800,READ NUM为0的时候表示读一个寄存器,且发送了两次SLAVE ADDR,中间没有NACK和STOP。
336
写,
337

  • 10
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值