Visible to Intel only — GUID: mml1490746654244
Ixiasoft
Visible to Intel only — GUID: mml1490746654244
Ixiasoft
4.5.2.2. Maintenance Slave Processor
- 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
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.