<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>S32GのトピックRe: Register access for SJA1110 Switch</title>
    <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140618#M14284</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Can you provide me a Example for Creating a Dynamic Enrty in CB_SG_IR Table&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_10&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_9&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_8&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_7&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_6&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_5&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_4&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_3&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_2&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_1&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_0&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;REPLACE_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TAG_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;IND_REC_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SEQ_REC_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;IND_REC_TIMEOUT&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SEQRECOFFSET&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;GENSEQNUM&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;tstled&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;rstled&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;seqgenrst&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;BR /&gt;How i should mention in this example&amp;nbsp;&lt;BR /&gt;TAG_PORTS =Port 1 &amp;amp; Port 2&amp;nbsp;&lt;BR /&gt;GENSEQNUM = ENABLE&amp;nbsp;&lt;BR /&gt;SEQ_REC_PORTS = POrt 3 &amp;amp; Port 4&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;how to enter the values in this data ??&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;typedef struct {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_10;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_9;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_8;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_7;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_6;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_5;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_4;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_3;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_2;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t REPLACE_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t TAG_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t IND_REC_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t SEQ_REC_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t IND_REC_TIMEOUT;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t SEQRECOFFSET;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t GENSEQNUM;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t tstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t rstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t seqgenrst;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t index;&lt;/DIV&gt;&lt;DIV&gt;} CB_SGIR_Entry;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void SGIR_Entry(const CB_SGIR_Entry* entry, uint32_t* Write_SGIR_Entry) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; int ADDR_RANGE = 5;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; ADDR_RANGE; i++) Write_SGIR_Entry[i] = 0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[0] = ((entry-&amp;gt;RTAGOFFSET_0 &amp;amp; 0x1) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_1 &amp;amp; 0x1) &amp;lt;&amp;lt; 1)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_2 &amp;amp; 0x1) &amp;lt;&amp;lt; 2)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_3 &amp;amp; 0x1) &amp;lt;&amp;lt; 3)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_4 &amp;amp; 0x1) &amp;lt;&amp;lt; 4)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_5 &amp;amp; 0x1) &amp;lt;&amp;lt; 5)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_6 &amp;amp; 0x1) &amp;lt;&amp;lt; 6)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_7 &amp;amp; 0x1) &amp;lt;&amp;lt; 7)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_8 &amp;amp; 0x1) &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_9 &amp;amp; 0x1) &amp;lt;&amp;lt; 9)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_10 &amp;amp; 0x1) &amp;lt;&amp;lt; 10);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[1] = ((entry-&amp;gt;REPLACE_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;TAG_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 16);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[2] = ((entry-&amp;gt;IND_REC_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;SEQ_REC_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 16);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[3] = ((entry-&amp;gt;IND_REC_TIMEOUT &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;SEQRECOFFSET &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 16);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[4] = ((entry-&amp;gt;GENSEQNUM &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;tstled &amp;amp; 0x1) &amp;lt;&amp;lt; 16)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;rstled &amp;amp; 0x1) &amp;lt;&amp;lt; 17)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;seqgenrst &amp;amp; 0x1) &amp;lt;&amp;lt; 18);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;void write_SGIR(const CB_SGIR_Entry* entry) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t SWREG_BASE = 0x00000000;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CB_SGIR_OFFSET = 0xFF000238;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CB_SGIR_CTRL_OFFSET = 0xFF00024C;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t VALID = (1U &amp;lt;&amp;lt; 31);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RDWRSET = (1U &amp;lt;&amp;lt; 30);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TARGETEDTBL = (0U &amp;lt;&amp;lt; 6);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t ADDR_RANGE = 5;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TABLE_SIZE = 64;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;volatile uint32_t* const CB_SGIR_TABLE = (uint32_t*)(SWREG_BASE + CB_SGIR_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;volatile uint32_t* const CB_SGIR_CTRL&amp;nbsp; = (uint32_t*)(SWREG_BASE + CB_SGIR_CTRL_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t Write_SGIR_Entry[ADDR_RANGE];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SGIR_Entry(entry, Write_SGIR_Entry);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t control_word = VALID | RDWRSET | (TARGETEDTBL) | (entry-&amp;gt;index &amp;amp; 0x3F);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;for (int i = 0; i &amp;lt; ADDR_RANGE; i++) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SGIR_TABLE[i] = Write_SGIR_Entry[i];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;*CB_SGIR_CTRL = control_word;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void ConfigSGIR(uint8_t index,uint16_t tag_ports,uint16_t replace_ports,uint16_t ind_rec_ports,uint16_t seq_rec_ports,&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint16_t ind_rec_timeout,uint16_t seqrec_offset,uint16_t genseqnum,uint8_t seqgenrst,uint8_t tstled,uint8_t rstled,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8_t rtagoffset[11]) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CB_SGIR_Entry entry = {0};&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.index = index;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.TAG_PORTS = tag_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.REPLACE_PORTS = replace_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.IND_REC_PORTS = ind_rec_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.SEQ_REC_PORTS = seq_rec_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.IND_REC_TIMEOUT = ind_rec_timeout;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.SEQRECOFFSET = seqrec_offset;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.GENSEQNUM = genseqnum;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.seqgenrst = seqgenrst;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.tstled = tstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.rstled = rstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_0 = rtagoffset[0];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_1 = rtagoffset[1];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_2 = rtagoffset[2];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_3 = rtagoffset[3];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_4 = rtagoffset[4];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_5 = rtagoffset[5];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_6 = rtagoffset[6];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_7 = rtagoffset[7];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_8 = rtagoffset[8];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_9 = rtagoffset[9];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_10 = rtagoffset[10];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; write_SGIR(&amp;amp;entry);&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&lt;BR /&gt;int main(){&lt;BR /&gt;ConfigSGIR(0, (1 &amp;lt;&amp;lt; 1) | (1 &amp;lt;&amp;lt; 2), 0, 0, 0, 0, 0, 1, 0, 0, 0, rtagoffsets0);&lt;BR /&gt;}&lt;BR /&gt;whether this code is correct to execute for Creating a Dynamic Entry ??&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 25 Jul 2025 06:31:23 GMT</pubDate>
    <dc:creator>Atkinson</dc:creator>
    <dc:date>2025-07-25T06:31:23Z</dc:date>
    <item>
      <title>Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115086#M13706</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;,&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/24163"&gt;@chenyin_h&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I would like to access the registers for accessing the L2 Table, VLAN Table via Dynamic&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Address Name Access Reset Description&lt;BR /&gt;8Ch DYN_BE_LKP_&lt;BR /&gt;ENTRY0&lt;BR /&gt;R/W 0h&lt;BR /&gt;(FFFFFFFEh)&lt;BR /&gt;90h DYN_BE_LKP_&lt;BR /&gt;ENTRY1&lt;BR /&gt;R/W 0h&lt;BR /&gt;94h DYN_BE_LKP_&lt;BR /&gt;ENTRY2&lt;BR /&gt;R/W 0h&lt;BR /&gt;98h DYN_BE_LKP_&lt;BR /&gt;ENTRY3&lt;BR /&gt;R/W 0h&lt;BR /&gt;9Ch DYN_BE_LKP_&lt;BR /&gt;ENTRY4&lt;BR /&gt;R/W 0h&lt;BR /&gt;A0h DYN_BE_LKP_&lt;BR /&gt;ENTRY5&lt;BR /&gt;R/W 0h&lt;BR /&gt;A4h DYN_BE_LKP_CTRL R/W 0h&lt;BR /&gt;(FF800000h)&lt;BR /&gt;&lt;BR /&gt;How to access the register to configure change it ?&lt;BR /&gt;How to change the values of the registers during run Time??&lt;BR /&gt;Using Programming Interface we can change it Dynamically (as mentioned in Document) is there any external tool need to configure ??&lt;BR /&gt;&lt;BR /&gt;Regards&amp;nbsp;&lt;BR /&gt;Atkinson&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jun 2025 07:02:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115086#M13706</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-06-12T07:02:07Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115349#M13712</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Please kindly review:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;AN12925 - chapter&amp;nbsp;5.1.3 Example for dynamic configuration&lt;/LI&gt;
