Skip to content

ofb_mib: Register Map

Generated by tools/regmap.py from hdl/ofb_mib/regs/ofb_regs.yml, do not edit. The same description generates the VHDL package ofb_regs_pkg and the C header sw/ofb_regs.h.

Byte addresses of 32-bit registers on the AXI4-Lite port (12-bit address); unused addresses and bits read as zero. The ID register reads 0x0FB10006.

Access Meaning
RO Read only
RW Read and write
W1 Write one: command; reads as zero
W1C Sticky flag; write one to clear
WO Write only; reads as zero
RC Read only; any write to the register clears it

Registers

Address Register Description
0x000 ID Identification of the core and version of the register map
0x004 GENERICS Generics of the core
0x008 DL_CTRL Data Link control
0x00C DL_BC_INTERVAL Broadcast flow control
0x010 DL_STATUS Data Link status
0x014 DL_ERRORS Sticky error flags of the Data Link layer
0x018 DL_RETRIES Error recovery attempts
0x01C DL_CRC16_COUNT CRC-16 errors
0x020 DL_CRC8_COUNT CRC-8 errors
0x024 DL_FRAME_COUNT Frame errors
0x028 DL_SEQ_COUNT Sequence errors
0x030 VC_HAS_CREDIT Has Credit per VC
0x034 VC_INPUT_OVERFLOW Input buffer overflow per VC
0x038 VC_CREDIT_OVERFLOW FCT credit counter overflow per VC
0x03C VC_FRAMING_ERROR Framing error of the Network interface per VC
0x040 ML_STATUS Multi-Lane status
0x044 IRQ_MASK Interrupt enables
0x048 VC_BW_OVER Bandwidth over use per VC
0x04C VC_BW_UNDER Bandwidth under use per VC
0x050 VC_IDLE_LIMIT Virtual Channel Idle Time Limit
0x054 SCHED_STATUS Schedule status
0x058 ML_CTRL Multi-Lane control
0x05C ML_MISALIGNED Misaligned conditions
0x060 ECC_STATUS EDAC monitor status; any write clears the flags and the counters of all channels
0x064 ECC_SELECT EDAC channel of ECC_COUNT
0x068 ECC_COUNT EDAC counters of the channel in ECC_SELECT; any write clears them
0x06C ECC_INJECT Error injection into the next word written into the buffers of a channel
0x100 + 0x20 i LANE_CTRL Lane control
0x104 + 0x20 i LANE_STATUS Lane status
0x108 + 0x20 i LANE_EVENTS Sticky lane events
0x10C + 0x20 i LANE_REASONS Reasons received from the far end
0x110 + 0x20 i LANE_TIMEOUT_COUNT Initialisation timeouts
0x114 + 0x20 i LANE_PRBS_CTRL PRBS test of the Physical adapter (bit error rate, 8B/10B bypassed, lane without traffic)
0x118 + 0x20 i LANE_PRBS_ERRORS PRBS checker errors
0x11C + 0x20 i LANE_PRBS_WORDS PRBS checked words
0x400 + 0x10 v VC_CFG VC configuration
0x404 + 0x10 v VC_BANDWIDTH Expected bandwidth
0x408 + 0x10 v VC_SLOTS_LO Time-slots 31 to 0
0x40C + 0x10 v VC_SLOTS_HI Time-slots 63 to 32

Registers of lane i at address + i x 0x20, for NumLanes_g instances.

Quality of service registers of VC v at address + v x 0x10, for NumVc_g instances.

Fields

ID

Address 0x000: Identification of the core and version of the register map.

Bits Field Access Reset Description
31:0 ID RO 0xFB10006 0x0FB1 (OpenFibre) and register map version 6

GENERICS

Address 0x004: Generics of the core.

Bits Field Access Reset Description
11:8 NUM_LANES RO NumLanes_g Number of lanes
7:0 NUM_VC RO NumVc_g Number of virtual channels

DL_CTRL

