Altera RapidIO IP维护模块

维护模块

  1. Type 8包

Type 8维护包是用来存取RapidIO能力和状态寄存器(CARs和CSRs)及数据结构。不像其它请求格式,type 8包的请求和响应包格式都一样的,Type 8包不包含地址,仅包含数据负荷。

维护端口写操作是一个不确保成功的写操作,没有相关的响应,这个维护操作主要用来发送如来自一个设备的错误指示或状态等信息,这种设备一般不包含端点如交换机。数据负荷一般放在目的端点的一个队列里,通过中断通知本地处理器。

Altera RapidIO IP维护模块_第1张图片

         对Port-write请求,srcTID和config_offset域是保留域

Altera RapidIO IP维护模块_第2张图片

Altera RapidIO IP维护模块_第3张图片

 

2. 维护模块

2.1 对模块的基本理解

维护模块处理MAINTENANCE交易,包括下列交易:

  1. Type 8:MAINTENANCE读和写请求和响应
  2. Type 8:Port-write包

Avalon-MM从接口允许你在Rapidio链路上发起一个MAINTENANCE read或write操作。

Avalon-MM主接口允许你响应来自Rapidio链路上的MAINTENANCE读或写操作。

注意:如果目的地址范围是Rapidio II IP核寄存器的MAINTENANCE读或写操作并不会路由到Avalon-MM主接口上,而是由Rapidio II IP核把它们路由到内部实现寄存器的读写操作。

MAINTENANCE port-write交易不会出现在维护Avalon-MM接口上。

下面的内容是对Avalon-MM从接口、Avalon-MM主接口、Port-Write的理解:

    1. Avalon-MM从接口,发起MAINTENANCE read或write操作。
    2. Avalon-MM主接口:首先我们要理解配置空间不一定仅仅就是内核寄存器,如果是对内核寄存器的读写,则直接路由到内核就可以了。配置空间可能还有很多用户定义的存储空间,这些配置空间可能是在一个内存里,这就需要一个Avalon-MM主接口来对其进行读写了。这就是Avalon-MM主接口的意义。我们可能不需要处理这个接口。
    3. MAINTENANCE Port-write,这里的“PORT”在Maintenance Module中:TX Port Write Buffer,Rx Port Write Buffer,当我们通过从接口写Tx Port Write Buffer时,就会启动Port Write包,在接收端(有目的ID来指定接收设备)会把包的数据写道Rx Port Write Buffer中。收到数据是通过中断来通知的。
    1. 定义维护地址翻译窗口

其实是如何将avlon-MM从接口的地址翻译成type 8包中的config-offset。当然要先决定翻译与否。

2.2.1 映射窗口的几个寄存器

Altera RapidIO IP维护模块_第4张图片

Altera RapidIO IP维护模块_第5张图片

Altera RapidIO IP维护模块_第6张图片

Altera RapidIO IP维护模块_第7张图片

如果:( mnt_s_address[23:1] & mask[25:3] ) == base[25:3]

那么: confog_offset = (offset[23:3] & mask[23:3] | (mnt_s_Address[21:1] & ~mask[23:3]

这里:

  1. mnt_s_Address[23:0]是Avalon-MM从接口地址,它其实是26位字节地址的高24位[25:2]
  2. mask[31:0]是屏蔽寄存器
  3. offset[23:0]是窗口偏移寄存器的OFFSET域

2.2.2 需要理解的几个问题

  1. avalon-MM从接口对配置空间的读写时序,与type 8包结构是对应的。
  2. port-write是通过寄存器存取接口对Tx port-write寄存器和Rx port-write寄存器读写来实现的,与type 8包也是对应的。

 

 

你可能感兴趣的:(RapidIO)