&lt;LI&gt;source code of ECT server -&amp;nbsp;src/dynamic_switch_configuration.c - e.g.&amp;nbsp;SJA1110_SetL2LookupTableEntry&lt;/LI&gt;
&lt;LI&gt;sja1110evm_hosttools_v1.2\SJA1110EVM\write_l2_lookup_table.py&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jun 2025 10:47:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115349#M13712</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-06-12T10:47:58Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115829#M13732</link>
      <description>&lt;BR /&gt;what is the full form of ECT&lt;BR /&gt;Is there any other method of Accessing the Registers for Reading and writing the Values in Register&amp;nbsp;instead of ECT&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Atkinson</description>
      <pubDate>Fri, 13 Jun 2025 04:46:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115829#M13732</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-06-13T04:46:11Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115860#M13733</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;ECT means Ethernet Configuration Tool. It allows you to configure SJA1110 on-line, without flashing.&lt;/P&gt;
&lt;P&gt;The other way to access registers in SJA1110 is via SPI. &lt;SPAN&gt;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.&lt;/SPAN&gt;&lt;BR clear="none" /&gt;&lt;SPAN&gt;The Python tools are available on the SJA1110-EVM main page&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.nxp.com/design/design-center/development-boards-and-designs/SJA1110-EVM" target="_blank" rel="noopener" shape="rect"&gt;SJA1110-EVM Evaluation Board | NXP Semiconductors&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;, under Software, Secure files.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jun 2025 06:11:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115860#M13733</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-06-13T06:11:25Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115864#M13734</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;can you provide me more details about How to access the Registers via SPI&amp;nbsp;&lt;BR /&gt;How to do change the Values via SPI through any external Device we need to change the Values&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Atkinson&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jun 2025 06:15:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115864#M13734</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-06-13T06:15:27Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115887#M13735</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jun 2025 06:29:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2115887#M13735</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-06-13T06:29:47Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2121364#M13847</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I would like to understand,&lt;BR /&gt;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&amp;nbsp;&lt;BR /&gt;how these configurations are internally configured in the code &amp;amp; where it is configured&amp;nbsp;&lt;BR /&gt;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&amp;nbsp;&lt;BR /&gt;How this configured file is used into the code&amp;nbsp;&lt;BR /&gt;can you give me some brief explanation&amp;nbsp;&lt;BR /&gt;How this static and Dynamic configuration in run-time works?&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Atkinson&lt;/P&gt;</description>
      <pubDate>Mon, 23 Jun 2025 10:46:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2121364#M13847</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-06-23T10:46:52Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2122212#M13878</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;!--ScriptorStartFragment--&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;I believe AN12925, particularly chapter 5.1 &lt;/SPAN&gt;&lt;SPAN&gt;"Static and dynamic switch configuration"&lt;/SPAN&gt;&lt;SPAN&gt;, provides a good overview of how static and dynamic configurations are handled in the SJA1110 system.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;To clarify briefly:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;- The system always boots with a static configuration, which is compiled into the firmware image.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;- During initialization, this configuration is loaded into internal memory, where it is processed and used to configure the switch.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;- 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.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;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.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;SPAN&gt;&lt;!--ScriptorEndFragment--&gt;&lt;/SPAN&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jun 2025 11:54:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2122212#M13878</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-06-24T11:54:58Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2122215#M13879</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;In order to understand deep dive into the static configuration&amp;nbsp;&lt;BR /&gt;can you provide me how the flow chart of the static configuration will be there&amp;nbsp;&lt;/P&gt;&lt;P&gt;whether static and dynamic configuration utilize the same register for storing the data ??&lt;BR /&gt;in Static configuration after generating the code in which file i can see the code ??&lt;BR /&gt;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 ?&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Atkinson&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jun 2025 12:04:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2122215#M13879</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-06-24T12:04:09Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2122860#M13898</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;!--ScriptorStartFragment--&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;Let me address your questions point by point:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;1. "Can you provide a flow chart of the static configuration?"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;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.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;2. "Do static and dynamic configurations use the same registers?"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;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.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;3. "Where can I find the generated code for static configuration?"&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;If you're using S32 Design Studio with the SJA1110 SDK, the output files are typically:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&amp;nbsp;Debug_FLASH\flash_image.bin — contains both the switch core configuration and the internal MCU code.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;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.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;4. "Is the configuration loaded as a binary at boot?"&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;Yes, that's correct. The configuration is compiled into a binary and loaded during system boot.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jun 2025 06:56:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2122860#M13898</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-06-25T06:56:14Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2126814#M13960</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I would like to configure L2 lookup Table dynamically&amp;nbsp;&lt;BR /&gt;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?&lt;BR /&gt;can you give me example ?&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Atkinson&lt;/P&gt;</description>
      <pubDate>Wed, 02 Jul 2025 04:20:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2126814#M13960</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-07-02T04:20:53Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2128007#M13976</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;P&gt;1. ECT (Ethernet Control Tool)&lt;BR /&gt;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.&lt;/P&gt;
