Register access for SJA1110 Switch

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Register access for SJA1110 Switch

10,748 Views
Atkinson
Contributor V

Hello @PavelL, @chenyin_h 

I would like to access the registers for accessing the L2 Table, VLAN Table via Dynamic 

Address Name Access Reset Description
8Ch DYN_BE_LKP_
ENTRY0
R/W 0h
(FFFFFFFEh)
90h DYN_BE_LKP_
ENTRY1
R/W 0h
94h DYN_BE_LKP_
ENTRY2
R/W 0h
98h DYN_BE_LKP_
ENTRY3
R/W 0h
9Ch DYN_BE_LKP_
ENTRY4
R/W 0h
A0h DYN_BE_LKP_
ENTRY5
R/W 0h
A4h DYN_BE_LKP_CTRL R/W 0h
(FF800000h)

How to access the register to configure change it ?
How to change the values of the registers during run Time??
Using Programming Interface we can change it Dynamically (as mentioned in Document) is there any external tool need to configure ??

Regards 
Atkinson 

Tags (1)
0 Kudos
Reply
28 Replies

2,006 Views
Atkinson
Contributor V

Hi @PavelL 

The below is the code which create a Dynamic entry for CB_Sequence Generation and Recovery Table can you check whether the entry is in a Correct order if at all any changes in the order of CB_SGIR_ENtry[0],[1],[2],[3],[4] can you provide me the changes of the order because its not mentioned cb_sg_ir.py 

And one more thing cb_sg_ir.py file there is not order for creating a entry its like a parsing of data getentry, setentry can you confirm me the order of array which I have created to make a dynamic entry 

what are the changes need to be mentioned in below code can you provide me the valid changes that would be more helpful

int WriteCB_SG_IR(uint32_t index) {
 
int cs = 0;
uint32_t CBSGIR_OFFSET     = 142;
uint32_t CBSGIR_CTRL_OFFSET = 147;
const uint32_t SWREG_BASE    = 0;
 
uint32_t CB_SG_IR_ADDRESS      = SWREG_BASE + CBSGIR_OFFSET;
uint32_t CB_SG_IR_ADDRESS_CTL  = SWREG_BASE + CBSGIR_CTRL_OFFSET;
 
if (index >= 64) {
        return -1;
    }
 
    uint32_t RTAGOFFSET_0 = 0;
    uint32_t RTAGOFFSET_1 = 0;
    uint32_t RTAGOFFSET_2 = 0;
    uint32_t RTAGOFFSET_3 = 0;
    uint32_t RTAGOFFSET_4 = 0;
    uint32_t RTAGOFFSET_5 = 0;
    uint32_t RTAGOFFSET_6 = 0;
    uint32_t RTAGOFFSET_7 = 0;
    uint32_t RTAGOFFSET_8 = 0;
    uint32_t RTAGOFFSET_9 = 0;
    uint32_t RTAGOFFSET_10 = 0;
 
    uint32_t REPLACE_PORTS = 0;
    uint32_t TAG_PORTS = 0x006;
    uint32_t SEQ_REC_PORTS = 0;
    uint32_t IND_REC_PORTS = 0;
    uint32_t IND_REC_TIMEOUT = 0;
    uint32_t SEQRECOFFSET = 0;
    uint32_t GENSEQNUM = 0x1;
    uint32_t SEQGENRST = 0;
 
    uint32_t VALID = 1U;
    uint32_t RDWRSET = 1U;
    uint32_t TARGETEDTBL = 0;
 
    uint32_t CB_SG_IR_Entry[CB_SGIR_ADDR_RANGE] = {0};
 
    CB_SG_IR_Entry[0] =(((GENSEQNUM & 0x1) << (1 % 32)) +
        ((SEQRECOFFSET & 0x1F) << (2 % 32)) +
        ((IND_REC_TIMEOUT & 0xFFFF) << (7 % 32)));
 
    CB_SG_IR_Entry[1] =
        ((SEQ_REC_PORTS & 0x7FF) << 0) |
        ((IND_REC_PORTS & 0x7FF) << 11);
 
    CB_SG_IR_Entry[2] =
        (((TAG_PORTS & 0x7FF) << (0 % 32)) +
            ((REPLACE_PORTS & 0x7FF) << (11 % 32)));
 
    CB_SG_IR_Entry[3] =
        (((RTAGOFFSET_0 & 0x3F) << (0 % 32)) +
            ((RTAGOFFSET_1 & 0x3F) << (6 % 32)) +
            ((RTAGOFFSET_2 & 0x3F) << (12 % 32)) +
            ((RTAGOFFSET_3 & 0x3F) << (18 % 32)) +
            ((RTAGOFFSET_4 & 0x3F) << (24 % 32)));
 
    CB_SG_IR_Entry[4] =
        (((RTAGOFFSET_5 & 0x3F) << (0 % 32)) +
            ((RTAGOFFSET_6 & 0x3F) << (6 % 32)) +
            ((RTAGOFFSET_7 & 0x3F) << (12 % 32)) +
            ((RTAGOFFSET_8 & 0x3F) << (18 % 32)) +
            ((RTAGOFFSET_9 & 0x3F) << (24 % 32)) +
            ((RTAGOFFSET_10 & 0x3F) << (30 % 32)));
 
    uint32_t status = 0;
 
    status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    uint8_t counter = 0;
    while ((status & (1 << 31)) != 0){
       counter++;
       status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    }
 
    for (int i = 0; i < CB_SGIR_ADDR_RANGE; i++) {
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS + i, CB_SG_IR_Entry[i]);
    if (ret != E_OK) {
    return -2;
    }
 
    uint32_t readBack = 0;
    ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS + i, &readBack);
    if (ret != E_OK || readBack != CB_SG_IR_Entry[i]) {
    return -3;
    }
    }
 
    uint32_t CTRL_VALUE = (VALID << 31) |
                          (RDWRSET << 30) |
                          (SEQGENRST << 9) |
                          (TARGETEDTBL << 6) |
                          (index & 0x3F);
 
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS_CTL, CTRL_VALUE);
        if (ret != E_OK) {
            return -4;
        }
 
        do {
            ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, &status);
            if (ret != E_OK) {
                return -5;
            }
        } while ((status >> 31) & 1U);
 
 
    return 0;  // Success
}
Tags (1)
0 Kudos
Reply

2,000 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

Based on the official layout of the CB Sequence Generation and Recovery Table (Table 1148) and the Python implementation (cb_sg_ir.py), your field mapping inside each word is correct — but the order of the words in the array CB_SG_IR_Entry[] needs to be reversed.

The correct order is:

Word Index Fields
entry[0] IND_REC_TIMEOUT, SEQRECOFFSET, GENSEQNUM
entry[1] SEQ_REC_PORTS, IND_REC_PORTS
entry[2] TAG_PORTS, REPLACE_PORTS
entry[3] RTAGOFFSET_0 to RTAGOFFSET_4
entry[4] RTAGOFFSET_5 to RTAGOFFSET_10

 

Best regards,

Pavel

0 Kudos
Reply

1,997 Views
Atkinson
Contributor V

Hi @PavelL 

I tried changing the entry order as you mentioned but there is no positive response in creation of CB_Sequence Generation and Recovery Table 
so is that any other changes need to be made in the code ?

I am trying to bring Dynamic L2 Lookup entry which is working fine but the CB_Sequence and Generation and Recovery table is not reflecting in a way that i am unable to tag Port 1 & Port 2 and also GENSEQNUM is not turning up 

so what could be the other cause of the issue can you double confirm me whether any other changes need to be made or not 

int WriteCB_SG_IR(uint32_t index) {
 
int cs = 0;
uint32_t CBSGIR_OFFSET     = 142;
uint32_t CBSGIR_CTRL_OFFSET = 147;
const uint32_t SWREG_BASE    = 0;
 
uint32_t CB_SG_IR_ADDRESS      = SWREG_BASE + CBSGIR_OFFSET;
uint32_t CB_SG_IR_ADDRESS_CTL  = SWREG_BASE + CBSGIR_CTRL_OFFSET;
 
if (index >= 64) {
        return -1;
    }
 
    uint32_t RTAGOFFSET_0 = 0;
    uint32_t RTAGOFFSET_1 = 0;
    uint32_t RTAGOFFSET_2 = 0;
    uint32_t RTAGOFFSET_3 = 0;
    uint32_t RTAGOFFSET_4 = 0;
    uint32_t RTAGOFFSET_5 = 0;
    uint32_t RTAGOFFSET_6 = 0;
    uint32_t RTAGOFFSET_7 = 0;
    uint32_t RTAGOFFSET_8 = 0;
    uint32_t RTAGOFFSET_9 = 0;
    uint32_t RTAGOFFSET_10 = 0;
 
    uint32_t REPLACE_PORTS = 0;
    uint32_t TAG_PORTS = 0x006;
    uint32_t SEQ_REC_PORTS = 0;
    uint32_t IND_REC_PORTS = 0;
    uint32_t IND_REC_TIMEOUT = 0;
    uint32_t SEQRECOFFSET = 0;
    uint32_t GENSEQNUM = 0x1;
    uint32_t SEQGENRST = 0;
 
    uint32_t VALID = 1U;
    uint32_t RDWRSET = 1U;
    uint32_t TARGETEDTBL = 0;
 
    uint32_t CB_SG_IR_Entry[CB_SGIR_ADDR_RANGE] = {0};
 
    CB_SG_IR_Entry[0] = (((IND_REC_TIMEOUT & 0xFFFF) << (1 % 32)) +
                        ((SEQRECOFFSET & 0x1F) << (17 % 32)) +
                        ((GENSEQNUM & 0x1) << (22 % 32)));
 
    CB_SG_IR_Entry[1] =
        ((SEQ_REC_PORTS & 0x7FF) << 0) |
        ((IND_REC_PORTS & 0x7FF) << 11);
 
    CB_SG_IR_Entry[2] =
        (((TAG_PORTS & 0x7FF) << (0 % 32)) +
            ((REPLACE_PORTS & 0x7FF) << (11 % 32)));
 
    CB_SG_IR_Entry[3] =
        (((RTAGOFFSET_0 & 0x3F) << (0 % 32)) +
            ((RTAGOFFSET_1 & 0x3F) << (6 % 32)) +
            ((RTAGOFFSET_2 & 0x3F) << (12 % 32)) +
            ((RTAGOFFSET_3 & 0x3F) << (18 % 32)) +
            ((RTAGOFFSET_4 & 0x3F) << (24 % 32)));
 
    CB_SG_IR_Entry[4] =
        (((RTAGOFFSET_5 & 0x3F) << (0 % 32)) +
            ((RTAGOFFSET_6 & 0x3F) << (6 % 32)) +
            ((RTAGOFFSET_7 & 0x3F) << (12 % 32)) +
            ((RTAGOFFSET_8 & 0x3F) << (18 % 32)) +
            ((RTAGOFFSET_9 & 0x3F) << (24 % 32)) +
            ((RTAGOFFSET_10 & 0x3F) << (30 % 32)));
 
    uint32_t status = 0;
 
    status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    uint8_t counter = 0;
    while ((status & (1 << 31)) != 0){
       counter++;
       status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    }
 
    for (int i = 0; i < CB_SGIR_ADDR_RANGE; i++) {
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS + i, CB_SG_IR_Entry[i]);
    if (ret != E_OK) {
    return -2;
    }
 
    uint32_t readBack = 0;
    ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS + i, &readBack);
    if (ret != E_OK || readBack != CB_SG_IR_Entry[i]) {
    return -3;
    }
    }
 
    uint32_t CTRL_VALUE = (VALID << 31) |
                          (RDWRSET << 30) |
                          (SEQGENRST << 9) |
                          (TARGETEDTBL << 6) |
                          (index & 0x3F);
 
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS_CTL, CTRL_VALUE);
        if (ret != E_OK) {
            return -4;
        }
 
        do {
            ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, &status);
            if (ret != E_OK) {
                return -5;
            }
        } while ((status >> 31) & 1U);
 
 
    return 0;  // Success
}

 

