Register access for SJA1110 Switch

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

Register access for SJA1110 Switch

10,233 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

8,312 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

Please kindly review:

  • AN12925 - chapter 5.1.3 Example for dynamic configuration
  • source code of ECT server - src/dynamic_switch_configuration.c - e.g. SJA1110_SetL2LookupTableEntry
  • sja1110evm_hosttools_v1.2\SJA1110EVM\write_l2_lookup_table.py

Best regards,

Pavel

0 Kudos
Reply

8,288 Views
Atkinson
Contributor V

what is the full form of ECT
Is there any other method of Accessing the Registers for Reading and writing the Values in Register instead of ECT

Regards
Atkinson
0 Kudos
Reply

8,280 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

ECT means Ethernet Configuration Tool. It allows you to configure SJA1110 on-line, without flashing.

The other way to access registers in SJA1110 is via SPI. Since register access might not always be straightforward, you may also refer to the supporting Python script for the SJA1110-EVM. It provides a clear view of how to access various registers via SPI.
The Python tools are available on the SJA1110-EVM main page SJA1110-EVM Evaluation Board | NXP Semiconductors  , under Software, Secure files.

Best regards,

Pavel

0 Kudos
Reply

8,275 Views
Atkinson
Contributor V

Hello @PavelL 
can you provide me more details about How to access the Registers via SPI 
How to do change the Values via SPI through any external Device we need to change the Values

Regards
Atkinson 

0 Kudos
Reply

8,265 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

The fastest way forward is to take inspiration from the SJA1110-EVM — both the hardware (schematics) and the software (Python tools from sja1110evm_hosttools). This can serve as a solid reference point to accelerate your development.

Best regards,

Pavel

0 Kudos
Reply

8,116 Views
Atkinson
Contributor V

Hello @PavelL 

I would like to understand,
When we configure the L2 Lookup Table with the respective configuration like MAC, SRCPORT, DSTPORT, CB_ON_DEST, CB_SID_IN so when we configure this configuration statically and Update code 
how these configurations are internally configured in the code & where it is configured 
When we configure like this where these configurations are getting loaded so example: whether this thing is stored as a Binary when the system boots the Binary file with the configuration getting loaded or in a different way 
How this configured file is used into the code 
can you give me some brief explanation 
How this static and Dynamic configuration in run-time works?

Regards
Atkinson

0 Kudos
Reply

8,097 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

I believe AN12925, particularly chapter 5.1 "Static and dynamic switch configuration", provides a good overview of how static and dynamic configurations are handled in the SJA1110 system.

 

To clarify briefly:
- The system always boots with a static configuration, which is compiled into the firmware image.
- During initialization, this configuration is loaded into internal memory, where it is processed and used to configure the switch.
- If dynamic configuration is used, it operates on top of this static setup - typically via host tools or scripts - and is also stored in internal memory.

 

Details such as how the configuration is internally processed, how long it takes, or how the IP handles it are part of the internal implementation and not publicly documented.

Best regards,

Pavel

0 Kudos
Reply

8,095 Views
Atkinson
Contributor V

Hello @PavelL 

In order to understand deep dive into the static configuration 
can you provide me how the flow chart of the static configuration will be there 

whether static and dynamic configuration utilize the same register for storing the data ??
in Static configuration after generating the code in which file i can see the code ??
so whether you are saying when the system boots the generated configuration of tables will be loaded as a binary which will be used ?? am i right ?

Regards
Atkinson 

0 Kudos
Reply

8,040 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson 

Let me address your questions point by point:
 
1. "Can you provide a flow chart of the static configuration?"
If this is not covered in AN12925 or UM11107, then unfortunately it is not public information. The internal flow is part of the implementation and cannot be shared.

 

2. "Do static and dynamic configurations use the same registers?"
This is a reasonable assumption from a user-level perspective. However, the term "register" is a simplification — the actual implementation is more complex and handled by internal IP blocks.

 

3. "Where can I find the generated code for static configuration?"

If you're using S32 Design Studio with the SJA1110 SDK, the output files are typically:
  •  Debug_FLASH\flash_image.bin — contains both the switch core configuration and the internal MCU code.
  •  board\switchcore_0_Config.hex — contains the switch core configuration in the Generic Loader format, as described in Figure 102 of UM11107 rev. 2.0.

 4. "Is the configuration loaded as a binary at boot?"

Yes, that's correct. The configuration is compiled into a binary and loaded during system boot.

 

Best regards,

Pavel

0 Kudos
Reply

7,961 Views
Atkinson
Contributor V

Hello @PavelL 

