RapidIO Intel FPGA IP User Guide

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

6. Software Interface

The RapidIO IP core supports the following sets of registers that control the RapidIO IP core or query its status:
  • Standard RapidIO capability registers—CARs
  • Standard RapidIO command and status registers—CSRs
  • Extended features registers
  • Implementation defined registers
  • Doorbell specific registers

Some of these register sets are supported by specific RapidIO IP core layers only. This chapter organizes the registers by the layers they support. The Physical layer registers are described first, followed by the Transport and Logical layers registers.

All of the registers are 32 bits wide and are shown as hexadecimal values. The registers can be accessed only on a 32-bit (4-byte) basis. The addressing for the registers therefore increments by units of 4.

Note: Reserved fields are labeled in the register tables. These fields are reserved for future use and your design should not write to or rely on a specific value being found in any reserved field or bit.

The following sets of registers are accessible through the System Maintenance Avalon® -MM slave interface.

  • CARs—Capability registers
  • CSRs—Command and status registers
  • Extended features registers
  • Implementation defined registers

A remote device can access these registers only by issuing read/write MAINTENANCE operations destined for the local device. The local device must route these transactions, if they are addressing these registers, from the Maintenance master interface to the System Maintenance slave interface. Routing can be done by a Platform Designer (Standard) system or by a user-provided design.

The doorbell registers can be accessed through the Doorbell Avalon® -MM slave interface. These registers are implemented only if you turn on Doorbell Tx enable or Doorbell Rx enable in the RapidIO parameter editor. If you turn on only Doorbell Rx enable, only the Rx-related doorbell registers are implemented. If you turn on only Doorbell Tx enable, only the Tx-related doorbell registers are implemented.

Table 54.  Register Access Codes
Code Description
RW Read/write
RO Read-only
RW1C Read/write 1 to clear
RW0S Read/write 0 to set
RTC Read to clear
RTS Read to set
RTCW Read to clear/write
RTSW Read to set/write
RWTC Read/write any value to clear
RWTS Read/write any value to set
RWSC Read/write self-clearing
RWSS Read/write self-setting
UR0 Unused bits/read as 0
UR1 Unused bits/read as 1
Table 55.  Memory Map
Address Name Used by
Capability Registers (CARs)
0x0 Device Identity These CARs are not used by any of the internal modules. They do not affect the functionality of the RapidIO IP core. These registers are all Read-Only. Their values are set using the RapidIO parameter editor when generating the IP core. These registers inform either a local processor or a processor on a remote end about the IP core's capabilities.
0x4 Device Information
0x8 Assembly Identity
0xC Assembly Information
0x10 Processing Element Features
0x14 Switch Port Information
0x18 Source Operations
0x1C Destination Operations
Command and Status Registers (CSRs)
0x4C Processing Element Logical layer Control Input/Output Slave Logical layer
0x58 Local Configuration Space Base Address 0 Input/Output Master Logical layer
0x5C Local Configuration Space Base Address 1 Input/Output Master Logical layer
0x60 Base Device ID Transport layer for routing or filtering. Input/Output Slave Logical layer
0x68 Host Base Device ID Lock Maintenance module
0x6C Component Tag Accessed via the Maintenance module
Extended Features Space
0x100 Register Block Header Physical layer
0x104–0x11C Reserved
0x120 Port Link Time-out Control Logical layer modules
0x124 Port Response Time-out Control Logical layer modules
0x13C Port General Control Physical layer
0x148 Port 0 Local AckID Physical layer
0x158 Port 0 Error and Status Physical layer
0x15C Port 0 Control Physical layer
Implementation-Defined Space
0x10000 Reserved
0x10004
0x10008
0x1000C–0x1001C
0x10020
0x10024
0x10028
0x1002C-0x1007C
0x10080 Maintenance Interrupt Maintenance module
0x10084 Maintenance Interrupt Enable Maintenance module
0x10088 Rx Maintenance Mapping Maintenance module
0x1008C–0x100FC Reserved
0x10100 Tx Maintenance Window 0 Base Maintenance module
0x10104 Tx Maintenance Window 0 Mask Maintenance module
0x10108 Tx Maintenance Window 0 Offset Maintenance module
0x1010C Tx Maintenance Window 0 Control Maintenance module
0x10110–0x101FC Tx Maintenance Windows 1-15 Maintenance module
0x10200 Tx Port Write Control Maintenance module
0x10204 Tx Port Write Status Maintenance module
0x10210–0x1024C Tx Port Write Buffer Maintenance module
0x10250 Rx Port Write Control Maintenance module
0x10254 Rx Port Write Status Maintenance module
0x10260–0x1029C Rx Port Write Buffer Maintenance module
0x102A0–0x102FC Reserved
0x10300 I/O Master Window 0 Base Input/Output Master Logical layer
0x10304 I/O Master Window 0 Mask Input/Output Master Logical layer
0x10308 I/O Master Window 0 Offset Input/Output Master Logical layer
0x1030C Reserved
0x10310–0x103FC I/O Master Windows 1–15 Input/Output Master Logical layer
0x10400 I/O Slave Window 0 Base Input/Output Slave Logical layer
0x10404 I/O Slave Window 0 Mask Input/Output Slave Logical layer
0x10408 I/O Slave Window 0 Offset Input/Output Slave Logical layer
0x1040C I/O Slave Window 0 Control Input/Output Slave Logical layer
0x10410-0x104FC I/O Slave Windows 1–15 Input/Output Slave Logical layer
0x10500 I/O Slave Interrupt Input/Output Slave Logical layer
0x10504 I/O Slave Interrupt Enable Input/Output Slave Logical layer
0x10508 I/O Slave Pending NWRITE_R Transactions Input/Output Slave Logical Layer
0x1050C I/O Slave Avalon® -MM Write Transactions Input/Output Slave Logical layer and Doorbell module
0x10510 I/O Slave RapidIO Write Requests Input/Output Slave Logical layer and Doorbell module
0x10514–0x105FC Reserved
0x10600 Rx Transport Control Transport layer
0x10604–0x107FC Reserved
0x10800 Logical/Transport Layer Error Detect Logical/Transport layer
0x10804 Logical/Transport Layer Error Enable Logical/Transport layer
0x10808 Logical/Transport Layer Address Logical/Transport layer
0x1080C Logical/Transport Layer Device ID Capture Logical/Transport layer
0x10810 Logical/Transport Layer Control Capture Logical/Transport layer