host初始化
直接看RapidIO的初始化,一些底层的比如物理层链路层之类的不需要关心,用到了再去看,毕竟都是基于芯片或者IP来开发,从顶层了解这个过程。

系统启动过程概述
host CPU获取引导代码,启动,如果有两个host,则两者是同时启动的。
开始执行系统探测和枚举算法。
枚举所有器件并将相关器件信息记录到器件数据库,建立host和所有endpoint之间的路由。
计算并配置host和所有endpoint之间的最优路径。
用最优路径信息配置switch。
更新路由表。
映射地址空间。
上面提到的最优路径,就是所谓的枚举算法的目的,可以是最短路径同时包含一些用户约束,。

启动要求
系统初始化之后,所有器件都会拥有一个ID,在系统初始化之前,按照下面设置。RapidIO系统应该只有一个引导代码器件。

设置endpoint ID为0xFF(0xFFFF)。
设置引导代码器件ID为0xFE(0x00FE)。
设置host ID为0x00(0x0000)。

枚举
枚举过程中,将给每个endpoint分配唯一的器件ID,为了增强容错性,RapidIO系统可以有两个host,经过竞争,最终只有一个host来完成枚举,如果主机枚举过程失败并发生超时事件,则另一主机重新枚举。枚举算法根据器件ID大小设置优先级,ID大的host竞争获胜,在枚举同一个endpoint时会发生竞争,失败host主动退出枚举,枚举结束之后,其他主机可以通过被动发现(passively discovery)收集网络中的路由拓扑信息。所以host的ID可以设置为0x00(0x0000)和0x01(0x0001),其中0x01的优先级更高。host应当将自己的主机使能位置1,switch没有这个位,当host释放对失败主机的锁定时,枚举完成,失败host自己检测是否被锁定和释放锁定。在开放式(open)8位器件ID系统中,如果host枚举失败,那么失败主机重新枚举时,必须等待15秒。在闭合式(closed)或者16位器件ID系统中,超时等待时间需要设计。

SRIO系统初始化过程
以Xilinx zynq说明,

使能host模式。
配置ID。
配置CPS1848路由,使能端口收发(手册默认是打开的)。
锁定host。
搜索系统拓扑。

锁定host
1读取Lock ID CSR,如果寄存器值等于host ID,则判定已经锁定,退出,否则进入2。
2写入host ID,再读取host ID,如果寄存器值大于host ID则进入退避状态,如果小于host ID,则已经被锁定(但和另一个host冲突),进入等待退避状态,等待另一个host退避。如果等于host ID,则锁定成功。
搜索系统拓扑
这里只考虑Switch是CPS1848的情况,TSI578原理是一致。

如果这个CPS1848是直接与host zynq相连的switch。
搜索CPS1848,设置0x13c寄存器Port General Control CSR的DISCV位,表示这个switch已经被发现,设置Component Tag CSR,它是一个设备的身份标识。
读0x14寄存器Switch Port Information CAR得到port数量,就是18。
循环搜索每个port,如果是host port则使能端口收发,如果是其他port,读取链路状态,如果正常,用默认ID 0xFF配置路由,使能端口收发,然后尝试锁定该端口设备(Endpoint或Switch),锁定过程和锁定host是一样的。
如果锁定成功,读取Processing Elements Features CAR寄存器,等到Function,判断设备类型,决定下一步拓扑方式。如果是Endpoint类型,关闭Master Enable,置位Discovered,分配ID号,配置该port的路由表。如果是Switch类型,则递归调用Switch枚举过程。
如果是已经锁定状态(存在环路),直接更新拓扑,不做任何配置。
如果这个CPS1848不和host直接相连。
设置DISCV位,得到与上级Switch相连的端口号,设置host的路由,设置默认路由为到host的端口。
同上。
同上。
现在拓扑关系已经搜索出来了。下面就是配置路由,因为上述搜索过程的路由配置不一定是最优配置,也不满足用户的需求。 所以现在需要按照设计需求,生成路由表然后写到各个Switch。
————————————————

