IDT CPS1848 SRIO交换芯片使用
参考RapidIO规范《RapidIO_Rev_2.2_Specification》书籍《RapidIO The Embedded System Interconnect》IDT CPS1848手册《CPS-1848™ User Manual》IDT CPS1848CPS1848结构图,最大18个port,注意的是port从0到17,即0x00到0x11。CPS1848路由方式...
·
作者
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
- CPS1848结构图,最大18个port,注意的是port从0到17,即0x00到0x11。
- CPS1848路由方式,每个端口提供256个缓存来存储设备路由表,还有256个缓存来存储域路由表,这样设计的目的是,在大型的系统里会用到域路由表,大型系统有很多底板,每个底板上也会有很多子板,域路由表用来选择包被发送到哪一块板卡,而设备路由表用来将包发送到某个处理单元(某个芯片的SRIO端口)。RIO_DOMAIN由RapidIO Domain Register寄存器确定。
- 单播(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。
- 多播编程,用到再说。
- 上面配置路由的方法是非直接方式(Indirect Programming),配置路由需要操作多次,在多(线程)设备的环境下要做互斥,CPS1848支持另外一种直接方式(Direct Programming)可以支持这种情况。
- Switch Port Information CAR寄存器,这个寄存器很重要,在多个Switch互联的系统里,用于确定拓扑关系。
- Port General Control CSR寄存器,会用到DISCV位,是发现标志位。
- Port Error and Status CSR寄存器,第1位PORT_OK。
- Host Base deviceID Lock CSR寄存器,同xilinx SRIO IP。
SRIO维护包配置芯片
待续。。。
I2C Slave模式配置芯片
以7位地址为例,采用1字节地址+3字节寄存器地址+7字节数据模式,写波形,
读波形,
读芯片ID,
$ i2ctransfer -y 0 w3@0x60 0x00 0x00 0x00 r4
NMS1800,READ NUM为0的时候表示读一个寄存器,且发送了两次SLAVE ADDR,中间没有NACK和STOP。
写,
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献19条内容
所有评论(0)