Address 0x008: Data Link control.

Bits Field Access Reset Description
8 DATA_SCRAMBLED RW 1 Data scrambling requested from the far end (near-end capability)
1 INTERFACE_RESET W1 0 Interface Reset command; all configuration registers take their reset values
0 LINK_RESET W1 0 Link Reset command; also clears the status of the Data Link, Multi-Lane and Lane layers (the EDAC status is kept)

DL_BC_INTERVAL

Address 0x00C: Broadcast flow control.

Bits Field Access Reset Description
15:0 INTERVAL RW 0x28 Words per broadcast credit (4 / Normalised Expected Broadcast Bandwidth)

DL_STATUS

Address 0x010: Data Link status.

Bits Field Access Reset Description
8 ERB_EMPTY RO Error recovery buffer empty
6:4 WORD_ID_STATE RO Data word identification state machine
3:2 RX_ERR_STATE RO Receive error state machine: 0 Valid Positive, 1 Valid Negative, 2 Error Positive, 3 Error Negative
1:0 LINK_STATE RO Link reset state machine: 0 Configuration Reset, 1 Near-End Reset, 2 Check Far-End Reset, 3 Link Initialised

DL_ERRORS

Address 0x014: Sticky error flags of the Data Link layer.

Bits Field Access Reset Description
10 RX_ROW_OVERFLOW W1C 0 Receive row lost in the crossing to the core clock
9 FRAMING_ERROR W1C 0 Framing error of the Network interface (any VC)
8 CREDIT_OVERFLOW W1C 0 FCT credit overflow (any VC)
7 INPUT_OVERFLOW W1C 0 Input buffer overflow (any VC)
6 BC_DISCARD W1C 0 Broadcast message discarded
5 FAR_END_LINK_RESET W1C 0 Far-End Link Reset
4 PROTOCOL W1C 0 Link Reset Caused by Protocol Error
3 SEQUENCE W1C 0 Sequence error
2 FRAME W1C 0 Frame error
1 CRC8 W1C 0 CRC-8 error
0 CRC16 W1C 0 CRC-16 error

DL_RETRIES

Address 0x018: Error recovery attempts.

Bits Field Access Reset Description
31:0 COUNT RC 0 Number of error recovery attempts

DL_CRC16_COUNT

Address 0x01C: CRC-16 errors.

Bits Field Access Reset Description
15:0 COUNT RC 0 CRC-16 errors (saturating)

DL_CRC8_COUNT

Address 0x020: CRC-8 errors.

Bits Field Access Reset Description
15:0 COUNT RC 0 CRC-8 errors (saturating)

DL_FRAME_COUNT

Address 0x024: Frame errors.

Bits Field Access Reset Description
15:0 COUNT RC 0 Frame errors (saturating)

DL_SEQ_COUNT

Address 0x028: Sequence errors.

Bits Field Access Reset Description
15:0 COUNT RC 0 Sequence errors (saturating)

VC_HAS_CREDIT

Address 0x030: Has Credit per VC.

Bits Field Access Reset Description
NumVc-1:0 VC RO Has Credit of VC v in bit v

VC_INPUT_OVERFLOW

Address 0x034: Input buffer overflow per VC.

Bits Field Access Reset Description
NumVc-1:0 VC W1C 0 Input buffer overflow of VC v in bit v

VC_CREDIT_OVERFLOW

Address 0x038: FCT credit counter overflow per VC.

Bits Field Access Reset Description
NumVc-1:0 VC W1C 0 FCT credit counter overflow of VC v in bit v

VC_FRAMING_ERROR

Address 0x03C: Framing error of the Network interface per VC.

Bits Field Access Reset Description
NumVc-1:0 VC W1C 0 Framing error of VC v in bit v

ML_STATUS

Address 0x040: Multi-Lane status.