I would like to configure L2 lookup Table dynamically 
How can i configure the L2 Lookup Table without ECT Tool ? is L2 Lookup table can be configure via Dynamically with ECT Tool How to perform this?
can you give me example ?

Regards
Atkinson

Tags (1)
0 Kudos
Reply

7,919 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

Let me summarize what we’ve already discussed in this thread and outline the available options for dynamically reconfiguring the L2 Lookup Table on the SJA1110 switch:

1. ECT (Ethernet Control Tool)
Dynamic configuration via external Ethernet (UDP) frames. The internal firmware running on the M7 core receives the configuration and applies it to the switch core.

2. Modified ECT
The ECT source code can be adapted to accept any Ethernet frame format (not just UDP). This allows integration into custom protocols or systems. The internal logic remains the same — the M7 core performs the actual register updates.

3. SPI_HAP (Host Access Protocol)
The write_l2_lookup_table.py script from the host tools demonstrates how to configure the L2 table dynamically via SPI. This approach can be used by any external MCU or host processor. The logic from this script can also be ported to run directly on the internal M7 core if needed.

All of the above methods follow the same principle described in AN12925, section 5.1.3.2. The register-level flow is identical and includes polling the control register, writing to the entry registers, and triggering the update via the control register.

 

Best regards,

Pavel

0 Kudos
Reply

7,722 Views
Atkinson
Contributor V

Hi @PavelL 

Whether it is possible to configure the CB Sequence Generation and Recovery Table and CB Recovery Table can be configured Dynamically whether we have Provision for that ?

By using SJA1110 EVM Host tools whether we have support for that or it is not possible to configure it Dynamically only it can be statically configured in Switchcore?


Tags (2)
0 Kudos
Reply

7,711 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

The CB Sequence Generation and Recovery Table and CB Recovery Table can be dynamically reconfigured, as described in UM11107, Chapter 5.6.5 – Redundancy Reconfiguration.

This functionality is supported by the SJA1110 EVM Host Tools. Relevant implementation details can be found in the following Python modules:

  • cb_sg_ir.py
  • cb_sr.py

These are located under the path:
sja1110evm_hosttools_v1.2\SJA1110EVM\SJA1110\

Please note that while the capability is implemented, no directly executable example is provided within the toolset.

Best regards,

Pavel

0 Kudos
Reply

7,673 Views
Atkinson
Contributor V

Hi @PavelL 

Can you provide me a Example for Creating a Dynamic Enrty in CB_SG_IR Table 

self.RTAGOFFSET_10 = 0
        self.RTAGOFFSET_9 = 0
        self.RTAGOFFSET_8 = 0
        self.RTAGOFFSET_7 = 0
        self.RTAGOFFSET_6 = 0
        self.RTAGOFFSET_5 = 0
        self.RTAGOFFSET_4 = 0
        self.RTAGOFFSET_3 = 0
        self.RTAGOFFSET_2 = 0
        self.RTAGOFFSET_1 = 0
        self.RTAGOFFSET_0 = 0
        self.REPLACE_PORTS = 0
        self.TAG_PORTS = 0
        self.IND_REC_PORTS = 0
        self.SEQ_REC_PORTS = 0
        self.IND_REC_TIMEOUT = 0
        self.SEQRECOFFSET = 0
        self.GENSEQNUM = 0

        self.tstled = 0
        self.rstled = 0
        self.seqgenrst = 0
How i should mention in this example 
TAG_PORTS =Port 1 & Port 2 
GENSEQNUM = ENABLE 
SEQ_REC_PORTS = POrt 3 & Port 4 

how to enter the values in this data ??

typedef struct {
    uint8_t  RTAGOFFSET_10;
    uint8_t  RTAGOFFSET_9;
    uint8_t  RTAGOFFSET_8;
    uint8_t  RTAGOFFSET_7;
    uint8_t  RTAGOFFSET_6;
    uint8_t  RTAGOFFSET_5;
    uint8_t  RTAGOFFSET_4;
    uint8_t  RTAGOFFSET_3;
    uint8_t  RTAGOFFSET_2;
    uint8_t  RTAGOFFSET_1;
    uint8_t  RTAGOFFSET_0;
 
    uint16_t REPLACE_PORTS;
    uint16_t TAG_PORTS;
    uint16_t IND_REC_PORTS;
    uint16_t SEQ_REC_PORTS;
    uint16_t IND_REC_TIMEOUT;
    uint16_t SEQRECOFFSET;
    uint16_t GENSEQNUM;
 
    uint8_t tstled;
    uint8_t rstled;
    uint8_t seqgenrst;
 
    uint8_t index;
} CB_SGIR_Entry;
 
