HotRIO Sideband Master Sub-Block ================================ The HotRIO Sideband Master Sub-Block is a sideband-interface sub-block that provides the microcontroller with access to the sideband communication channel of a HotRIO Master module. This module will stem from a HotRIO Master communication-interface, although not every HotRIO Master may be associated with a sideband interface This interface is the way the microcontroller can interact with the sideband channel by writting and reading from/to the FIFOs of the sideband channel. As described in the corresponding section, the position of this sub-block depends on the ordering of preceding blocks and on the size of the Hardware Interfaces block. Consequently, the base address of this sub-block is parameter-dependent. In this document, all register addresses are specified relative to an offset. Sub-Block header ---------------- The sub-block starts with a constant (CONST) header containing: * an 8-bit identifier for this sub-block type; and * an 8-bit field indicating optional features available in this sub-block. For this sub-block, no optional features are defined; therefore, the feature field is reserved. The sub-block ID is ``1``. Status register --------------- The HotRIO Master Sideband Sub-Block provides a status register with diagnostic indicators that describe the current state of the sideband channel. This register contains flags that indicate whether the channel is available for communication, whether the RX FIFO is full (and therefore must be serviced by the microcontroller), and the current master address. Any change in sideband status observed through this register shall be signaled by asserting the **Sideband-interface status flag** in the **Interrupt register**. Interface --------- The HotRIO Master sideband channel interface to the microcontroller consists of four registers. Two FIFOs are managed through these registers: one FIFO for the RX direction and one FIFO for the TX direction. The microcontroller shall read from the RX FIFO and write to the TX FIFO. To service the FIFOs, the microcontroller accesses each FIFO through a single register that acts as the FIFO access point. By issuing a "read/write with no increment" operation, the register tree performs multiple read or write operations on the same register address, thereby transferring multiple bytes to or from the selected FIFO. To determine how much data can be read from or written to the FIFOs, the number of available bytes is provided in a dedicated register associated with each FIFO. The sideband interface register map is as follows: Diagnostics ----------- .. regtreedoc:: :file: ./source/design/Architecture/SidebandSubBlocks/HotRIOSidebandMasterSubBlock.json