tru_wishbone_slave

Topology Resolution Unit (TRU)

Contents:

1. Memory map summary
2. HDL symbol
3. Register description
3.1. TRU Global Control Register
3.2. TRU Global Status Register 0
3.3. TRU Global Status Register 1
3.4. Pattern Control Register
3.5. Link Aggregation Control Register
3.6. Transition Control General Register
3.7. Transition Control Port Register
3.8. Transition Status Register
3.9. Real Time Reconfiguration Control Register
3.10. TRU Table Register 0
3.11. TRU Table Register 1
3.12. TRU Table Register 2
3.13. TRU Table Register 3
3.14. TRU Table Register 4
3.15. TRU Table Register 5
3.16. Debug port select
3.17. Packet Injection Debug Register
3.18. Packet Filter Debug Register
3.19. RT Reconfig Debug Register

1. Memory map summary

H/W Address Type Name VHDL/Verilog prefix C prefix
0x0 REG TRU Global Control Register tru_gcr GCR
0x1 REG TRU Global Status Register 0 tru_gsr0 GSR0
0x2 REG TRU Global Status Register 1 tru_gsr1 GSR1
0x3 REG Pattern Control Register tru_mcr MCR
0x4 REG Link Aggregation Control Register tru_lacr LACR
0x5 REG Transition Control General Register tru_tcgr TCGR
0x6 REG Transition Control Port Register tru_tcpr TCPR
0x7 REG Transition Status Register tru_tsr TSR
0x8 REG Real Time Reconfiguration Control Register tru_rtrcr RTRCR
0x9 REG TRU Table Register 0 tru_ttr0 TTR0
0xa REG TRU Table Register 1 tru_ttr1 TTR1
0xb REG TRU Table Register 2 tru_ttr2 TTR2
0xc REG TRU Table Register 3 tru_ttr3 TTR3
0xd REG TRU Table Register 4 tru_ttr4 TTR4
0xe REG TRU Table Register 5 tru_ttr5 TTR5
0xf REG Debug port select tru_dps DPS
0x10 REG Packet Injection Debug Register tru_pidr PIDR
0x11 REG Packet Filter Debug Register tru_pfdr PFDR
0x12 REG RT Reconfig Debug Register tru_ptrdr PTRDR

2. HDL symbol

rst_n_i TRU Global Control Register:
wb_clk_i tru_gcr_g_ena_o
wb_addr_i[4:0] tru_gcr_tru_bank_o
wb_data_i[31:0] tru_gcr_rx_frame_reset_o[23:0]
wb_data_o[31:0]  
wb_cyc_i TRU Global Status Register 0:
wb_sel_i[3:0] tru_gsr0_stat_bank_i
wb_stb_i tru_gsr0_stat_stb_up_i[23:0]
wb_we_i  
wb_ack_o TRU Global Status Register 1:
tru_gsr1_stat_up_i[31:0]
 
Pattern Control Register:
tru_mcr_pattern_mode_rep_o[3:0]
tru_mcr_pattern_mode_add_o[3:0]
 
Link Aggregation Control Register:
tru_lacr_agg_df_hp_id_o[3:0]
tru_lacr_agg_df_br_id_o[3:0]
tru_lacr_agg_df_un_id_o[3:0]
 
Transition Control General Register:
tru_tcgr_trans_ena_o
tru_tcgr_trans_clear_o
tru_tcgr_trans_mode_o[2:0]
tru_tcgr_trans_rx_id_o[2:0]
tru_tcgr_trans_prio_o[2:0]
tru_tcgr_trans_prio_mode_o
tru_tcgr_trans_time_diff_o[15:0]
 
Transition Control Port Register:
tru_tcpr_trans_port_a_id_o[5:0]
tru_tcpr_trans_port_a_valid_o
tru_tcpr_trans_port_b_id_o[5:0]
tru_tcpr_trans_port_b_valid_o
 
Transition Status Register:
tru_tsr_trans_stat_active_i
tru_tsr_trans_stat_finished_i
 
Real Time Reconfiguration Control Register:
tru_rtrcr_rtr_ena_o
tru_rtrcr_rtr_reset_o
tru_rtrcr_rtr_mode_o[3:0]
tru_rtrcr_rtr_rx_o[3:0]
tru_rtrcr_rtr_tx_o[3:0]
 
TRU Table Register 0:
tru_ttr0_fid_o[7:0]
tru_ttr0_sub_fid_o[7:0]
tru_ttr0_update_o
tru_ttr0_mask_valid_o
tru_ttr0_patrn_mode_o[3:0]
 
TRU Table Register 1:
tru_ttr1_ports_ingress_o[31:0]
 
TRU Table Register 2:
tru_ttr2_ports_egress_o[31:0]
 
TRU Table Register 3:
tru_ttr3_ports_mask_o[31:0]
 
TRU Table Register 4:
tru_ttr4_patrn_match_o[31:0]
 
TRU Table Register 5:
tru_ttr5_patrn_mask_o[31:0]
 
Debug port select:
tru_dps_pid_o[7:0]
 