Bits Field Access Reset Description
10 BYPASS RO Multi-Lane bypass active
9:8 ALIGN_STATE RO Alignment state machine: 0 Not Ready, 1 Near-End Ready, 2 Both-Ends Ready
7:4 DATA_RECEIVING RO Data-receiving lanes
3:0 DATA_SENDING RO Data-sending lanes

IRQ_MASK

Address 0x044: Interrupt enables.

Bits Field Access Reset Description
25 ECC_SEC RW 0 Interrupt enable of the ECC SEC flag
24 ECC_DED RW 0 Interrupt enable of the ECC DED flags
19:16 LANE_EVENTS RW 0 Interrupt enable of the LANE_EVENTS bits of any lane
10:0 DL_ERRORS RW 0 Interrupt enable of the DL_ERRORS bits

VC_BW_OVER

Address 0x048: Bandwidth over use per VC.

Bits Field Access Reset Description
NumVc-1:0 VC W1C 0 Bandwidth over use of VC v in bit v

VC_BW_UNDER

Address 0x04C: Bandwidth under use per VC.

Bits Field Access Reset Description
NumVc-1:0 VC W1C 0 Bandwidth under use of VC v in bit v

VC_IDLE_LIMIT

Address 0x050: Virtual Channel Idle Time Limit.

Bits Field Access Reset Description
31:0 LIMIT RW 0x2625A Idle time limit in words (1 ms at 6.25 Gbit/s)

SCHED_STATUS

Address 0x054: Schedule status.

Bits Field Access Reset Description
5:0 TIME_SLOT RO Current time-slot

ML_CTRL

Address 0x058: Multi-Lane control.

Bits Field Access Reset Description
8 BYPASS RW 0 Multi-Lane bypass
2:0 MAX_DATA_LANES RW NumLanes_g Maximum number of data-sending lanes (taken over at link reset)

ML_MISALIGNED

Address 0x05C: Misaligned conditions.

Bits Field Access Reset Description
15:0 COUNT RC 0 Misaligned conditions in Near-End Ready or Both-Ends Ready (saturating)

ECC_STATUS

Address 0x060: EDAC monitor status; any write clears the flags and the counters of all channels.

Bits Field Access Reset Description
16 SEC RC 0 Corrected error (SEC) seen in any channel
8:0 DED RC 0 Uncorrectable error (DED) flag per EDAC channel

ECC_SELECT

Address 0x064: EDAC channel of ECC_COUNT.

Bits Field Access Reset Description
3:0 CHANNEL RW 0 EDAC channel

ECC_COUNT

Address 0x068: EDAC counters of the channel in ECC_SELECT; any write clears them.

Bits Field Access Reset Description
31:16 DED_COUNT RC 0 Uncorrectable errors (saturating)
15:0 SEC_COUNT RC 0 Corrected errors (saturating)

ECC_INJECT

Address 0x06C: Error injection into the next word written into the buffers of a channel.

Bits Field Access Reset Description
8 DOUBLE WO 0 Double error (uncorrectable) instead of a single error
3:0 CHANNEL WO 0 EDAC channel

LANE_CTRL

Address 0x100 + 0x20 i: Lane control.

Bits Field Access Reset Description
17 SERIAL_FAR_LOOPBACK RW 0 Far-end serial loopback (Physical layer)
16 SERIAL_NEAR_LOOPBACK RW 0 Near-end serial loopback (Physical layer)
15:8 STANDBY_REASON RW 0 Standby Reason sent in STANDBY words
6 RX_EN RW 1 Receive enable of the Multi-Lane layer (RxEn)
5 TX_EN RW 1 Transmit enable of the Multi-Lane layer (TxEn)
4 FAR_LOOPBACK RW 0 Far-end parallel loopback
3 NEAR_LOOPBACK RW 0 Near-end parallel loopback
2 LANE_RESET RW 0 LaneReset
1 AUTO_START RW 1 AutoStart
0 LANE_START RW 0 LaneStart

LANE_STATUS

Address 0x104 + 0x20 i: Lane status.