SRIO系统初始化过程和路由配置相关推荐

  1. 嵌入式系统初始化过程

    系统初始化过程可以分为 3 个主要环节,按照自底向上.从硬件到软件的次序依次为:片级初始化.板级初始化和系统级初始化. 1.片级初始化  完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器 ...

  2. 国产linux凝思4.2系统多网卡指定路由配置

    因项目有机器需要多网段,所以配置了多张网卡.现就其中一个举例 网段一:10.105.XX.XX eth1 网段二:10.106.XX.XX eth2 最开始的问题现象是所有IP访问都只能走eth1的网 ...

  3. linux初始化进程ppid号,linux基础(十一)--系统初始化的简谈

    我们在深入学习linux之前呢首先要了解其的引导加载过程,这样我们就可以在判断一些在系统初始化过程的出现问题的来源,并及时做出处理. 这个过程大概分为[开机]--[BIOS](CMOS)--[grub ...

  4. linux基础(十一)--系统初始化的简谈

    我们在深入学习linux之前呢首先要了解其的引导加载过程,这样我们就可以在判断一些在系统初始化过程的出现问题的来源,并及时做出处理. 这个过程大概分为[开机]--[BIOS](CMOS)--[grub ...

  5. linux 更改 引导分区,Linux系统引导过程及引导修复

    0.Linux系统引导过程: 1.通电 2.bios初始化 3.磁盘引导阶段 4.grub2文件引导程序 5.内核加载 6.系统初始化镜像 7.系统启动级别 8.超级用户密码 以下内容是针对各过程会出 ...

  6. 配置接口IP地址并通过静态路由、默认路由配置实现全网互通!

    配置接口IP地址并通过静态路由.默认路由配置实现全网互通 1.对Router-R1/R3进行默认路由配置,R2为静态路由配置 2.配置好PC机的IP地址,子网掩码,网关之后,开始配置路由R1/2/3/ ...

  7. 详解linux系统的启动过程及系统初始化

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chrinux.blog.51cto.com/6466723/1192004 一. ...

  8. Spring Cloud Gateway源码系列之路由配置加载过程

    当前章节主要是讲解配置文件中定义的路由配置被gateway加载,同时转为可以直接操作的路由对象 引入pom坐标 <dependency><groupId>org.springf ...

  9. 从头开始写STM32F103C8T6驱动库(二)——编写系统初始化程序,配置时钟树

    系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库(一)--STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库(二)--编写系统初始化程序 ...

  10. rhel系统启动过程_详解linux系统的启动过程及系统初始化

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

最新文章

  1. java 词频_java程序:统计单词词频,
  2. 代价敏感多标签主动学习的代码开发跟踪
  3. Why Redis 4.0?
  4. ZooKeeper官方文档学习笔记03-程序员指南02
  5. 干货 | 120 道机器学习面试题!备战春招
  6. Charles for Mac(信息抓包工具)
  7. c( )函数--R语言
  8. 飞鸽传书软件局域网传输文件
  9. android tabhost用法详解,android Tabhost部件详解
  10. C语言——单词精确查找
  11. BSB网络验证 易语言网络验证系统 autojs 网络验证系统 免费的卡密收费系统 账号注册系统
  12. Redis的优点和缺点
  13. 油画特效软件akvis artwork破解版安装及破解教程
  14. UI设计师=美工?不同是人眼里UI设计师~
  15. 怎样把gis锯齿边_在arcgis中如何消除锯齿状边缘
  16. ACM常用英文术语翻译
  17. kitty终端ranger预览图片
  18. matlab相干解调,心电信号的调制与解调(AM调制、相干解调)
  19. 通过Zerotier访问局域网所有设备
  20. 广州大学操作系统实验 2020版 银行家算法

热门文章

  1. 注册ActiveX控件时DllRegisterServer调用失败的解决方法
  2. 如何轻松集成VARCHART XGantt
  3. ASUS笔记本型号命名
  4. CocosCreator物理引擎Demo源码分析(1)-infinite-world
  5. javaweb学生选课系统
  6. AB触摸屏2711P-T12W22A9P、2711P-T10C4A9,2711P-T10C22D8S-B、2711P-T10C22D9P-B、2711P-T12C10D2
  7. Cisco交换机下载IOS
  8. java实现调用百度图像识别API,批量识别车辆车型、颜色等信息
  9. A1 A2 B1 B2 英语分级单词 汇总
  10. 手机坏点如何测试软件,怎么检测手机屏幕坏点