void SGIR_Entry(const CB_SGIR_Entry* entry, uint32_t* Write_SGIR_Entry) {
    int ADDR_RANGE = 5;
    for (int i = 0; i < ADDR_RANGE; i++) Write_SGIR_Entry[i] = 0;
 
    Write_SGIR_Entry[0] = ((entry->RTAGOFFSET_0 & 0x1) << 0)
  | ((entry->RTAGOFFSET_1 & 0x1) << 1)
  | ((entry->RTAGOFFSET_2 & 0x1) << 2)
  | ((entry->RTAGOFFSET_3 & 0x1) << 3)
  | ((entry->RTAGOFFSET_4 & 0x1) << 4)
  | ((entry->RTAGOFFSET_5 & 0x1) << 5)
  | ((entry->RTAGOFFSET_6 & 0x1) << 6)
  | ((entry->RTAGOFFSET_7 & 0x1) << 7)
  | ((entry->RTAGOFFSET_8 & 0x1) <<
  | ((entry->RTAGOFFSET_9 & 0x1) << 9)
  | ((entry->RTAGOFFSET_10 & 0x1) << 10);
 
    Write_SGIR_Entry[1] = ((entry->REPLACE_PORTS & 0xFFFF) << 0)
  | ((entry->TAG_PORTS & 0xFFFF) << 16);
 
    Write_SGIR_Entry[2] = ((entry->IND_REC_PORTS & 0xFFFF) << 0)
  | ((entry->SEQ_REC_PORTS & 0xFFFF) << 16);
 
    Write_SGIR_Entry[3] = ((entry->IND_REC_TIMEOUT & 0xFFFF) << 0)
  | ((entry->SEQRECOFFSET & 0xFFFF) << 16);
 
    Write_SGIR_Entry[4] = ((entry->GENSEQNUM & 0xFFFF) << 0)
  | ((entry->tstled & 0x1) << 16)
  | ((entry->rstled & 0x1) << 17)
  | ((entry->seqgenrst & 0x1) << 18);
}
 
 
void write_SGIR(const CB_SGIR_Entry* entry) {
uint32_t SWREG_BASE = 0x00000000;
uint32_t CB_SGIR_OFFSET = 0xFF000238;
uint32_t CB_SGIR_CTRL_OFFSET = 0xFF00024C;
 
uint32_t VALID = (1U << 31);
uint32_t RDWRSET = (1U << 30);
uint32_t TARGETEDTBL = (0U << 6);
 
uint32_t ADDR_RANGE = 5;
uint32_t TABLE_SIZE = 64;
 
volatile uint32_t* const CB_SGIR_TABLE = (uint32_t*)(SWREG_BASE + CB_SGIR_OFFSET);
volatile uint32_t* const CB_SGIR_CTRL  = (uint32_t*)(SWREG_BASE + CB_SGIR_CTRL_OFFSET);
 
uint32_t Write_SGIR_Entry[ADDR_RANGE];
SGIR_Entry(entry, Write_SGIR_Entry);
 
uint32_t control_word = VALID | RDWRSET | (TARGETEDTBL) | (entry->index & 0x3F);
 
for (int i = 0; i < ADDR_RANGE; i++) {
CB_SGIR_TABLE[i] = Write_SGIR_Entry[i];
}
 
*CB_SGIR_CTRL = control_word;
}
 
void ConfigSGIR(uint8_t index,uint16_t tag_ports,uint16_t replace_ports,uint16_t ind_rec_ports,uint16_t seq_rec_ports,
uint16_t ind_rec_timeout,uint16_t seqrec_offset,uint16_t genseqnum,uint8_t seqgenrst,uint8_t tstled,uint8_t rstled,
uint8_t rtagoffset[11]) {
    CB_SGIR_Entry entry = {0};
 
    entry.index = index;
    entry.TAG_PORTS = tag_ports;
    entry.REPLACE_PORTS = replace_ports;
    entry.IND_REC_PORTS = ind_rec_ports;
    entry.SEQ_REC_PORTS = seq_rec_ports;
    entry.IND_REC_TIMEOUT = ind_rec_timeout;
    entry.SEQRECOFFSET = seqrec_offset;
    entry.GENSEQNUM = genseqnum;
    entry.seqgenrst = seqgenrst;
    entry.tstled = tstled;
    entry.rstled = rstled;
 
    entry.RTAGOFFSET_0 = rtagoffset[0];
    entry.RTAGOFFSET_1 = rtagoffset[1];
    entry.RTAGOFFSET_2 = rtagoffset[2];
    entry.RTAGOFFSET_3 = rtagoffset[3];
    entry.RTAGOFFSET_4 = rtagoffset[4];
    entry.RTAGOFFSET_5 = rtagoffset[5];
    entry.RTAGOFFSET_6 = rtagoffset[6];
    entry.RTAGOFFSET_7 = rtagoffset[7];
    entry.RTAGOFFSET_8 = rtagoffset[8];
    entry.RTAGOFFSET_9 = rtagoffset[9];
    entry.RTAGOFFSET_10 = rtagoffset[10];
 
    write_SGIR(&entry);
}

int main(){
ConfigSGIR(0, (1 << 1) | (1 << 2), 0, 0, 0, 0, 0, 1, 0, 0, 0, rtagoffsets0);
}
whether this code is correct to execute for Creating a Dynamic Entry ??


Tags (1)
0 Kudos
Reply

7,654 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

creating and evaluating such a script falls outside the scope of our complimentary support.

Thank you for your understanding.

Best regards,

Pavel

0 Kudos
Reply

7,235 Views
Atkinson
Contributor V

Hi @PavelL 

The below script is the example script which created for Dynamically creating a Entry which operates for L2 Lookup table by Index 

int WriteCB_SG_IR(){
uint32_t CBSGIR_OFFSET     = 0xFF000238;
uint32_t CBSGIR_CTRL_OFFSET = 0xFF00024C;
const uint32_t SWREG_BASE    = 0x00000000;
 
volatile uint32_t* CB_SG_IR_ADDRESS      = (uint32_t*)(SWREG_BASE + CBSGIR_OFFSET);
volatile uint32_t* CB_SG_IR_ADDRESS_CTL  = (uint32_t*)(SWREG_BASE + CBSGIR_CTRL_OFFSET);
 
uint32_t RTAGOFFSET_10 = 0;
uint32_t RTAGOFFSET_9 = 0;
uint32_t RTAGOFFSET_8 = 0;
uint32_t RTAGOFFSET_7 = 0;
uint32_t RTAGOFFSET_6 = 0;
uint32_t RTAGOFFSET_5 = 0;
uint32_t RTAGOFFSET_4 = 0;
uint32_t RTAGOFFSET_3 = 0;
uint32_t RTAGOFFSET_2 = 0;
uint32_t RTAGOFFSET_1 = 0;
uint32_t RTAGOFFSET_0 = 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 = 1;
uint32_t INDEX = 0;
uint32_t SEQGENRST = 0;
 
uint32_t VALID = 1U;
uint32_t RDWRSET = 1U ;
uint32_t TARGETEDTBL = 0U;
uint32_t TABLE_SIZE = 64;
 
uint32_t CB_SG_IR_Entry[CB_SGIR_ADDR_RANGE] = {0};
 
CB_SG_IR_Entry[0] =
    ((GENSEQNUM & 0x1) << 1) |
    ((SEQRECOFFSET & 0x1F) << 2) |
    ((IND_REC_TIMEOUT & 0xFFFF) << 7);
 
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 = *CB_SG_IR_ADDRESS_CTL;
while ((status & (1U << 31)) != 0) {
status = *CB_SG_IR_ADDRESS_CTL;
}
 
for (int i = 0; i < CB_SGIR_ADDR_RANGE; i++) {
CB_SG_IR_ADDRESS[i] = CB_SG_IR_Entry[i];
    if (CB_SG_IR_ADDRESS[i] != CB_SG_IR_Entry[i]) {
         return -3;
    }
}
uint32_t CTRL_VALUE = ((VALID << 31) + (RDWRSET << 30) + (SEQGENRST << 9) + (TARGETEDTBL << 6) + (INDEX & 0b111111));
*CB_SG_IR_ADDRESS_CTL = CTRL_VALUE;
 
do {
status = *CB_SG_IR_ADDRESS_CTL;
} while ((status >> 31) & 1U);
 
return 0;
}



I am having a certain questions ??
The above script which i provided is same as write_le_lookup_table.py with change in address and Control Address which i created it ? so in order to create a dynamic Entry we can replicate as same as that ryt ??
whether it will work that was the sample code above is provided because in cb_sg_ir.py is completely differ from write_l2_lookup_table.py ?

whether index value also need to be encoded into the CB_SG_IR_Entry[] ??
so whether any order need to be maintained CB_SG_IR_Entry[0],[1],[2],[3]
because inside values need to be maintained in certain order 

In TAG_PORTS = 0x006 which i gave in that TAG_PORTS = port 1 & Port 2 whether that is correct ??



Tags (1)
0 Kudos
Reply

6,987 Views
Atkinson
Contributor V

Hi @PavelL 

Whether the address for Creating a dynamic Entry which i used is correct or different address need to be used 

 

0 Kudos
Reply

6,926 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

The principle for dynamically creating entries in the CB Sequence Generation / Individual Recovery Table (CB_SG_IR) is similar to the approach used for dynamic entries in the L2 Lookup Table, such as in write_l2_lookup_table.py. However, there are important differences in the table layout, control register configuration, and number of words per entry.

 

Q1: The above script which I provided is same as write_l2_lookup_table.py with change in address and Control Address which I created it? So in order to create a dynamic Entry we can replicate as same as that right?

Yes, the concept is similar. You can replicate the dynamic entry creation logic from write_l2_lookup_table.py, but you must adapt it to the CB_SG_IR table specifics:

  • Use the correct base and control offsets (CBSGIR_OFFSET, CBSGIR_CTRL_OFFSET)

  • Ensure the entry format matches the CB_SG_IR layout (5 words)

  • Set TARGETEDTBL = 0 for CB_SG_IR (unlike L2 which uses TARGETEDTBL = 1)

  • Use the appropriate control word format including VALID, RDWRSET, SEQGENRST, and INDEX

The Python script cb_sg_ir.py implements this logic correctly using the CB_SGIR_Entry and CB_SGIR_Table classes.

 

Q2: Whether index value also need to be encoded into the CB_SG_IR_Entry[]?

No, the index is not encoded into the CB_SG_IR_Entry[] data array. It is only used in the control word written to the control register (CB_SG_IR_ADDRESS_CTL), which triggers the hardware to apply the entry at the specified index.

 

Q3: So whether any order need to be maintained CB_SG_IR_Entry[0],[1],[2],[3] because inside values need to be maintained in certain order?

Yes, the order of words in CB_SG_IR_Entry[] must be strictly maintained. Each word corresponds to a specific part of the hardware table entry as defined in the layout. The Python script cb_sg_ir.py handles this ordering automatically based on the layout definition.

 

Q4: In TAG_PORTS = 0x006 which I gave in that TAG_PORTS = port 1 & Port 2 whether that is correct?

Yes, that is correct. The value 0x006 in binary is 0000 0000 0110, which sets bits 1 and 2 - corresponding to port 1 and port 2. This matches the expected encoding for port selection.

Bets regards,

Pavel

0 Kudos
Reply

6,922 Views
Atkinson
Contributor V

Hi @PavelL 

Thanks for the response.

The code which i provided is the modified and applicable version. Of CB Sequence Generation and Recovery Table so I maintained a standard which it requires to create a dynamic entry.

Ca. You just confirm whether it is correct to create a Dynamci entry for CB Sequence Generation and Recovery Table.

I am having a doubt in the case of entry[0][1][2][3][4] so acne you provide me the exact version of order which will help us to create a dynamic entry.

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 

 

0 Kudos
Reply

6,784 Views
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

Yes, your code for dynamically creating an entry in the CB Sequence Generation and Individual Recovery Table (CB_SG_IR) is valid. This conclusion is based on the official Python implementation (cb_sg_ir.py) provided by NXP, which uses the same layout and logic for dynamic configuration.

Your Question:
"I am having a doubt in the case of entry[0][1][2][3][4] so can you provide me the exact version of order which will help us to create a dynamic entry?"

Yes — the order of the 5 words in the CB_SG_IR_Entry[] array is important and must follow the bit layout defined in the hardware specification (Table 1148). Based on that, the correct mapping is:

Word Index Bit Range Fields Included
entry[4] 159–124 RTAGOFFSET_10 to RTAGOFFSET_5
entry[3] 123–94 RTAGOFFSET_4 to RTAGOFFSET_0
entry[2] 93–72 REPLACE_PORTS, TAG_PORTS
entry[1] 71–50 IND_REC_PORTS, SEQ_REC_PORTS
entry[0] 49–28 IND_REC_TIMEOUT, SEQRECOFFSET, GENSEQNUM


Bits 27–0 are reserved and unused.

This matches the layout used internally in the Python script and confirms that your manual construction of the entry array is correct.

Your Question:
"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?"

Correct — the Python script uses a layout-based approach to automatically pack and unpack the fields into the correct word order. While the script does not explicitly show the word array, it enforces the correct order internally. Your C implementation, which manually constructs the 5-word array, is consistent with this logic and is valid.

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