&lt;P&gt;2. Modified ECT&lt;BR /&gt;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.&lt;/P&gt;
&lt;P&gt;3. SPI_HAP (Host Access Protocol)&lt;BR /&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Thu, 03 Jul 2025 09:54:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2128007#M13976</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-07-03T09:54:59Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140042#M14269</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;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 ?&lt;BR /&gt;&lt;BR /&gt;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?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jul 2025 09:34:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140042#M14269</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-07-24T09:34:15Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140123#M14273</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;CB Sequence Generation and Recovery Table&amp;nbsp;and&amp;nbsp;CB Recovery Table&amp;nbsp;can be dynamically reconfigured, as described in&amp;nbsp;UM11107, Chapter 5.6.5 –&amp;nbsp;Redundancy Reconfiguration.&lt;/P&gt;
&lt;P&gt;This functionality is supported by the&amp;nbsp;SJA1110 EVM Host Tools.&amp;nbsp;Relevant implementation details can be found in the following Python modules:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;cb_sg_ir.py&lt;/LI&gt;
&lt;LI&gt;cb_sr.py&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;These are located under the path:&lt;BR /&gt;sja1110evm_hosttools_v1.2\SJA1110EVM\SJA1110\&lt;/P&gt;
&lt;P&gt;Please note that while the capability is implemented,&amp;nbsp;no directly executable example&amp;nbsp;is provided within the toolset.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jul 2025 11:29:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140123#M14273</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-07-24T11:29:36Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140618#M14284</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Can you provide me a Example for Creating a Dynamic Enrty in CB_SG_IR Table&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_10&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_9&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_8&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_7&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_6&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_5&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_4&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_3&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_2&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_1&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RTAGOFFSET_0&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;REPLACE_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TAG_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;IND_REC_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SEQ_REC_PORTS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;IND_REC_TIMEOUT&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SEQRECOFFSET&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;GENSEQNUM&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;tstled&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;rstled&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;seqgenrst&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;BR /&gt;How i should mention in this example&amp;nbsp;&lt;BR /&gt;TAG_PORTS =Port 1 &amp;amp; Port 2&amp;nbsp;&lt;BR /&gt;GENSEQNUM = ENABLE&amp;nbsp;&lt;BR /&gt;SEQ_REC_PORTS = POrt 3 &amp;amp; Port 4&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;how to enter the values in this data ??&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;typedef struct {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_10;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_9;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_8;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_7;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_6;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_5;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_4;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_3;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_2;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t&amp;nbsp; RTAGOFFSET_0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t REPLACE_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t TAG_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t IND_REC_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t SEQ_REC_PORTS;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t IND_REC_TIMEOUT;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t SEQRECOFFSET;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint16_t GENSEQNUM;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t tstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t rstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t seqgenrst;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t index;&lt;/DIV&gt;&lt;DIV&gt;} CB_SGIR_Entry;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void SGIR_Entry(const CB_SGIR_Entry* entry, uint32_t* Write_SGIR_Entry) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; int ADDR_RANGE = 5;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; ADDR_RANGE; i++) Write_SGIR_Entry[i] = 0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[0] = ((entry-&amp;gt;RTAGOFFSET_0 &amp;amp; 0x1) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_1 &amp;amp; 0x1) &amp;lt;&amp;lt; 1)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_2 &amp;amp; 0x1) &amp;lt;&amp;lt; 2)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_3 &amp;amp; 0x1) &amp;lt;&amp;lt; 3)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_4 &amp;amp; 0x1) &amp;lt;&amp;lt; 4)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_5 &amp;amp; 0x1) &amp;lt;&amp;lt; 5)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_6 &amp;amp; 0x1) &amp;lt;&amp;lt; 6)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_7 &amp;amp; 0x1) &amp;lt;&amp;lt; 7)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_8 &amp;amp; 0x1) &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_9 &amp;amp; 0x1) &amp;lt;&amp;lt; 9)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;RTAGOFFSET_10 &amp;amp; 0x1) &amp;lt;&amp;lt; 10);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[1] = ((entry-&amp;gt;REPLACE_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;TAG_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 16);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[2] = ((entry-&amp;gt;IND_REC_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;SEQ_REC_PORTS &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 16);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[3] = ((entry-&amp;gt;IND_REC_TIMEOUT &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;SEQRECOFFSET &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 16);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Write_SGIR_Entry[4] = ((entry-&amp;gt;GENSEQNUM &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 0)&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;tstled &amp;amp; 0x1) &amp;lt;&amp;lt; 16)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;rstled &amp;amp; 0x1) &amp;lt;&amp;lt; 17)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; | ((entry-&amp;gt;seqgenrst &amp;amp; 0x1) &amp;lt;&amp;lt; 18);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;void write_SGIR(const CB_SGIR_Entry* entry) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t SWREG_BASE = 0x00000000;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CB_SGIR_OFFSET = 0xFF000238;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CB_SGIR_CTRL_OFFSET = 0xFF00024C;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t VALID = (1U &amp;lt;&amp;lt; 31);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RDWRSET = (1U &amp;lt;&amp;lt; 30);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TARGETEDTBL = (0U &amp;lt;&amp;lt; 6);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t ADDR_RANGE = 5;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TABLE_SIZE = 64;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;volatile uint32_t* const CB_SGIR_TABLE = (uint32_t*)(SWREG_BASE + CB_SGIR_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;volatile uint32_t* const CB_SGIR_CTRL&amp;nbsp; = (uint32_t*)(SWREG_BASE + CB_SGIR_CTRL_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t Write_SGIR_Entry[ADDR_RANGE];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SGIR_Entry(entry, Write_SGIR_Entry);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t control_word = VALID | RDWRSET | (TARGETEDTBL) | (entry-&amp;gt;index &amp;amp; 0x3F);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;for (int i = 0; i &amp;lt; ADDR_RANGE; i++) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SGIR_TABLE[i] = Write_SGIR_Entry[i];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;*CB_SGIR_CTRL = control_word;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void ConfigSGIR(uint8_t index,uint16_t tag_ports,uint16_t replace_ports,uint16_t ind_rec_ports,uint16_t seq_rec_ports,&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint16_t ind_rec_timeout,uint16_t seqrec_offset,uint16_t genseqnum,uint8_t seqgenrst,uint8_t tstled,uint8_t rstled,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8_t rtagoffset[11]) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CB_SGIR_Entry entry = {0};&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.index = index;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.TAG_PORTS = tag_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.REPLACE_PORTS = replace_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.IND_REC_PORTS = ind_rec_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.SEQ_REC_PORTS = seq_rec_ports;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.IND_REC_TIMEOUT = ind_rec_timeout;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.SEQRECOFFSET = seqrec_offset;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.GENSEQNUM = genseqnum;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.seqgenrst = seqgenrst;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.tstled = tstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.rstled = rstled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_0 = rtagoffset[0];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_1 = rtagoffset[1];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_2 = rtagoffset[2];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_3 = rtagoffset[3];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_4 = rtagoffset[4];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_5 = rtagoffset[5];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_6 = rtagoffset[6];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_7 = rtagoffset[7];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_8 = rtagoffset[8];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_9 = rtagoffset[9];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; entry.RTAGOFFSET_10 = rtagoffset[10];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; write_SGIR(&amp;amp;entry);&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&lt;BR /&gt;int main(){&lt;BR /&gt;ConfigSGIR(0, (1 &amp;lt;&amp;lt; 1) | (1 &amp;lt;&amp;lt; 2), 0, 0, 0, 0, 0, 1, 0, 0, 0, rtagoffsets0);&lt;BR /&gt;}&lt;BR /&gt;whether this code is correct to execute for Creating a Dynamic Entry ??&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 25 Jul 2025 06:31:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140618#M14284</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-07-25T06:31:23Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140915#M14295</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;creating and evaluating such a script falls outside the scope of our complimentary support.&lt;/P&gt;
&lt;P&gt;Thank you for your understanding.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Fri, 25 Jul 2025 12:47:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2140915#M14295</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-07-25T12:47:40Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2141452#M14316</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;The below script is the example script which created for Dynamically creating a Entry which operates for L2 Lookup table by Index&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;int WriteCB_SG_IR(){&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CBSGIR_OFFSET&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0xFF000238;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CBSGIR_CTRL_OFFSET = 0xFF00024C;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;const uint32_t SWREG_BASE&amp;nbsp; &amp;nbsp; = 0x00000000;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;volatile uint32_t* CB_SG_IR_ADDRESS&amp;nbsp; &amp;nbsp; &amp;nbsp; = (uint32_t*)(SWREG_BASE + CBSGIR_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;volatile uint32_t* CB_SG_IR_ADDRESS_CTL&amp;nbsp; = (uint32_t*)(SWREG_BASE + CBSGIR_CTRL_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_10 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_9 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_8 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_7 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_6 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_5 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_4 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_3 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_2 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_1 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RTAGOFFSET_0 = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t REPLACE_PORTS = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TAG_PORTS = &lt;STRONG&gt;0x006;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t SEQ_REC_PORTS = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t IND_REC_PORTS = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t IND_REC_TIMEOUT = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t SEQRECOFFSET = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t GENSEQNUM = 1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t INDEX = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t SEQGENRST = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t VALID = 1U;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t RDWRSET = 1U ;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TARGETEDTBL = 0U;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t TABLE_SIZE = 64;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CB_SG_IR_Entry[CB_SGIR_ADDR_RANGE] = {0};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SG_IR_Entry[0] =&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((GENSEQNUM &amp;amp; 0x1) &amp;lt;&amp;lt; 1) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((SEQRECOFFSET &amp;amp; 0x1F) &amp;lt;&amp;lt; 2) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((IND_REC_TIMEOUT &amp;amp; 0xFFFF) &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SG_IR_Entry[1] =&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((SEQ_REC_PORTS &amp;amp; 0x7FF) &amp;lt;&amp;lt; 0) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((IND_REC_PORTS &amp;amp; 0x7FF) &amp;lt;&amp;lt; 11);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SG_IR_Entry[2] =&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((TAG_PORTS &amp;amp; 0x7FF) &amp;lt;&amp;lt; 0) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((REPLACE_PORTS &amp;amp; 0x7FF) &amp;lt;&amp;lt; 11);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SG_IR_Entry[3] =&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_0 &amp;amp; 0x3F) &amp;lt;&amp;lt; 0)&amp;nbsp; |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_1 &amp;amp; 0x3F) &amp;lt;&amp;lt; 6)&amp;nbsp; |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_2 &amp;amp; 0x3F) &amp;lt;&amp;lt; 12) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_3 &amp;amp; 0x3F) &amp;lt;&amp;lt; 18) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_4 &amp;amp; 0x3F) &amp;lt;&amp;lt; 24);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SG_IR_Entry[4] =&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_5 &amp;amp; 0x3F) &amp;lt;&amp;lt; 0)&amp;nbsp; |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_6 &amp;amp; 0x3F) &amp;lt;&amp;lt; 6)&amp;nbsp; |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_7 &amp;amp; 0x3F) &amp;lt;&amp;lt; 12) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_8 &amp;amp; 0x3F) &amp;lt;&amp;lt; 18) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_9 &amp;amp; 0x3F) &amp;lt;&amp;lt; 24) |&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ((RTAGOFFSET_10 &amp;amp; 0x3F) &amp;lt;&amp;lt; 30);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t status = *CB_SG_IR_ADDRESS_CTL;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;while ((status &amp;amp; (1U &amp;lt;&amp;lt; 31)) != 0) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status = *CB_SG_IR_ADDRESS_CTL;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;for (int i = 0; i &amp;lt; CB_SGIR_ADDR_RANGE; i++) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CB_SG_IR_ADDRESS[i] = CB_SG_IR_Entry[i];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; if (CB_SG_IR_ADDRESS[i] != CB_SG_IR_Entry[i]) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return -3;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t CTRL_VALUE = ((VALID &amp;lt;&amp;lt; 31) + (RDWRSET &amp;lt;&amp;lt; 30) + (SEQGENRST &amp;lt;&amp;lt; 9) + (TARGETEDTBL &amp;lt;&amp;lt; 6) + (INDEX &amp;amp; 0b111111));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;*CB_SG_IR_ADDRESS_CTL = CTRL_VALUE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;do {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status = *CB_SG_IR_ADDRESS_CTL;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;} while ((status &amp;gt;&amp;gt; 31) &amp;amp; 1U);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;I am having a certain questions ??&lt;BR /&gt;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 ??&lt;BR /&gt;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 ?&lt;BR /&gt;&lt;BR /&gt;whether index value also need to be encoded into the &lt;SPAN&gt;CB_SG_IR_Entry[] ??&lt;BR /&gt;&lt;/SPAN&gt;so whether any order need to be maintained CB_SG_IR_Entry[0],[1],[2],[3]&lt;BR /&gt;because inside values need to be maintained in certain order&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;In TAG_PORTS = 0x006 which i gave in that TAG_PORTS = port 1 &amp;amp; Port 2 whether that is correct ??&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Jul 2025 06:23:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2141452#M14316</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-07-28T06:23:56Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2142475#M14343</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Whether the address for Creating a dynamic Entry which i used is correct or different address need to be used&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 08:07:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2142475#M14343</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-07-29T08:07:31Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2142694#M14349</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248906"&gt;@Atkinson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;The principle for dynamically creating entries in the&amp;nbsp;CB Sequence Generation / Individual Recovery Table (CB_SG_IR)&amp;nbsp;is similar to the approach used for dynamic entries in the&amp;nbsp;L2 Lookup Table, such as in&amp;nbsp;write_l2_lookup_table.py. However, there are important differences in the table layout, control register configuration, and number of words per entry.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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?&lt;/P&gt;
&lt;P&gt;Yes, the concept is similar. You can replicate the dynamic entry creation logic from&amp;nbsp;write_l2_lookup_table.py, but you must adapt it to the CB_SG_IR table specifics:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Use the correct base and control offsets (CBSGIR_OFFSET,&amp;nbsp;CBSGIR_CTRL_OFFSET)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Ensure the entry format matches the CB_SG_IR layout (5 words)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Set&amp;nbsp;TARGETEDTBL = 0&amp;nbsp;for CB_SG_IR (unlike L2 which uses&amp;nbsp;TARGETEDTBL = 1)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Use the appropriate control word format including&amp;nbsp;VALID,&amp;nbsp;RDWRSET,&amp;nbsp;SEQGENRST, and&amp;nbsp;INDEX&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The Python script&amp;nbsp;cb_sg_ir.py&amp;nbsp;implements this logic correctly using the&amp;nbsp;CB_SGIR_Entry&amp;nbsp;and&amp;nbsp;CB_SGIR_Table&amp;nbsp;classes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Q2: Whether index value also need to be encoded into the CB_SG_IR_Entry[]?&lt;/P&gt;
&lt;P&gt;No, the&amp;nbsp;index&amp;nbsp;is not encoded into the&amp;nbsp;CB_SG_IR_Entry[]&amp;nbsp;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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?&lt;/P&gt;
&lt;P&gt;Yes, the order of words in&amp;nbsp;CB_SG_IR_Entry[]&amp;nbsp;must be strictly maintained. Each word corresponds to a specific part of the hardware table entry as defined in the layout. The Python script&amp;nbsp;cb_sg_ir.py&amp;nbsp;handles this ordering automatically based on the layout definition.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Q4: In TAG_PORTS = 0x006 which I gave in that TAG_PORTS = port 1 &amp;amp; Port 2 whether that is correct?&lt;/P&gt;
&lt;P&gt;Yes, that is correct. The value&amp;nbsp;0x006&amp;nbsp;in binary is&amp;nbsp;0000 0000 0110, which sets bits 1 and 2 - corresponding to port 1 and port 2. This matches the expected encoding for port selection.&lt;/P&gt;
&lt;P&gt;Bets regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 11:17:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2142694#M14349</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2025-07-29T11:17:50Z</dc:date>
    </item>
    <item>
      <title>Re: Register access for SJA1110 Switch</title>
      <link>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2142712#M14350</link>
      <description>&lt;P&gt;&lt;EM&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Thanks for the response.&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;Ca. You just confirm whether it is correct to create a Dynamci entry for CB Sequence Generation and Recovery Table.&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;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&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 11:44:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32G/Register-access-for-SJA1110-Switch/m-p/2142712#M14350</guid>
      <dc:creator>Atkinson</dc:creator>
      <dc:date>2025-07-29T11:44:03Z</dc:date>
    </item>
  </channel>
</rss>

