RapidIO Intel FPGA IP User Guide

ID 683884
Date 9/15/2021
Public
Document Table of Contents

4.5.2.2. Maintenance Slave Processor

The Maintenance Slave Processor module performs the following tasks:
  • For an Avalon® read, composes the RapidIO logical header fields of a MAINTENANCE read request packet
  • For an Avalon® write, composes the RapidIO logical header fields of a MAINTENANCE write request packet
  • Maintains status related to the composed MAINTENANCE packet
  • Presents the composed MAINTENANCE packet to the Transport layer for transmission

The Avalon® -MM slave interface allows you to initiate a MAINTENANCE read or write operation. The Avalon® -MM slave interface supports the following Avalon® transfers:

  • Single slave write transfer with variable wait-states
  • Pipelined read transfers with variable latency
Note: At any time, there can be a maximum of 64 outstanding MAINTENANCE requests that can be MAINTENANCE reads, MAINTENANCE writes, or port-write requests.
Figure 20. Signal Relationships for Four Write Transfers on the Avalon® -MM Slave Interface
Figure 21. Signal Relationships for Two Read Transfers on the Avalon® -MM Slave Interface

Reads and writes on the Avalon® -MM slave interface are converted to RapidIO maintenance reads and writes. The following fields of a MAINTENANCE type packet are assigned by the Maintenance module:

  • prio
  • tt
  • ftype is assigned a value of 4'b1000
  • dest_id
  • src_id
  • ttype is assigned a value of 4'b0000 for reads and a value of 4'b0001 for writes
  • rdsize/wrsize field is fixed at 4'b1000, because only 4-byte reads and writes are supported
  • source_tid
  • hop_count
  • config_offset is generated by using the values programmed in the Tx Maintenance Address Translation Window registers.
  • wdptr

Each window is enabled if the window enable (WEN) bit of the Tx Maintenance Window n Mask register is set. Each window is defined by the following registers:

  • A base register: Tx Maintenance Mapping Window n Base
  • A mask register: Tx Maintenance Mapping Window n Mask
  • An offset register: Tx Maintenance Mapping Window n Offset
  • A control register: Tx Maintenance Mapping Window n Control

For each defined and enabled window, the Avalon® -MM address's least significant bits are masked out by the window mask and the resulting address is compared to the window base. If the addresses match, config_offset is created based on the following equation:

If (mnt_s_address[23:1] & mask[25:3]) == base[25:3]
then config_offset = (offset[23:3] & mask[23:3])|
 (mnt_s_address[21:1] & ~mask[23:3])

where:

  • mnt_s_address[23:0] is the Avalon® -MM slave interface address
  • config_offset[20:0] is the outgoing RapidIO register double-word offset
  • base[31:0] is the base address register
  • mask[31:0] is the mask register
  • offset[23:0] is the window offset register

If the address matches multiple windows, the lowest number window register set is used.

The following fields are inserted from the control register of the mapping window that matches.

  • prio
  • dest_id
  • hop_count

The tt value is determined by your selection of device ID width at the time you create this RapidIO IP core variation. The source_tid is generated internally and the wdptr is assigned the negation of mnt_s_address[0].

For a MAINTENANCE Avalon® -MM slave write, the value on the mnt_s_writedata[31:0] bus is inserted in the payload field of the MAINTENANCE write packet.