SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
Register | XFR ID | Desc | Notes |
---|---|---|---|
R9:R2 (32 Bytes) | 30/0x1E, PRUx | FDB_Data | No access restriction. 1 Byte upto 32 Byte access |
R5:R2 (16 Bytes) | 31/0x1F, PRUx | General Pattern | No access restriction. 1 Byte upto 16 Byte access |
R10 | 30/0x1E, PRUx | AutoIndexEn, FDB_Address | Must do 2 byte R10[15:0]. Write Address rollover not supported |
R12:R10 | 32/0x20, PRUx, RTUx | Port0_Result | No access restriction |
R12:R10 | 33/0x21, PRUx, RTUx | Port1_Result | No access restriction |
R12:R10 | 34/0x22, PRUx, RTUx | Host_Result | No access restriction |
R10 | 35/0x23, PRUx | General_Results | No access restriction |
Local | Item |
---|---|
R2 | FDB0_0 |
R3 | FDB0_1 |
R4 | FDB1_0 |
R5 | FDB1_1 |
FDB Structure - HSR Disabled:
(MII_G_RT_FDB_GEN_CFG2[5] FDB_HSR_EN = 0h)
FDB = {FDB_1, FDB_0}
FDB_0 = {DA_SA3, DA_SA2, DA_SA1, DA_SA0}
FDB_1 = {FID_C2, FID, DA_SA5, DA_SA4}
FDB Structure - HSR Enabled:
(MII_G_RT_FDB_GEN_CFG2[5] FDB_HSR_EN = 1h)
FDB = {FDB_1, FDB_0}
FDB_0 = {DA_SA3, DA_SA2, DA_SA1, DA_SA0}
FDB_1 = {HSR_SEQ, DA_SA5, DA_SA4}
Only SA Lookup supports HSR_SEQ compare.
FDB RAM Address | Content | Bucket Size 2# | Bucket Size 4# | Bucket Size 8# |
---|---|---|---|---|
0 | FDB3, FDB2, FDB1, FDB0 | 1,0 | 0 | 0 |
1 | FDB7, FDB6, FDB5, FDB4 | 3,2 | 1 | 0 |
2 | FDB11, FDB10, FDB9, FDB8 | 5,4 | 2 | 1 |
3 | FDB15, FDB14, FDB13, FDB12 | 7,6 | 3 | 1 |
Location | Name | Access Type | Reset State | Description |
---|---|---|---|---|
R10[8-0] | FDB_Address | R/W | 9h | FID Index for PRU Read/Write access of the FDB. Index is direct mapping to the 16KB FDB RAM. Note: Width is 256-bits or 32Bytes 0h: 1st 32 Bytes 1h = 2nd 32 Bytes In general purpose mode, the compare always occurs R10[8] determines the Bank 0h: FDB0 (Bank0) 1h: FDB1 (Bank1) |
R10[15] | AutoIndexEn | R/W | 1h | FID Auto Increment the Index Enable. 0h: Disable Auto Increment 1h: Enable Auto Increment Each PRU Write or Read to the FDB Array will cause the FDB_Address by 1 Note: 1Byte write or a 32Byte will do the auto increment of 1 In general purpose mode, the compare always occurs after each access Note: Address rollover is not supported |
Location | Name | Access Type | Reset State | Description |
---|---|---|---|---|
R10[7-0] | FID | R | - | FID from the last VLAN_ID lookup Sticky /Persistence |
R10[15-8] | FID_C1 | R | - | FID_C1 from the last VLAN_ID lookup Sticky /Persistence. Valid when FID_C1_LUE is SET. |
R10[23-16] | DA_FID_C2 | R | - | Valid only for HSR Disabled (MII_G_RT_FDB_GEN_CFG2[5] FDB_HSR_EN = 0h) FID_C2 from the last DA FDB lookup Sticky /Persistence. Valid when DA_FID_C2_LUE is SET. |
R10[31-24] | SA_FID_C2 | R | - | Valid only for HSR Disabled (MII_G_RT_FDB_GEN_CFG2[5] FDB_HSR_EN = 0h) FID_C2 from the last SA FDB lookup Sticky /Persistence. Valid when SA_FID_C2_LUE is SET. |
R11[8-0] | DA_FDB_Address | R | - | Address of the HIT Sticky /Persistence.Valid when DA_FID_C2_LUE. Always valid even if a SA match was not found. Used for learning. Always the physical address of the FDB RAM. |
R11[9] | RESERVED | R | - | Reserved |
R11[10] | DA_FDB_Offset | R | - | Offset only valid for bucket size 2. Used to determine start of the bucket. |
R11[11] | RESERVED | R | - | Reserved |
R11[14-12] | DA_Bucket# | R | - | Returns the Bucket# 0h: (#1) 3h: (#4) ... 7h: (#8) Valid when DA_FID_C2_LUE & DA_FDB_MATCH |
R11[15] | RESERVED | R | - | Reserved |
R11[24-16] | SA_FDB_Address | R | - | Address of the HIT Sticky /Persistence. Valid when SA_FID_C2_LUE. Always valid even if a SA match was not found. Used for learning. Always the physical address of the FDB RAM. |
R11[25] | RESERVED | R | - | Reserved |
R11[26] | SA_FDB_Offset | R | - | Offset only valid for bucket size 2. Used determine start of the bucket. |
R11[27] | RESERVED | R | - | Reserved |
R11[30-28] | SA_Bucket# | R | - | Returns the Bucket# 0h: (#1) 3h: (#4) ... 7h: (#8) Valid when SA_FID_C2_LUE & SA_FDB_MATCH |
R12[0] | FID_C1_LUE | R | - | FID C1 LookUpEnd CLR ON SOF OR HOST MMR WRT SET ON After FID lookup, FID is valid and FID_C1 is valid |
R12[1] | DA_FID_C2_LUE | R | - | FID C2 LookUpEnd CLR ON Port<1/> SOF OR HOST MMR WRT SET ON After DA FDB lookup and DA, FID & FID_MASK Match. After the first Match it will stop |
R12[3] | SA_FID_C2_LUE | R | - | FID C2 LookUpEnd CLR ON Port<0/1> SOF OR HOST MMR WRT SET ON After SA FDB lookup completed |
R12[4] | SA_FDB_MATCH | R | - | CLR ON Port<0/1> SOF OR HOST MMR WRT SET ON After SA FDB lookup and SA, FID & FID_MASK Match. After the first Match it will stop |
Location | Name | Access Type | Reset State | Description |
---|---|---|---|---|
R10[0] | MATCH | R | - | Default Read Mode of FDB RAM Set, when After XOUT of new Pattern or new Address must wait for 2 clock cycles. Before you can XIN MATCH value By default, below is the compare function XOUT of new pattern(optional). XOUT of new FDB Address(optional ). Wait 2 clock cycles. GeneralPattern[gp_size:0] == FDB_RAM.Q[gp_size:0] Write Mode Set when XOUT of write data to the FDB RAM matches the GeneralPattern XOUT of new pattern(optional) XOUT of new FDB Address(optional) XOUT to new data to FDB RAM DATA to compare Wait 2 clock cycles. Before you can XIN MATCH value GeneralPattern[gp_size:0] == FDB_RAM.D[gp_size:0] gp_size is defined in FDB_GEN_CFG2 register. FDB_GEN_MODE_BYTE_EN bit field defines the FDB general mode byte compare size: from 1 Byte upto 16 Bytes The compare function is always active |
R10[1] | DONE | R | - | CLR ON Any update on GeneralPattern SET ON After the compare has completed. Note: A new compare operation will occur on: Any update on GeneralPattern Any update on FDB_Address Any Write/Read of FDB_Data |