Tags (1)
0 Kudos
Reply

1,993 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

I reviewed your latest code, and the structure and word order of the CB_SG_IR_Entry[] array is now correct. However, I noticed a critical issue in the bit shifts used in CB_SG_IR_Entry[0].

According to the hardware specification (Table 1148), the bit positions are:

  • GENSEQNUM: bit 28
  • SEQRECOFFSET: bits 29–33
  • IND_REC_TIMEOUT: bits 34–49

In your current code, these fields are shifted too low. Please update the line as follows:

CB_SG_IR_Entry[0] =
    ((GENSEQNUM & 0x1) << 28) |
    ((SEQRECOFFSET & 0x1F) << 29) |
    ((IND_REC_TIMEOUT & 0xFFFF) << 34);

This should ensure that the GENSEQNUM bit is correctly set and interpreted by the switch.

Also, please double-check that:

  • REPLACE_PORTS is not overriding TAG_PORTS for ports 1 and 2
  • The ports are enabled and not filtered by other tables (e.g., ingress/egress filtering)

Best regards,

Pavel

0 Kudos
Reply

1,984 Views
Atkinson
Contributor V

Hi @PavelL 

int WriteCB_SG_IR(uint32_t index) {
 
int cs = 0;
uint32_t CBSGIR_OFFSET     = 142;
uint32_t CBSGIR_CTRL_OFFSET = 147;
const uint32_t SWREG_BASE    = 0;
 
uint32_t CB_SG_IR_ADDRESS      = SWREG_BASE + CBSGIR_OFFSET;
uint32_t CB_SG_IR_ADDRESS_CTL  = SWREG_BASE + CBSGIR_CTRL_OFFSET;
 
if (index >= 64) {
        return -1;
    }
 
    uint32_t RTAGOFFSET_0 = 0;
    uint32_t RTAGOFFSET_1 = 0;
    uint32_t RTAGOFFSET_2 = 0;
    uint32_t RTAGOFFSET_3 = 0;
    uint32_t RTAGOFFSET_4 = 0;
    uint32_t RTAGOFFSET_5 = 0;
    uint32_t RTAGOFFSET_6 = 0;
    uint32_t RTAGOFFSET_7 = 0;
    uint32_t RTAGOFFSET_8 = 0;
    uint32_t RTAGOFFSET_9 = 0;
    uint32_t RTAGOFFSET_10 = 0;
 
    uint32_t REPLACE_PORTS = 0;
    uint32_t TAG_PORTS = 0x7FF;
    uint32_t SEQ_REC_PORTS = 0;
    uint32_t IND_REC_PORTS = 0;
    uint32_t IND_REC_TIMEOUT = 0;
    uint32_t SEQRECOFFSET = 0;
    uint32_t GENSEQNUM = 0x1;
    uint32_t SEQGENRST = 0;
 
    uint32_t VALID = 1U;
    uint32_t RDWRSET = 1U;
    uint32_t TARGETEDTBL = 0;
 
    uint64_t CB_SG_IR_Entry[CB_SGIR_ADDR_RANGE] = {0};
 
 
    CB_SG_IR_Entry[0] =
    ((GENSEQNUM & 0x1) << 28) |
    ((SEQRECOFFSET & 0x1F) << 29) |
    ((IND_REC_TIMEOUT & 0xFFFF) << 34);
 
    CB_SG_IR_Entry[1] =
    ((SEQ_REC_PORTS & 0x7FF) << 0) |
        ((IND_REC_PORTS & 0x7FF) << 11);
 
    CB_SG_IR_Entry[2] =
        ((TAG_PORTS & 0x7FF) << 0) |
        ((REPLACE_PORTS & 0x7FF) << 11);
 
    CB_SG_IR_Entry[3] =
        ((RTAGOFFSET_0 & 0x3F) << 0)  |
        ((RTAGOFFSET_1 & 0x3F) << 6) |
        ((RTAGOFFSET_2 & 0x3F) << 12) |
        ((RTAGOFFSET_3 & 0x3F) << 18) |
        ((RTAGOFFSET_4 & 0x3F) << 24);
 
    CB_SG_IR_Entry[4] =
        ((RTAGOFFSET_5 & 0x3F) << 0) |
        ((RTAGOFFSET_6 & 0x3F) << 6) |
        ((RTAGOFFSET_7 & 0x3F) << 12) |
        ((RTAGOFFSET_8 & 0x3F) << 18) |
        ((RTAGOFFSET_9 & 0x3F) << 24) |
        ((RTAGOFFSET_10 & 0x3F) << 30);
 
    uint32_t status = 0;
 
    status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    uint8_t counter = 0;
    while ((status & (1 << 31)) != 0){
       counter++;
       status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    }
 
    for (int i = 0; i < CB_SGIR_ADDR_RANGE; i++) {
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS + i, CB_SG_IR_Entry[i]);
    if (ret != E_OK) {
    return -2;
    }
 
    uint32_t readBack = 0;
    ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS + i, &readBack);
    if (ret != E_OK || readBack != CB_SG_IR_Entry[i]) {
    return -3;
    }
    }
 
    uint32_t CTRL_VALUE = (VALID << 31) |
                          (RDWRSET << 30) |
                          (SEQGENRST << 9) |
                          (TARGETEDTBL << 6) |
                          (index & 0x3F);
 
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS_CTL, CTRL_VALUE);
        if (ret != E_OK) {
            return -4;
        }
 
        do {
            ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, &status);
            if (ret != E_OK) {
                return -5;
            }
        } while ((status >> 31) & 1U);
 
 
    return 0;  // Success
}


I have modified the code respective to advise 
Still i am facing the issue with creation of Dynamic Entry in CB Sequence Generation and Recovery Table can you  double check once which might be helpful
and one more thing whether we need to create 5 entry with 64 bit in size or 5 entry with 32 bit in size 
i am thinking the issue might be root cause of entry creation 
IND_REC_TIMEOUT is getting overwhelmed with 34

so can i provide me the complete entry 0 to 4 which will be creating a Dynamic Entry 

Tags (1)
0 Kudos
Reply

1,953 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

Thank you for the updated code. I reviewed your implementation and the field mapping and bit shifts are now correct. However, I noticed a critical issue that may be the root cause:

You are currently using:

uint64_t CB_SG_IR_Entry[5];

But according to the hardware specification and the reference Python implementation, each entry word should be 32 bits, not 64 bits. The switch expects 5 × 32-bit words for each CB_SG_IR entry.

Please change this to:

uint32_t CB_SG_IR_Entry[5];

Using 64-bit values may cause incorrect register writes or misalignment in SPI communication. Also, make sure that your spi_write_DynamicEntry() and spi_read_DynamicEntry() functions operate on 32-bit values.

Additionally, when validating the write-back values, ensure that the comparison is done correctly:

uint32_t readBack = 0;
ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS + i, &readBack);
if (ret != E_OK || readBack != CB_SG_IR_Entry[i]) {
    return -3;
}

 

Best regards,

Pavel

0 Kudos
Reply

1,945 Views
Atkinson
Contributor V

Hi @PavelL 

int WriteCB_SG_IR(uint32_t index) {
 
int cs = 0;
uint32_t CBSGIR_OFFSET     = 142;
uint32_t CBSGIR_CTRL_OFFSET = 147;
const uint32_t SWREG_BASE    = 0;
 
uint32_t CB_SG_IR_ADDRESS      = SWREG_BASE + CBSGIR_OFFSET;
uint32_t CB_SG_IR_ADDRESS_CTL  = SWREG_BASE + CBSGIR_CTRL_OFFSET;
 
if (index >= 64) {
        return -1;
    }
 
    uint32_t RTAGOFFSET_0 = 0;
    uint32_t RTAGOFFSET_1 = 0;
    uint32_t RTAGOFFSET_2 = 0;
    uint32_t RTAGOFFSET_3 = 0;
    uint32_t RTAGOFFSET_4 = 0;
    uint32_t RTAGOFFSET_5 = 0;
    uint32_t RTAGOFFSET_6 = 0;
    uint32_t RTAGOFFSET_7 = 0;
    uint32_t RTAGOFFSET_8 = 0;
    uint32_t RTAGOFFSET_9 = 0;
    uint32_t RTAGOFFSET_10 = 0;
 
    uint32_t REPLACE_PORTS = 0;
    uint32_t TAG_PORTS = 0x7FF;
    uint32_t SEQ_REC_PORTS = 0;
    uint32_t IND_REC_PORTS = 0;
    uint32_t IND_REC_TIMEOUT = 0;
    uint32_t SEQRECOFFSET = 0;
    uint32_t GENSEQNUM = 0x1;
    uint32_t SEQGENRST = 0;
 
    uint32_t VALID = 1U;
    uint32_t RDWRSET = 1U;
    uint32_t TARGETEDTBL = 0;
 
    uint32_t CB_SG_IR_Entry[CB_SGIR_ADDR_RANGE] = {0};
 
 
    CB_SG_IR_Entry[0] =
    ((GENSEQNUM & 0x1) << 28) |
    ((SEQRECOFFSET & 0x1F) << 29) |
    ((IND_REC_TIMEOUT & 0xFFFF) << 34);
 
    CB_SG_IR_Entry[1] =
    ((SEQ_REC_PORTS & 0x7FF) << 0) |
        ((IND_REC_PORTS & 0x7FF) << 11);
 
    CB_SG_IR_Entry[2] =
        ((TAG_PORTS & 0x7FF) << 0) |
        ((REPLACE_PORTS & 0x7FF) << 11);
 
    CB_SG_IR_Entry[3] =
        ((RTAGOFFSET_0 & 0x3F) << 0)  |
        ((RTAGOFFSET_1 & 0x3F) << 6) |
        ((RTAGOFFSET_2 & 0x3F) << 12) |
        ((RTAGOFFSET_3 & 0x3F) << 18) |
        ((RTAGOFFSET_4 & 0x3F) << 24);
 
    CB_SG_IR_Entry[4] =
        ((RTAGOFFSET_5 & 0x3F) << 0) |
        ((RTAGOFFSET_6 & 0x3F) << 6) |
        ((RTAGOFFSET_7 & 0x3F) << 12) |
        ((RTAGOFFSET_8 & 0x3F) << 18) |
        ((RTAGOFFSET_9 & 0x3F) << 24) |
        ((RTAGOFFSET_10 & 0x3F) << 30);
 
    uint32_t status = 0;
 
    status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    uint8_t counter = 0;
    while ((status & (1 << 31)) != 0){
       counter++;
       status = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, cs);
    }
 
    for (int i = 0; i < CB_SGIR_ADDR_RANGE; i++) {
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS + i, CB_SG_IR_Entry[i]);
    if (ret != E_OK) {
    return -2;
    }
 
    uint32_t readBack = 0;
    ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS + i, &readBack);
    if (ret != E_OK || readBack != CB_SG_IR_Entry[i]) {
    return -3;
    }
    }
 
    uint32_t CTRL_VALUE = (VALID << 31) |
                          (RDWRSET << 30) |
                          (SEQGENRST << 9) |
                          (TARGETEDTBL << 6) |
                          (index & 0x3F);
 
    Std_ReturnType ret = spi_write_DynamicEntry(CB_SG_IR_ADDRESS_CTL, CTRL_VALUE);
        if (ret != E_OK) {
            return -4;
        }
 
        do {
            ret = spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL, &status);
            if (ret != E_OK) {
                return -5;
            }
        } while ((status >> 31) & 1U);
 
 
    return 0;  // Success
}