Packet Injection Debug Register:
tru_pidr_inject_o
tru_pidr_psel_o[2:0]
tru_pidr_uval_o[15:0]
tru_pidr_iready_i
 
Packet Filter Debug Register:
tru_pfdr_clr_o
tru_pfdr_class_i[7:0]
tru_pfdr_cnt_i[15:0]
 
RT Reconfig Debug Register:
tru_ptrdr_ging_mask_i[31:0]

3. Register description

3.1. TRU Global Control Register

HW prefix: tru_gcr
HW address: 0x0
C prefix: GCR
C offset: 0x0

Control register containing global (port-independent) settings of the TRU.

31 30 29 28 27 26 25 24
RX_FRAME_RESET[23:16]
23 22 21 20 19 18 17 16
RX_FRAME_RESET[15:8]
15 14 13 12 11 10 9 8
RX_FRAME_RESET[7:0]
7 6 5 4 3 2 1 0
- - - - - - TRU_BANK G_ENA

3.2. TRU Global Status Register 0

HW prefix: tru_gsr0
HW address: 0x1
C prefix: GSR0
C offset: 0x4

Provides status of TRU actions

31 30 29 28 27 26 25 24
STAT_STB_UP[23:16]
23 22 21 20 19 18 17 16
STAT_STB_UP[15:8]
15 14 13 12 11 10 9 8
STAT_STB_UP[7:0]
7 6 5 4 3 2 1 0
- - - - - - - STAT_BANK

3.3. TRU Global Status Register 1

HW prefix: tru_gsr1
HW address: 0x2
C prefix: GSR1
C offset: 0x8

Provides status of TRU actions

31 30 29 28 27 26 25 24
STAT_UP[31:24]
23 22 21 20 19 18 17 16
STAT_UP[23:16]
15 14 13 12 11 10 9 8
STAT_UP[15:8]
7 6 5 4 3 2 1 0
STAT_UP[7:0]

3.4. Pattern Control Register

HW prefix: tru_mcr
HW address: 0x3
C prefix: MCR
C offset: 0xc

Defines matching pattern mode/configuration for quick port reconfiguration

31 30 29 28 27 26 25 24
- - - - - - - -
23 22 21 20 19 18 17 16
- - - - - - - -
15 14 13 12 11 10 9 8
- - - - PATTERN_MODE_ADD[3:0]
7 6 5 4 3 2 1 0
- - - - PATTERN_MODE_REP[3:0]

3.5. Link Aggregation Control Register

HW prefix: tru_lacr
HW address: 0x4
C prefix: LACR
C offset: 0x10

Enables configuration of Link Aggregation distribution functions for each kind of traffic.
Available functions:
0: based on pclass detected by Packet Filter (need proper pFilter config)
1: based on destination MAC address (bits 6 and 7)
2: based on source MAC address (bits 6 and 7)

31 30 29 28 27 26 25 24
- - - - - - - -
23 22 21 20 19 18 17 16
- - - - AGG_DF_UN_ID[3:0]
15 14 13 12 11 10 9 8
- - - - AGG_DF_BR_ID[3:0]
7 6 5 4 3 2 1 0
- - - - AGG_DF_HP_ID[3:0]

3.6. Transition Control General Register

HW prefix: tru_tcgr
HW address: 0x5
C prefix: TCGR
C offset: 0x14

Defines transition mode/configuration for slow port reconfiguration - decides
when two swap banks such that HP packets are not lost.

31 30 29 28 27 26 25 24
TRANS_TIME_DIFF[15:8]
23 22 21 20 19 18 17 16
TRANS_TIME_DIFF[7:0]
15 14 13 12 11 10 9 8
TRANS_PRIO_MODE TRANS_PRIO[2:0] - TRANS_RX_ID[2:0]
7 6 5 4 3 2 1 0
- TRANS_MODE[2:0] - - TRANS_CLEAR TRANS_ENA

3.7. Transition Control Port Register

HW prefix: tru_tcpr
HW address: 0x6
C prefix: TCPR
C offset: 0x18

Defines transition mode/configuration for slow port reconfiguration - decides
when two swap banks such that HP packets are not lost.

31 30 29 28 27 26 25 24
- - - - - - - TRANS_PORT_B_VALID
23 22 21 20 19 18 17 16
- - TRANS_PORT_B_ID[5:0]
15 14 13 12 11 10 9 8
- - - - - - - TRANS_PORT_A_VALID
7 6 5 4 3 2 1 0
- - TRANS_PORT_A_ID[5:0]

3.8. Transition Status Register

HW prefix: tru_tsr
HW address: 0x7
C prefix: TSR
C offset: 0x1c

Provides information about the state of transition (if any).

31 30 29 28 27 26 25 24
- - - - - - - -
23 22 21 20 19 18 17 16
- - - - - - - -
15 14 13 12 11 10 9 8
- - - - - - - -
7 6 5 4 3 2 1 0
- - - - - - TRANS_STAT_FINISHED TRANS_STAT_ACTIVE

3.9. Real Time Reconfiguration Control Register