Bits Field Access Reset Description
23:16 FAR_CAPABILITY RO Far-end capabilities
15:8 RXERR_COUNT RO RXERR word counter
7 PRBS_LOCKED RO PRBS checker of the Physical adapter locked to the received pattern
6 BIT_SYNC RO Bit synchronisation of the Physical adapter
5 NO_SIGNAL RO No signal at the receiver
4 RX_POLARITY RO Receive polarity inverted
3:0 STATE RO Lane initialisation state

LANE_EVENTS

Address 0x108 + 0x20 i: Sticky lane events.

Bits Field Access Reset Description
3 FAR_LOST_SIGNAL W1C 0 Far end lost the signal
2 FAR_STANDBY W1C 0 Far end in standby
1 TIMEOUT W1C 0 Initialisation timeout
0 RXERR_OVERFLOW W1C 0 RXERR counter overflow

LANE_REASONS

Address 0x10C + 0x20 i: Reasons received from the far end.

Bits Field Access Reset Description
15:8 LOST_SIGNAL_REASON RO Far-end LOST_SIGNAL reason
7:0 STANDBY_REASON RO Far-end Standby Reason

LANE_TIMEOUT_COUNT

Address 0x110 + 0x20 i: Initialisation timeouts.

Bits Field Access Reset Description
15:0 COUNT RC 0 Initialisation timeouts (saturating)

LANE_PRBS_CTRL

Address 0x114 + 0x20 i: PRBS test of the Physical adapter (bit error rate, 8B/10B bypassed, lane without traffic).

Bits Field Access Reset Description
17 FORCE_ERROR W1 0 Inserts one bit error into the transmitted pattern
16 COUNT_RESET W1 0 Clears the PRBS counters and restarts the lock detection of the checker
8 HOLD RW 0 Counters stopped (consistent read of LANE_PRBS_ERRORS and LANE_PRBS_WORDS)
7:4 RX_PATTERN RW 0 Checked pattern: 0 checker off, 1 PRBS-7, 2 PRBS-9, 3 PRBS-15, 4 PRBS-23, 5 PRBS-31
3:0 TX_PATTERN RW 0 Transmitted pattern: 0 normal data, 1 PRBS-7, 2 PRBS-9, 3 PRBS-15, 4 PRBS-23, 5 PRBS-31 (other values: transceiver test patterns)

LANE_PRBS_ERRORS

Address 0x118 + 0x20 i: PRBS checker errors.

Bits Field Access Reset Description
31:0 COUNT RO 0 Received words with at least one bit error while the checker is on (saturating)

LANE_PRBS_WORDS

Address 0x11C + 0x20 i: PRBS checked words.

Bits Field Access Reset Description
31:0 COUNT RO 0 Words checked while the checker is on, in units of 65536 words of 40 bits (saturating)

VC_CFG

Address 0x400 + 0x10 v: VC configuration.

Bits Field Access Reset Description
21:16 VN RW v Virtual network number (VC 0: always 0)
8 CONTINUOUS RW 0 Continuous mode
3:0 PRIORITY RW NumPrio_g-1 Priority level (0 highest)

VC_BANDWIDTH

Address 0x404 + 0x10 v: Expected bandwidth.

Bits Field Access Reset Description
15:0 FACTOR RW 0x0A00 (VC 0), 0xFFFF 1 / Normalised Expected Bandwidth, 8.8 fixed point (0x0100: 100 %, 0x0A00: 10 %, 0: no bandwidth)

VC_SLOTS_LO

Address 0x408 + 0x10 v: Time-slots 31 to 0.

Bits Field Access Reset Description
31:0 SLOTS RW 0xFFFFFFFF Allocated time-slots 31 to 0

VC_SLOTS_HI

Address 0x40C + 0x10 v: Time-slots 63 to 32.

Bits Field Access Reset Description
31:0 SLOTS RW 0xFFFFFFFF Allocated time-slots 63 to 32