So i changed the configuration as you mentioned but still its not able to create a Dynamic Entry.
Add on to that, see when we are configuring this 
((GENSEQNUM & 0x1) << 28) |
((SEQRECOFFSET & 0x1F) << 29) |
((IND_REC_TIMEOUT & 0xFFFF) << 34);

IND_REC_TIMEOUT value is written after 32 bit register value which is we are exceeding the 32 bits where the values will be written into the wrong register ryt?? can you double check whether it will be written within 32bit register 

One more thing when i debug, i could see the CB_SG_IR_Entry[0] is written with some values what we are expecting to write but in the case of other CB_SG_IR_Entr[1],[2],[3] there is no value written 
I am thinking the root cause of the issue is due to bit change ??

As you mentioned the spi_read and spi_write is as same as L2 Lookup table which i used to configure dynamically which is working fine in L2 Lookup table. 
Is there any other thing we are missing out ??


Tags (1)
0 Kudos
Reply

1,926 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

I apologize for the delayed response — I was on vacation.

Thank you for creating a new query, so this thread will continue there:

How to create a Dynamic Entry for CB_SG_IR in S32G-VNP-RDB - NXP Community

I will do my best to answer within this week.

Best regards,

Pavel

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2115086%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERegister%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2115086%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%2C%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F24163%22%20target%3D%22_blank%22%3E%40chenyin_h%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EI%20would%20like%20to%20access%20the%20registers%20for%20accessing%20the%20L2%20Table%2C%20VLAN%20Table%20via%20Dynamic%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EAddress%20Name%20Access%20Reset%20Description%3CBR%20%2F%3E8Ch%20DYN_BE_LKP_%3CBR%20%2F%3EENTRY0%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3E(FFFFFFFEh)%3CBR%20%2F%3E90h%20DYN_BE_LKP_%3CBR%20%2F%3EENTRY1%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3E94h%20DYN_BE_LKP_%3CBR%20%2F%3EENTRY2%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3E98h%20DYN_BE_LKP_%3CBR%20%2F%3EENTRY3%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3E9Ch%20DYN_BE_LKP_%3CBR%20%2F%3EENTRY4%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3EA0h%20DYN_BE_LKP_%3CBR%20%2F%3EENTRY5%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3EA4h%20DYN_BE_LKP_CTRL%20R%2FW%200h%3CBR%20%2F%3E(FF800000h)%3CBR%20%2F%3E%3CBR%20%2F%3EHow%20to%20access%20the%20register%20to%20configure%20change%20it%20%3F%3CBR%20%2F%3EHow%20to%20change%20the%20values%20of%20the%20registers%20during%20run%20Time%3F%3F%3CBR%20%2F%3EUsing%20Programming%20Interface%20we%20can%20change%20it%20Dynamically%20(as%20mentioned%20in%20Document)%20is%20there%20any%20external%20tool%20need%20to%20configure%20%3F%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%26nbsp%3B%3CBR%20%2F%3EAtkinson%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2152105%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2152105%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EI%20apologize%20for%20the%20delayed%20response%20%E2%80%94%20I%20was%20on%20vacation.%3C%2FP%3E%0A%3CP%3EThank%20you%20for%20creating%20a%20new%20query%2C%20so%20this%20thread%20will%20continue%20there%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32G%2FHow-to-create-a-Dynamic-Entry-for-CB-SG-IR-in-S32G-VNP-RDB%2Ftd-p%2F2152047%22%20target%3D%22_blank%22%3EHow%20to%20create%20a%20Dynamic%20Entry%20for%20CB_SG_IR%20in%20S32G-VNP-RDB%20-%20NXP%20Community%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EI%20will%20do%20my%20best%20to%20answer%20within%20this%20week.%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2146018%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2146018%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThank%20you%20for%20the%20updated%20code.%20I%20reviewed%20your%20implementation%20and%20the%20field%20mapping%20and%20bit%20shifts%20are%20now%20correct.%20However%2C%20I%20noticed%20a%20critical%20issue%20that%20may%20be%20the%20root%20cause%3A%3C%2FP%3E%0A%3CP%3EYou%20are%20currently%20using%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3Euint64_t%3C%2FSPAN%3E%20%3CSPAN%3ECB_SG_IR_Entry%3C%2FSPAN%3E%3CSPAN%3E%5B%3C%2FSPAN%3E%3CSPAN%3E5%3C%2FSPAN%3E%3CSPAN%3E%5D%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CLI-WRAPPER%3E%3CSPAN%3E%3C!--ScriptorEndFragment--%3E%3C%2FSPAN%3E%3C%2FLI-WRAPPER%3E%3C%2FP%3E%0A%3CP%3EBut%20according%20to%20the%20hardware%20specification%20and%20the%20reference%20Python%20implementation%2C%20each%20entry%20word%20should%20be%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3E32%20bits%3C%2FSTRONG%3E%2C%20not%2064%20bits.%20The%20switch%20expects%205%20%C3%97%2032-bit%20words%20for%20each%20CB_SG_IR%20entry.%3C%2FP%3E%0A%3CP%3EPlease%20change%20this%20to%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3Euint32_t%3C%2FSPAN%3E%20%3CSPAN%3ECB_SG_IR_Entry%3C%2FSPAN%3E%3CSPAN%3E%5B%3C%2FSPAN%3E%3CSPAN%3E5%3C%2FSPAN%3E%3CSPAN%3E%5D%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CLI-WRAPPER%3E%3CSPAN%3E%3C!--ScriptorEndFragment--%3E%3C%2FSPAN%3E%3C%2FLI-WRAPPER%3E%3C%2FP%3E%0A%3CP%3EUsing%2064-bit%20values%20may%20cause%20incorrect%20register%20writes%20or%20misalignment%20in%20SPI%20communication.%20Also%2C%20make%20sure%20that%20your%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CCODE%3Espi_write_DynamicEntry()%3C%2FCODE%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eand%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CCODE%3Espi_read_DynamicEntry()%3C%2FCODE%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Efunctions%20operate%20on%2032-bit%20values.%3C%2FP%3E%0A%3CP%3EAdditionally%2C%20when%20validating%20the%20write-back%20values%2C%20ensure%20that%20the%20comparison%20is%20done%20correctly%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3Euint32_t%3C%2FSPAN%3E%20%3CSPAN%3EreadBack%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3Eret%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3Espi_read_DynamicEntry%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3ECB_SG_IR_ADDRESS%3C%2FSPAN%3E%20%3CSPAN%3E%2B%3C%2FSPAN%3E%20%3CSPAN%3Ei%3C%2FSPAN%3E%3CSPAN%3E%2C%3C%2FSPAN%3E%20%3CSPAN%3E%26amp%3B%3C%2FSPAN%3E%3CSPAN%3EreadBack%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3Eif%3C%2FSPAN%3E%20%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Eret%3C%2FSPAN%3E%20%3CSPAN%3E!%3C%2FSPAN%3E%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3EE_OK%3C%2FSPAN%3E%20%3CSPAN%3E%7C%3C%2FSPAN%3E%3CSPAN%3E%7C%3C%2FSPAN%3E%20%3CSPAN%3EreadBack%3C%2FSPAN%3E%20%3CSPAN%3E!%3C%2FSPAN%3E%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3ECB_SG_IR_Entry%3C%2FSPAN%3E%3CSPAN%3E%5B%3C%2FSPAN%3E%3CSPAN%3Ei%3C%2FSPAN%3E%3CSPAN%3E%5D%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%20%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Ereturn%3C%2FSPAN%3E%20%3CSPAN%3E-%3C%2FSPAN%3E%3CSPAN%3E3%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2144255%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2144255%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EI%20reviewed%20your%20latest%20code%2C%20and%20the%20structure%20and%20word%20order%20of%20the%20CB_SG_IR_Entry%5B%5D%20array%20is%20now%20correct.%20However%2C%20I%20noticed%20a%20critical%20issue%20in%20the%20bit%20shifts%20used%20in%20CB_SG_IR_Entry%5B0%5D.%3C%2FP%3E%0A%3CP%3EAccording%20to%20the%20hardware%20specification%20(Table%201148)%2C%20the%20bit%20positions%20are%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EGENSEQNUM%3A%20bit%2028%3C%2FLI%3E%0A%3CLI%3ESEQRECOFFSET%3A%20bits%2029%E2%80%9333%3C%2FLI%3E%0A%3CLI%3EIND_REC_TIMEOUT%3A%20bits%2034%E2%80%9349%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EIn%20your%20current%20code%2C%20these%20fields%20are%20shifted%20too%20low.%20Please%20update%20the%20line%20as%20follows%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CEM%3ECB_SG_IR_Entry%5B0%5D%20%3D%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CEM%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20((GENSEQNUM%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%2028)%20%7C%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CEM%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20((SEQRECOFFSET%20%26amp%3B%200x1F)%20%26lt%3B%26lt%3B%2029)%20%7C%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CEM%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20((IND_REC_TIMEOUT%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%2034)%3B%3C%2FEM%3E%3C%2FDIV%3E%0A%3CP%3E%3CLI-WRAPPER%3E%3CSPAN%3E%3C!--ScriptorEndFragment--%3E%3C%2FSPAN%3E%3C%2FLI-WRAPPER%3E%3C%2FP%3E%0A%3CP%3EThis%20should%20ensure%20that%20the%20GENSEQNUM%20bit%20is%20correctly%20set%20and%20interpreted%20by%20the%20switch.%3C%2FP%3E%0A%3CP%3EAlso%2C%20please%20double-check%20that%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EREPLACE_PORTS%20is%20not%20overriding%20TAG_PORTS%20for%20ports%201%20and%202%3C%2FLI%3E%0A%3CLI%3EThe%20ports%20are%20enabled%20and%20not%20filtered%20by%20other%20tables%20(e.g.%2C%20ingress%2Fegress%20filtering)%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2143367%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2143367%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EI%20tried%20changing%20the%20entry%20order%20as%20you%20mentioned%20but%20there%20is%20no%20positive%20response%20in%20creation%20of%20CB_Sequence%20Generation%20and%20Recovery%20Table%26nbsp%3B%3CBR%20%2F%3Eso%20is%20that%20any%20other%20changes%20need%20to%20be%20made%20in%20the%20code%20%3F%3CBR%20%2F%3E%3CBR%20%2F%3EI%20am%20trying%20to%20bring%20Dynamic%20L2%20Lookup%20entry%20which%20is%20working%20fine%20but%20the%20CB_Sequence%20and%20Generation%20and%20Recovery%20table%20is%20not%20reflecting%20in%20a%20way%20that%20i%20am%20unable%20to%20tag%20Port%201%20%26amp%3B%20Port%202%20and%20also%20GENSEQNUM%20is%20not%20turning%20up%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3Eso%20what%20could%20be%20the%20other%20cause%20of%20the%20issue%20can%20you%20double%20confirm%20me%20whether%20any%20other%20changes%20need%20to%20be%20made%20or%20not%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CDIV%3Eint%20WriteCB_SG_IR(uint32_t%20index)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eint%20cs%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CBSGIR_OFFSET%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3D%20142%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CBSGIR_CTRL_OFFSET%20%3D%20147%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Econst%20uint32_t%20SWREG_BASE%26nbsp%3B%20%26nbsp%3B%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SG_IR_ADDRESS%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3D%20SWREG_BASE%20%2B%20CBSGIR_OFFSET%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SG_IR_ADDRESS_CTL%26nbsp%3B%20%3D%20SWREG_BASE%20%2B%20CBSGIR_CTRL_OFFSET%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eif%20(index%20%26gt%3B%3D%2064)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%20-1%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_0%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_1%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_2%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_3%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_4%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_5%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_6%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_7%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_8%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_9%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_10%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20REPLACE_PORTS%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20TAG_PORTS%20%3D%200x006%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20SEQ_REC_PORTS%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20IND_REC_PORTS%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20IND_REC_TIMEOUT%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20SEQRECOFFSET%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20GENSEQNUM%20%3D%200x1%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20SEQGENRST%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20VALID%20%3D%201U%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RDWRSET%20%3D%201U%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20TARGETEDTBL%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20CB_SG_IR_Entry%5BCB_SGIR_ADDR_RANGE%5D%20%3D%20%7B0%7D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B0%5D%20%3D%20(((IND_REC_TIMEOUT%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%20(1%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((SEQRECOFFSET%20%26amp%3B%200x1F)%20%26lt%3B%26lt%3B%20(17%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((GENSEQNUM%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%20(22%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B1%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((SEQ_REC_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%200)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((IND_REC_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%2011)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B2%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(((TAG_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%20(0%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((REPLACE_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%20(11%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B3%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(((RTAGOFFSET_0%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(0%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_1%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(6%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_2%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(12%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_3%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(18%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_4%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(24%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B4%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(((RTAGOFFSET_5%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(0%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_6%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(6%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_7%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(12%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_8%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(18%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_9%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(24%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_10%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(30%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20status%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20status%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20cs)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%20counter%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20while%20((status%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%2031))%20!%3D%200)%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bcounter%2B%2B%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bstatus%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20cs)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20for%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20CB_SGIR_ADDR_RANGE%3B%20i%2B%2B)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Std_ReturnType%20ret%20%3D%20spi_write_DynamicEntry(CB_SG_IR_ADDRESS%20%2B%20i%2C%20CB_SG_IR_Entry%5Bi%5D)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20return%20-2%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20readBack%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20ret%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS%20%2B%20i%2C%20%26amp%3BreadBack)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK%20%7C%7C%20readBack%20!%3D%20CB_SG_IR_Entry%5Bi%5D)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20return%20-3%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20CTRL_VALUE%20%3D%20(VALID%20%26lt%3B%26lt%3B%2031)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(RDWRSET%20%26lt%3B%26lt%3B%2030)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(SEQGENRST%20%26lt%3B%26lt%3B%209)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(TARGETEDTBL%20%26lt%3B%26lt%3B%206)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(index%20%26amp%3B%200x3F)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Std_ReturnType%20ret%20%3D%20spi_write_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20CTRL_VALUE)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%20-4%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20do%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20ret%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20%26amp%3Bstatus)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%20-5%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%20while%20((status%20%26gt%3B%26gt%3B%2031)%20%26amp%3B%201U)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20return%200%3B%26nbsp%3B%20%2F%2F%20Success%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2143278%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2143278%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EBased%20on%20the%20official%20layout%20of%20the%20CB%20Sequence%20Generation%20and%20Recovery%20Table%20(Table%201148)%20and%20the%20Python%20implementation%20(cb_sg_ir.py)%2C%20your%20field%20mapping%20inside%20each%20word%20is%20correct%20%E2%80%94%20but%20the%20order%20of%20the%20words%20in%20the%20array%20CB_SG_IR_Entry%5B%5D%20needs%20to%20be%20reversed.%3C%2FP%3E%0A%3CP%3EThe%20correct%20order%20is%3A%3C%2FP%3E%0A%3CTABLE%20class%3D%22___1hm93bs%20f1ddd56o%20f16vktn6%20f1enuhaj%20fdclmfp%20f1ev3kgc%20ftgm304%20f1uinfot%20fibjyge%20fvueend%20f9yszdx%20f1fu4s3n%20f3l3pb3%20f1s2k7dp%20f8fmt76%20fjvbh62%20fysh76l%20fic4ptz%20f1yenhzu%20f1yn6nvh%20f14tj6oe%20f1jq587y%20f1el8yx3%20f1pymoxg%20f1ofu761%20fe6itr%20f7coize%20f1794535%20f70r78m%20f4zgifc%20fk1v6el%20f16pyhcb%20fo436u6%20fzy4j18%20fc43013%20f1hmrcvb%20fc4t9fq%20fgp09rh%20fjnyn6r%22%3E%0A%3CTHEAD%3E%0A%3CTR%3E%0A%3CTH%3EWord%20Index%3C%2FTH%3E%0A%3CTH%3EFields%3C%2FTH%3E%0A%3C%2FTR%3E%0A%3C%2FTHEAD%3E%0A%3CTBODY%3E%0A%3CTR%3E%0A%3CTD%3Eentry%5B0%5D%3C%2FTD%3E%0A%3CTD%3EIND_REC_TIMEOUT%2C%20SEQRECOFFSET%2C%20GENSEQNUM%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%3Eentry%5B1%5D%3C%2FTD%3E%0A%3CTD%3ESEQ_REC_PORTS%2C%20IND_REC_PORTS%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%3Eentry%5B2%5D%3C%2FTD%3E%0A%3CTD%3ETAG_PORTS%2C%20REPLACE_PORTS%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%3Eentry%5B3%5D%3C%2FTD%3E%0A%3CTD%3ERTAGOFFSET_0%20to%20RTAGOFFSET_4%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%3Eentry%5B4%5D%3C%2FTD%3E%0A%3CTD%3ERTAGOFFSET_5%20to%20RTAGOFFSET_10%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3C%2FTBODY%3E%0A%3C%2FTABLE%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2143274%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2143274%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EYes%2C%20your%20code%20for%20dynamically%20creating%20an%20entry%20in%20the%20CB%20Sequence%20Generation%20and%20Individual%20Recovery%20Table%20(CB_SG_IR)%20is%20valid.%20This%20conclusion%20is%20based%20on%20the%20official%20Python%20implementation%20(cb_sg_ir.py)%20provided%20by%20NXP%2C%20which%20uses%20the%20same%20layout%20and%20logic%20for%20dynamic%20configuration.%3C%2FP%3E%0A%3CP%3EYour%20Question%3A%3CBR%20%2F%3E%22I%20am%20having%20a%20doubt%20in%20the%20case%20of%20entry%5B0%5D%5B1%5D%5B2%5D%5B3%5D%5B4%5D%20so%20can%20you%20provide%20me%20the%20exact%20version%20of%20order%20which%20will%20help%20us%20to%20create%20a%20dynamic%20entry%3F%22%3C%2FP%3E%0A%3CP%3EYes%20%E2%80%94%20the%20order%20of%20the%205%20words%20in%20the%20CB_SG_IR_Entry%5B%5D%20array%20is%20important%20and%20must%20follow%20the%20bit%20layout%20defined%20in%20the%20hardware%20specification%20(Table%201148).%20Based%20on%20that%2C%20the%20correct%20mapping%20is%3A%3C%2FP%3E%0A%3CTABLE%20class%3D%22___1hm93bs%20f1ddd56o%20f16vktn6%20f1enuhaj%20fdclmfp%20f1ev3kgc%20ftgm304%20f1uinfot%20fibjyge%20fvueend%20f9yszdx%20f1fu4s3n%20f3l3pb3%20f1s2k7dp%20f8fmt76%20fjvbh62%20fysh76l%20fic4ptz%20f1yenhzu%20f1yn6nvh%20f14tj6oe%20f1jq587y%20f1el8yx3%20f1pymoxg%20f1ofu761%20fe6itr%20f7coize%20f1794535%20f70r78m%20f4zgifc%20fk1v6el%20f16pyhcb%20fo436u6%20fzy4j18%20fc43013%20f1hmrcvb%20fc4t9fq%20fgp09rh%20fjnyn6r%22%3E%0A%3CTHEAD%3E%0A%3CTR%3E%0A%3CTH%20width%3D%22104px%22%3EWord%20Index%3C%2FTH%3E%0A%3CTH%20width%3D%2291px%22%3EBit%20Range%3C%2FTH%3E%0A%3CTH%20width%3D%22378px%22%3EFields%20Included%3C%2FTH%3E%0A%3C%2FTR%3E%0A%3C%2FTHEAD%3E%0A%3CTBODY%3E%0A%3CTR%3E%0A%3CTD%20width%3D%22104px%22%3Eentry%5B4%5D%3C%2FTD%3E%0A%3CTD%20width%3D%2291px%22%3E159%E2%80%93124%3C%2FTD%3E%0A%3CTD%20width%3D%22378px%22%3ERTAGOFFSET_10%20to%20RTAGOFFSET_5%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%20width%3D%22104px%22%3Eentry%5B3%5D%3C%2FTD%3E%0A%3CTD%20width%3D%2291px%22%3E123%E2%80%9394%3C%2FTD%3E%0A%3CTD%20width%3D%22378px%22%3ERTAGOFFSET_4%20to%20RTAGOFFSET_0%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%20width%3D%22104px%22%3Eentry%5B2%5D%3C%2FTD%3E%0A%3CTD%20width%3D%2291px%22%3E93%E2%80%9372%3C%2FTD%3E%0A%3CTD%20width%3D%22378px%22%3EREPLACE_PORTS%2C%20TAG_PORTS%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%20width%3D%22104px%22%3Eentry%5B1%5D%3C%2FTD%3E%0A%3CTD%20width%3D%2291px%22%3E71%E2%80%9350%3C%2FTD%3E%0A%3CTD%20width%3D%22378px%22%3EIND_REC_PORTS%2C%20SEQ_REC_PORTS%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%20width%3D%22104px%22%3Eentry%5B0%5D%3C%2FTD%3E%0A%3CTD%20width%3D%2291px%22%3E49%E2%80%9328%3C%2FTD%3E%0A%3CTD%20width%3D%22378px%22%3EIND_REC_TIMEOUT%2C%20SEQRECOFFSET%2C%20GENSEQNUM%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3C%2FTBODY%3E%0A%3C%2FTABLE%3E%0A%3CP%3E%3CBR%20%2F%3EBits%2027%E2%80%930%20are%20reserved%20and%20unused.%3C%2FP%3E%0A%3CP%3EThis%20matches%20the%20layout%20used%20internally%20in%20the%20Python%20script%20and%20confirms%20that%20your%20manual%20construction%20of%20the%20entry%20array%20is%20correct.%3C%2FP%3E%0A%3CP%3EYour%20Question%3A%3CBR%20%2F%3E%22And%20one%20more%20thing%20cb_sg_ir.py%20file%20there%20is%20not%20order%20for%20creating%20a%20entry%20its%20like%20a%20parsing%20of%20data%20getentry%2C%20setentry%20can%20you%20confirm%20me%20the%20order%20of%20array%20which%20I%20have%20created%20to%20make%20a%20dynamic%20entry%3F%22%3C%2FP%3E%0A%3CP%3ECorrect%20%E2%80%94%20the%20Python%20script%20uses%20a%20layout-based%20approach%20to%20automatically%20pack%20and%20unpack%20the%20fields%20into%20the%20correct%20word%20order.%20While%20the%20script%20does%20not%20explicitly%20show%20the%20word%20array%2C%20it%20enforces%20the%20correct%20order%20internally.%20Your%20C%20implementation%2C%20which%20manually%20constructs%20the%205-word%20array%2C%20is%20consistent%20with%20this%20logic%20and%20is%20valid.%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2143254%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2143254%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20below%20is%20the%20code%20which%20create%20a%20Dynamic%20entry%20for%20CB_Sequence%20Generation%20and%20Recovery%20Table%20can%20you%20check%20whether%20the%20entry%20is%20in%20a%20Correct%20order%20if%20at%20all%20any%20changes%20in%20the%20order%20of%20CB_SGIR_ENtry%5B0%5D%2C%5B1%5D%2C%5B2%5D%2C%5B3%5D%2C%5B4%5D%20can%20you%20provide%20me%20the%20changes%20of%20the%20order%20because%20its%20not%20mentioned%20cb_sg_ir.py%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3EAnd%20one%20more%20thing%20cb_sg_ir.py%20file%20there%20is%20not%20order%20for%20creating%20a%20entry%20its%20like%20a%20parsing%20of%20data%20getentry%2C%20setentry%20can%20you%20confirm%20me%20the%20order%20of%20array%20which%20I%20have%20created%20to%20make%20a%20dynamic%20entry%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3Ewhat%20are%20the%20changes%20need%20to%20be%20mentioned%20in%20below%20code%20can%20you%20provide%20me%20the%20valid%20changes%20that%20would%20be%20more%20helpful%3C%2FP%3E%3CDIV%3Eint%20WriteCB_SG_IR(uint32_t%20index)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eint%20cs%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CBSGIR_OFFSET%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3D%20142%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CBSGIR_CTRL_OFFSET%20%3D%20147%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Econst%20uint32_t%20SWREG_BASE%26nbsp%3B%20%26nbsp%3B%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SG_IR_ADDRESS%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3D%20SWREG_BASE%20%2B%20CBSGIR_OFFSET%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SG_IR_ADDRESS_CTL%26nbsp%3B%20%3D%20SWREG_BASE%20%2B%20CBSGIR_CTRL_OFFSET%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eif%20(index%20%26gt%3B%3D%2064)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%20-1%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_0%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_1%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_2%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_3%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_4%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_5%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_6%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_7%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_8%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_9%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RTAGOFFSET_10%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20REPLACE_PORTS%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20TAG_PORTS%20%3D%200x006%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20SEQ_REC_PORTS%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20IND_REC_PORTS%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20IND_REC_TIMEOUT%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20SEQRECOFFSET%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20GENSEQNUM%20%3D%200x1%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20SEQGENRST%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20VALID%20%3D%201U%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20RDWRSET%20%3D%201U%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20TARGETEDTBL%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20CB_SG_IR_Entry%5BCB_SGIR_ADDR_RANGE%5D%20%3D%20%7B0%7D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B0%5D%20%3D(((GENSEQNUM%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%20(1%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((SEQRECOFFSET%20%26amp%3B%200x1F)%20%26lt%3B%26lt%3B%20(2%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((IND_REC_TIMEOUT%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%20(7%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B1%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((SEQ_REC_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%200)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((IND_REC_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%2011)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B2%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(((TAG_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%20(0%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((REPLACE_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%20(11%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B3%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(((RTAGOFFSET_0%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(0%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_1%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(6%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_2%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(12%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_3%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(18%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_4%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(24%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SG_IR_Entry%5B4%5D%20%3D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(((RTAGOFFSET_5%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(0%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_6%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(6%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_7%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(12%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_8%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(18%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_9%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(24%20%25%2032))%20%2B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_10%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%20(30%20%25%2032)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20status%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20status%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20cs)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%20counter%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20while%20((status%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%2031))%20!%3D%200)%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bcounter%2B%2B%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bstatus%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20cs)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20for%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20CB_SGIR_ADDR_RANGE%3B%20i%2B%2B)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Std_ReturnType%20ret%20%3D%20spi_write_DynamicEntry(CB_SG_IR_ADDRESS%20%2B%20i%2C%20CB_SG_IR_Entry%5Bi%5D)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20return%20-2%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20readBack%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20ret%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS%20%2B%20i%2C%20%26amp%3BreadBack)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK%20%7C%7C%20readBack%20!%3D%20CB_SG_IR_Entry%5Bi%5D)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20return%20-3%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint32_t%20CTRL_VALUE%20%3D%20(VALID%20%26lt%3B%26lt%3B%2031)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(RDWRSET%20%26lt%3B%26lt%3B%2030)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(SEQGENRST%20%26lt%3B%26lt%3B%209)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(TARGETEDTBL%20%26lt%3B%26lt%3B%206)%20%7C%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20(index%20%26amp%3B%200x3F)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Std_ReturnType%20ret%20%3D%20spi_write_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20CTRL_VALUE)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%20-4%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20do%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20ret%20%3D%20spi_read_DynamicEntry(CB_SG_IR_ADDRESS_CTL%2C%20%26amp%3Bstatus)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20(ret%20!%3D%20E_OK)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%20-5%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%20while%20((status%20%26gt%3B%26gt%3B%2031)%20%26amp%3B%201U)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20return%200%3B%26nbsp%3B%20%2F%2F%20Success%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2142712%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2142712%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CEM%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3C%2FEM%3E%3C%2FP%3E%3CP%3EThanks%20for%20the%20response.%3C%2FP%3E%3CP%3EThe%20code%20which%20i%20provided%20is%20the%20modified%20and%20applicable%20version.%20Of%20CB%20Sequence%20Generation%20and%20Recovery%20Table%20so%20I%20maintained%20a%20standard%20which%20it%20requires%20to%20create%20a%20dynamic%20entry.%3C%2FP%3E%3CP%3ECa.%20You%20just%20confirm%20whether%20it%20is%20correct%20to%20create%20a%20Dynamci%20entry%20for%20CB%20Sequence%20Generation%20and%20Recovery%20Table.%3C%2FP%3E%3CP%3EI%20am%20having%20a%20doubt%20in%20the%20case%20of%20entry%5B0%5D%5B1%5D%5B2%5D%5B3%5D%5B4%5D%20so%20acne%20you%20provide%20me%20the%20exact%20version%20of%20order%20which%20will%20help%20us%20to%20create%20a%20dynamic%20entry.%3C%2FP%3E%3CP%3EAnd%20one%20more%20thing%20cb_sg_ir.py%20file%20there%20is%20not%20order%20for%20creating%20a%20entry%20its%20like%20a%20parsing%20of%20data%20getentry%2C%20setentry%20can%20you%20confirm%20me%20the%20order%20of%20array%20which%20I%20have%20created%20to%20make%20a%20dynamic%20entry%26nbsp%3B%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2142694%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2142694%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThe%20principle%20for%20dynamically%20creating%20entries%20in%20the%26nbsp%3BCB%20Sequence%20Generation%20%2F%20Individual%20Recovery%20Table%20(CB_SG_IR)%26nbsp%3Bis%20similar%20to%20the%20approach%20used%20for%20dynamic%20entries%20in%20the%26nbsp%3BL2%20Lookup%20Table%2C%20such%20as%20in%26nbsp%3Bwrite_l2_lookup_table.py.%20However%2C%20there%20are%20important%20differences%20in%20the%20table%20layout%2C%20control%20register%20configuration%2C%20and%20number%20of%20words%20per%20entry.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EQ1%3A%20The%20above%20script%20which%20I%20provided%20is%20same%20as%20write_l2_lookup_table.py%20with%20change%20in%20address%20and%20Control%20Address%20which%20I%20created%20it%3F%20So%20in%20order%20to%20create%20a%20dynamic%20Entry%20we%20can%20replicate%20as%20same%20as%20that%20right%3F%3C%2FP%3E%0A%3CP%3EYes%2C%20the%20concept%20is%20similar.%20You%20can%20replicate%20the%20dynamic%20entry%20creation%20logic%20from%26nbsp%3Bwrite_l2_lookup_table.py%2C%20but%20you%20must%20adapt%20it%20to%20the%20CB_SG_IR%20table%20specifics%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%0A%3CP%3EUse%20the%20correct%20base%20and%20control%20offsets%20(CBSGIR_OFFSET%2C%26nbsp%3BCBSGIR_CTRL_OFFSET)%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CP%3EEnsure%20the%20entry%20format%20matches%20the%20CB_SG_IR%20layout%20(5%20words)%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CP%3ESet%26nbsp%3BTARGETEDTBL%20%3D%200%26nbsp%3Bfor%20CB_SG_IR%20(unlike%20L2%20which%20uses%26nbsp%3BTARGETEDTBL%20%3D%201)%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CP%3EUse%20the%20appropriate%20control%20word%20format%20including%26nbsp%3BVALID%2C%26nbsp%3BRDWRSET%2C%26nbsp%3BSEQGENRST%2C%20and%26nbsp%3BINDEX%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EThe%20Python%20script%26nbsp%3Bcb_sg_ir.py%26nbsp%3Bimplements%20this%20logic%20correctly%20using%20the%26nbsp%3BCB_SGIR_Entry%26nbsp%3Band%26nbsp%3BCB_SGIR_Table%26nbsp%3Bclasses.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EQ2%3A%20Whether%20index%20value%20also%20need%20to%20be%20encoded%20into%20the%20CB_SG_IR_Entry%5B%5D%3F%3C%2FP%3E%0A%3CP%3ENo%2C%20the%26nbsp%3Bindex%26nbsp%3Bis%20not%20encoded%20into%20the%26nbsp%3BCB_SG_IR_Entry%5B%5D%26nbsp%3Bdata%20array.%20It%20is%20only%20used%20in%20the%20control%20word%20written%20to%20the%20control%20register%20(CB_SG_IR_ADDRESS_CTL)%2C%20which%20triggers%20the%20hardware%20to%20apply%20the%20entry%20at%20the%20specified%20index.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EQ3%3A%20So%20whether%20any%20order%20need%20to%20be%20maintained%20CB_SG_IR_Entry%5B0%5D%2C%5B1%5D%2C%5B2%5D%2C%5B3%5D%20because%20inside%20values%20need%20to%20be%20maintained%20in%20certain%20order%3F%3C%2FP%3E%0A%3CP%3EYes%2C%20the%20order%20of%20words%20in%26nbsp%3BCB_SG_IR_Entry%5B%5D%26nbsp%3Bmust%20be%20strictly%20maintained.%20Each%20word%20corresponds%20to%20a%20specific%20part%20of%20the%20hardware%20table%20entry%20as%20defined%20in%20the%20layout.%20The%20Python%20script%26nbsp%3Bcb_sg_ir.py%26nbsp%3Bhandles%20this%20ordering%20automatically%20based%20on%20the%20layout%20definition.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EQ4%3A%20In%20TAG_PORTS%20%3D%200x006%20which%20I%20gave%20in%20that%20TAG_PORTS%20%3D%20port%201%20%26amp%3B%20Port%202%20whether%20that%20is%20correct%3F%3C%2FP%3E%0A%3CP%3EYes%2C%20that%20is%20correct.%20The%20value%26nbsp%3B0x006%26nbsp%3Bin%20binary%20is%26nbsp%3B0000%200000%200110%2C%20which%20sets%20bits%201%20and%202%20-%20corresponding%20to%20port%201%20and%20port%202.%20This%20matches%20the%20expected%20encoding%20for%20port%20selection.%3C%2FP%3E%0A%3CP%3EBets%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2142475%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2142475%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3CP%3EWhether%20the%20address%20for%20Creating%20a%20dynamic%20Entry%20which%20i%20used%20is%20correct%20or%20different%20address%20need%20to%20be%20used%26nbsp%3B%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2141452%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2141452%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20below%20script%20is%20the%20example%20script%20which%20created%20for%20Dynamically%20creating%20a%20Entry%20which%20operates%20for%20L2%20Lookup%20table%20by%20Index%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CDIV%3Eint%20WriteCB_SG_IR()%7B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CBSGIR_OFFSET%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3D%200xFF000238%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CBSGIR_CTRL_OFFSET%20%3D%200xFF00024C%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Econst%20uint32_t%20SWREG_BASE%26nbsp%3B%20%26nbsp%3B%20%3D%200x00000000%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Evolatile%20uint32_t*%20CB_SG_IR_ADDRESS%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3D%20(uint32_t*)(SWREG_BASE%20%2B%20CBSGIR_OFFSET)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Evolatile%20uint32_t*%20CB_SG_IR_ADDRESS_CTL%26nbsp%3B%20%3D%20(uint32_t*)(SWREG_BASE%20%2B%20CBSGIR_CTRL_OFFSET)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_10%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_9%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_8%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_7%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_6%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_5%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_4%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_3%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_2%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_1%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RTAGOFFSET_0%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20REPLACE_PORTS%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20TAG_PORTS%20%3D%20%3CSTRONG%3E0x006%3B%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20SEQ_REC_PORTS%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20IND_REC_PORTS%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20IND_REC_TIMEOUT%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20SEQRECOFFSET%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20GENSEQNUM%20%3D%201%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20INDEX%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20SEQGENRST%20%3D%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20VALID%20%3D%201U%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RDWRSET%20%3D%201U%20%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20TARGETEDTBL%20%3D%200U%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20TABLE_SIZE%20%3D%2064%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SG_IR_Entry%5BCB_SGIR_ADDR_RANGE%5D%20%3D%20%7B0%7D%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SG_IR_Entry%5B0%5D%20%3D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((GENSEQNUM%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%201)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((SEQRECOFFSET%20%26amp%3B%200x1F)%20%26lt%3B%26lt%3B%202)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((IND_REC_TIMEOUT%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%207)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SG_IR_Entry%5B1%5D%20%3D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((SEQ_REC_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%200)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((IND_REC_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%2011)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SG_IR_Entry%5B2%5D%20%3D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((TAG_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%200)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((REPLACE_PORTS%20%26amp%3B%200x7FF)%20%26lt%3B%26lt%3B%2011)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SG_IR_Entry%5B3%5D%20%3D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_0%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%200)%26nbsp%3B%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_1%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%206)%26nbsp%3B%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_2%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2012)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_3%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2018)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_4%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2024)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SG_IR_Entry%5B4%5D%20%3D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_5%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%200)%26nbsp%3B%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_6%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%206)%26nbsp%3B%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_7%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2012)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_8%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2018)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_9%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2024)%20%7C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20((RTAGOFFSET_10%20%26amp%3B%200x3F)%20%26lt%3B%26lt%3B%2030)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20status%20%3D%20*CB_SG_IR_ADDRESS_CTL%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Ewhile%20((status%20%26amp%3B%20(1U%20%26lt%3B%26lt%3B%2031))%20!%3D%200)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Estatus%20%3D%20*CB_SG_IR_ADDRESS_CTL%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Efor%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20CB_SGIR_ADDR_RANGE%3B%20i%2B%2B)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SG_IR_ADDRESS%5Bi%5D%20%3D%20CB_SG_IR_Entry%5Bi%5D%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20if%20(CB_SG_IR_ADDRESS%5Bi%5D%20!%3D%20CB_SG_IR_Entry%5Bi%5D)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Breturn%20-3%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CTRL_VALUE%20%3D%20((VALID%20%26lt%3B%26lt%3B%2031)%20%2B%20(RDWRSET%20%26lt%3B%26lt%3B%2030)%20%2B%20(SEQGENRST%20%26lt%3B%26lt%3B%209)%20%2B%20(TARGETEDTBL%20%26lt%3B%26lt%3B%206)%20%2B%20(INDEX%20%26amp%3B%200b111111))%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E*CB_SG_IR_ADDRESS_CTL%20%3D%20CTRL_VALUE%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Edo%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Estatus%20%3D%20*CB_SG_IR_ADDRESS_CTL%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%20while%20((status%20%26gt%3B%26gt%3B%2031)%20%26amp%3B%201U)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Ereturn%200%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3EI%20am%20having%20a%20certain%20questions%20%3F%3F%3CBR%20%2F%3EThe%20above%20script%20which%20i%20provided%20is%20same%20as%20write_le_lookup_table.py%20with%20change%20in%20address%20and%20Control%20Address%20which%20i%20created%20it%20%3F%20so%20in%20order%20to%20create%20a%20dynamic%20Entry%20we%20can%20replicate%20as%20same%20as%20that%20ryt%20%3F%3F%3CBR%20%2F%3Ewhether%20it%20will%20work%20that%20was%20the%20sample%20code%20above%20is%20provided%20because%20in%20cb_sg_ir.py%20is%20completely%20differ%20from%20write_l2_lookup_table.py%20%3F%3CBR%20%2F%3E%3CBR%20%2F%3Ewhether%20index%20value%20also%20need%20to%20be%20encoded%20into%20the%20%3CSPAN%3ECB_SG_IR_Entry%5B%5D%20%3F%3F%3CBR%20%2F%3E%3C%2FSPAN%3Eso%20whether%20any%20order%20need%20to%20be%20maintained%20CB_SG_IR_Entry%5B0%5D%2C%5B1%5D%2C%5B2%5D%2C%5B3%5D%3CBR%20%2F%3Ebecause%20inside%20values%20need%20to%20be%20maintained%20in%20certain%20order%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EIn%20TAG_PORTS%20%3D%200x006%20which%20i%20gave%20in%20that%20TAG_PORTS%20%3D%20port%201%20%26amp%3B%20Port%202%20whether%20that%20is%20correct%20%3F%3F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2140915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2140915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3Ecreating%20and%20evaluating%20such%20a%20script%20falls%20outside%20the%20scope%20of%20our%20complimentary%20support.%3C%2FP%3E%0A%3CP%3EThank%20you%20for%20your%20understanding.%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2140618%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2140618%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3ECan%20you%20provide%20me%20a%20Example%20for%20Creating%20a%20Dynamic%20Enrty%20in%20CB_SG_IR%20Table%26nbsp%3B%3C%2FP%3E%3CDIV%3E%3CDIV%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_10%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_9%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_8%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_7%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_6%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_5%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_4%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_3%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_2%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_1%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ERTAGOFFSET_0%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3EREPLACE_PORTS%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ETAG_PORTS%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3EIND_REC_PORTS%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ESEQ_REC_PORTS%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3EIND_REC_TIMEOUT%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3ESEQRECOFFSET%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3EGENSEQNUM%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3Etstled%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3Erstled%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eself%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3Eseqgenrst%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E0%3CBR%20%2F%3EHow%20i%20should%20mention%20in%20this%20example%26nbsp%3B%3CBR%20%2F%3ETAG_PORTS%20%3DPort%201%20%26amp%3B%20Port%202%26nbsp%3B%3CBR%20%2F%3EGENSEQNUM%20%3D%20ENABLE%26nbsp%3B%3CBR%20%2F%3ESEQ_REC_PORTS%20%3D%20POrt%203%20%26amp%3B%20Port%204%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3Ehow%20to%20enter%20the%20values%20in%20this%20data%20%3F%3F%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3CDIV%3Etypedef%20struct%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_10%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_9%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_8%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_7%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_6%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_5%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_4%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_3%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_2%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_1%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%26nbsp%3B%20RTAGOFFSET_0%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20REPLACE_PORTS%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20TAG_PORTS%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20IND_REC_PORTS%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20SEQ_REC_PORTS%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20IND_REC_TIMEOUT%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20SEQRECOFFSET%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint16_t%20GENSEQNUM%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%20tstled%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%20rstled%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%20seqgenrst%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20uint8_t%20index%3B%3C%2FDIV%3E%3CDIV%3E%7D%20CB_SGIR_Entry%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20SGIR_Entry(const%20CB_SGIR_Entry*%20entry%2C%20uint32_t*%20Write_SGIR_Entry)%20%7B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20int%20ADDR_RANGE%20%3D%205%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20for%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20ADDR_RANGE%3B%20i%2B%2B)%20Write_SGIR_Entry%5Bi%5D%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Write_SGIR_Entry%5B0%5D%20%3D%20((entry-%26gt%3BRTAGOFFSET_0%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%200)%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_1%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%201)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_2%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%202)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_3%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%203)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_4%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%204)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_5%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%205)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_6%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%206)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_7%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%207)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_8%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_9%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%209)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BRTAGOFFSET_10%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%2010)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Write_SGIR_Entry%5B1%5D%20%3D%20((entry-%26gt%3BREPLACE_PORTS%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%200)%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BTAG_PORTS%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%2016)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Write_SGIR_Entry%5B2%5D%20%3D%20((entry-%26gt%3BIND_REC_PORTS%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%200)%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BSEQ_REC_PORTS%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%2016)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Write_SGIR_Entry%5B3%5D%20%3D%20((entry-%26gt%3BIND_REC_TIMEOUT%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%200)%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3BSEQRECOFFSET%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%2016)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20Write_SGIR_Entry%5B4%5D%20%3D%20((entry-%26gt%3BGENSEQNUM%20%26amp%3B%200xFFFF)%20%26lt%3B%26lt%3B%200)%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3Btstled%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%2016)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3Brstled%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%2017)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%7C%20((entry-%26gt%3Bseqgenrst%20%26amp%3B%200x1)%20%26lt%3B%26lt%3B%2018)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Evoid%20write_SGIR(const%20CB_SGIR_Entry*%20entry)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20SWREG_BASE%20%3D%200x00000000%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SGIR_OFFSET%20%3D%200xFF000238%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20CB_SGIR_CTRL_OFFSET%20%3D%200xFF00024C%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20VALID%20%3D%20(1U%20%26lt%3B%26lt%3B%2031)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20RDWRSET%20%3D%20(1U%20%26lt%3B%26lt%3B%2030)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20TARGETEDTBL%20%3D%20(0U%20%26lt%3B%26lt%3B%206)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20ADDR_RANGE%20%3D%205%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20TABLE_SIZE%20%3D%2064%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Evolatile%20uint32_t*%20const%20CB_SGIR_TABLE%20%3D%20(uint32_t*)(SWREG_BASE%20%2B%20CB_SGIR_OFFSET)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Evolatile%20uint32_t*%20const%20CB_SGIR_CTRL%26nbsp%3B%20%3D%20(uint32_t*)(SWREG_BASE%20%2B%20CB_SGIR_CTRL_OFFSET)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20Write_SGIR_Entry%5BADDR_RANGE%5D%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ESGIR_Entry(entry%2C%20Write_SGIR_Entry)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20control_word%20%3D%20VALID%20%7C%20RDWRSET%20%7C%20(TARGETEDTBL)%20%7C%20(entry-%26gt%3Bindex%20%26amp%3B%200x3F)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Efor%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20ADDR_RANGE%3B%20i%2B%2B)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ECB_SGIR_TABLE%5Bi%5D%20%3D%20Write_SGIR_Entry%5Bi%5D%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E*CB_SGIR_CTRL%20%3D%20control_word%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20ConfigSGIR(uint8_t%20index%2Cuint16_t%20tag_ports%2Cuint16_t%20replace_ports%2Cuint16_t%20ind_rec_ports%2Cuint16_t%20seq_rec_ports%2C%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint16_t%20ind_rec_timeout%2Cuint16_t%20seqrec_offset%2Cuint16_t%20genseqnum%2Cuint8_t%20seqgenrst%2Cuint8_t%20tstled%2Cuint8_t%20rstled%2C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint8_t%20rtagoffset%5B11%5D)%20%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20CB_SGIR_Entry%20entry%20%3D%20%7B0%7D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.index%20%3D%20index%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.TAG_PORTS%20%3D%20tag_ports%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.REPLACE_PORTS%20%3D%20replace_ports%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.IND_REC_PORTS%20%3D%20ind_rec_ports%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.SEQ_REC_PORTS%20%3D%20seq_rec_ports%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.IND_REC_TIMEOUT%20%3D%20ind_rec_timeout%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.SEQRECOFFSET%20%3D%20seqrec_offset%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.GENSEQNUM%20%3D%20genseqnum%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.seqgenrst%20%3D%20seqgenrst%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.tstled%20%3D%20tstled%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.rstled%20%3D%20rstled%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_0%20%3D%20rtagoffset%5B0%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_1%20%3D%20rtagoffset%5B1%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_2%20%3D%20rtagoffset%5B2%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_3%20%3D%20rtagoffset%5B3%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_4%20%3D%20rtagoffset%5B4%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_5%20%3D%20rtagoffset%5B5%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_6%20%3D%20rtagoffset%5B6%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_7%20%3D%20rtagoffset%5B7%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_8%20%3D%20rtagoffset%5B8%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_9%20%3D%20rtagoffset%5B9%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20entry.RTAGOFFSET_10%20%3D%20rtagoffset%5B10%5D%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%20%26nbsp%3B%20write_SGIR(%26amp%3Bentry)%3B%3C%2FDIV%3E%3CDIV%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3Eint%20main()%7B%3CBR%20%2F%3EConfigSGIR(0%2C%20(1%20%26lt%3B%26lt%3B%201)%20%7C%20(1%20%26lt%3B%26lt%3B%202)%2C%200%2C%200%2C%200%2C%200%2C%200%2C%201%2C%200%2C%200%2C%200%2C%20rtagoffsets0)%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3Ewhether%20this%20code%20is%20correct%20to%20execute%20for%20Creating%20a%20Dynamic%20Entry%20%3F%3F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2140123%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2140123%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThe%26nbsp%3BCB%20Sequence%20Generation%20and%20Recovery%20Table%26nbsp%3Band%26nbsp%3BCB%20Recovery%20Table%26nbsp%3Bcan%20be%20dynamically%20reconfigured%2C%20as%20described%20in%26nbsp%3BUM11107%2C%20Chapter%205.6.5%20%E2%80%93%26nbsp%3BRedundancy%20Reconfiguration.%3C%2FP%3E%0A%3CP%3EThis%20functionality%20is%20supported%20by%20the%26nbsp%3BSJA1110%20EVM%20Host%20Tools.%26nbsp%3BRelevant%20implementation%20details%20can%20be%20found%20in%20the%20following%20Python%20modules%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3Ecb_sg_ir.py%3C%2FLI%3E%0A%3CLI%3Ecb_sr.py%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EThese%20are%20located%20under%20the%20path%3A%3CBR%20%2F%3Esja1110evm_hosttools_v1.2%5CSJA1110EVM%5CSJA1110%5C%3C%2FP%3E%0A%3CP%3EPlease%20note%20that%20while%20the%20capability%20is%20implemented%2C%26nbsp%3Bno%20directly%20executable%20example%26nbsp%3Bis%20provided%20within%20the%20toolset.%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2140042%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2140042%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EWhether%20it%20is%20possible%20to%20configure%20the%20CB%20Sequence%20Generation%20and%20Recovery%20Table%20and%20CB%20Recovery%20Table%20can%20be%20configured%20Dynamically%20whether%20we%20have%20Provision%20for%20that%20%3F%3CBR%20%2F%3E%3CBR%20%2F%3EBy%20using%20SJA1110%20EVM%20Host%20tools%20whether%20we%20have%20support%20for%20that%20or%20it%20is%20not%20possible%20to%20configure%20it%20Dynamically%20only%20it%20can%20be%20statically%20configured%20in%20Switchcore%3F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2128007%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2128007%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3ELet%20me%20summarize%20what%20we%E2%80%99ve%20already%20discussed%20in%20this%20thread%20and%20outline%20the%20available%20options%20for%20dynamically%20reconfiguring%20the%20L2%20Lookup%20Table%20on%20the%20SJA1110%20switch%3A%3C%2FP%3E%0A%3CP%3E1.%20ECT%20(Ethernet%20Control%20Tool)%3CBR%20%2F%3EDynamic%20configuration%20via%20external%20Ethernet%20(UDP)%20frames.%20The%20internal%20firmware%20running%20on%20the%20M7%20core%20receives%20the%20configuration%20and%20applies%20it%20to%20the%20switch%20core.%3C%2FP%3E%0A%3CP%3E2.%20Modified%20ECT%3CBR%20%2F%3EThe%20ECT%20source%20code%20can%20be%20adapted%20to%20accept%20any%20Ethernet%20frame%20format%20(not%20just%20UDP).%20This%20allows%20integration%20into%20custom%20protocols%20or%20systems.%20The%20internal%20logic%20remains%20the%20same%20%E2%80%94%20the%20M7%20core%20performs%20the%20actual%20register%20updates.%3C%2FP%3E%0A%3CP%3E3.%20SPI_HAP%20(Host%20Access%20Protocol)%3CBR%20%2F%3EThe%20write_l2_lookup_table.py%20script%20from%20the%20host%20tools%20demonstrates%20how%20to%20configure%20the%20L2%20table%20dynamically%20via%20SPI.%20This%20approach%20can%20be%20used%20by%20any%20external%20MCU%20or%20host%20processor.%20The%20logic%20from%20this%20script%20can%20also%20be%20ported%20to%20run%20directly%20on%20the%20internal%20M7%20core%20if%20needed.%3C%2FP%3E%0A%3CP%3EAll%20of%20the%20above%20methods%20follow%20the%20same%20principle%20described%20in%20AN12925%2C%20section%205.1.3.2.%20The%20register-level%20flow%20is%20identical%20and%20includes%20polling%20the%20control%20register%2C%20writing%20to%20the%20entry%20registers%2C%20and%20triggering%20the%20update%20via%20the%20control%20register.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2126814%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2126814%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EI%20would%20like%20to%20configure%20L2%20lookup%20Table%20dynamically%26nbsp%3B%3CBR%20%2F%3EHow%20can%20i%20configure%20the%20L2%20Lookup%20Table%20without%20ECT%20Tool%20%3F%20is%20L2%20Lookup%20table%20can%20be%20configure%20via%20Dynamically%20with%20ECT%20Tool%20How%20to%20perform%20this%3F%3CBR%20%2F%3Ecan%20you%20give%20me%20example%20%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3EAtkinson%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2122860%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2122860%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3ELet%20me%20address%20your%20questions%20point%20by%20point%3A%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E1.%20%22Can%20you%20provide%20a%20flow%20chart%20of%20the%20static%20configuration%3F%22%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3EIf%20this%20is%20not%20covered%20in%20AN12925%20or%20UM11107%2C%20then%20unfortunately%20it%20is%20not%20public%20information.%20The%20internal%20flow%20is%20part%20of%20the%20implementation%20and%20cannot%20be%20shared.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CBR%20%2F%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E2.%20%22Do%20static%20and%20dynamic%20configurations%20use%20the%20same%20registers%3F%22%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3EThis%20is%20a%20reasonable%20assumption%20from%20a%20user-level%20perspective.%20However%2C%20the%20term%20%22register%22%20is%20a%20simplification%20%E2%80%94%20the%20actual%20implementation%20is%20more%20complex%20and%20handled%20by%20internal%20IP%20blocks.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E3.%20%22Where%20can%20I%20find%20the%20generated%20code%20for%20static%20configuration%3F%22%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3EIf%20you're%20using%20S32%20Design%20Studio%20with%20the%20SJA1110%20SDK%2C%20the%20output%20files%20are%20typically%3A%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%3E%26nbsp%3BDebug_FLASH%5Cflash_image.bin%20%E2%80%94%20contains%20both%20the%20switch%20core%20configuration%20and%20the%20internal%20MCU%20code.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%26nbsp%3Bboard%5Cswitchcore_0_Config.hex%20%E2%80%94%20contains%20the%20switch%20core%20configuration%20in%20the%20Generic%20Loader%20format%2C%20as%20described%20in%20Figure%20102%20of%20UM11107%20rev.%202.0.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%3E4.%20%22Is%20the%20configuration%20loaded%20as%20a%20binary%20at%20boot%3F%22%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3EYes%2C%20that's%20correct.%20The%20configuration%20is%20compiled%20into%20a%20binary%20and%20loaded%20during%20system%20boot.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2122215%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2122215%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EIn%20order%20to%20understand%20deep%20dive%20into%20the%20static%20configuration%26nbsp%3B%3CBR%20%2F%3Ecan%20you%20provide%20me%20how%20the%20flow%20chart%20of%20the%20static%20configuration%20will%20be%20there%26nbsp%3B%3C%2FP%3E%3CP%3Ewhether%20static%20and%20dynamic%20configuration%20utilize%20the%20same%20register%20for%20storing%20the%20data%20%3F%3F%3CBR%20%2F%3Ein%20Static%20configuration%20after%20generating%20the%20code%20in%20which%20file%20i%20can%20see%20the%20code%20%3F%3F%3CBR%20%2F%3Eso%20whether%20you%20are%20saying%20when%20the%20system%20boots%20the%20generated%20configuration%20of%20tables%20will%20be%20loaded%20as%20a%20binary%20which%20will%20be%20used%20%3F%3F%20am%20i%20right%20%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3EAtkinson%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2122212%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2122212%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3EI%20believe%20AN12925%2C%20particularly%20chapter%205.1%20%3C%2FSPAN%3E%3CSPAN%3E%22Static%20and%20dynamic%20switch%20configuration%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20provides%20a%20good%20overview%20of%20how%20static%20and%20dynamic%20configurations%20are%20handled%20in%20the%20SJA1110%20system.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3ETo%20clarify%20briefly%3A%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E-%20The%20system%20always%20boots%20with%20a%20static%20configuration%2C%20which%20is%20compiled%20into%20the%20firmware%20image.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E-%20During%20initialization%2C%20this%20configuration%20is%20loaded%20into%20internal%20memory%2C%20where%20it%20is%20processed%20and%20used%20to%20configure%20the%20switch.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E-%20If%20dynamic%20configuration%20is%20used%2C%20it%20operates%20on%20top%20of%20this%20static%20setup%20-%20typically%20via%20host%20tools%20or%20scripts%20-%20and%20is%20also%20stored%20in%20internal%20memory.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3EDetails%20such%20as%20how%20the%20configuration%20is%20internally%20processed%2C%20how%20long%20it%20takes%2C%20or%20how%20the%20IP%20handles%20it%20are%20part%20of%20the%20internal%20implementation%20and%20not%20publicly%20documented.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CLI-WRAPPER%3E%3CSPAN%3E%3C!--ScriptorEndFragment--%3E%3C%2FSPAN%3E%3C%2FLI-WRAPPER%3E%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2121364%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2121364%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EI%20would%20like%20to%20understand%2C%3CBR%20%2F%3EWhen%20we%20configure%20the%20L2%20Lookup%20Table%20with%20the%20respective%20configuration%20like%20MAC%2C%20SRCPORT%2C%20DSTPORT%2C%20CB_ON_DEST%2C%20CB_SID_IN%20so%20when%20we%20configure%20this%20configuration%20statically%20and%20Update%20code%26nbsp%3B%3CBR%20%2F%3Ehow%20these%20configurations%20are%20internally%20configured%20in%20the%20code%20%26amp%3B%20where%20it%20is%20configured%26nbsp%3B%3CBR%20%2F%3EWhen%20we%20configure%20like%20this%20where%20these%20configurations%20are%20getting%20loaded%20so%20example%3A%20whether%20this%20thing%20is%20stored%20as%20a%20Binary%20when%20the%20system%20boots%20the%20Binary%20file%20with%20the%20configuration%20getting%20loaded%20or%20in%20a%20different%20way%26nbsp%3B%3CBR%20%2F%3EHow%20this%20configured%20file%20is%20used%20into%20the%20code%26nbsp%3B%3CBR%20%2F%3Ecan%20you%20give%20me%20some%20brief%20explanation%26nbsp%3B%3CBR%20%2F%3EHow%20this%20static%20and%20Dynamic%20configuration%20in%20run-time%20works%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3EAtkinson%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2115887%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2115887%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThe%20fastest%20way%20forward%20is%20to%20take%20inspiration%20from%20the%20SJA1110-EVM%20%E2%80%94%20both%20the%20hardware%20(schematics)%20and%20the%20software%20(Python%20tools%20from%20sja1110evm_hosttools).%20This%20can%20serve%20as%20a%20solid%20reference%20point%20to%20accelerate%20your%20development.%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2115864%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2115864%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%40PavelL%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3Ecan%20you%20provide%20me%20more%20details%20about%20How%20to%20access%20the%20Registers%20via%20SPI%26nbsp%3B%3CBR%20%2F%3EHow%20to%20do%20change%20the%20Values%20via%20SPI%20through%20any%20external%20Device%20we%20need%20to%20change%20the%20Values%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3EAtkinson%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2115860%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2115860%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EECT%20means%20Ethernet%20Configuration%20Tool.%20It%20allows%20you%20to%20configure%20SJA1110%20on-line%2C%20without%20flashing.%3C%2FP%3E%0A%3CP%3EThe%20other%20way%20to%20access%20registers%20in%20SJA1110%20is%20via%20SPI.%20%3CSPAN%3ESince%20register%20access%20might%20not%20always%20be%20straightforward%2C%20you%20may%20also%20refer%20to%20the%20supporting%20Python%20script%20for%20the%20SJA1110-EVM.%20It%20provides%20a%20clear%20view%20of%20how%20to%20access%20various%20registers%20via%20SPI.%3C%2FSPAN%3E%3CBR%20clear%3D%22none%22%20%2F%3E%3CSPAN%3EThe%20Python%20tools%20are%20available%20on%20the%20SJA1110-EVM%20main%20page%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fdesign%2Fdesign-center%2Fdevelopment-boards-and-designs%2FSJA1110-EVM%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%20shape%3D%22rect%22%3ESJA1110-EVM%20Evaluation%20Board%20%7C%20NXP%20Semiconductors%3C%2FA%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%2C%20under%20Software%2C%20Secure%20files.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2115829%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2115829%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CBR%20%2F%3Ewhat%20is%20the%20full%20form%20of%20ECT%3CBR%20%2F%3EIs%20there%20any%20other%20method%20of%20Accessing%20the%20Registers%20for%20Reading%20and%20writing%20the%20Values%20in%20Register%26nbsp%3Binstead%20of%20ECT%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3EAtkinson%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2115349%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Register%20access%20for%20SJA1110%20Switch%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2115349%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248906%22%20target%3D%22_blank%22%3E%40Atkinson%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EPlease%20kindly%20review%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EAN12925%20-%20chapter%26nbsp%3B5.1.3%20Example%20for%20dynamic%20configuration%3C%2FLI%3E%0A%3CLI%3Esource%20code%20of%20ECT%20server%20-%26nbsp%3Bsrc%2Fdynamic_switch_configuration.c%20-%20e.g.%26nbsp%3BSJA1110_SetL2LookupTableEntry%3C%2FLI%3E%0A%3CLI%3Esja1110evm_hosttools_v1.2%5CSJA1110EVM%5Cwrite_l2_lookup_table.py%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3EPavel%3C%2FP%3E%3C%2FLINGO-BODY%3E