HW prefix: tru_rtrcr
HW address: 0x8
C prefix: RTRCR
C offset: 0x20

Controls Real Time Handler.

31 30 29 28 27 26 25 24
- - - - RTR_TX[3:0]
23 22 21 20 19 18 17 16
- - - - RTR_RX[3:0]
15 14 13 12 11 10 9 8
- - - - RTR_MODE[3:0]
7 6 5 4 3 2 1 0
- - - - - - RTR_RESET RTR_ENA

3.10. TRU Table Register 0

HW prefix: tru_ttr0
HW address: 0x9
C prefix: TTR0
C offset: 0x24
31 30 29 28 27 26 25 24
- - - - PATRN_MODE[3:0]
23 22 21 20 19 18 17 16
- - - - - - MASK_VALID UPDATE
15 14 13 12 11 10 9 8
SUB_FID[7:0]
7 6 5 4 3 2 1 0
FID[7:0]

3.11. TRU Table Register 1

HW prefix: tru_ttr1
HW address: 0xa
C prefix: TTR1
C offset: 0x28
31 30 29 28 27 26 25 24
PORTS_INGRESS[31:24]
23 22 21 20 19 18 17 16
PORTS_INGRESS[23:16]
15 14 13 12 11 10 9 8
PORTS_INGRESS[15:8]
7 6 5 4 3 2 1 0
PORTS_INGRESS[7:0]

3.12. TRU Table Register 2

HW prefix: tru_ttr2
HW address: 0xb
C prefix: TTR2
C offset: 0x2c
31 30 29 28 27 26 25 24
PORTS_EGRESS[31:24]
23 22 21 20 19 18 17 16
PORTS_EGRESS[23:16]
15 14 13 12 11 10 9 8
PORTS_EGRESS[15:8]
7 6 5 4 3 2 1 0
PORTS_EGRESS[7:0]

3.13. TRU Table Register 3

HW prefix: tru_ttr3
HW address: 0xc
C prefix: TTR3
C offset: 0x30
31 30 29 28 27 26 25 24
PORTS_MASK[31:24]
23 22 21 20 19 18 17 16
PORTS_MASK[23:16]
15 14 13 12 11 10 9 8
PORTS_MASK[15:8]
7 6 5 4 3 2 1 0
PORTS_MASK[7:0]

3.14. TRU Table Register 4

HW prefix: tru_ttr4
HW address: 0xd
C prefix: TTR4
C offset: 0x34
31 30 29 28 27 26 25 24
PATRN_MATCH[31:24]
23 22 21 20 19 18 17 16
PATRN_MATCH[23:16]
15 14 13 12 11 10 9 8
PATRN_MATCH[15:8]
7 6 5 4 3 2 1 0
PATRN_MATCH[7:0]

3.15. TRU Table Register 5

HW prefix: tru_ttr5
HW address: 0xe
C prefix: TTR5
C offset: 0x38
31 30 29 28 27 26 25 24
PATRN_MASK[31:24]
23 22 21 20 19 18 17 16
PATRN_MASK[23:16]
15 14 13 12 11 10 9 8
PATRN_MASK[15:8]
7 6 5 4 3 2 1 0
PATRN_MASK[7:0]

3.16. Debug port select

HW prefix: tru_dps
HW address: 0xf
C prefix: DPS
C offset: 0x3c

Select port number for applying debugging measures in boht:
Packet Injection Debug Register
Packet Filter Debug Register

31 30 29 28 27 26 25 24
- - - - - - - -
23 22 21 20 19 18 17 16
- - - - - - - -
15 14 13 12 11 10 9 8
- - - - - - - -
7 6 5 4 3 2 1 0
PID[7:0]

3.17. Packet Injection Debug Register

HW prefix: tru_pidr
HW address: 0x10
C prefix: PIDR
C offset: 0x40

Used for debugging (ctrl/status) HW packet injection of a selected port

31 30 29 28 27 26 25 24
- - - - - - - IREADY
23 22 21 20 19 18 17 16
UVAL[15:8]
15 14 13 12 11 10 9 8
UVAL[7:0]
7 6 5 4 3 2 1 0
- - - - PSEL[2:0] INJECT

3.18. Packet Filter Debug Register

HW prefix: tru_pfdr
HW address: 0x11
C prefix: PFDR
C offset: 0x44

This register stores information about detected packages (class, number)

31 30 29 28 27 26 25 24
CNT[15:8]
23 22 21 20 19 18 17 16
CNT[7:0]
15 14 13 12 11 10 9 8
CLASS[7:0]
7 6 5 4 3 2 1 0
- - - - - - - CLR

3.19. RT Reconfig Debug Register

HW prefix: tru_ptrdr
HW address: 0x12
C prefix: PTRDR
C offset: 0x48

This register stores information about detected packages (class, number)

31 30 29 28 27 26 25 24
GING_MASK[31:24]
23 22 21 20 19 18 17 16
GING_MASK[23:16]
15 14 13 12 11 10 9 8
GING_MASK[15:8]
7 6 5 4 3 2 1 0
GING_MASK[7:0]