Dynamic configuration in sja1110

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Dynamic configuration in sja1110

跳至解决方案
10,980 次查看
Atkinson
Contributor V

Hi, 

I would like to configure l2 lookup table dynamically how can I configure it ?

Without using ECT tool how can I configure the l2 lookup table ? 

Any examples?

Regards 

Atkinson

标记 (1)
0 项奖励
回复
1 解答
10,217 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

I apologize for late response caused my current workload.

 

I understand it might not seem straightforward at first, but the concept is actually quite simple.

The final register address depends on the access method - whether you're accessing it internally via the M7 core over AHB, or externally via the SPI_AP interface. The base addresses differ depending on the access point.

The register address is calculated using the base address provided in Table 2 of UM11107. For example, for the switch subsystem, the base address is 0x00000000 for SPI_AP access and 0xFF000000 for AHB access.

In your case, the register 0x8C (DYN_BE_LKP_ENTRY0) becomes 0xFF00008C when accessed via AHB.

Now, here’s where it might get confusing: the SDK driver defines the following:

#define SJA1110_L2_ART_LE_ADDR (0x3fc00023) /**< Address of the l2ArtLockedEntry register *
 
The SWITCH_DRV_Write routine shifts the address left by 2 bits (<< 2) for internal (AHB) access. For SPI transfers (used in cascaded switch setups), no shift is applied. So, 0x3fc00023 << 2 results in 0xFF00008C.
 
I hope that with the explanation above, it makes sense now.
 
Best regards,
Pavel

在原帖中查看解决方案

0 项奖励
回复
33 回复数
3,468 次查看
Atkinson
Contributor V

Hi @PavelL 

1.) So this change of accessing the register for Dynamic configuration need to be done in S32G or SJA1110 switch ?
2.)if via SJA1110 switch whether reading and writing the register by SPI need to be performed and where this implementation need to be carried in between SWITCH_DRV?
3.) where we can create our Dynamic entry so that it will get append in switch 

More Explanation would be great help!!



0 项奖励
回复
3,460 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

Answers to your question are related to your application use case.

You can create a dynamic entry absolutely anywhere, also in S32G or in SJA1110:

  • transfer the entry in any supported way to the S32G and write it to SJA1110 via SPI, or via Ethernet
  • or, transfer the entry to the SJA1110 via Ethernet and use internal AHB access
  • or, send a custom trigger event (GPIO, Ethernet frame, ...) to the SJA1110, create a dynamic entry there and write the entry via AHB access
  • or, ....
  • or, ....

There are examples how to write dynamic entry to the switchcore of SJA1110:

  • via SPI - python script write_l2_lookup_table.py
  • via AHB - source code of ECT server

Bets regards,

Pavel

0 项奖励
回复
3,457 次查看
Atkinson
Contributor V

Hi @PavelL 

#define L2_ENTRY0_ADDR 0xFF00008c
#define L2_ENTRY1_ADDR 0xFF000090
#define L2_ENTRY2_ADDR 0xFF000094
#define L2_ENTRY3_ADDR 0xFF000098
#define L2_ENTRY4_ADDR 0xFF00009C
#define L2_ENTRY5_ADDR 0xFF0000A0
#define L2_CTRL_ADDR 0xFF0000A4
Std_ReturnType CreateL2Entry(uint32_t entry[6])
{
uint16_t INDEX = 11;
uint64_t MACADDR = 0x661122334455;
uint64_t MACADDR_MASK = 0xFFFFFFFFFFFF;
uint16_t VLANID = 3;
uint16_t VLANID_MASK = 0xFFF;
uint8_t IOTAG = 0;
uint8_t IOTAG_MASK = 0;
uint8_t SRCPORT = 5;
uint8_t SRCPORT_MASK = 0xF;
uint8_t DESTPORTS = 0x02;
uint8_t ENFPORT = 1;
uint8_t RETAG = 0;
uint8_t MIRROR = 0;
uint8_t TAKETS = 0;
uint16_t MIRR_VLAN = 0xFFF;
uint8_t TRAPTOHOST = 0;
uint8_t CBSIDIN = 0x3F;
uint8_t CBENONDA = 0;
uint16_t VLIDX = 0xFFF;
uint8_t SA_POLICE = 0;
uint8_t DA_POLICE = 0;

entry[0] = ((INDEX & 0x03FF) << 1) |
((ENFPORT & 0x1) << 11) |
((DESTPORTS & 0x7FF) << 12) |
((SRCPORT & 0xF) << 23) |
((MACADDR & 0x1F) << 27);

entry[1] = (uint32_t)((MACADDR >> 5) & 0xFFFFFFFF);

entry[2] = (((MACADDR >> 37) & 0x7FF) << 0) |
((VLANID & 0xFFF) << 11) |
((IOTAG & 0x1) << 23) |
((MACADDR_MASK & 0xFF) << 24);

entry[3] = (uint32_t)((MACADDR_MASK >> & 0xFFFFFFFF);

entry[4] = (((MACADDR_MASK >> 40) & 0xFF) << 0) |
((VLANID_MASK & 0xFFF) << |
((IOTAG_MASK & 0x1) << 20) |
((SRCPORT_MASK & 0xF) << 21) |
((RETAG & 0x1) << 25) |
((MIRROR & 0x1) << 26) |
((TAKETS & 0x1) << 27) |
((MIRR_VLAN & 0xF) << 28);

entry[5] = (((MIRR_VLAN >> 4) & 0xFF) << 0) |
((TRAPTOHOST & 0x1) << |
((CBSIDIN & 0x3F) << 9) |
((CBENONDA & 0x1) << 15) |
((VLIDX & 0xFFF) << 17) |
((SA_POLICE & 0x1) << 29) |
((DA_POLICE & 0x1) << 30);

return E_OK;
}

Std_ReturnType WriteL2LookupEntry(uint8_t swt)
{
if (swt > 0) return E_NOT_OK;

Std_ReturnType ret;
uint32_t ctrlReg = 0;
uint32_t entry[6];

ret = CreateL2Entry(entry);
if (ret != E_OK) return ret;

do {
ret = spi_read_reg(L2_CTRL_ADDR, &ctrlReg);
if (ret != E_OK) return ret;
} while (ctrlReg & (1U << 31));

ret = spi_write_reg(L2_ENTRY0_ADDR, entry[0]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY1_ADDR, entry[1]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY2_ADDR, entry[2]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY3_ADDR, entry[3]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY4_ADDR, entry[4]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY5_ADDR, entry[5]); if (ret != E_OK) return ret;

uint32_t ctrlValue = (1U << 31) | (1U << 30) | (1U << 28) | (1U << 27) | (3U << 23);
ret = spi_write_reg(L2_CTRL_ADDR, ctrlValue);
if (ret != E_OK) return ret;

do {
ret = spi_read_reg(L2_CTRL_ADDR, &ctrlReg);
if (ret != E_OK) return ret;
} while (ctrlReg & (1U << 31));

return E_OK;
}

This was the current implementation for Creating a Dynamic Entry can you cross verify with FAE whether this implementation is correct !!
Any other changes need to be done 

标记 (1)
0 项奖励
回复
3,444 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

your code looks good. However, if you want to access dynamic tables by SPI, the entry addresses are without FF and shifted right by 2. As I already mentioned in some of my previous post.

So, #define L2_ENTRY0_ADDR 0xFF00008c should be #define L2_ENTRY0_ADDR 0x00000023

But it depends, what your routine spi_write_reg actually does.

Here is output of the write_l2_lookup_table.py , incl. my debug prints (tx/rx refers to data what would be seen on SPI wires by oscilloscope or by logic analyzer):

DBG spi_tx: ['0x02000290', '0xAABBCCDD']
DBG spi_rx: ['0x02000290', '0x00000000']
DBG spi_read 0x0029 -> 0x00000000
DBG spi_write 0x0023 <- 0x37FFFA00
DBG spi_tx: ['0x80000230', '0x37FFFA00']
DBG spi_write 0x0024 <- 0x119A22AB
DBG spi_tx: ['0x80000240', '0x119A22AB']
DBG spi_write 0x0025 <- 0xFF807089
DBG spi_tx: ['0x80000250', '0xFF807089']
DBG spi_write 0x0026 <- 0xFFFFFFFF
DBG spi_tx: ['0x80000260', '0xFFFFFFFF']
DBG spi_write 0x0027 <- 0xF1FFFFFF
DBG spi_tx: ['0x80000270', '0xF1FFFFFF']
DBG spi_write 0x0028 <- 0x1FFE7EFF
DBG spi_tx: ['0x80000280', '0x1FFE7EFF']
DBG spi_write 0x0029 <- 0xD9800000
DBG spi_tx: ['0x80000290', '0xD9800000']
+-------+-------------+-------------------+--------+---------+-------+
| INDEX | DESTPORTS | MACADDR | VLANID | ENFPORT | IOTAG |
+-------+-------------+-------------------+--------+---------+-------+
| 256 | 11111111111 | 11:22:33:44:55:66 | 14 | 1 | 1 |
+-------+-------------+-------------------+--------+---------+-------+
L2 Lookup Table Entry Written (SW1)

Regarding the FAE request, FAE is not on my escalation path. Your company has assigned FAE, so you can contact FAE directly.

Best regards,

Pavel

0 项奖励
回复
3,439 次查看
Atkinson
Contributor V

Hi @PavelL 

I am having some certain questions
1.) This Debug print of l2_write_lookup_table.py was taken from SJA1110 EVM Board Implementation ryt its not from S32G-VNP RDB Board? and we can't implement l2_write_lookup_table.py in S32G-VNP-RDB32 Board directly 

2.)can you provide me the code of SPI_read and Spi_write for integrating with the above code?
because in through the implementation in S32G writing it via SPI_Read and SPI_write is doing the operation but unable to see the Dynamic Entry getting added


Std_ReturnType spi_read_reg(uint32_t regAddress, uint32_t* regValue)
{
Std_ReturnType ret;
uint32_t TxChBuf[65] = {0};
uint32_t RxChBuf[65] = {0};
uint16_t regCount = 1;

Siul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT, SPI_MCU_ES1_CS_AP_PIN, 0U);

ret = getSpiAPCommand(false, regAddress, regCount, TxChBuf, regValue);
if (ret != E_OK) {
Siul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT, SPI_MCU_ES1_CS_AP_PIN, 1U);
return ret;
}

ret=Spi_SetupEB(5u, (uint8_t*)TxChBuf, (uint8_t*)RxChBuf, 8u);
if (ret == E_OK) {
ret=Spi_SyncTransmit(SpiConf_SpiSequence_SpiSequence_sja);
if (ret == E_OK) {
*regValue = RxChBuf[1];
}
}

Siul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT, SPI_MCU_ES1_CS_AP_PIN, 1U);
return ret;
}

Std_ReturnType spi_write_reg(uint32_t regAddress, uint32_t regValue)
{
Std_ReturnType ret;
uint32_t TxChBuf[65] = {0};
uint32_t RxChBuf[65] = {0};
uint16_t regCount = 1;
uint32_t regValArray[1] = { regValue };

// Pull chip select LOW
Siul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT, SPI_MCU_ES1_CS_AP_PIN, 0U);

ret = getSpiAPCommand(true, regAddress, regCount, TxChBuf, regValArray);
if (ret != E_OK) {
Siul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT, SPI_MCU_ES1_CS_AP_PIN, 1U);
return ret;
}

ret=Spi_SetupEB(5u, (uint8_t*)TxChBuf, (uint8_t*)RxChBuf, 8u);
if (ret == E_OK) {
ret=Spi_SyncTransmit(SpiConf_SpiSequence_SpiSequence_sja);
}

Siul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT, SPI_MCU_ES1_CS_AP_PIN, 1U);
return ret;
}

Correct me if i am wrong !!

3.)I have changed the Register address to #define L2_ENTRY0_ADDR 0x00000023
but still i am not able to identify the table which i am trying to add getting reflected when i transmit the message 

0 项奖励
回复
3,432 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

1. Yes, the host tools were originally developed for the SJA1110-EVM board. I personally use these scripts with debug prints to verify my understanding of register access. While you cannot run them directly on the S32G-VNP-RDB2 platform, the underlying logic can be adapted, since the S32G accesses the SJA1110 via SPI.

2. If you're looking for SPI read/write implementations for the S32G platform, you have two main options:

  • Refer to the SPI examples provided in the S32G RTD 4.0.0 package.
  • Alternatively, I recommend posting a dedicated question on the NXP S32G Community Forum, where the S32G support team can assist you further. I focus primarily on Automotive Ethernet topics, with limited overlap into platform-specific drivers.

3. If I understand correctly, you're referring to the L2 Lookup Table described in Table 1182 of UM11107. This table consists of six 32-bit registers per entry. You can see this structure reflected in the debug output from the Python script.

Best regards,

Pavel

0 项奖励
回复
3,423 次查看
Atkinson
Contributor V

Hi @PavelL 

3.)I have changed the Register address to #define L2_ENTRY0_ADDR 0x00000023
but still i am not able to identify the table which i am trying to add getting reflected when i transmit the message 
"If I understand correctly, you're referring to the L2 Lookup Table described in Table 1182 of UM11107. This table consists of six 32-bit registers per entry. You can see this structure reflected in the debug output from the Python script."

So i am facing up with the issue in a way where i am trying to write the data into address which need to create a Dynamic Entry in L2 lookup table but its not creating a Dynamic Entry 


#define L2_ENTRY0_ADDR 0x00000023
#define L2_ENTRY1_ADDR 0x00000024
#define L2_ENTRY2_ADDR 0x00000025
#define L2_ENTRY3_ADDR 0x00000026
#define L2_ENTRY4_ADDR 0x00000027
#define L2_ENTRY5_ADDR 0x00000028
#define L2_CTRL_ADDR 0x00000029

#define L2_CTRL_VALID_BIT (1U << 31)
#define L2_CTRL_WR_RDB_BIT (1U << 30)
#define L2_CTRL_VALIDENTRY_BIT (1U << 28)
#define L2_CTRL_HOSTCMD_SHIFT 23
#define L2_CTRL_HOSTCMD_WRITE (0b011U << L2_CTRL_HOSTCMD_SHIFT)

Std_ReturnType CreateL2Entry(uint32_t entry[6])
{
uint16_t INDEX = 11;
uint64_t MACADDR = 0x661122334455;
uint64_t MACADDR_MASK = 0xFFFFFFFFFFFF;
uint16_t VLANID = 3;
uint16_t VLANID_MASK = 0xFFF;
uint8_t IOTAG = 0;
uint8_t IOTAG_MASK = 0;
uint8_t SRCPORT = 5;
uint8_t SRCPORT_MASK = 0xF;
uint8_t DESTPORTS = 0x02;
uint8_t ENFPORT = 1;
uint8_t RETAG = 0;
uint8_t MIRROR = 0;
uint8_t TAKETS = 0;
uint16_t MIRR_VLAN = 0xFFF;
uint8_t TRAPTOHOST = 0;
uint8_t CBSIDIN = 0x3F;
uint8_t CBENONDA = 0;
uint16_t VLIDX = 0xFFF;
uint8_t SA_POLICE = 0;
uint8_t DA_POLICE = 0;

entry[0] = ((INDEX & 0x03FF) << 1) |
((ENFPORT & 0x1) << 11) |
((DESTPORTS & 0x7FF) << 12) |
((SRCPORT & 0xF) << 23) |
((MACADDR & 0x1F) << 27);

entry[1] = (uint32_t)((MACADDR >> 5) & 0xFFFFFFFF);

entry[2] = (((MACADDR >> 37) & 0x7FF) << 0) |
((VLANID & 0xFFF) << 11) |
((IOTAG & 0x1) << 23) |
((MACADDR_MASK & 0xFF) << 24);

entry[3] = (uint32_t)((MACADDR_MASK >> & 0xFFFFFFFF);

entry[4] = (((MACADDR_MASK >> 40) & 0xFF) << 0) |
((VLANID_MASK & 0xFFF) << |
((IOTAG_MASK & 0x1) << 20) |
((SRCPORT_MASK & 0xF) << 21) |
((RETAG & 0x1) << 25) |
((MIRROR & 0x1) << 26) |
((TAKETS & 0x1) << 27) |
((MIRR_VLAN & 0xF) << 28);

entry[5] = (((MIRR_VLAN >> 4) & 0xFF) << 0) |
((TRAPTOHOST & 0x1) << |
((CBSIDIN & 0x3F) << 9) |
((CBENONDA & 0x1) << 15) |
((VLIDX & 0xFFF) << 17) |
((SA_POLICE & 0x1) << 29) |
((DA_POLICE & 0x1) << 30);

return E_OK;
}


Std_ReturnType WriteL2LookupEntry(uint8_t swt)
{
if (swt > 0) return E_NOT_OK;

Std_ReturnType ret;
uint32_t ctrlReg = 0;
uint32_t entry[6];

// Step 1: Create the entry
ret = CreateL2Entry(entry);
if (ret != E_OK) return ret;

// Step 2: Wait for VALID bit to clear
do {
ret = spi_read_reg(L2_CTRL_ADDR, &ctrlReg);
if (ret != E_OK) return ret;
} while (ctrlReg & L2_CTRL_VALID_BIT);

// Step 3: Write entry data to registers
ret = spi_write_reg(L2_ENTRY0_ADDR, entry[0]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY1_ADDR, entry[1]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY2_ADDR, entry[2]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY3_ADDR, entry[3]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY4_ADDR, entry[4]); if (ret != E_OK) return ret;
ret = spi_write_reg(L2_ENTRY5_ADDR, entry[5]); if (ret != E_OK) return ret;

// Step 4: Set control register to trigger write

uint32_t ctrlValue = (1U << 31) |
(1U << 30) |
(1U << 28) |
(1U << 27) |
(3U << 23);


ret = spi_write_reg(L2_CTRL_ADDR, ctrlValue);
if (ret != E_OK) return ret;

do {
ret = spi_read_reg(L2_CTRL_ADDR, &ctrlReg);
if (ret != E_OK) return ret;
} while (ctrlReg & L2_CTRL_VALID_BIT);

return E_OK;
}


can you check once whether any issues is there because its not creating Dynamic Entry for the L2 lookup Table ?

0 项奖励
回复
3,412 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

1. Bit Shift Syntax (<<, >>)
It appears that some of the bit shift operators in your code were replaced with HTML entities like &lt;&lt; and &gt;&gt;. This typically happens when code is copied into web-based platforms. Anyway, please check it directly in your code.

#define L2_CTRL_VALID_BIT (1U &lt;&lt; 31)

should be:
#define L2_CTRL_VALID_BIT (1U << 31)

2. Entry Issue
There are several syntax errors and missing shift values in the CreateL2Entry() function, particularly in entry[3], entry[4], and entry[5]. These may result in incomplete or invalid register writes. 

e.g. 

((TRAPTOHOST & 0x1) << |

 

I recommend comparing your implementation against the Python reference script, which correctly constructs all six 32-bit words of the L2 entry.

Best regards,

Pavel

0 项奖励
回复
3,337 次查看
Atkinson
Contributor V

Hi @PavelL 

int WriteL2LookupEntry(int cs)
{
const uint32_t DESTPORTS = 0x002;
const uint32_t INDEX = 8;
const uint64_t MACADDR = 0x661122334455;
const uint64_t MACADDR_MASK = 0xffffffffffff;
const uint32_t VLANID = 0;
const uint32_t VLANID_MASK = 0xfff;
const uint32_t IOTAG = 0;
const uint32_t IOTAG_MASK = 0;
const uint32_t SRCPORT = 0x5;
const uint32_t SRCPORT_MASK = 0xF;
const uint32_t ENFPORT = 0;
const uint32_t RETAG = 0;
const uint32_t MIRROR = 0;
const uint32_t TAKETS = 0;
const uint32_t MIRR_VLAN = 0xFFF;
const uint32_t TRAPTOHOST = 0;
const uint32_t CBSIDIN = 0x3F;
const uint32_t CBENONDA = 0;
const uint32_t VLIDX = 0xFFF;
const uint32_t SA_POLICE = 0;
const uint32_t DA_POLICE = 0;

uint32_t L2_OFFSET = 0x23;
uint32_t L2CTRL_OFFSET = 0x29;
const uint32_t SWREG_BASE = 0x00000000;

const uint32_t VALID = 1U;
const uint32_t RDWRSET = 1U;
const uint32_t VALIDENT = 1U;
const uint32_t HOSTCMD = 3U;
const uint32_t MGMTROUTE = 0U;
const uint32_t LOCKED = 1U;
const uint32_t ERROR = 0U;

uint32_t L2_ADDRESS = SWREG_BASE + L2_OFFSET;
uint32_t L2_ADDRESS_CTL = SWREG_BASE + L2CTRL_OFFSET;

uint32_t l2Entry[ADDRESS_RANGE] = {0};

l2Entry[0] = ((INDEX & 0x03FF) << 1)
| ((ENFPORT & 0x1) << 11)
| ((DESTPORTS & 0x7FF) << 12)
| ((SRCPORT & 0xF) << 23)
| ((uint32_t)(MACADDR & 0x1F) << 27);

l2Entry[1] = (uint32_t)((MACADDR >> 5) & 0xFFFFFFFF);

l2Entry[2] = (uint32_t)(((MACADDR >> 37) & 0x7FF) << 0)
| ((VLANID & 0xFFF) << 11)
| ((IOTAG & 0x1) << 23)
| ((uint32_t)(MACADDR_MASK & 0xFF) << 24);

l2Entry[3] = (uint32_t)((MACADDR_MASK >> & 0xFFFFFFFF);

l2Entry[4] = ((uint32_t)((MACADDR_MASK >> 40) & 0xFF) << 0)
| ((VLANID_MASK & 0xFFF) <<
| ((IOTAG_MASK & 0x1) << 20)
| ((SRCPORT_MASK & 0xF) << 21)
| ((RETAG & 0x1) << 25)
| ((MIRROR & 0x1) << 26)
| ((TAKETS & 0x1) << 27)
| ((MIRR_VLAN & 0xF) << 28);

l2Entry[5] = (((MIRR_VLAN >> 4) & 0xFF) << 0)
| ((TRAPTOHOST & 0x1) <<
| ((CBSIDIN & 0x3F) << 9)
| ((CBENONDA & 0x1) << 15)
| ((VLIDX & 0xFFF) << 17)
| ((SA_POLICE & 0x1) << 29)
| ((DA_POLICE & 0x1) << 30);
uint32_t status = 0;
do {
Std_ReturnType ret = spi_read_reg(L2_ADDRESS_CTL, &status);
if (ret != E_OK) {
return -1;
}
} while ((status >> VALID_BIT_SHIFT) & 1U);

for (int i = 0; i < ADDRESS_RANGE; i++) {
Std_ReturnType ret = spi_write_reg(L2_ADDRESS + i, l2Entry[i]);
if (ret != E_OK) {
return -2;
}

uint32_t readBack = 0;
ret = spi_read_reg(L2_ADDRESS + i, &readBack);
if (ret != E_OK || readBack != l2Entry[i]) {
return -3;
}
}

uint32_t controlL2Entry = 0;
controlL2Entry |= (VALID << VALID_BIT_SHIFT);
controlL2Entry |= (RDWRSET << RDWRSET_BIT_SHIFT);
controlL2Entry |= (ERROR << ERROR_BIT_SHIFT);
controlL2Entry |= (LOCKED << LOCKED_BIT_SHIFT);
controlL2Entry |= (VALIDENT << VALIDENT_BIT_SHIFT);
controlL2Entry |= (MGMTROUTE << MGMTROUTE_BIT_SHIFT);
controlL2Entry |= (HOSTCMD << HOSTCMD_BIT_SHIFT);

Std_ReturnType ret = spi_write_reg(L2_ADDRESS_CTL, controlL2Entry);
if (ret != E_OK) {
return -4;
}

do {
ret = spi_read_reg(L2_ADDRESS_CTL, &status);
if (ret != E_OK) {
return -5;
}
} while ((status >> VALID_BIT_SHIFT) & 1U);

return 0;
}

This is my revised code implementation 
can you verify once this implementation will bring a Dynamic Entry. so i tried debugging it by readingback the register value whether the values are getting written into the register i could able to see the values are written into the register but i am not sure whether the enrty is created or not ?
and also the reflection of Dynamic entry of L2 lookup table is not getting reflected ?
so how can i verify the L2 lookup table enrty is created ?



标记 (1)
0 项奖励
回复
3,320 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

There are missing shift values and incomplete expressions in entry[3], entry[4], and entry[5]. These may result in incorrect register values. I recommend comparing your logic against the Python reference script, which constructs the L2 entry correctly.

After writing, try sending a frame that matches the MAC/VLAN/port criteria of the entry and observe whether it is forwarded according to the DESTPORTS field.

Best regards,

Pavel

0 项奖励
回复
3,302 次查看
Atkinson
Contributor V

Hi @PavelL 

int WriteL2LookupEntry(int cs)
{
const uint32_t DESTPORTS = 0x004;
const uint32_t INDEX = 2;
const uint64_t MACADDR = 0x112233445566;
const uint64_t MACADDR_MASK = 0xffffffffffff;
const uint32_t VLANID = 0;
const uint32_t VLANID_MASK = 0x0;
const uint32_t IOTAG = 0;
const uint32_t IOTAG_MASK = 0;
const uint32_t SRCPORT = 0x6;
const uint32_t SRCPORT_MASK = 0xF;
const uint32_t ENFPORT = 0;
const uint32_t RETAG = 0;
const uint32_t MIRROR = 0;
const uint32_t TAKETS = 0;
const uint32_t MIRR_VLAN = 0xFFF;
const uint32_t TRAPTOHOST = 0;
const uint32_t CBSIDIN = 0x3F;
const uint32_t CBENONDA = 0;
const uint32_t VLIDX = 0xFFF;
const uint32_t SA_POLICE = 0;
const uint32_t DA_POLICE = 0;

uint32_t L2_OFFSET = 0x23;
uint32_t L2CTRL_OFFSET = 0x29;
const uint32_t SWREG_BASE = 0x00000000;

const uint32_t VALID = 1U;
const uint32_t RDWRSET = 1U;
const uint32_t VALIDENT = 1U;
const uint32_t HOSTCMD = 3U;
const uint32_t MGMTROUTE = 0U;
const uint32_t LOCKED = 1U;
const uint32_t ERROR = 0U;

uint32_t L2_ADDRESS = SWREG_BASE + L2_OFFSET;
uint32_t L2_ADDRESS_CTL = SWREG_BASE + L2CTRL_OFFSET;

uint32_t l2Entry[ADDRESS_RANGE] = {0};

l2Entry[0] = (((INDEX & 0x03ff) << (1 % 32)) + ((ENFPORT & 1) << (11 % 32))
+ ((DESTPORTS & 0x7FF) << (12 % 32)) + ((SRCPORT & 0xF) << (23 % 32))
+ ((MACADDR & 0x1F) << (27 % 32)));

l2Entry[1] = (((MACADDR >> 5) & 0xFFFFFFFF));

l2Entry[2] = ((((MACADDR >> 37) & 0x7FF) << (64 % 32)) + ((VLANID & 0xFFF) << (75 % 32))
+ ((IOTAG & 1) << (87 % 32)) + ((MACADDR_MASK & 0xFF) << (88 % 32)));

l2Entry[3] = (((MACADDR_MASK >> & 0xFFFFFFFF));

l2Entry[4] = (((MACADDR_MASK >> 40) & 0xFF << (128 % 32)) + ((VLANID_MASK & 0xfff) << (136 % 32))
+ ((IOTAG_MASK & 1) << (148 % 32)) + ((SRCPORT_MASK & 0xF) << (149 % 32))
+ ((RETAG & 0x1) << (153 % 32)) + ((MIRROR & 0x1) << (154 % 32))
+ ((TAKETS & 0x1) << (155 % 32)) + ((MIRR_VLAN & 0xF) << (156 % 32)));

l2Entry[5] = (((MIRR_VLAN >> 4) & 0xFF << (160 % 32)) + ((TRAPTOHOST & 0x1) << (168 % 32))
+ ((CBSIDIN & 0x3F) << (169 % 32)) + ((CBENONDA & 0x1) << (175 % 32))
+ ((VLIDX & 0xFFF) << (177 % 32)) + ((SA_POLICE & 0x1) << (189 % 32))
+ ((DA_POLICE & 0x1) << (190 % 32)));
uint32_t status = 0;
do {
Std_ReturnType ret = spi_read_reg(L2_ADDRESS_CTL, &status);
if (ret != E_OK) {
return -1;
}
} while ((status >> VALID_BIT_SHIFT) & 1U);

for (int i = 0; i < ADDRESS_RANGE; i++) {
Std_ReturnType ret = spi_write_reg(L2_ADDRESS + i, l2Entry[i]);
if (ret != E_OK) {
return -2;
}

uint32_t readBack = 0;
ret = spi_read_reg(L2_ADDRESS + i, &readBack);
if (ret != E_OK || readBack != l2Entry[i]) {
return -3;
}
}

uint32_t controlL2Entry = 0;
controlL2Entry = ((VALID << 31) + (RDWRSET << 30) + (ERROR << 29) + (LOCKED << 28) + (VALIDENT << 27) +
(MGMTROUTE << 26) + (HOSTCMD << 23));

Std_ReturnType ret = spi_write_reg(L2_ADDRESS_CTL, controlL2Entry);
if (ret != E_OK) {
return -4;
}

do {
ret = spi_read_reg(L2_ADDRESS_CTL, &status);
if (ret != E_OK) {
return -5;
}
} while ((status >> VALID_BIT_SHIFT) & 1U);

return 0;
}

I have changed the implementation similar to Python script. if you found any errors can you send me the changes please

Python script

        # Write Control
        platform.spi_write(L2_ADDRESS_CTL, controlL2Entry, cs)

        table = prettytable.PrettyTable(
            ("INDEX", "DESTPORTS", "MACADDR", "VLANID", "ENFPORT", "IOTAG"))
        entry = (
            str(INDEX), '{0:11b}'.format(DESTPORTS), mac_to_str(MACADDR), str(VLANID),
            str(ENFPORT), str(IOTAG))
        table.add_row(entry)
        print(table.get_string())

     


"After writing, try sending a frame that matches the MAC/VLAN/port criteria of the entry and observe whether it is forwarded according to the DESTPORTS field"
I am trying to send in this way as you mentioned but this reflection is not seen 
I am unable to see my entry is getting reflected ?
is there any other things need to be setted up ??

In Python script after writing the register value for controll2entry into L2_ADDRESS_CTL
there were few lines of code which does adding a entry into "prettytable"

Do we need to this also same and whether we have provision to do this ??

 



标记 (1)
0 项奖励
回复
3,298 次查看
PavelL
NXP Employee
NXP Employee

Hello @Atkinson ,

In your code, there are missing shift values in entry[3], and missing or misplaced brackets in entry[3], entry[4], and entry[5].

To verify your L2 lookup configuration, you may consider setting the entry as a static one instead of dynamic — this can help isolate whether the issue is with the entry format or the dynamic update mechanism.

Also, please note that the "pretty tables" in the Python script are used only for formatting output in the command window — they do not affect the functionality or register configuration.

Best regards,

Pavel

0 项奖励
回复
3,296 次查看
Atkinson
Contributor V

Hi @PavelL 

"In your code, there are missing shift values in entry[3], and missing or misplaced brackets in entry[3], entry[4], and entry[5]."
I have implemented it as same as the python code sorry i am nots sure where i am missing the brackets and shift values. can you kindly provide me the aligned code which might be more clear sorry for missing out the brackets and shift
It would be more helpful and clear if you provide me the exact entry[3],entry[4], entry[5]

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2127036%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Esja1110%20%E4%B8%AD%E7%9A%84%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2127036%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%E3%80%81%20%3C%2FP%3E%3CP%3E%E6%88%91%E6%83%B3%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%20l2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%EF%BC%8C%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%EF%BC%9F%3C%2FP%3E%3CP%3E%E4%B8%8D%E4%BD%BF%E7%94%A8%20ECT%20%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20l2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%EF%BC%9F%20%3C%2FP%3E%3CP%3E%E6%9C%89%E4%BE%8B%E5%AD%90%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E%E6%AD%A4%E8%87%B4%E6%95%AC%E7%A4%BC%3C%2FP%3E%3CP%3E%E9%98%BF%E7%89%B9%E9%87%91%E6%A3%AE%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137987%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137987%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%22%3CSPAN%3E%E5%9C%A8%E6%82%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E4%B8%AD%EF%BC%8C%E6%9D%A1%E7%9B%AE%5B3%5D%E4%B8%AD%E7%BC%BA%E5%B0%91%E7%A7%BB%E4%BD%8D%E5%80%BC%EF%BC%8C%E6%9D%A1%E7%9B%AE%5B3%5D%E3%80%81%E6%9D%A1%E7%9B%AE%5B4%5D%E5%92%8C%E6%9D%A1%E7%9B%AE%5B5%5D%E4%B8%AD%E7%BC%BA%E5%B0%91%E6%88%96%E9%94%99%E6%94%BE%E4%BA%86%E6%8B%AC%E5%8F%B7%E3%80%82%22%3C%2FSPAN%3E%3CBR%20%2F%3E%E6%88%91%E5%B7%B2%E7%BB%8F%E5%AE%9E%E7%8E%B0%E4%BA%86%E4%B8%8E%20python%20%E4%BB%A3%E7%A0%81%E7%9B%B8%E5%90%8C%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%8C%E6%8A%B1%E6%AD%89%EF%BC%8C%E6%88%91%E4%B8%8D%E7%A1%AE%E5%AE%9A%E5%9C%A8%E5%93%AA%E9%87%8C%E7%BC%BA%E5%B0%91%E4%BA%86%E6%8B%AC%E5%8F%B7%E5%92%8C%E7%A7%BB%E4%BD%8D%E5%80%BC%E3%80%82%E8%AF%B7%E6%82%A8%E6%8F%90%E4%BE%9B%E5%AF%B9%E9%BD%90%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%8F%AF%E8%83%BD%E4%BC%9A%E6%9B%B4%E6%B8%85%E6%A5%9A%EF%BC%8C%E6%8A%B1%E6%AD%89%E6%BC%8F%E6%8E%89%E4%BA%86%E6%8B%AC%E5%8F%B7%E5%92%8C%E7%A7%BB%E4%BD%8D%3CBR%20%2F%3E%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E8%83%BD%E6%8F%90%E4%BE%9B%E5%87%86%E7%A1%AE%E7%9A%84%20entry%5B3%5D%E3%80%81entry%5B4%5D%E3%80%81entry%5B5%5D%EF%BC%8C%E4%BC%9A%E6%9B%B4%E6%9C%89%E5%B8%AE%E5%8A%A9%EF%BC%8C%E4%B9%9F%E6%9B%B4%E6%B8%85%E6%A5%9A%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137976%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137976%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E6%82%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E4%B8%AD%EF%BC%8C%E8%BE%93%E5%85%A5%E6%9D%A1%E7%9B%AE%5B3%5D%E4%B8%AD%E7%BC%BA%E5%B0%91%E7%A7%BB%E4%BD%8D%E5%80%BC%EF%BC%8C%E8%BE%93%E5%85%A5%E6%9D%A1%E7%9B%AE%5B3%5D%E3%80%81%E8%BE%93%E5%85%A5%E6%9D%A1%E7%9B%AE%5B4%5D%E5%92%8C%E8%BE%93%E5%85%A5%E6%9D%A1%E7%9B%AE%5B5%5D%E4%B8%AD%E7%BC%BA%E5%B0%91%E6%88%96%E9%94%99%E4%BD%8D%E4%BA%86%E6%8B%AC%E5%8F%B7%E3%80%82%3C%2FP%3E%0A%3CP%3E%E4%B8%BA%E4%BA%86%E9%AA%8C%E8%AF%81%E6%82%A8%E7%9A%84%20L2%20%E6%9F%A5%E6%89%BE%E9%85%8D%E7%BD%AE%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E5%B0%86%E6%9D%A1%E7%9B%AE%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%9D%99%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%8C%E8%BF%99%E6%9C%89%E5%8A%A9%E4%BA%8E%E5%8C%BA%E5%88%86%E9%97%AE%E9%A2%98%E6%98%AF%E5%87%BA%E5%9C%A8%E6%9D%A1%E7%9B%AE%E6%A0%BC%E5%BC%8F%E4%B8%8A%EF%BC%8C%E8%BF%98%E6%98%AF%E5%87%BA%E5%9C%A8%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0%E6%9C%BA%E5%88%B6%E4%B8%8A%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%8F%A6%E5%A4%96%EF%BC%8C%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8CPython%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%22%E6%BC%82%E4%BA%AE%E8%A1%A8%E6%A0%BC%22%20%E4%BB%85%E7%94%A8%E4%BA%8E%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%91%BD%E4%BB%A4%E7%AA%97%E5%8F%A3%E4%B8%AD%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%8C%E5%B9%B6%E4%B8%8D%E5%BD%B1%E5%93%8D%E5%8A%9F%E8%83%BD%E6%88%96%E5%AF%84%E5%AD%98%E5%99%A8%E9%85%8D%E7%BD%AE%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137914%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137914%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3Eint%20WriteL2LookupEntry(int%20cs)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Econst%20uint32_t%20DESTPORTS%20%3D%200x004%3B%3CBR%20%2F%3Econst%20uint32_t%20INDEX%20%3D%202%3B%3CBR%20%2F%3Econst%20uint64_t%20MACADDR%20%3D%200x112233445566%3B%3CBR%20%2F%3Econst%20uint64_t%20MACADDR_MASK%20%3D%200xffffffffffffffff%EF%BC%9B%3CBR%20%2F%3Econst%20uint32_t%20VLANID%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20VLANID_MASK%20%3D%200x0%3B%3CBR%20%2F%3Econst%20uint32_t%20IOTAG%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20IOTAG_MASK%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20SRCPORT%20%3D%200x6%EF%BC%9B%3CBR%20%2F%3Econst%20uint32_t%20SRCPORT_MASK%20%3D%200xF%3B%3CBR%20%2F%3Econst%20uint32_t%20ENFPORT%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20RETAG%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20MIRROR%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20TAKETS%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20MIRR_VLAN%20%3D%200xFFF%EF%BC%9B%3CBR%20%2F%3Econst%20uint32_t%20TRAPTOHOST%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20CBSIDIN%20%3D%200x3F%3B%3CBR%20%2F%3Econst%20uint32_t%20CBENONDA%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20VLIDX%20%3D%200xFFF%3B%3CBR%20%2F%3Econst%20uint32_t%20SA_POLICE%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20DA_POLICE%20%3D%200%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20L2_OFFSET%20%3D%200x23%EF%BC%9B%3CBR%20%2F%3Euint32_t%20L2CTRL_OFFSET%20%3D%200x29%EF%BC%9B%3CBR%20%2F%3E%E5%B8%B8%E9%87%8F%20uint32_t%20SWREG_BASE%20%3D%200x00000000%EF%BC%9B%3C%2FP%3E%3CP%3Econst%20uint32_t%20VALID%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20RDWRSET%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20VALIDENT%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20HOSTCMD%20%3D%203U%3B%3CBR%20%2F%3Econst%20uint32_t%20MGMTROUTE%20%3D%200U%3B%3CBR%20%2F%3Econst%20uint32_t%20LOCKED%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20ERROR%20%3D%200U%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20L2_ADDRESS%20%3D%20SWREG_BASE%20%2B%20L2_OFFSET%EF%BC%9B%3CBR%20%2F%3Euint32_t%20L2_ADDRESS_CTL%20%3D%20SWREG_BASE%20%2B%20L2CTRL_OFFSET%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20l2Entry%5BADDRESS_RANGE%5D%20%3D%20%7B0%7D%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B0%5D%20%3D%20(((INDEX%26amp%3B%200x03ff)%26lt%3B%26lt%3B%20(1%25%2032))%2B%20((ENFPORT%26amp%3B%201)%26lt%3B%26lt%3B%20(11%25%2032))%3CBR%20%2F%3E%2B%20((DESTPORTS%26amp%3B%200x7FF)%26lt%3B%26lt%3B%20(12%25%2032))%2B%20((SRCPORT%26amp%3B%200xF)%26lt%3B%26lt%3B%20(23%25%2032))%3CBR%20%2F%3E%2B%20((MACADDR%26amp%3B%200x1F)%26lt%3B%26lt%3B%20(27%25%2032)))%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B1%5D%20%3D%20(((MACADDR%26gt%3B%26gt%3B%205)%26amp%3B%200xFFFFFFFF))%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B2%5D%20%3D%20((((MACADDR%26gt%3B%26gt%3B%2037)%26amp%3B%200x7FF)%26lt%3B%26lt%3B%20(64%25%2032))%2B%20((VLANID%26amp%3B%200xFFF)%26lt%3B%26lt%3B%20(75%25%2032))%3CBR%20%2F%3E%2B%20((IOTAG%26amp%3B%201)%26lt%3B%26lt%3B%20(87%25%2032))%2B%20((MACADDR_MASK%26amp%3B%200xFF)%26lt%3B%26lt%3B%20(88%25%2032)))%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B3%5D%20%3D%20(((MACADDR_MASK%26gt%3B%26gt%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%20%26amp%3B%200xFFFFFFFF%EF%BC%89%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B4%5D%20%3D%20(((MACADDR_MASK%26gt%3B%26gt%3B%2040)%26amp%3B%200xFF%26lt%3B%26lt%3B%20(128%25%2032))%2B%20((VLANID_MASK%26amp%3B%200xfff)%26lt%3B%26lt%3B%20(136%25%2032))%3CBR%20%2F%3E%2B%20((IOTAG_MASK%26amp%3B%201)%26lt%3B%26lt%3B%20(148%25%2032))%2B%20((SRCPORT_MASK%26amp%3B%200xF)%26lt%3B%26lt%3B%20(149%25%2032))%3CBR%20%2F%3E%2B%20((RETAG%26amp%3B%200x1)%26lt%3B%26lt%3B%20(153%25%2032))%2B%20((MIRROR%26amp%3B%200x1)%26lt%3B%26lt%3B%20(154%25%2032))%3CBR%20%2F%3E%2B%20((TAKETS%26amp%3B%200x1)%26lt%3B%26lt%3B%20(155%25%2032))%2B%20((MIRR_VLAN%26amp%3B%200xF)%26lt%3B%26lt%3B%20(156%25%2032)))%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B5%5D%20%3D%20(((MIRR_VLAN%26gt%3B%26gt%3B%204)%26amp%3B%200xFF%26lt%3B%26lt%3B%20(160%25%2032))%2B%20((TRAPTOHOST%26amp%3B%200x1)%26lt%3B%26lt%3B%20(168%25%2032))%3CBR%20%2F%3E%2B%20((CBSIDIN%26amp%3B%200x3F)%26lt%3B%26lt%3B%20(169%25%2032))%2B%20((CBENONDA%26amp%3B%200x1)%26lt%3B%26lt%3B%20(175%25%2032))%3CBR%20%2F%3E%2B%20((VLIDX%26amp%3B%200xFFF)%26lt%3B%26lt%3B%20(177%25%2032))%2B%20((SA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%20(189%25%2032))%3CBR%20%2F%3E%2B%20((DA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%20(190%25%2032)))%3B%3CBR%20%2F%3Euint32_t%20status%20%3D%200%3B%3CBR%20%2F%3Edo%20%7B%3CBR%20%2F%3EStd_ReturnType%20ret%20%3D%20spi_read_reg(L2_ADDRESS_CTL%2C%26amp%3Bstatus)%3B%3CBR%20%2F%3Eif%20(ret%20%EF%BC%81%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-1%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%20while%20((status%26gt%3B%26gt%3B%20VALID_BIT_SHIFT)%26amp%3B%201U)%EF%BC%9B%3C%2FP%3E%3CP%3Efor%20(int%20i%20%3D%200%3B%20i%26lt%3B%20ADDRESS_RANGE%3B%20i%2B%2B)%20%7B%3CBR%20%2F%3EStd_ReturnType%20ret%20%3D%20spi_write_reg(L2_ADDRESS%20%2B%20i%2C%20l2Entry%5Bi%5D)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-2%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Euint32_t%20readBack%20%3D%200%3B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_ADDRESS%20%2B%20i%2C%26amp%3BreadBack)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK%20%7C%7C%20readBack%20!%3D%20l2Entry%5Bi%5D)%20%7B%3CBR%20%2F%3Ereturn%20-3%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Euint32_t%20controlL2Entry%20%3D%200%3B%3CBR%20%2F%3EcontrolL2Entry%20%3D%20((VALID%26lt%3B%26lt%3B%2031)%20%2B%20(RDWRSET%26lt%3B%26lt%3B%2030)%20%2B%20(ERROR%26lt%3B%26lt%3B%2029)%20%2B%20(LOCKED%26lt%3B%26lt%3B%2028)%20%2B%20(VALIDENT%26lt%3B%26lt%3B%2027)%20%2B%3CBR%20%2F%3E(MGMTROUTE%26lt%3B%26lt%3B%2026)%20%2B%20(HOSTCMD%26lt%3B%26lt%3B%2023))%EF%BC%9B%3C%2FP%3E%3CP%3EStd_ReturnType%20ret%20%3D%20spi_write_reg(L2_ADDRESS_CTL%2C%20controlL2Entry)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-4%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Edo%20%7B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_ADDRESS_CTL%2C%26amp%3Bstatus)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-5%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%20while%20((status%26gt%3B%26gt%3B%20VALID_BIT_SHIFT)%26amp%3B%201U)%EF%BC%9B%3C%2FP%3E%3CP%3Ereturn%200%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%94%B9%E5%8F%98%E4%BA%86%E4%B8%8E%20Python%20%E8%84%9A%E6%9C%AC%E7%B1%BB%E4%BC%BC%E7%9A%84%E5%AE%9E%E7%8E%B0%E6%96%B9%E5%BC%8F%E3%80%82%E5%A6%82%E6%9E%9C%E5%8F%91%E7%8E%B0%E4%BB%BB%E4%BD%95%E9%94%99%E8%AF%AF%EF%BC%8C%E8%AF%B7%E5%B0%86%E4%BF%AE%E6%94%B9%E5%86%85%E5%AE%B9%E5%8F%91%E9%80%81%E7%BB%99%E6%88%91%3CBR%20%2F%3E%3CBR%20%2F%3E%3CU%3EPython%20%E8%84%9A%E6%9C%AC%3C%2FU%3E%3C%2FP%3E%3CDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%23%20%E5%86%99%E5%85%A5%E6%8E%A7%E5%88%B6%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%E5%B9%B3%E5%8F%B0%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3Espi_write%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EL2_ADDRESS_CTL%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3E%E6%8E%A7%E5%88%B6%20L2Entry%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3Ecs%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%E8%A1%A8%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3Eprettytable%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3EPrettyTable%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%20%20%20%20(%3C%2FSPAN%3E%3CSPAN%3E%22%E7%B4%A2%E5%BC%95%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22DESTPORTS%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22MACADDR%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22VLANID%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22ENFPORT%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22IOTAG%22%3C%2FSPAN%3E%3CSPAN%3E))%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%E6%9D%A1%E7%9B%AE%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3Estr%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EINDEX%3C%2FSPAN%3E%3CSPAN%3E)%2C%20%3C%2FSPAN%3E%3CSPAN%3E'%3C%2FSPAN%3E%3CSPAN%3E%7B0%3A11b%7D%3C%2FSPAN%3E%3CSPAN%3E'%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3E%E6%A0%BC%E5%BC%8F%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EDESTPORTS%3C%2FSPAN%3E%3CSPAN%3E)%2C%20%3C%2FSPAN%3E%3CSPAN%3Emac_to_str%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EMACADDR%3C%2FSPAN%3E%3CSPAN%3E)%2C%20%3C%2FSPAN%3E%3CSPAN%3Estr%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EVLANID%3C%2FSPAN%3E%3CSPAN%3E)%2C%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3Estr%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EENFPORT%3C%2FSPAN%3E%3CSPAN%3E)%2C%20%3C%2FSPAN%3E%3CSPAN%3Estr%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3EIOTAG%3C%2FSPAN%3E%3CSPAN%3E))%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%E6%A1%8C%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3E%E6%B7%BB%E5%8A%A0%E8%A1%8C%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3E%E6%9D%A1%E7%9B%AE%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%E6%89%93%E5%8D%B0%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3E%E8%A1%A8%E6%A0%BC%3C%2FSPAN%3E%3CSPAN%3E.%3C%2FSPAN%3E%3CSPAN%3Eget_string%3C%2FSPAN%3E%3CSPAN%3E())%3C%2FSPAN%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CDIV%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3CBR%20%2F%3E%3CSPAN%3E%22%20%E5%86%99%E5%AE%8C%E4%B9%8B%E5%90%8E%EF%BC%8C%E5%B0%9D%E8%AF%95%E5%8F%91%E9%80%81%E4%B8%80%E4%B8%AA%E7%AC%A6%E5%90%88%E6%9D%A1%E7%9B%AE%E7%9A%84%20mac%2FVLAN%2FPort%20%E6%A0%87%E5%87%86%E7%9A%84%E5%B8%A7%EF%BC%8C%E7%84%B6%E5%90%8E%E8%A7%82%E5%AF%9F%E8%AF%A5%E5%B8%A7%E6%98%AF%E5%90%A6%E6%A0%B9%E6%8D%AE%20DESTPORTS%20%E5%AD%97%E6%AE%B5%E8%BF%9B%E8%A1%8C%E8%BD%AC%E5%8F%91%20%22%3CBR%20%2F%3E%3C%2FSPAN%3E%20%E6%AD%A3%E5%A6%82%E4%BD%A0%E6%8F%90%E5%88%B0%E7%9A%84%E9%82%A3%E6%A0%B7%EF%BC%8C%20%E6%88%91%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E7%94%A8%E8%BF%99%E7%A7%8D%E6%96%B9%E5%BC%8F%E5%8F%91%E9%80%81%E4%BD%86%E7%9C%8B%E4%B8%8D%E5%88%B0%E8%BF%99%E7%A7%8D%E5%8F%8D%E5%B0%84%3CBR%20%2F%3E%20%E6%88%91%E7%9C%8B%E4%B8%8D%E5%88%B0%E6%88%91%E7%9A%84%E5%8F%82%E8%B5%9B%20%E4%BD%9C%E5%93%81%E6%98%AF%E5%90%A6%E5%BE%97%E5%88%B0%E5%8F%8D%E6%98%A0%EF%BC%9F%3CBR%20%2F%3E%20%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E9%9C%80%E8%A6%81%E8%AE%BE%E7%BD%AE%E7%9A%84%E4%B8%9C%E8%A5%BF%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSTRONG%3E%20%E5%9C%A8%20Python%20%E8%84%9A%E6%9C%AC%E4%B8%AD%EF%BC%8C%E5%9C%A8%E5%B0%86%20controll2entry%20%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E5%80%BC%E5%86%99%E5%85%A5%3C%2FSTRONG%3E%3CSPAN%3E%3CSTRONG%3E%20L2_ADDRESS_CTL%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20%E4%B9%8B%E5%90%8E%20%EF%BC%8C%20%E6%9C%89%E5%87%A0%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BB%A5%E5%9C%A8%20%22%20prettytable%20%22%20%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E6%9D%A1%E7%9B%AE%EF%BC%8C%E6%88%91%E4%BB%AC%E6%98%AF%E5%90%A6%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSTRONG%3E%20%E4%B9%9F%E9%9C%80%E8%A6%81%20%E8%BF%99%E6%A0%B7%E5%81%9A%EF%BC%9F%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137502%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137502%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E6%9D%A1%E7%9B%AE%5B3%5D%E3%80%81%E6%9D%A1%E7%9B%AE%5B4%5D%E5%92%8C%E6%9D%A1%E7%9B%AE%5B5%5D%E4%B8%AD%E5%AD%98%E5%9C%A8%E7%BC%BA%E5%A4%B1%E7%9A%84%E7%A7%BB%E4%BD%8D%E5%80%BC%E5%92%8C%E4%B8%8D%E5%AE%8C%E6%95%B4%E7%9A%84%E8%A1%A8%E8%BE%BE%E5%BC%8F%E3%80%82%E8%BF%99%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%E5%AF%84%E5%AD%98%E5%99%A8%E5%80%BC%E4%B8%8D%E6%AD%A3%E7%A1%AE%E3%80%82%E6%88%91%E5%BB%BA%E8%AE%AE%E5%B0%86%E4%BD%A0%E7%9A%84%E9%80%BB%E8%BE%91%E4%B8%8E%20Python%20%E5%BC%95%E7%94%A8%E8%84%9A%E6%9C%AC%E8%BF%9B%E8%A1%8C%E6%AF%94%E8%BE%83%EF%BC%8C%E5%90%8E%E8%80%85%E6%AD%A3%E7%A1%AE%E6%9E%84%E9%80%A0%E4%BA%86%20L2%20%E6%9D%A1%E7%9B%AE%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%86%99%E5%85%A5%E5%90%8E%EF%BC%8C%E5%B0%9D%E8%AF%95%E5%8F%91%E9%80%81%E4%B8%80%E4%B8%AA%E7%AC%A6%E5%90%88%E8%AF%A5%E6%9D%A1%E7%9B%AE%20MAC%2FVLAN%2F%20%E7%AB%AF%E5%8F%A3%E6%9D%A1%E4%BB%B6%E7%9A%84%E5%B8%A7%EF%BC%8C%E5%B9%B6%E8%A7%82%E5%AF%9F%E5%AE%83%E6%98%AF%E5%90%A6%E6%A0%B9%E6%8D%AE%20DESTPORTS%20%E5%AD%97%E6%AE%B5%E8%BD%AC%E5%8F%91%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137029%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137029%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3Eint%20WriteL2LookupEntry(int%20cs)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Econst%20uint32_t%20DESTPORTS%20%3D%200x002%3B%3CBR%20%2F%3Econst%20uint32_t%20INDEX%20%3D%208%3B%3CBR%20%2F%3Econst%20uint64_t%20MACADDR%20%3D%200x661122334455%3B%3CBR%20%2F%3Econst%20uint64_t%20MACADDR_MASK%20%3D%200xffffffffffffffff%EF%BC%9B%3CBR%20%2F%3Econst%20uint32_t%20VLANID%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20VLANID_MASK%20%3D%200xffffff%3B%3CBR%20%2F%3Econst%20uint32_t%20IOTAG%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20IOTAG_MASK%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20SRCPORT%20%3D%200x5%EF%BC%9B%3CBR%20%2F%3Econst%20uint32_t%20SRCPORT_MASK%20%3D%200xF%3B%3CBR%20%2F%3Econst%20uint32_t%20ENFPORT%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20RETAG%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20MIRROR%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20TAKETS%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20MIRR_VLAN%20%3D%200xFFF%EF%BC%9B%3CBR%20%2F%3Econst%20uint32_t%20TRAPTOHOST%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20CBSIDIN%20%3D%200x3F%3B%3CBR%20%2F%3Econst%20uint32_t%20CBENONDA%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20VLIDX%20%3D%200xFFF%3B%3CBR%20%2F%3Econst%20uint32_t%20SA_POLICE%20%3D%200%3B%3CBR%20%2F%3Econst%20uint32_t%20DA_POLICE%20%3D%200%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20L2_OFFSET%20%3D%200x23%EF%BC%9B%3CBR%20%2F%3Euint32_t%20L2CTRL_OFFSET%20%3D%200x29%EF%BC%9B%3CBR%20%2F%3E%E5%B8%B8%E9%87%8F%20uint32_t%20SWREG_BASE%20%3D%200x00000000%EF%BC%9B%3C%2FP%3E%3CP%3Econst%20uint32_t%20VALID%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20RDWRSET%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20VALIDENT%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20HOSTCMD%20%3D%203U%3B%3CBR%20%2F%3Econst%20uint32_t%20MGMTROUTE%20%3D%200U%3B%3CBR%20%2F%3Econst%20uint32_t%20LOCKED%20%3D%201U%3B%3CBR%20%2F%3Econst%20uint32_t%20ERROR%20%3D%200U%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20L2_ADDRESS%20%3D%20SWREG_BASE%20%2B%20L2_OFFSET%EF%BC%9B%3CBR%20%2F%3Euint32_t%20L2_ADDRESS_CTL%20%3D%20SWREG_BASE%20%2B%20L2CTRL_OFFSET%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20l2Entry%5BADDRESS_RANGE%5D%20%3D%20%7B0%7D%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B0%5D%20%3D%20((INDEX%26amp%3B%200x03FF)%26lt%3B%26lt%3B%201)%3CBR%20%2F%3E%7C%20((ENFPORT%26amp%3B%200x1)%26lt%3B%26lt%3B%2011)%3CBR%20%2F%3E%7C%20((DESTPORTS%26amp%3B%200x7FF)%26lt%3B%26lt%3B%2012)%3CBR%20%2F%3E%7C%20((SRCPORT%26amp%3B%200xF)%26lt%3B%26lt%3B%2023)%3CBR%20%2F%3E%7C%20((uint32_t)(MACADDR%26amp%3B%200x1F)%26lt%3B%26lt%3B%2027)%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B1%5D%20%3D%20(uint32_t)((MACADDR%26gt%3B%26gt%3B%205)%26amp%3B%200xFFFFFFFF)%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B2%5D%20%3D%20(uint32_t)(((MACADDR%26gt%3B%26gt%3B%2037)%26amp%3B%200x7FF)%26lt%3B%26lt%3B%200)%3CBR%20%2F%3E%7C%20((VLANID%26amp%3B%200xFFF)%26lt%3B%26lt%3B%2011)%3CBR%20%2F%3E%7C%20((IOTAG%26amp%3B%200x1)%26lt%3B%20%26lt%3B%2023)%3CBR%20%2F%3E%7C%20((uint32_t)(MACADDR_MASK%26amp%3B%200xFF)%26lt%3B%26lt%3B%2024)%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B3%5D%20%3D%20(uint32_t)((MACADDR_MASK)%26gt%3B%26gt%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%20%26amp%3B%200xFFFFFFFF%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B4%5D%20%3D%20((uint32_t)((MACADDR_MASK%26gt%3B%26gt%3B%2040)%26amp%3B%200xFF)%26lt%3B%26lt%3B%200)%3CBR%20%2F%3E%7C%20((VLANID_MASK%26amp%3B%200xFFF)%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%3CBR%20%2F%3E%7C%20((IOTAG_MASK%26amp%3B%200x1)%26lt%3B%26lt%3B%2020)%3CBR%20%2F%3E%7C%20((SRCPORT_MASK%26amp%3B%200xF)%26lt%3B%26lt%3B%2021)%3CBR%20%2F%3E%7C%20((RETAG%26amp%3B%200x1)%26lt%3B%26lt%3B%2025)%3CBR%20%2F%3E%7C%20((MIRROR%26amp%3B%200x1)%26lt%3B%26lt%3B%2026)%3CBR%20%2F%3E%7C%20((TAKETS%26amp%3B%200x1)%26lt%3B%26lt%3B%2027)%3CBR%20%2F%3E%7C%20((MIRR_VLAN%26amp%3B%200xF)%26lt%3B%26lt%3B%2028)%EF%BC%9B%3C%2FP%3E%3CP%3El2Entry%5B5%5D%20%3D%20(((MIRR_VLAN%26gt%3B%26gt%3B%204)%26amp%3B%200xFF)%26lt%3B%26lt%3B%200)%3CBR%20%2F%3E%7C%20((TRAPTOHOST%26amp%3B%200x1))%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%3CBR%20%2F%3E%7C%20((CBSIDIN%26amp%3B%200x3F)%26lt%3B%26lt%3B%209)%3CBR%20%2F%3E%7C%20((CBENONDA%26amp%3B%200x1)%26lt%3B%26lt%3B%2015)%3CBR%20%2F%3E%7C%20((VLIDX%26amp%3B%200xFFF)%26lt%3B%26lt%3B%2017)%3CBR%20%2F%3E%7C%20((SA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%2029)%3CBR%20%2F%3E%7C%20((DA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%2030)%EF%BC%9B%3CBR%20%2F%3Euint32_t%20status%20%3D%200%3B%3CBR%20%2F%3Edo%20%7B%3CBR%20%2F%3EStd_ReturnType%20ret%20%3D%20spi_read_reg(L2_ADDRESS_CTL%2C%26amp%3Bstatus)%3B%3CBR%20%2F%3Eif%20(ret%20%EF%BC%81%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-1%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%20while%20((status%26gt%3B%26gt%3B%20VALID_BIT_SHIFT)%26amp%3B%201U)%EF%BC%9B%3C%2FP%3E%3CP%3Efor%20(int%20i%20%3D%200%3B%20i%26lt%3B%20ADDRESS_RANGE%3B%20i%2B%2B)%20%7B%3CBR%20%2F%3EStd_ReturnType%20ret%20%3D%20spi_write_reg(L2_ADDRESS%20%2B%20i%2C%20l2Entry%5Bi%5D)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-2%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Euint32_t%20readBack%20%3D%200%3B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_ADDRESS%20%2B%20i%2C%26amp%3BreadBack)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK%20%7C%7C%20readBack%20!%3D%20l2Entry%5Bi%5D)%20%7B%3CBR%20%2F%3Ereturn%20-3%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Euint32_t%20controlL2Entry%20%3D%200%3B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(VALID%26lt%3B%26lt%3B%20VALID_BIT_SHIFT)%3B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(RDWRSET%26lt%3B%26lt%3B%20RDWRSET_BIT_SHIFT)%3B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(ERROR%26lt%3B%26lt%3B%20ERROR_BIT_SHIFT)%EF%BC%9B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(LOCKED%26lt%3B%26lt%3B%20LOCKED_BIT_SHIFT)%EF%BC%9B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(VALIDENT%26lt%3B%26lt%3B%20VALIDENT_BIT_SHIFT)%EF%BC%9B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(MGMTROUTE%26lt%3B%26lt%3B%20MGMTROUTE_BIT_SHIFT)%EF%BC%9B%3CBR%20%2F%3EcontrolL2Entry%20%7C%3D%20(HOSTCMD%26lt%3B%26lt%3B%20HOSTCMD_BIT_SHIFT)%EF%BC%9B%3C%2FP%3E%3CP%3EStd_ReturnType%20ret%20%3D%20spi_write_reg(L2_ADDRESS_CTL%2C%20controlL2Entry)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-4%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Edo%20%7B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_ADDRESS_CTL%2C%26amp%3Bstatus)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3Ereturn%20-5%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%20while%20((status%26gt%3B%26gt%3B%20VALID_BIT_SHIFT)%26amp%3B%201U)%EF%BC%9B%3C%2FP%3E%3CP%3Ereturn%200%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%99%E6%98%AF%E6%88%91%E4%BF%AE%E6%94%B9%E5%90%8E%E7%9A%84%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0%3CBR%20%2F%3E%EF%BC%8C%E4%BD%A0%E8%83%BD%E5%90%A6%E9%AA%8C%E8%AF%81%E4%B8%80%E4%B8%8B%E8%BF%99%E4%B8%AA%E5%AE%9E%E7%8E%B0%E6%98%AF%E5%90%A6%E4%BC%9A%E5%B8%A6%E6%9D%A5%E5%8A%A8%E6%80%81%E5%85%A5%E5%8F%A3%E3%80%82%E5%9B%A0%E6%AD%A4%EF%BC%8C%E6%88%91%E8%AF%95%E7%9D%80%E5%9B%9E%E8%AF%BB%E5%AF%84%E5%AD%98%E5%99%A8%E7%9A%84%E5%80%BC%E6%9D%A5%E8%B0%83%E8%AF%95%E5%AF%84%E5%AD%98%E5%99%A8%E6%98%AF%E5%90%A6%E8%A2%AB%E5%86%99%E5%85%A5%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E5%AF%84%E5%AD%98%E5%99%A8%E8%A2%AB%E5%86%99%E5%85%A5%E4%BA%86%E5%80%BC%EF%BC%8C%E4%BD%86%E6%88%91%E4%B8%8D%E7%A1%AE%E5%AE%9A%E6%98%AF%E5%90%A6%E5%88%9B%E5%BB%BA%E4%BA%86enrty%EF%BC%9F%3CBR%20%2F%3E%E6%AD%A4%E5%A4%96%EF%BC%8CL2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E7%9A%84%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E4%B9%9F%E6%B2%A1%E6%9C%89%E5%BE%97%E5%88%B0%E5%8F%8D%E6%98%A0%EF%BC%9F%3CBR%20%2F%3E%EF%BC%8C%E9%82%A3%E4%B9%88%E6%88%91%E5%A6%82%E4%BD%95%E9%AA%8C%E8%AF%81%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E6%98%AF%E5%90%A6%E5%B7%B2%E5%88%9B%E5%BB%BA%EF%BC%9F%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-2136563%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2136563%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E1.%E4%BD%8D%E7%A7%BB%E8%AF%AD%E6%B3%95%20(%26lt%3B%26lt%3B%20%2C%26gt%3B%26gt%3B%20)%3CBR%20%2F%3E%E6%82%A8%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E4%B8%80%E4%BA%9B%E4%BD%8D%E7%A7%BB%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BC%BC%E4%B9%8E%E8%A2%AB%E6%9B%BF%E6%8D%A2%E6%88%90%E4%BA%86%20HTML%20%E5%AE%9E%E4%BD%93%EF%BC%8C%E5%A6%82%26lt%3B%26lt%3B%20%E5%92%8C%26gt%3B%26gt%3B%E3%80%82%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%E9%80%9A%E5%B8%B8%E5%8F%91%E7%94%9F%E5%9C%A8%E5%B0%86%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%88%B6%E5%88%B0%E7%BD%91%E7%BB%9C%E5%B9%B3%E5%8F%B0%E6%97%B6%E3%80%82%E6%80%BB%E4%B9%8B%EF%BC%8C%E8%AF%B7%E7%9B%B4%E6%8E%A5%E5%9C%A8%E4%BB%A3%E7%A0%81%E4%B8%AD%E8%BF%9B%E8%A1%8C%E6%A3%80%E6%9F%A5%E3%80%82%3C%2FP%3E%0A%3CP%3E%23define%20L2_CTRL_VALID_BIT%20(1U%26lt%3B%26lt%3B%2031)%3C%2FP%3E%0A%3CP%3E%E5%BA%94%E4%B8%BA%EF%BC%9A%3CBR%20%2F%3E%23define%20L2_CTRL_VALID_BIT%20(1U%26lt%3B%26lt%3B%2031)%3C%2FP%3E%0A%3CP%3E2.%E6%9D%A1%E7%9B%AE%E9%97%AE%E9%A2%98%3CBR%20%2F%3E%E5%9C%A8%20CreateL2Entry()%20%E5%87%BD%E6%95%B0%E4%B8%AD%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E5%9C%A8%E6%9D%A1%E7%9B%AE%5B3%5D%E3%80%81%E6%9D%A1%E7%9B%AE%5B4%5D%E5%92%8C%E6%9D%A1%E7%9B%AE%5B5%5D%E4%B8%AD%EF%BC%8C%E5%AD%98%E5%9C%A8%E4%B8%80%E4%BA%9B%E8%AF%AD%E6%B3%95%E9%94%99%E8%AF%AF%E5%92%8C%E7%BC%BA%E5%A4%B1%E7%9A%84%E7%A7%BB%E4%BD%8D%E5%80%BC%E3%80%82%E8%BF%99%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%E5%AF%84%E5%AD%98%E5%99%A8%E5%86%99%E5%85%A5%E4%B8%8D%E5%AE%8C%E6%95%B4%E6%88%96%E6%97%A0%E6%95%88%E3%80%82%20%3C%2FP%3E%0A%3CP%3E%E4%BE%8B%E5%A6%82%20%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%3E(%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3ETRAPTOHOST%3C%2FSPAN%3E%20%3CSPAN%3E%26amp%3B%3C%2FSPAN%3E%3CSPAN%3E0x1%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%20%3CSPAN%3E%26lt%3B%3C%2FSPAN%3E%3CSPAN%3E%26lt%3B%3C%2FSPAN%3E%20%3CSPAN%3E%7C%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%3CBR%20%2F%3E%0A%3CP%3E%E6%88%91%E5%BB%BA%E8%AE%AE%E5%B0%86%E6%82%A8%E7%9A%84%E5%AE%9E%E7%8E%B0%E4%B8%8E%20Python%20%E5%8F%82%E8%80%83%E8%84%9A%E6%9C%AC%E8%BF%9B%E8%A1%8C%E6%AF%94%E8%BE%83%EF%BC%8C%E5%90%8E%E8%80%85%E6%AD%A3%E7%A1%AE%E6%9E%84%E9%80%A0%E4%BA%86%20L2%20%E6%9D%A1%E7%9B%AE%E7%9A%84%E6%89%80%E6%9C%89%E5%85%AD%E4%B8%AA%2032%20%E4%BD%8D%E5%8D%95%E8%AF%8D%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2136419%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2136419%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%203%3CSPAN%3E.)I%20have%20changed%20the%20Register%20address%20to%20%3C%2FSPAN%3E%3CSPAN%3E%23define%20L2_ENTRY0_ADDR%20%3C%2FSPAN%3E%3CSTRONG%3E0x00000023%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSPAN%3Ebut%20still%20I%20am%20not%20able%20to%20identify%20the%20table%20which%20I%20am%20trying%20to%20add%20getting%20reflected%20when%20I%20transmit%20the%20message%20%3C%2FSPAN%3E%3CBR%20%2F%3E%22%3CSPAN%3EIf%20I%20understand%20correctly%2C%20you're%20referring%20to%20the%20L2%20Lookup%20Table%20described%20in%20Table%201182%20of%20UM11107%3C%2FSPAN%3E.%20%E8%AF%A5%E8%A1%A8%E6%AF%8F%E4%B8%AA%E6%9D%A1%E7%9B%AE%E7%94%B1%E5%85%AD%E4%B8%AA%2032%20%E4%BD%8D%E5%AF%84%E5%AD%98%E5%99%A8%E7%BB%84%E6%88%90%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Python%20%E8%84%9A%E6%9C%AC%E7%9A%84%E8%B0%83%E8%AF%95%E8%BE%93%E5%87%BA%E4%B8%AD%E7%9C%8B%E5%88%B0%E8%BF%99%E7%A7%8D%E7%BB%93%E6%9E%84%E3%80%82%22%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E6%88%91%E9%81%87%E5%88%B0%E4%BA%86%E8%BF%99%E6%A0%B7%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%9A%E6%88%91%E8%AF%95%E5%9B%BE%E5%B0%86%E6%95%B0%E6%8D%AE%E5%86%99%E5%85%A5%E9%9C%80%E8%A6%81%E5%9C%A8%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%9D%80%EF%BC%8C%E4%BD%86%E5%8D%B4%E6%B2%A1%E6%9C%89%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%23define%20L2_ENTRY0_ADDR%200x00000023%3CBR%20%2F%3E%23define%20L2_ENTRY1_ADDR%200x00000024%3CBR%20%2F%3E%23define%20L2_ENTRY2_ADDR%200x00000025%3CBR%20%2F%3E%23defineL2_ENTRY3_ADDR%200x00000026%3CBR%20%2F%3E%23define%20L2_ENTRY4_ADDR%200x00000027%3CBR%20%2F%3E%23define%20L2_ENTRY5_ADDR%200x00000028%3CBR%20%2F%3E%23define%20L2_CTRL_ADDR%200x00000029%3C%2FP%3E%3CP%3E%23define%20L2_CTRL_VALID_BIT%20(1U%26lt%3B%26lt%3B%2031)%3CBR%20%2F%3E%23define%20L2_CTRL_WR_RDB_BIT%20(1U%26lt%3B%26lt%3B%2030)%3CBR%20%2F%3E%23define%20L2_CTRL_VALIDENTRY_BIT(1U%26lt%3B%26lt%3B%2028)%3CBR%20%2F%3E%23define%20L2_CTRL_HOSTCMD_SHIFT%2023%3CBR%20%2F%3E%23define%20L2_CTRL_HOSTCMD_WRITE%20(0b011U%26lt%3B%26lt%3B%20L2_CTRL_HOSTCMD_SHIFT)%3C%2FP%3E%3CP%3EStd_ReturnType%20CreateL2Entry(uint32_t%20entry%5B6%5D)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Euint16_t%20INDEX%20%3D%2011%3B%3CBR%20%2F%3Euint64_t%20MACADDR%20%3D%200x661122334455%3B%3CBR%20%2F%3Euint64_t%20MACADDR_MASK%20%3D%200xFFFFFFFFFFFF%EF%BC%9B%3CBR%20%2F%3Euint16_t%20VLANID%20%3D%203%3B%3CBR%20%2F%3Euint16_t%20VLANID_MASK%20%3D%200xFFFFF%3B%3CBR%20%2F%3Euint8_t%20IOTAG%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20IOTAG_MASK%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20SRCPORT%20%3D%205%3B%3CBR%20%2F%3Euint8_t%20SRCPORT_MASK%20%3D%200xF%EF%BC%9B%3CBR%20%2F%3Euint8_t%20DESTPORTS%20%3D%200x02%3B%3CBR%20%2F%3Euint8_t%20ENFPORT%20%3D%201%3B%3CBR%20%2F%3Euint8_t%20RETAG%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20MIRROR%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20TAKETS%20%3D%200%3B%3CBR%20%2F%3Euint16_t%20MIRR_VLAN%20%3D%200xFFF%EF%BC%9B%3CBR%20%2F%3Euint8_t%20TRAPTOHOST%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20CBSIDIN%20%3D%200x3F%3B%3CBR%20%2F%3Euint8_t%20CBENONDA%20%3D%200%3B%3CBR%20%2F%3Euint16_t%20VLIDX%20%3D%200xFFF%3B%3CBR%20%2F%3Euint8_t%20SA_POLICE%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20DA_POLICE%20%3D%200%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B0%5D%20%3D%20((INDEX%26amp%3B%200x03FF)%26lt%3B%26lt%3B%201)%20%7C%3CBR%20%2F%3E((ENFPORT%26amp%3B%200x1)%26lt%3B%26lt%3B%2011)%7C%3CBR%20%2F%3E((DESTPORTS%26amp%3B%200x7FF)%26lt%3B%26lt%3B%2012)%7C%3CBR%20%2F%3E((SRCPORT%26amp%3B%200xF)%26lt%3B%26lt%3B%2023)%7C%3CBR%20%2F%3E((MACADDR%26amp%3B%200x1F)%26lt%3B%26lt%3B%2027)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B1%5D%20%3D%20(uint32_t)((MACADDR%26gt%3B%26gt%3B%205)%26amp%3B%200xFFFFFFFF)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B2%5D%20%3D%20(((MACADDR%26gt%3B%26gt%3B%2037)%26amp%3B%200x7FF)%26lt%3B%26lt%3B%200)%7C%3CBR%20%2F%3E((VLANID%26amp%3B%200xFFF)%26lt%3B%26lt%3B%2011)%7C%3CBR%20%2F%3E((IOTAG%26amp%3B%200x1)%26lt%3B%26lt%3B%2023)%7C%3CBR%20%2F%3E((MACADDR_MASK%26amp%3B%200xFF)%26lt%3B%26lt%3B%2024)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B3%5D%20%3D%20(uint32_t)((MACADDR_MASK)%26gt%3B%26gt%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%20%26amp%3B%200xFFFFFFFF%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B4%5D%20%3D%20(((MACADDR_MASK%26gt%3B%26gt%3B%2040)%26amp%3B%200xFF)%26lt%3B%26lt%3B%200)%7C%3CBR%20%2F%3E((VLANID_MASK%26amp%3B%200xFFF)%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%20%7C%3CBR%20%2F%3E((IOTAG_MASK%26amp%3B%200x1)%26lt%3B%26lt%3B%2020)%7C%3CBR%20%2F%3E((SRCPORT_MASK%26amp%3B%200xF)%26lt%3B%26lt%3B%2021)%7C%3CBR%20%2F%3E((RETAG%26amp%3B%200x1)%26lt%3B%26lt%3B%2025)%7C%3CBR%20%2F%3E((MIRROR%26amp%3B%200x1)%26lt%3B%26lt%3B%2026)%7C%3CBR%20%2F%3E((TAKETS%26amp%3B%200x1)%26lt%3B%26lt%3B%2027)%7C%3CBR%20%2F%3E((MIRR_VLAN%26amp%3B%200xF)%26lt%3B%26lt%3B%2028)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B5%5D%20%3D%20(((MIRR_VLAN%26gt%3B%26gt%3B%204)%26amp%3B%200xFF)%26lt%3B%26lt%3B%200)%7C%3CBR%20%2F%3E((TRAPTOHOST%26amp%3B%200x1)%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%20%7C%3CBR%20%2F%3E((CBSIDIN%26amp%3B%200x3F)%26lt%3B%26lt%3B%209)%7C%3CBR%20%2F%3E((CBENONDA%26amp%3B%200x1)%26lt%3B%26lt%3B%2015)%7C%3CBR%20%2F%3E((VLIDX%26amp%3B%200xFFF)%26lt%3B%26lt%3B%2017)%7C%3CBR%20%2F%3E((SA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%2029)%7C%3CBR%20%2F%3E((DA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%2030)%EF%BC%9B%3C%2FP%3E%3CP%3Ereturn%20E_OK%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%3CBR%20%2F%3EStd_ReturnType%20WriteL2LookupEntry(uint8_t%20swt)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Eif%20(swt%26gt%3B%200)%20return%20E_NOT_OK%EF%BC%9B%3C%2FP%3E%3CP%3EStd_ReturnType%20ret%3B%3CBR%20%2F%3Euint32_t%20ctrlReg%20%3D%200%3B%3CBR%20%2F%3Euint32_t%20entry%5B6%5D%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E7%AC%AC%201%20%E6%AD%A5%EF%BC%9A%E5%88%9B%E5%BB%BA%E6%9D%A1%E7%9B%AE%3CBR%20%2F%3Eret%20%3D%20CreateL2Entry(entry)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E7%AC%AC%202%20%E6%AD%A5%EF%BC%9A%E7%AD%89%E5%BE%85%20VALID%20%E4%BD%8D%E6%B8%85%E9%9B%B6%3CBR%20%2F%3Edo%20%7B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_CTRL_ADDR%2C%26amp%3BctrlReg)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3E%7D%20while%20(ctrlReg%26amp%3B%20L2_CTRL_VALID_BIT)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E7%AC%AC%203%20%E6%AD%A5%EF%BC%9A%E5%B0%86%E6%9D%A1%E7%9B%AE%E6%95%B0%E6%8D%AE%E5%86%99%E5%85%A5%E5%AF%84%E5%AD%98%E5%99%A8%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY0_ADDR%2C%20entry%5B0%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY1_ADDR%2C%20entry%5B1%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY2_ADDR%2C%20entry%5B2%5D)%3B%20if%20(ret%20%EF%BC%81%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY3_ADDR%2C%20entry%5B3%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY4_ADDR%2C%20entry%5B4%5D)%3B%20if%20(ret%20%EF%BC%81%3D%20E_OK)%20%E8%BF%94%E5%9B%9E%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY5_ADDR%2C%20entry%5B5%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20%E8%BF%94%E5%9B%9E%20ret%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%E6%AD%A5%E9%AA%A4%204%EF%BC%9A%E8%AE%BE%E7%BD%AE%E6%8E%A7%E5%88%B6%E5%AF%84%E5%AD%98%E5%99%A8%E4%BB%A5%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%E5%86%99%E5%85%A5%3C%2FP%3E%3CP%3Euint32_t%20ctrlValue%20%3D%20(1U%26lt%3B%26lt%3B%2031)%20%7C%3CBR%20%2F%3E(1U%26lt%3B%26lt%3B%2030)%20%7C%3CBR%20%2F%3E(1U%26lt%3B%26lt%3B%2028)%20%7C%3CBR%20%2F%3E(1U%26lt%3B%26lt%3B%2027)%20%7C%3CBR%20%2F%3E(3U%26lt%3B%26lt%3B%2023)%EF%BC%9B%3C%2FP%3E%3CP%3E%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_CTRL_ADDR%2C%20ctrlValue)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%EF%BC%9B%3C%2FP%3E%3CP%3Edo%20%7B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_CTRL_ADDR%2C%26amp%3BctrlReg)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3E%7D%20while%20(ctrlReg%26amp%3B%20L2_CTRL_VALID_BIT)%EF%BC%9B%3C%2FP%3E%3CP%3Ereturn%20E_OK%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E4%BD%A0%E8%83%BD%E5%90%A6%E6%A3%80%E6%9F%A5%E4%B8%80%E6%AC%A1%EF%BC%8C%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E4%BB%BB%E4%BD%95%E9%97%AE%E9%A2%98%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%AE%83%E6%B2%A1%E6%9C%89%E4%B8%BA%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2136348%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2136348%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E1%E3%80%82%E6%98%AF%E7%9A%84%EF%BC%8C%E4%B8%BB%E6%9C%BA%E5%B7%A5%E5%85%B7%E6%9C%80%E5%88%9D%E6%98%AF%E4%B8%BA%20SJA1110-EVM%20%E6%9D%BF%E5%BC%80%E5%8F%91%E7%9A%84%E3%80%82%E6%88%91%E4%B8%AA%E4%BA%BA%E4%BD%BF%E7%94%A8%E8%BF%99%E4%BA%9B%E5%B8%A6%E6%9C%89%E8%B0%83%E8%AF%95%E6%89%93%E5%8D%B0%E7%9A%84%E8%84%9A%E6%9C%AC%E6%9D%A5%E9%AA%8C%E8%AF%81%E6%88%91%E5%AF%B9%E5%AF%84%E5%AD%98%E5%99%A8%E8%AE%BF%E9%97%AE%E7%9A%84%E7%90%86%E8%A7%A3%E3%80%82%E8%99%BD%E7%84%B6%E6%82%A8%E4%B8%8D%E8%83%BD%E5%9C%A8%20S32G-VNP-RDB2%20%E5%B9%B3%E5%8F%B0%E4%B8%8A%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E5%AE%83%E4%BB%AC%EF%BC%8C%E4%BD%86%E7%94%B1%E4%BA%8E%20S32G%20%E9%80%9A%E8%BF%87%20SPI%20%E8%AE%BF%E9%97%AE%20SJA1110%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%8F%AF%E4%BB%A5%E8%B0%83%E6%95%B4%E5%BA%95%E5%B1%82%E9%80%BB%E8%BE%91%E3%80%82%3C%2FP%3E%0A%3CP%3E2.%E5%A6%82%E6%9E%9C%E6%82%A8%E6%AD%A3%E5%9C%A8%E4%B8%BA%20S32G%20%E5%B9%B3%E5%8F%B0%E5%AF%BB%E6%89%BE%20SPI%20%E8%AF%BB%2F%E5%86%99%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88%EF%BC%8C%E6%82%A8%E6%9C%89%E4%B8%A4%E4%B8%AA%E4%B8%BB%E8%A6%81%E9%80%89%E6%8B%A9%EF%BC%9A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%E8%AF%B7%E5%8F%82%E9%98%85%20S32G%20RTD%204.0.0%20%E4%BB%A3%E7%A0%81%E5%8C%85%E4%B8%AD%E6%8F%90%E4%BE%9B%E7%9A%84%20SPI%20%E7%A4%BA%E4%BE%8B%E3%80%82%3C%2FLI%3E%0A%3CLI%3E%E6%88%96%E8%80%85%EF%BC%8C%E6%88%91%E5%BB%BA%E8%AE%AE%E5%9C%A8%E6%81%A9%E6%99%BA%E6%B5%A6S32G%E7%A4%BE%E5%8C%BA%E8%AE%BA%E5%9D%9B%E4%B8%8A%E5%8F%91%E5%B8%83%E4%B8%80%E4%B8%AA%E4%B8%93%E7%94%A8%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8CS32G%E6%94%AF%E6%8C%81%E5%9B%A2%E9%98%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E8%AF%A5%E8%AE%BA%E5%9D%9B%E4%B8%8A%E8%BF%9B%E4%B8%80%E6%AD%A5%E4%B8%BA%E6%82%A8%E6%8F%90%E4%BE%9B%E5%B8%AE%E5%8A%A9%E3%80%82%E6%88%91%E4%B8%BB%E8%A6%81%E5%85%B3%E6%B3%A8%E6%B1%BD%E8%BD%A6%E4%BB%A5%E5%A4%AA%E7%BD%91%E4%B8%BB%E9%A2%98%EF%BC%8C%E4%B8%8E%E7%89%B9%E5%AE%9A%E5%B9%B3%E5%8F%B0%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%87%8D%E5%8F%A0%E6%9C%89%E9%99%90%E3%80%82%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E3.%E5%A6%82%E6%9E%9C%E6%88%91%E6%B2%A1%E7%90%86%E8%A7%A3%E9%94%99%E7%9A%84%E8%AF%9D%EF%BC%8C%E4%BD%A0%E6%8C%87%E7%9A%84%E6%98%AF%20UM11107%20%E8%A1%A8%201182%20%E4%B8%AD%E6%8F%8F%E8%BF%B0%E7%9A%84%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E3%80%82%E8%AF%A5%E8%A1%A8%E6%AF%8F%E4%B8%AA%E6%9D%A1%E7%9B%AE%E7%94%B1%206%20%E4%B8%AA%2032%20%E4%BD%8D%E5%AF%84%E5%AD%98%E5%99%A8%E7%BB%84%E6%88%90%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E4%BB%8E%20Python%20%E8%84%9A%E6%9C%AC%E7%9A%84%E8%B0%83%E8%AF%95%E8%BE%93%E5%87%BA%E4%B8%AD%E7%9C%8B%E5%88%B0%E8%BF%99%E7%A7%8D%E7%BB%93%E6%9E%84%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2136140%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2136140%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%9C%89%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98%3CBR%20%2F%3E1.)l2_write_lookup_table.py%20%E7%9A%84%E8%BF%99%E4%BB%BD%20Debug%20%E6%89%93%E5%8D%B0%E4%BB%B6%E5%8F%96%E8%87%AA%20SJA1110%20EVM%20%E6%9D%BF%E7%9A%84%E5%AE%9E%E7%8E%B0%E4%B8%8D%E6%98%AF%E6%9D%A5%E8%87%AA%20S32G-VNP%20RDB%20%E6%9D%BF%E5%90%97%EF%BC%9F%E8%80%8C%E4%B8%94%E6%88%91%E4%BB%AC%E6%97%A0%E6%B3%95%E7%9B%B4%E6%8E%A5%E5%9C%A8%20S32G-VNP-RDB32%20%E6%9D%BF%E4%B8%AD%E5%AE%9E%E7%8E%B0%20l2_write_lookup_table.py%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%202.)%20%E4%BD%A0%E8%83%BD%E5%90%91%E6%88%91%E6%8F%90%E4%BE%9B%E7%94%A8%E4%BA%8E%E4%B8%8E%E4%B8%8A%E8%BF%B0%E4%BB%A3%E7%A0%81%E9%9B%86%E6%88%90%E7%9A%84%20SPI_read%20%E5%92%8C%20SPI_Write%20%E7%9A%84%E4%BB%A3%E7%A0%81%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%E5%9B%A0%E4%B8%BA%E5%9C%A8%20S32G%20%E4%B8%AD%E9%80%9A%E8%BF%87%20SPI_Read%20%E5%92%8C%20SPI_write%20%E6%89%A7%E8%A1%8C%E5%86%99%E5%85%A5%E6%93%8D%E4%BD%9C%E6%97%B6%EF%BC%8C%E6%97%A0%E6%B3%95%E7%9C%8B%E5%88%B0%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E8%A2%AB%E6%B7%BB%E5%8A%A0%E3%80%82%3C%2FP%3E%3CP%3E%3CBR%20%2F%3EStd_ReturnType%20spi_read_reg(uint32_t%20regAddress%2C%20uint32_t*%20regValue)%3CBR%20%2F%3E%7B%3CBR%20%2F%3EStd_ReturnType%20ret%3B%3CBR%20%2F%3Euint32_t%20TxChBuf%5B65%5D%20%3D%20%7B0%7D%3B%3CBR%20%2F%3Euint32_t%20RxChBuf%5B65%5D%20%3D%20%7B0%7D%3B%3CBR%20%2F%3Euint16_t%20regCount%20%3D%201%EF%BC%9B%3C%2FP%3E%3CP%3ESiul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT%2C%20SPI_MCU_ES1_CS_AP_PIN%2C%200U)%EF%BC%9B%3C%2FP%3E%3CP%3Eret%20%3D%20getSpiAPCommand(false%2C%20regAddress%2C%20regCount%2C%20TxChBuf%2C%20regValue)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3ESiul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT%2C%20SPI_MCU_ES1_CS_AP_PIN%2C%201U)%3B%3CBR%20%2F%3Ereturn%20ret%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Eret%3DSpi_SetupEB(5u%2C%20(uint8_t*)TxChBuf%2C%20(uint8_t*)RxChBuf%2C%208u)%3B%3CBR%20%2F%3Eif%20(ret%20%3D%3D%20E_OK)%20%7B%3CBR%20%2F%3Eret%3DSpi_SyncTransmit(SpiConf_SpiSequence_SpiSequence_sja)%3B%3CBR%20%2F%3Eif%20(ret%20%3D%3D%20E_OK)%20%7B%3CBR%20%2F%3E*regValue%20%3D%20RxChBuf%5B1%5D%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3ESiul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT%2C%20SPI_MCU_ES1_CS_AP_PIN%2C%201U)%3B%3CBR%20%2F%3Ereturn%20ret%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3EStd_ReturnType%20spi_write_reg(uint32_t%20regAddress%2C%20uint32_t%20regValue)%3CBR%20%2F%3E%7B%3CBR%20%2F%3EStd_ReturnType%20ret%EF%BC%9B%3CBR%20%2F%3Euint32_t%20TxChBuf%5B65%5D%20%3D%20%7B0%7D%3B%3CBR%20%2F%3Euint32_t%20RxChBuf%5B65%5D%20%3D%20%7B0%7D%3B%3CBR%20%2F%3Euint16_t%20regCount%20%3D%201%3B%3CBR%20%2F%3Euint32_t%20regValArray%5B1%5D%20%3D%20%7B%20regValue%20%7D%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E5%B0%86%E8%8A%AF%E7%89%87%E9%80%89%E6%8B%A9%E6%8B%89%E4%BD%8E%3CBR%20%2F%3ESiul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT%EF%BC%8CSPI_MCU_ES1_CS_AP_PIN%EF%BC%8C0U)%EF%BC%9B%3C%2FP%3E%3CP%3Eret%20%3D%20getSpiAPCommand(true%2C%20regAddress%2C%20regCount%2C%20TxChBuf%2C%20regValArray)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20%7B%3CBR%20%2F%3ESiul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT%2C%20SPI_MCU_ES1_CS_AP_PIN%2C%201U)%3B%3CBR%20%2F%3Ereturn%20ret%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Eret%3DSpi_SetupEB(5u%2C%20(uint8_t*)TxChBuf%2C%20(uint8_t*)RxChBuf%2C%208u)%3B%3CBR%20%2F%3Eif%20(ret%20%3D%3D%20E_OK)%20%7B%3CBR%20%2F%3Eret%3DSpi_SyncTransmit(SpiConf_SpiSequence_SpiSequence_sja)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3ESiul2_Dio_Ip_WritePin(SPI_MCU_ES1_CS_AP_PORT%2C%20SPI_MCU_ES1_CS_AP_PIN%2C%201U)%3B%3CBR%20%2F%3Ereturn%20ret%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3ECorrect%20me%20if%20I%20am%20wrong%20!!%3CBR%20%2F%3E%3CBR%20%2F%3E3.)I%20have%20changed%20Register%20address%20to%3CSPAN%3E%23define%20L2_ENTRY0_ADDR%20%3C%2FSPAN%3E%3CSTRONG%3E0x00000023%3C%2FSTRONG%3E%3CBR%20%2F%3Ebut%20still%20I%20am%20not%20able%20to%20identify%20which%20I%20am%20trying%20to%20add%20table%20getting%20reflected%20when%20I%20transmit%20the%20message%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2135866%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2135866%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E4%BD%A0%E7%9A%84%E4%BB%A3%E7%A0%81%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%B8%8D%E9%94%99%E3%80%82%E4%BD%86%E6%98%AF%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%82%A8%E6%83%B3%E9%80%9A%E8%BF%87%20SPI%20%E8%AE%BF%E9%97%AE%E5%8A%A8%E6%80%81%E8%A1%A8%EF%BC%8C%E5%88%99%E5%85%A5%E5%8F%A3%E5%9C%B0%E5%9D%80%E4%B8%8D%E5%90%AB%20FF%EF%BC%8C%E5%B9%B6%E5%8F%B3%E7%A7%BB%202%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%3CSPAN%3E%23define%20L2_ENTRY0_ADDR%3CSTRONG%3E0xFF00008c%3C%2FSTRONG%3E%E5%BA%94%E8%AF%A5%E6%98%AF%20%23define%20L2_ENTRY0_ADDR%3CSTRONG%3E0x00000023%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E4%BD%86%E8%BF%99%E5%8F%96%E5%86%B3%E4%BA%8E%E4%BD%A0%E7%9A%84%E4%BE%8B%E7%A8%8B%3CSPAN%3Espi_write_reg%20%E7%9A%84%E5%AE%9E%E9%99%85%E4%BD%9C%E7%94%A8%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E4%BB%A5%E4%B8%8B%E6%98%AF%20write_l2_lookup_table.py%20%E7%9A%84%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%EF%BC%8C%E5%8C%85%E6%8B%AC%E6%88%91%E7%9A%84%E8%B0%83%E8%AF%95%E6%89%93%E5%8D%B0%EF%BC%88tx%2Frx%20%E6%8C%87%E7%9A%84%E6%98%AF%E9%80%9A%E8%BF%87%E7%A4%BA%E6%B3%A2%E5%99%A8%E6%88%96%E9%80%BB%E8%BE%91%E5%88%86%E6%9E%90%E4%BB%AA%E5%9C%A8%20SPI%20%E7%BA%BF%E8%B7%AF%E4%B8%8A%E7%9C%8B%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%89%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3EDBG%20spi_tx%EF%BC%9A%5B'0x02000290'%2C%20'0xAABBCCDD'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_rx%EF%BC%9A%5B'0x02000290'%2C%20'0x00000000'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_read%200x0029%20-%26gt%3B%200x00000000%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0023%26lt%3B%20-%200x37FFFA00%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000230'%2C%20'0x37FFFA00'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0024%26lt%3B%20-%200x119A22AB%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000240'%2C%20'0x119A22AB'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0025%26lt%3B%20-%200xFF807089%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000250'%2C%20'0xFF807089'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0026%26lt%3B%20-%200xFFFFFFFF%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000260'%2C%20'0xFFFFFFFF'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0027%26lt%3B%20-%200xF1FFFFFF%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000270'%2C%20'0xF1FFFFFF'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0028%26lt%3B%20-%200x1FFE7EFF%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000280'%2C%20'0x1FFE7EFF'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_write%200x0029%20-%200xD9800000%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20DBG%20spi_tx%EF%BC%9A%5B'0x80000290'%2C%20'0xD9800000'%5D%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20%2B-------%2B-------------%2B-------------------%2B--------%2B---------%2B-------%2B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20%7C%20INDEX%20%7C%20DESTPORTS%20%7C%20MACADDR%20%7C%20VLANID%20%7C%20ENFPORT%20%7C%20IOTAG%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20%7C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20%2B-------%2B-------------%2B-------------------%2B--------%2B---------%2B-------%2B%20%7C%20256%20%7C%2011111111111%20%7C%2011%EF%BC%9A22%3A33%3A44%3A55%3A66%20%7C%2014%20%7C%201%20%7C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%201%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%20size%3D%222%22%3E%20%7C%20%2B-------%2B-------------%2B-------------------%2B--------%2B---------%2B-------%2B%20%E5%B7%B2%E5%86%99%E5%85%A5%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E9%A1%B9%20(SW1)%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%E5%85%B3%E4%BA%8E%20FAE%20%E7%94%B3%E8%AF%B7%EF%BC%8CFAE%20%E4%B8%8D%E5%9C%A8%E6%88%91%E7%9A%84%E5%8D%87%E7%BA%A7%E8%B7%AF%E5%BE%84%E4%B8%AD%E3%80%82%E8%B4%B5%E5%85%AC%E5%8F%B8%E5%B7%B2%E6%8C%87%E6%B4%BE%20FAE%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%82%A8%E5%8F%AF%E4%BB%A5%E7%9B%B4%E6%8E%A5%E8%81%94%E7%B3%BB%20FAE%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2135119%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2135119%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%23define%20L2_ENTRY0_ADDR%200xFF00008c%3CBR%20%2F%3E%23define%20L2_ENTRY1_ADDR%200xFF000090%3CBR%20%2F%3E%23define%20L2_ENTRY2_ADDR%200xFF000094%3CBR%20%2F%3E%23define%20L2_ENTRY3_ADDR%200xFF000098%3CBR%20%2F%3E%23define%20L2_ENTRY4_ADDR0xFF00009C%3CBR%20%2F%3E%23define%20L2_ENTRY5_ADDR%200xFF0000A0%3CBR%20%2F%3E%23define%20L2_CTRL_ADDR%200xFF0000A4%3CBR%20%2F%3EStd_ReturnType%20CreateL2Entry(uint32_t%20entry%5B6%5D)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Euint16_t%20INDEX%20%3D%2011%EF%BC%9B%3CBR%20%2F%3Euint64_t%20MACADDR%20%3D%200x661122334455%3B%3CBR%20%2F%3Euint64_t%20MACADDR_MASK%20%3D%200xFFFFFFFFFFFF%3B%3CBR%20%2F%3Euint16_t%20VLANID%20%3D%203%EF%BC%9B%3CBR%20%2F%3Euint16_t%20VLANID_MASK%20%3D%200xFFFFF%EF%BC%9B%3CBR%20%2F%3Euint8_t%20IOTAG%20%3D%200%EF%BC%9B%3CBR%20%2F%3Euint8_t%20IOTAG_MASK%20%3D%200%EF%BC%9B%3CBR%20%2F%3Euint8_t%20SRCPORT%20%3D%205%EF%BC%9B%3CBR%20%2F%3Euint8_t%20SRCPORT_MASK%20%3D%200xF%EF%BC%9B%3CBR%20%2F%3Euint8_t%20DESTPORTS%20%3D%200x02%EF%BC%9B%3CBR%20%2F%3Euint8_t%20ENFPORT%20%3D%201%EF%BC%9B%3CBR%20%2F%3Euint8_t%20RETAG%20%3D%200%EF%BC%9B%3CBR%20%2F%3Euint8_t%20MIRROR%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20TAKETS%20%3D%200%3B%3CBR%20%2F%3Euint16_t%20MIRR_VLAN%20%3D%200xFFF%3B%3CBR%20%2F%3Euint8_t%20TRAPTOHOST%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20CBSIDIN%20%3D%200x3F%3B%3CBR%20%2F%3Euint8_t%20CBENONDA%20%3D%200%3B%3CBR%20%2F%3Euint16_t%20VLIDX%20%3D%200xFFF%3B%3CBR%20%2F%3Euint8_t%20SA_POLICE%20%3D%200%3B%3CBR%20%2F%3Euint8_t%20DA_POLICE%20%3D%200%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B0%5D%20%3D%20((INDEX%26amp%3B%200x03FF)%26lt%3B%26lt%3B%201)%20%7C%3CBR%20%2F%3E((ENFPORT%26amp%3B%200x1)%26lt%3B%26lt%3B%2011)%7C%3CBR%20%2F%3E((DESTPORTS%26amp%3B%200x7FF)%26lt%3B%26lt%3B%2012)%7C%3CBR%20%2F%3E((SRCPORT%26amp%3B%200xF)%26lt%3B%26lt%3B%2023)%7C%3CBR%20%2F%3E((MACADDR%26amp%3B%200x1F)%26lt%3B%26lt%3B%2027)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B1%5D%20%3D%20(uint32_t)((MACADDR%26gt%3B%26gt%3B%205)%26amp%3B%200xFFFFFFFF)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B2%5D%20%3D%20(((MACADDR%26gt%3B%26gt%3B%2037)%26amp%3B%200x7FF)%26lt%3B%26lt%3B%200)%7C%3CBR%20%2F%3E((VLANID%26amp%3B%200xFFF)%26lt%3B%26lt%3B%2011)%7C%3CBR%20%2F%3E((IOTAG%26amp%3B%200x1)%26lt%3B%26lt%3B%2023)%7C%3CBR%20%2F%3E((MACADDR_MASK%26amp%3B%200xFF)%26lt%3B%26lt%3B%2024)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B3%5D%20%3D%20(uint32_t)((MACADDR_MASK)%26gt%3B%26gt%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%20%26amp%3B%200xFFFFFFFF%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B4%5D%20%3D%20(((MACADDR_MASK%26gt%3B%26gt%3B%2040)%26amp%3B%200xFF)%26lt%3B%26lt%3B%200)%7C%3CBR%20%2F%3E((VLANID_MASK%26amp%3B%200xFFF)%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%20%7C%3CBR%20%2F%3E((IOTAG_MASK%26amp%3B%200x1)%26lt%3B%26lt%3B%2020)%7C%3CBR%20%2F%3E((SRCPORT_MASK%26amp%3B%200xF)%26lt%3B%26lt%3B%2021)%7C%3CBR%20%2F%3E((RETAG%26amp%3B%200x1)%26lt%3B%26lt%3B%2025)%7C%3CBR%20%2F%3E((MIRROR%26amp%3B%200x1)%26lt%3B%26lt%3B%2026)%7C%3CBR%20%2F%3E((TAKETS%26amp%3B%200x1)%26lt%3B%26lt%3B%2027)%7C%3CBR%20%2F%3E((MIRR_VLAN%26amp%3B%200xF)%26lt%3B%26lt%3B%2028)%EF%BC%9B%3C%2FP%3E%3CP%3Eentry%5B5%5D%20%3D%20(((MIRR_VLAN%26gt%3B%26gt%3B%204)%26amp%3B%200xFF)%26lt%3B%26lt%3B%200)%7C%3CBR%20%2F%3E((TRAPTOHOST%26amp%3B%200x1)%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%20%7C%3CBR%20%2F%3E((CBSIDIN%26amp%3B%200x3F)%26lt%3B%26lt%3B%209)%7C%3CBR%20%2F%3E((CBENONDA%26amp%3B%200x1)%26lt%3B%26lt%3B%2015)%7C%3CBR%20%2F%3E((VLIDX%26amp%3B%200xFFF)%26lt%3B%26lt%3B%2017)%7C%3CBR%20%2F%3E((SA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%2029)%7C%3CBR%20%2F%3E((DA_POLICE%26amp%3B%200x1)%26lt%3B%26lt%3B%2030)%EF%BC%9B%3C%2FP%3E%3CP%3Ereturn%20E_OK%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3EStd_ReturnType%20WriteL2LookupEntry(uint8_t%20swt)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Eif%20(swt%26gt%3B%200)%20return%20E_NOT_OK%EF%BC%9B%3C%2FP%3E%3CP%3EStd_ReturnType%20ret%3B%3CBR%20%2F%3Euint32_t%20ctrlReg%20%3D%200%3B%3CBR%20%2F%3Euint32_t%20entry%5B6%5D%EF%BC%9B%3C%2FP%3E%3CP%3Eret%20%3D%20CreateL2Entry(entry)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%EF%BC%9B%3C%2FP%3E%3CP%3Edo%20%7B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_CTRL_ADDR%2C%26amp%3BctrlReg)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3E%7D%20while%20(ctrlReg%26amp%3B%20(1U%26lt%3B%26lt%3B%2031))%EF%BC%9B%3C%2FP%3E%3CP%3Eret%20%3D%20spi_write_reg(L2_ENTRY0_ADDR%2C%20entry%5B0%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY1_ADDR%2C%20entry%5B1%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY2_ADDR%2C%20entry%5B2%5D)%3B%20if%20(ret%20%EF%BC%81%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY3_ADDR%2C%20entry%5B3%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY4_ADDR%2C%20entry%5B4%5D)%3B%20if%20(ret%20%EF%BC%81%3D%20E_OK)%20%E8%BF%94%E5%9B%9E%20ret%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_ENTRY5_ADDR%2C%20entry%5B5%5D)%3B%20if%20(ret%20!%3D%20E_OK)%20%E8%BF%94%E5%9B%9E%20ret%EF%BC%9B%3C%2FP%3E%3CP%3Euint32_t%20ctrlValue%20%3D%20(1U%26lt%3B%26lt%3B%2031)%20%7C%20(1U%26lt%3B%26lt%3B%2030)%20%7C%20(1U%26lt%3B%26lt%3B%2028)%20%7C%20(1U%26lt%3B%26lt%3B%2027)%20%7C%20(3U%26lt%3B%26lt%3B%2023)%3B%3CBR%20%2F%3Eret%20%3D%20spi_write_reg(L2_CTRL_ADDR%2C%20ctrlValue)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%EF%BC%9B%3C%2FP%3E%3CP%3Edo%20%7B%3CBR%20%2F%3Eret%20%3D%20spi_read_reg(L2_CTRL_ADDR%2C%26amp%3BctrlReg)%3B%3CBR%20%2F%3Eif%20(ret%20!%3D%20E_OK)%20return%20ret%3B%3CBR%20%2F%3E%7D%20while%20(ctrlReg%26amp%3B%20(1U%26lt%3B%26lt%3B%2031))%EF%BC%9B%3C%2FP%3E%3CP%3Ereturn%20E_OK%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%99%E6%98%AF%E7%9B%AE%E5%89%8D%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E7%9A%84%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%EF%BC%8C%E4%BD%A0%E8%83%BD%E5%90%A6%E4%B8%8E%20FAE%20%E7%9B%B8%E4%BA%92%E9%AA%8C%E8%AF%81%E4%B8%80%E4%B8%8B%E8%BF%99%E7%A7%8D%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E6%98%AF%E5%90%A6%E6%AD%A3%E7%A1%AE%20!!%3CBR%20%2F%3E%E8%BF%98%E9%9C%80%E8%A6%81%E5%81%9A%E5%85%B6%E4%BB%96%E4%BF%AE%E6%94%B9%E5%90%97%EF%BC%9F%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2135107%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2135107%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E7%9A%84%E9%97%AE%E9%A2%98%E7%9A%84%E7%AD%94%E6%A1%88%E4%B8%8E%E6%82%A8%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%94%A8%E4%BE%8B%E6%9C%89%E5%85%B3%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%BB%BB%E4%BD%95%E5%9C%B0%E6%96%B9%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8%20S32G%20%E6%88%96%20SJA1110%20%E4%B8%AD%E5%88%9B%E5%BB%BA%EF%BC%9A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%E4%BB%A5%E4%BB%BB%E4%BD%95%E6%94%AF%E6%8C%81%E7%9A%84%E6%96%B9%E5%BC%8F%E5%B0%86%E6%9D%A1%E7%9B%AE%E4%BC%A0%E8%BE%93%E5%88%B0%20S32G%EF%BC%8C%E5%B9%B6%E9%80%9A%E8%BF%87%20SPI%20%E6%88%96%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B0%86%E5%85%B6%E5%86%99%E5%85%A5%20SJA1110%3C%2FLI%3E%0A%3CLI%3E%E6%88%96%E8%80%85%EF%BC%8C%E9%80%9A%E8%BF%87%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B0%86%E6%9D%A1%E7%9B%AE%E4%BC%A0%E8%BE%93%E5%88%B0%20SJA1110%20%E5%B9%B6%E4%BD%BF%E7%94%A8%E5%86%85%E9%83%A8%20AHB%20%E8%AE%BF%E9%97%AE%3C%2FLI%3E%0A%3CLI%3E%E6%88%96%E8%80%85%EF%BC%8C%E5%90%91%20SJA1110%20%E5%8F%91%E9%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%EF%BC%88GPIO%E3%80%81%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B8%A7%E7%AD%89%EF%BC%89%EF%BC%8C%E5%9C%A8%E9%82%A3%E9%87%8C%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E5%B9%B6%E9%80%9A%E8%BF%87%20AHB%20%E8%AE%BF%E9%97%AE%E5%86%99%E5%85%A5%E8%AF%A5%E6%9D%A1%E7%9B%AE%3C%2FLI%3E%0A%3CLI%3E%E6%88%96%20....%3C%2FLI%3E%0A%3CLI%3E%E6%88%96%20....%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%E8%BF%99%E9%87%8C%E6%9C%89%E5%A6%82%E4%BD%95%E5%90%91%20SJA1110%20%E7%9A%84%E5%BC%80%E5%85%B3%E8%8A%AF%E5%86%99%E5%85%A5%E5%8A%A8%E6%80%81%E5%85%A5%E5%8F%A3%E7%9A%84%E7%A4%BA%E4%BE%8B%EF%BC%9A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%E9%80%9A%E8%BF%87%20SPI%20-%20python%20%E8%84%9A%E6%9C%AC%20write_l2_lookup_table.py%3C%2FLI%3E%0A%3CLI%3E%E9%80%9A%E8%BF%87%20AHB%20-%20ECT%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%BA%90%E4%BB%A3%E7%A0%81%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%E9%97%AE%E5%80%99%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2134811%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2134811%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E1.)%3CBR%20%2F%3E2.)If%20via%20SJA1110%20switch%20whether%20reading%20and%20write%20the%20register%20by%20SPI%20need%20to%20be%20performed%20and%20where%20this%20implementation%20need%20to%20be%20carried%20in%20between%20SWITCH_DRV%3F%3CBR%20%2F%3E3.)where%20we%20can%20create%20our%20Dynamic%20entry%20so%20that%20it%20will%20get%20append%20in%20switch%3CBR%20%2F%3E%3CBR%20%2F%3EMore%20Explanation%20would%20be%20great%20help!%EF%BC%81%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-2134755%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2134755%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%BE%88%E6%8A%B1%E6%AD%89%EF%BC%8C%E7%94%B1%E4%BA%8E%E6%88%91%E7%9B%AE%E5%89%8D%E5%B7%A5%E4%BD%9C%E7%B9%81%E5%BF%99%EF%BC%8C%E5%9B%9E%E5%A4%8D%E8%BF%9F%E4%BA%86%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CDIV%3E%0A%3CDIV%20id%3D%22%22%20componentdiv%3D%22%22%3E%0A%3CP%3E%E6%88%91%E7%9F%A5%E9%81%93%E8%BF%99%E4%B9%8D%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%8F%AF%E8%83%BD%E5%B9%B6%E4%B8%8D%E7%AE%80%E5%8D%95%EF%BC%8C%E4%BD%86%E5%AE%9E%E9%99%85%E4%B8%8A%E8%BF%99%E4%B8%AA%E6%A6%82%E5%BF%B5%E9%9D%9E%E5%B8%B8%E7%AE%80%E5%8D%95%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%9C%80%E7%BB%88%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E5%9C%B0%E5%9D%80%E5%8F%96%E5%86%B3%E4%BA%8E%E8%AE%BF%E9%97%AE%E6%96%B9%E6%B3%95--%E6%98%AF%E9%80%9A%E8%BF%87%20AHB%20%E5%9C%A8%E5%86%85%E9%83%A8%E8%AE%BF%E9%97%AE%20M7%20%E5%86%85%E6%A0%B8%EF%BC%8C%E8%BF%98%E6%98%AF%E9%80%9A%E8%BF%87%20SPI_AP%20%E6%8E%A5%E5%8F%A3%E4%BB%8E%E5%A4%96%E9%83%A8%E8%AE%BF%E9%97%AE%E3%80%82%E5%9F%BA%E6%9C%AC%E5%9C%B0%E5%9D%80%E5%9B%A0%E6%8E%A5%E5%85%A5%E7%82%B9%E8%80%8C%E5%BC%82%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%AF%84%E5%AD%98%E5%99%A8%E5%9C%B0%E5%9D%80%E4%BD%BF%E7%94%A8%20UM11107%20%E8%A1%A8%202%20%E4%B8%AD%E6%8F%90%E4%BE%9B%E7%9A%84%E5%9F%BA%E5%9C%B0%E5%9D%80%E8%AE%A1%E7%AE%97%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%8C%E5%AF%B9%E4%BA%8E%E4%BA%A4%E6%8D%A2%E6%9C%BA%E5%AD%90%E7%B3%BB%E7%BB%9F%EF%BC%8CSPI_AP%20%E8%AE%BF%E9%97%AE%E7%9A%84%E5%9F%BA%E5%9C%B0%E5%9D%80%E4%B8%BA%3CSTRONG%3E0x00000000%20%3C%2FSTRONG%3E%EF%BC%8CAHB%20%E8%AE%BF%E9%97%AE%E7%9A%84%E5%9F%BA%E5%9C%B0%E5%9D%80%E4%B8%BA%3CSTRONG%3E0xFF000000%20%3C%2FSTRONG%3E%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E9%80%9A%E8%BF%87%20AHB%20%E8%AE%BF%E9%97%AE%E5%AF%84%E5%AD%98%E5%99%A8%3CSTRONG%3E0x8C%20%3C%2FSTRONG%3E%EF%BC%88DYN_BE_LKP_ENTRY0%EF%BC%89%E6%97%B6%EF%BC%8C%E5%AF%84%E5%AD%98%E5%99%A8%E4%BC%9A%E5%8F%98%E6%88%90%3CSTRONG%3E0xFF00008C%20%3C%2FSTRONG%3E%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%8E%B0%E5%9C%A8%EF%BC%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E8%AE%A9%E4%BA%BA%E6%84%9F%E5%88%B0%E5%9B%B0%E6%83%91%E7%9A%84%E5%9C%B0%E6%96%B9%E6%9D%A5%E4%BA%86%EF%BC%9ASDK%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%AE%9A%E4%B9%89%E4%BA%86%E4%BB%A5%E4%B8%8B%E5%86%85%E5%AE%B9%EF%BC%9A%3C%2FP%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CDIV%3E%23define%20SJA1110_L2_ART_LE_ADDR%3CSTRONG%3E(0x3fc00023%3C%2FSTRONG%3E)%20%2F**%26lt%3B%20l2ArtLockedEntry%20%E5%AF%84%E5%AD%98%E5%99%A8%E7%9A%84%E5%9C%B0%E5%9D%80%20*%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3ESWITCH_DRV_Write%20%E4%BE%8B%E7%A8%8B%E5%B0%86%E5%9C%B0%E5%9D%80%E5%B7%A6%E7%A7%BB%202%20%E4%BD%8D%20(%26lt%3B%26lt%3B%202)%EF%BC%8C%E7%94%A8%E4%BA%8E%E5%86%85%E9%83%A8%20(AHB)%20%E8%AE%BF%E9%97%AE%E3%80%82%E5%AF%B9%E4%BA%8E%20SPI%20%E4%BC%A0%E8%BE%93%EF%BC%88%E7%BA%A7%E8%81%94%E5%BC%80%E5%85%B3%E8%AE%BE%E7%BD%AE%E4%B8%AD%E4%BD%BF%E7%94%A8%EF%BC%89%EF%BC%8C%E4%B8%8D%E5%BA%94%E7%94%A8%E7%A7%BB%E4%BD%8D%E3%80%82%E5%9B%A0%E6%AD%A4%EF%BC%8C%3CSTRONG%3E0x3fc00023%3C%2FSTRONG%3E%20%26lt%3B%26lt%3B%202%20%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF%3CSTRONG%3E0xFF00008C%3C%2FSTRONG%3E%E3%80%82%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%3CSPAN%3E%E6%88%91%E5%B8%8C%E6%9C%9B%E9%80%9A%E8%BF%87%E4%B8%8A%E9%9D%A2%E7%9A%84%E8%A7%A3%E9%87%8A%EF%BC%8C%E7%8E%B0%E5%9C%A8%E6%9C%89%E6%84%9F%E7%9F%A5%E4%BA%86%E3%80%82%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%3CSPAN%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%3E%3CSPAN%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2133023%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2133023%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F233505%22%20target%3D%22_blank%22%3E%20%40PavelL%3C%2FA%3E%20%E4%BD%A0%20%E8%83%BD%E4%B8%8D%E8%83%BD%E7%BB%99%E6%88%91%E8%AF%BB%E5%86%99%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%E5%9C%B0%E5%9D%80%E5%90%8D%E7%A7%B0%E8%AE%BF%E9%97%AERESET%E6%8F%8F%E8%BF%B0%3CBR%20%2F%3E%3CSTRONG%3E%208Ch%3C%2FSTRONG%3E%20DYN_BE_LKP_%3CBR%20%2F%3E%20ENTRY0%3CBR%20%2F%3E%20R%2FW%200h%3CBR%20%2F%3E%20(fffffFeh)%3CBR%20%2F%3E%3CBR%20%2F%3E%20%3CSTRONG%3E8ch%3C%2FSTRONG%3E%20%E4%B9%8B%E5%89%8D%E7%9A%84%E5%AE%8C%E6%95%B4%E5%9C%B0%E5%9D%80%E4%BC%9A%E6%98%AF%E4%BB%80%E4%B9%88%E5%9F%BA%E5%9D%80%EF%BC%9F%3CBR%20%2F%3E%20%E6%AF%94%E5%A6%82%E5%AE%83%E4%BC%9A%E6%9C%89%200x3fc0008c%20%E6%89%80%E4%BB%A5%E5%9C%A8%E8%BF%99%E4%B8%AA%E5%8A%A8%E6%80%81%E5%85%A5%E5%8F%A3%E8%A1%A8%E4%B8%AD%E6%88%91%E4%BB%AC%E4%BC%9A%E6%9C%89%E5%AE%8C%E6%95%B4%E7%9A%84%E5%9C%B0%E5%9D%80%E4%BD%A0%E8%83%BD%E4%B8%8D%E8%83%BD%E7%BB%99%E6%88%91%3CBR%20%2F%3E%208Ch%20DYN_BE_LKP_%3CBR%20%2F%3E%20ENTRY0%3CBR%20%2F%3E%20R%2FW%200h%3CBR%20%2F%3E%20(fffffFEH)%3CBR%20%2F%3E%2090h%20DYN_BE_LKP_%3CBR%20%2F%3E%20ENTRY1%3CBR%20%2F%3E%20R%2FW%200h%3CBR%20%2F%3E%2094h%20DYN_BE_LKP_%3CBR%20%2F%3E%20ENTRY2%3CBR%20%2F%3E%20R%2FW%200h%3CBR%20%2F%3E%2098h%20DYN_BE_LKP_%3CBR%20%2F%3E%20%3CBR%20%2F%3ER%2FW%200h%3CBR%20%2F%3E%209%208h%20DYN_BE_LKP_%20ENTRY3%20R%2FW%200h%209Ch%20DYN_BE_LKP_%3CBR%20%2F%3E%20ENTRY4%3CBR%20%2F%3E%20R%2FW%200h%3CBR%20%2F%3E%20a0h%20a0h%20dyn_BE_LKP_%3CBR%20%2F%3E%20ENTRY5%3CBR%20%2F%3E%20R%2FW%200h%3CBR%20%2F%3E%20a4H%20DYN_BE_LKP_%20A4H%20DYN_BE_LKP_CTRL%20R%2FW%200h%3CBR%20%2F%3E%20(ff800000h)%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2132441%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2132441%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E6%88%91%E4%B8%8D%E7%9F%A5%E9%81%93%E6%9C%89%E4%BB%BB%E4%BD%95%E6%94%AF%E6%8C%81%E6%96%87%E4%BB%B6%E2%80%94%E2%80%94%E8%BF%99%E6%98%AF%E5%B8%B8%E8%AF%86%EF%BC%8C%E4%B8%8E%E8%AE%BE%E5%A4%87%E6%97%A0%E5%85%B3%E3%80%82%E6%88%91%E5%90%91%20Copilot%20%E5%92%A8%E8%AF%A2%E4%BA%86%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%8C%E5%BA%94%E8%AF%A5%E5%8F%AF%E4%BB%A5%E4%BF%AE%E6%94%B9%20sja11xx_ftdi4232.py%20%E4%BB%A5%E4%BD%BF%E7%94%A8%20DSPI5%20%E8%80%8C%E4%B8%8D%E6%98%AF%20FTDI%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2132405%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2132405%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%E8%A6%81%E5%9C%A8%20S32G-VNP-RDB2%20%E6%88%96%20RDB3%20%E6%9D%BF%E4%B8%8A%E4%BD%BF%E7%94%A8%E8%BF%99%E4%B8%AA%E8%84%9A%E6%9C%AC%EF%BC%8C%E9%9C%80%E8%A6%81%E4%BF%AE%E6%94%B9%20FTDI%20%E5%B1%82%E6%89%8D%E8%83%BD%E5%9C%A8%20S32G%20%E5%A4%84%E7%90%86%E5%99%A8%E4%B8%8A%E9%80%9A%E8%BF%87%20DSPI5%20%E8%BF%9B%E8%A1%8C%E9%80%9A%E4%BF%A1%3C%2FSPAN%3E%E3%80%82%3CBR%20%2F%3E%E6%9C%89%E4%BB%80%E4%B9%88%E8%AF%81%E6%98%8E%E6%96%87%E4%BB%B6%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2132387%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2132387%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E9%A2%98%201%EF%BC%9A%22%20%E9%82%A3%E4%B9%88%EF%BC%8C%E6%97%A2%E7%84%B6%20Linux%20%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%E5%B7%B2%E9%A2%84%E5%AE%89%E8%A3%85%E5%9C%A8%20SD%20%E5%8D%A1%E4%B8%8A...%20%E5%AE%83%E4%BC%9A%E8%87%AA%E5%8A%A8%E5%90%AF%E7%94%A8%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%E5%90%97%EF%BC%9F%22%20%3CBR%20%2F%3E%20A1%EF%BC%9A%E4%B8%8D%EF%BC%8C%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%E5%8C%85%E5%90%AB%20DSA%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E8%AF%A5%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%94%AF%E6%8C%81%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%EF%BC%8C%E4%BD%86%E5%AE%83%E4%B8%8D%E4%BC%9A%E5%9C%A8%E6%89%80%E6%9C%89%E7%94%A8%E4%BE%8B%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%90%AF%E7%94%A8%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E9%A2%98%202%EF%BC%9A%22%E9%80%9A%E8%BF%87%E5%8A%A8%E6%80%81%E4%BD%BF%E7%94%A8%20write_l2_lookup.py%EF%BC%88python%20evm%20%E4%B8%BB%E6%9C%BA%E5%B7%A5%E5%85%B7%EF%BC%89%E9%85%8D%E7%BD%AE%20L2%20%E6%9F%A5%E6%89%BE%E6%9D%A1%E7%9B%AE%EF%BC%8C%E8%AF%A5%E8%BF%87%E7%A8%8B%E6%98%AF%E5%90%A6%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98%EF%BC%9F%E5%AF%B9%E4%BA%8E%20S32G-VNP-RDB%20%E6%9D%BF%EF%BC%8C%E5%AE%83%E5%B0%86%E6%9B%B4%E6%94%B9%20%22%20%3CBR%20%2F%3E%20A2%EF%BC%9A%E5%88%9B%E5%BB%BA%E5%92%8C%E4%B8%8A%E4%BC%A0%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E7%9A%84%E5%A4%A7%E8%87%B4%E6%B5%81%E7%A8%8B%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98%EF%BC%8C%E5%A6%82%20UM11107%20%E5%92%8C%20AN12925%20%E4%B8%AD%E6%89%80%E8%BF%B0%E3%80%82%3CBR%20%2F%3E%E4%BD%86%E6%98%AF%EF%BC%8Cwrite_l2_lookup_table.py%20%E8%84%9A%E6%9C%AC%E4%BD%BF%E7%94%A8%20FTDI%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E9%80%9A%E8%BF%87%20USB%20%E8%AE%BF%E9%97%AE%20SJA1110-EVM%E3%80%82%3CBR%20%2F%3E%E8%A6%81%E5%9C%A8%20S32G-VNP-RDB2%20%E6%88%96%20RDB3%20%E6%9D%BF%E4%B8%8A%E4%BD%BF%E7%94%A8%E6%AD%A4%E8%84%9A%E6%9C%AC%EF%BC%8C%E9%9C%80%E8%A6%81%E4%BF%AE%E6%94%B9%20FTDI%20%E5%B1%82%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%9C%A8%20S32G%20%E5%A4%84%E7%90%86%E5%99%A8%E4%B8%8A%E9%80%9A%E8%BF%87%20DSPI5%20%E8%BF%9B%E8%A1%8C%E9%80%9A%E4%BF%A1%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E9%A2%98%203%EF%BC%9A%22%20%E6%98%AF%E5%90%A6%E6%9C%89%E5%8F%AF%E8%83%BD%E8%BF%9E%E6%8E%A5%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%20%26amp%3B%20S32G-VNP_RDB32%20%E6%9D%BF%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%9F%22%20%3CBR%20%2F%3EA3%EF%BC%9A%E6%98%AF%E7%9A%84%EF%BC%8C%E8%BF%99%E6%98%AF%E5%8F%AF%E8%83%BD%E7%9A%84%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E8%87%AA%E7%94%B1%E5%BC%80%E5%8F%91%E8%BF%90%E8%A1%8C%E5%9C%A8%20Linux%20%E4%B8%8A%E7%9A%84%E5%AE%9A%E5%88%B6%E8%BD%AF%E4%BB%B6%EF%BC%8C%E9%80%9A%E8%BF%87%20SPI%20%E6%88%96%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%A4%84%E7%90%86%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%8F%E8%AE%AE%EF%BC%8C%E9%85%8D%E7%BD%AE%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E9%A2%98%204%3A%22%E8%BF%98%E6%9C%89%E4%B8%80%E4%BB%B6%E4%BA%8B%EF%BC%8CSJA1110_SDK_1.0.2%20%E6%98%AF%E5%90%A6%E6%98%AF%E5%AE%9E%E6%96%BD%20RTM1.0.0%20%E6%89%80%E9%9C%80%E7%9A%84%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9F%22%3CBR%20%2F%3E%E7%AD%94%204%3A%20%E4%B8%8D%E6%98%AF%EF%BC%8C%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84%20SJA1110%20SDK%201.0.2%EF%BC%8C%E4%BB%A5%E4%BF%9D%E8%AF%81%E5%85%BC%E5%AE%B9%E6%80%A7%E5%92%8C%E7%A8%B3%E5%AE%9A%E6%80%A7%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%A6%82%E9%9C%80%E8%BF%9B%E4%B8%80%E6%AD%A5%E6%94%AF%E6%8C%81%EF%BC%8C%E8%AF%B7%E8%81%94%E7%B3%BB%E6%82%A8%E7%9A%84%20FAE%20%E6%88%96%E9%80%9A%E8%BF%87%3CA%20href%3D%22https%3A%2F%2Fsupport.nxp.com%2Fs%2F%3Flanguage%3Den_US%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fsupport.nxp.com%2Fs%2F%3Flanguage%3Den_US%3C%2FA%3E%20%E6%8F%90%E4%BA%A4%E6%8A%A5%E5%91%8A%E3%80%82%3CBR%20%2F%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E7%90%86%E8%A7%A3%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2132231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2132231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%3C%2FP%3E%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E5%A6%82%E6%9E%9C%20SD%20%E5%8D%A1%E6%8F%92%E5%85%A5%20S32G-VNP-RDB%20%E6%9D%BF%EF%BC%8CLinux%20%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%E4%BC%9A%E9%A2%84%E5%85%88%E5%AE%89%E8%A3%85%E5%9C%A8%20SD%20%E5%8D%A1%E4%B8%8A%E3%80%82%E9%82%A3%E4%B9%88SD%E5%8D%A1%E4%B8%AD%E5%AD%98%E5%9C%A8%E7%9A%84%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%E6%98%AF%E5%90%A6%E4%BC%9A%E8%87%AA%E5%8A%A8%E5%90%AF%E7%94%A8%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%3C%2FP%3E%3CP%3E%E9%80%9A%E8%BF%87%E5%8A%A8%E6%80%81%E4%BD%BF%E7%94%A8%20write_l2_lookup.py%EF%BC%88python%20evm%20%E4%B8%BB%E6%9C%BA%E5%B7%A5%E5%85%B7%EF%BC%89%E9%85%8D%E7%BD%AE%20L2%20%E6%9F%A5%E6%89%BE%E6%9D%A1%E7%9B%AE%E6%97%B6%EF%BC%8C%E8%BF%9B%E7%A8%8B%E6%98%AF%E5%90%A6%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98%EF%BC%9F%E5%AF%B9%E4%BA%8E%20S32G-VNP-RDB%20%E6%9D%BF%E6%9D%A5%E8%AF%B4%EF%BC%8C%E6%83%85%E5%86%B5%E5%B0%86%E4%BC%9A%E5%8F%91%E7%94%9F%E5%8F%98%E5%8C%96%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%E6%B5%81%E7%A8%8B%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98%E6%88%91%E4%BB%AC%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%20%26amp%3B%20rdb32Board%20%E5%9C%A8%E9%80%9A%E8%BF%87%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E5%92%8C%20SJA1110%20EVM%20%E6%9D%BF%E8%BF%9E%E6%8E%A5%E6%97%B6%E5%AE%83%E5%B0%86%E4%BD%BF%E7%94%A8%20USB%20%E6%8E%A5%E5%8F%A3%E8%BF%9B%E8%A1%8C%E8%BF%9E%E6%8E%A5%EF%BC%8C%E8%BF%99%E5%B0%86%E6%9C%89%E5%8A%A9%E4%BA%8E%E5%AF%B9%E5%85%B6%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE%E5%8A%A8%E6%80%81%E8%BE%93%E5%85%A5%E9%82%A3%E4%B9%88%E5%AF%B9%E4%BA%8E%20S32G-VNP-RDB32%20%E6%9D%BF%E6%9D%A5%E8%AF%B4%EF%BC%8C%E6%8E%A5%E5%8F%A3%E4%BC%9A%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E5%AD%90%EF%BC%9F%3CBR%20%2F%3E%E6%98%AF%E5%90%A6%E6%9C%89%E5%8F%AF%E8%83%BD%E8%BF%9E%E6%8E%A5%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%20%26amp%3B%20S32G-VNP_RDB32%20%E6%9D%BF%E5%88%9B%E5%BB%BA%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%9F%3C%2FP%3E%3CP%3E%E8%BF%98%E6%9C%89%EF%BC%8CSJA1110_SDK_1.0.2%20%E6%98%AF%E5%90%A6%E6%98%AF%E5%AE%9E%E6%96%BD%20RTM1.0.0%20%E6%89%80%E9%9C%80%E7%9A%84%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131732%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131732%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3ELinux%20%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%E5%B7%B2%E7%BB%8F%E9%A2%84%E8%A3%85%E5%9C%A8%20S32G-VNP-RDB3%20%E6%9D%BF%E9%99%84%E5%B8%A6%E7%9A%84%20SD%20%E5%8D%A1%E4%B8%8A%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%9C%A8%E8%BF%99%E6%96%B9%E9%9D%A2%E6%97%A0%E9%9C%80%E9%87%87%E5%8F%96%E4%BB%BB%E4%BD%95%E5%85%B6%E4%BB%96%E6%8E%AA%E6%96%BD%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%88%91%E5%81%87%E8%AE%BE%E4%BD%A0%E5%B7%B2%E7%BB%8F%E6%88%90%E5%8A%9F%E5%90%AF%E5%8A%A8%E4%BA%86%E6%9D%BF%EF%BC%88%E5%A6%82%E6%9E%9C%E4%BD%A0%E5%9C%A8%E4%B9%8B%E5%89%8D%E7%9A%84%E6%B6%88%E6%81%AF%E4%B8%AD%E5%B7%B2%E7%BB%8F%E6%8F%90%E5%88%B0%E4%BA%86%E8%BF%99%E4%B8%80%E7%82%B9%EF%BC%8C%E5%BE%88%E6%8A%B1%E6%AD%89%EF%BC%89%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%20%E5%8C%85%E5%90%AB%20SJA1110%20DSA%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E8%AF%A5%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%8F%90%E4%BE%9B%E4%BA%86%E4%B8%80%E7%B3%BB%E5%88%97%E6%9C%89%E7%94%A8%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%8C%E5%8C%85%E6%8B%AC%E6%94%AF%E6%8C%81%E5%8A%A8%E6%80%81%20L2%20%E6%9F%A5%E8%AF%A2%E8%A1%A8%E9%85%8D%E7%BD%AE%E3%80%82%3CBR%20%2F%3EDSA%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E9%BB%98%E8%AE%A4%E5%B7%B2%E5%90%AF%E7%94%A8%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%9A%8F%E7%9D%80%E8%BF%99%E4%B8%AA%E6%A1%88%E4%BE%8B%E6%BC%94%E5%8F%98%E6%88%90%E4%B8%80%E4%B8%AA%E5%A4%9A%E5%8A%9F%E8%83%BD%E5%9F%9F%E8%AF%9D%E9%A2%98%EF%BC%8C%E6%88%91%E5%B7%B2%E7%BB%8F%E8%81%94%E7%B3%BB%E4%BA%86%E4%BD%A0%E7%9A%84FAE%EF%BC%8C%E8%AE%A8%E8%AE%BA%E6%88%91%E4%BB%AC%E5%BA%94%E8%AF%A5%E5%A6%82%E4%BD%95%E8%BF%9B%E4%B8%80%E6%AD%A5%E5%8F%91%E5%B1%95%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131661%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131661%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%E6%88%91%E7%9B%AE%E5%89%8D%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E5%9C%A8%20S32G-VNP-RDB32%20%E4%B8%AD%E5%AE%9E%E7%8E%B0%E5%AE%83%20%E2%80%94%20SJA1110%20Switch%20%3CBR%20%2F%3E%20%E7%9B%AE%E5%89%8D%EF%BC%8C%E6%88%91%E8%87%AA%E5%B7%B1%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E5%9B%BA%E4%BB%B6%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%93%AA%E4%B8%AA%20Linux%20%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E5%AE%8C%E6%88%90%E5%85%A8%E9%83%A8%E6%9B%B4%E6%94%B9%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131660%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131660%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%A6%82%E6%9E%9C%E4%BD%A0%E6%89%93%E7%AE%97%E5%9C%A8%20S32G-VNP-RDB3%20%E6%9D%BF%E4%B8%8A%E8%BF%99%E6%A0%B7%E5%81%9A%EF%BC%8C%E6%83%85%E5%86%B5%E5%B0%B1%E4%BC%9A%E5%8F%91%E7%94%9F%E9%87%8D%E5%A4%A7%E5%8F%98%E5%8C%96%E3%80%82%E4%BD%A0%E4%BC%9A%E5%9C%A8%E6%9D%BF%E4%B8%8A%E8%BF%90%E8%A1%8C%20Linux%20%E7%94%B5%E8%B7%AF%E6%9D%BF%E6%94%AF%E6%8C%81%E5%8C%85%EF%BC%8C%E8%BF%98%E6%98%AF%E6%89%93%E7%AE%97%E4%BD%BF%E7%94%A8%E8%87%AA%E5%B7%B1%E7%9A%84%E5%9B%BA%E4%BB%B6%EF%BC%9F%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131589%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131589%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%E4%BD%A0%E5%A5%BD%20%3C%2FSPAN%3E%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%3CSPAN%3E%20%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E3.SPI_HAP%EF%BC%88%E4%B8%BB%E6%9C%BA%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE%EF%BC%89%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E4%B8%BB%E6%9C%BA%E5%B7%A5%E5%85%B7%E4%B8%AD%E7%9A%84%20write_l2_lookup_table.py%20%E8%84%9A%E6%9C%AC%E6%BC%94%E7%A4%BA%E4%BA%86%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20SPI%20%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%20L2%20%E8%A1%A8%E3%80%82%E4%BB%BB%E4%BD%95%E5%A4%96%E9%83%A8%20MCU%20%E6%88%96%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E9%83%BD%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E8%BF%99%E7%A7%8D%E6%96%B9%E6%B3%95%E3%80%82%E5%A6%82%E6%9C%89%E9%9C%80%E8%A6%81%EF%BC%8C%E4%B9%9F%E5%8F%AF%E5%B0%86%E8%AF%A5%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E7%A7%BB%E6%A4%8D%E5%88%B0%E5%86%85%E9%83%A8%20M7%20%E5%86%85%E6%A0%B8%E4%B8%8A%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E3%80%82%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%E6%88%91%E5%B8%8C%E6%9C%9B%E9%80%9A%E8%BF%87%20write_l2_lookup_table.py%20%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%AA%E6%9D%A1%E7%9B%AE%20%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E9%80%9A%E8%BF%87%E6%88%91%E4%BB%AC%E5%9C%A8%20write_l2_lookup_table.py%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%BC%96%E5%86%99%E7%9A%84%E9%85%8D%E7%BD%AE%E5%B0%86%E5%A6%82%E4%BD%95%E7%A7%BB%E8%87%B3%20RDB32%20%E6%9D%BF%20%EF%BC%8C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%E4%BB%8E%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E5%88%B0%20RDB32%20%E6%9D%BF%20%E9%9C%80%E8%A6%81%E5%81%9A%20%E4%BB%80%E4%B9%88%E6%8E%A5%E5%8F%A3%EF%BC%9F%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E4%BB%80%E4%B9%88%E9%80%9A%E4%BF%A1%E6%9C%BA%E5%88%B6%E5%B0%86%E4%BA%8C%E7%BA%A7%E6%9F%A5%E8%AF%A2%E6%9D%A1%E7%9B%AE%E4%BC%A0%E9%80%92%E7%BB%99%E8%AE%BE%E5%A4%87%EF%BC%88RDB32%20%E6%9D%BF%EF%BC%89%20%E4%BD%A0%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%E8%83%BD%E7%BB%99%E6%88%91%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E6%88%96%E8%80%85%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%93%AA%E9%87%8C%E6%89%BE%E5%88%B0%E5%AE%9E%E6%96%BD%E7%A8%8B%E5%BA%8F%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131568%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131568%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E6%98%AF%E7%9A%84%EF%BC%8C%E4%BD%A0%E8%AF%B4%E5%BE%97%E5%AF%B9%EF%BC%8C%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%97%B6%EF%BC%8C%E9%9D%99%E6%80%81%E9%85%8D%E7%BD%AE%E4%BC%9A%E8%87%AA%E5%8A%A8%E4%BB%8E%E5%A4%96%E9%83%A8%E9%97%AA%E5%AD%98%E5%8A%A0%E8%BD%BD%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%AE%A9%E6%88%91%E6%9D%A5%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E4%B8%80%E4%B8%8B%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%E7%9A%84%E6%A6%82%E5%BF%B5%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%E7%9A%84%E4%BB%BB%E5%8A%A1%E5%8F%AF%E5%88%86%E4%B8%BA%E4%B8%A4%E4%B8%AA%E9%83%A8%E5%88%86%EF%BC%9A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3E%E7%BB%84%E8%A3%85%E6%9C%89%E6%95%88%E6%9D%A1%E7%9B%AE%20-%20%E5%8F%82%E8%A7%81%20UM11107%EF%BC%8C%E7%AC%AC%205.6%20%E7%AB%A0%22%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%22%3C%2FLI%3E%0A%3CLI%3E%E5%B0%86%E6%AD%A4%E6%9D%A1%E7%9B%AE%E5%86%99%E5%85%A5%E4%BA%A4%E6%8D%A2%E6%9C%BA%20-%20%E5%8F%82%E8%A7%81%20AN12925%EF%BC%8C%E7%AC%AC%205.1.3.2%20%E7%AB%A0%22%E5%86%99%E5%85%A5%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E6%9D%A1%E7%9B%AE%22%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3E%E6%9C%89%E4%B8%89%E7%A7%8D%E6%8E%A5%E5%8F%A3%E5%8F%AF%E7%94%A8%E4%BA%8E%E6%AD%A4%E7%9B%AE%E7%9A%84%EF%BC%9A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3EAHB%20-%20%E9%80%9A%E8%BF%87%E5%86%85%E9%83%A8%20M7%20%E5%86%85%E6%A0%B8%E3%80%82SDK%20%E6%94%AF%E6%8C%81%E5%8F%AF%E7%94%A8%EF%BC%8CECT%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%BA%90%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BD%9C%E4%B8%BA%E8%B5%B7%E7%82%B9%E3%80%82%3C%2FLI%3E%0A%3CLI%3ESPI_HAP%20-%20%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E7%BB%84%E8%A3%85%E4%B8%80%E4%B8%AA%E6%9C%89%E6%95%88%E6%9D%A1%E7%9B%AE%E5%B9%B6%E5%B0%86%E5%85%B6%E5%86%99%E5%85%A5%E4%BA%A4%E6%8D%A2%E6%9C%BA%E3%80%82%E8%BF%99%E5%B0%B1%E6%98%AF%20write_l2_lookup_table.py%20%E7%9A%84%E4%BD%9C%E7%94%A8%E3%80%82%3C%2FLI%3E%0A%3CLI%3E%E4%BB%A5%E5%A4%AA%E7%BD%91%20-%20%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E5%8F%91%E9%80%81%E7%94%A8%E6%88%B7%E5%AE%9A%E4%B9%89%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%88UDP%E3%80%81TCP%20%E7%AD%89%EF%BC%89%EF%BC%8C%E7%94%B1%E5%86%85%E9%83%A8%20M7%20%E5%86%85%E6%A0%B8%E5%A4%84%E7%90%86%E3%80%82M7%20%E5%AF%B9%E6%8A%A5%E6%96%87%E8%BF%9B%E8%A1%8C%E8%A7%A3%E7%A0%81%EF%BC%8C%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AA%E6%9C%89%E6%95%88%E6%9D%A1%E7%9B%AE%EF%BC%8C%E5%B9%B6%E5%B0%86%E5%85%B6%E5%86%99%E5%85%A5%E4%BA%A4%E6%8D%A2%E6%9C%BA--%E5%9B%A0%E6%AD%A4%E6%88%91%E4%BB%AC%E5%AE%9E%E9%99%85%E4%B8%8A%E5%8F%88%E5%9B%9E%E5%88%B0%E4%BA%86%E7%AC%AC%E4%B8%80%E7%82%B9%E3%80%82%E8%BF%99%E5%B0%B1%E6%98%AF%E7%94%B5%E7%97%89%E6%8C%9B%E7%96%97%E6%B3%95%E7%9A%84%E5%86%85%E9%83%A8%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E3%80%82%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131417%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131417%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%203%3CSPAN%3E.%20SPI_HAP%EF%BC%88%E4%B8%BB%E6%9C%BA%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE%EF%BC%89%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E4%B8%BB%E6%9C%BA%3C%2FSPAN%3E%E5%B7%A5%E5%85%B7%E4%B8%AD%E7%9A%84%20write_l2_lookup_table.py%20%E8%84%9A%E6%9C%AC%E6%BC%94%E7%A4%BA%E4%BA%86%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20SPI%20%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%20L2%20%E8%A1%A8%E3%80%82%E4%BB%BB%E4%BD%95%E5%A4%96%E9%83%A8%20MCU%20%E6%88%96%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E9%83%BD%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E8%BF%99%E7%A7%8D%E6%96%B9%E6%B3%95%E3%80%82%E5%A6%82%E6%9C%89%E9%9C%80%E8%A6%81%EF%BC%8C%E4%B9%9F%E5%8F%AF%E5%B0%86%E8%AF%A5%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E7%A7%BB%E6%A4%8D%E5%88%B0%E5%86%85%E9%83%A8%20M7%20%E5%86%85%E6%A0%B8%E4%B8%8A%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E5%B8%8C%E6%9C%9B%E9%80%9A%E8%BF%87%20write_l2_lookup_table.py%20%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%AA%E6%9D%A1%E7%9B%AE%20%3CBR%20%2F%3E%E9%80%9A%E8%BF%87%E6%88%91%E4%BB%AC%E5%9C%A8%20write_l2_lookup_table.py%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%BC%96%E5%86%99%E7%9A%84%E9%85%8D%E7%BD%AE%E5%B0%86%E5%A6%82%E4%BD%95%E7%A7%BB%E8%87%B3%20RDB32%20%E6%9D%BF%EF%BC%8C%E4%BB%8E%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E5%88%B0%20RDB32%E6%9D%BF%20%E9%9C%80%E8%A6%81%E5%81%9A%3CBR%20%2F%3E%E4%BB%80%E4%B9%88%E6%8E%A5%E5%8F%A3%EF%BC%9F%3CBR%20%2F%3E%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E4%BB%80%E4%B9%88%E9%80%9A%E4%BF%A1%E6%9C%BA%E5%88%B6%E5%B0%86%E4%BA%8C%E7%BA%A7%E6%9F%A5%E8%AF%A2%E6%9D%A1%E7%9B%AE%E4%BC%A0%E9%80%92%E7%BB%99%E8%AE%BE%E5%A4%87%EF%BC%88RDB32%20%E6%9D%BF%EF%BC%89%E4%BD%A0%3CBR%20%2F%3E%E8%83%BD%E7%BB%99%E6%88%91%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E6%88%96%E8%80%85%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%93%AA%E9%87%8C%E6%89%BE%E5%88%B0%E5%AE%9E%E6%96%BD%E7%A8%8B%E5%BA%8F%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2131374%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2131374%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%AD%A3%E5%A6%82%E6%82%A8%E6%89%80%E6%8F%90%E5%88%B0%E7%9A%84%EF%BC%8C%E6%88%91%E6%83%B3%E5%8A%A8%E6%80%81%E5%9C%B0%E9%85%8D%E7%BD%AE%20switch_core%20%E9%85%8D%E7%BD%AE%3CBR%20%2F%3E%E5%BD%93%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%97%B6%EF%BC%8C%E6%88%91%E4%BB%AC%E5%9C%A8%E5%A4%96%E8%AE%BE%E4%B8%AD%E9%85%8D%E7%BD%AE%E7%9A%84%E9%9D%99%E6%80%81%E9%85%8D%E7%BD%AE%E4%BC%9A%E8%A2%AB%E5%8A%A0%E8%BD%BD%3CBR%20%2F%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E5%AF%BB%E6%89%BE%E4%B8%80%E7%A7%8D%E6%96%B9%E6%B3%95%E6%9D%A5%E9%85%8D%E7%BD%AE%E8%A1%A8%E9%A1%B9%EF%BC%8C%E8%BF%99%E4%BA%9B%E8%A1%A8%E9%A1%B9%E6%98%AF%E5%9C%A8%E9%9D%99%E6%80%81%E4%B8%AD%E9%85%8D%E7%BD%AE%E7%9A%84%EF%BC%8C%E9%9C%80%E8%A6%81%E9%80%9A%E8%BF%87%E5%8A%A8%E6%80%81%E6%9D%A5%E9%85%8D%E7%BD%AE%E3%80%82%3C%2FP%3E%3CP%3E%E5%9C%A8%E8%BF%99%E4%B8%A4%E7%A7%8D%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E9%80%9A%E5%B8%B8%E6%9C%89%E4%B8%89%E7%A7%8D%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0%E4%BA%A4%E6%8D%A2%E6%9C%BA%E9%85%8D%E7%BD%AE%EF%BC%9A%3C%2FP%3E%3CUL%3E%3CLI%3E%E6%9D%A5%E8%87%AA%20M7%20%E5%86%85%E6%A0%B8%3C%2FLI%3E%3CLI%3E%E9%80%9A%E8%BF%87%20SPI_HAP%20%E4%BB%8E%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E5%8F%91%E9%80%81%3C%2FLI%3E%3CLI%3E%E4%BB%8E%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E9%80%9A%E8%BF%87%E4%BB%A5%E5%A4%AA%E7%BD%91%3CBR%20%2F%3E%EF%BC%8C%E6%89%80%E4%BB%A5%E4%BD%A0%E6%98%AF%E8%AF%B4%E8%BF%99%E4%BA%9B%E6%98%AF%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%94%AF%E4%B8%80%E9%80%94%E5%BE%84%EF%BC%9F%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E5%A6%82%E6%9E%9C%E8%BF%99%E4%BA%9B%E9%83%BD%E6%98%AF%E5%94%AF%E4%B8%80%E5%8F%AF%E8%83%BD%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%8C%E9%82%A3%E4%B9%88%E6%8C%89%E7%85%A7%E6%88%91%E6%8F%90%E4%BE%9B%E7%9A%84%E4%BB%A3%E7%A0%81%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE%E6%98%AF%E5%8F%AF%E8%A1%8C%E8%BF%98%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%A1%8C%EF%BC%9F%3CBR%20%2F%3E%EF%BC%8C%E8%BF%99%E9%87%8C%E6%8F%90%E5%88%B0%E7%9A%84%E4%B8%89%E4%B8%AA%E8%BF%87%E7%A8%8B%E4%B8%8E%20ECT%26amp%3B%20write_l2_lookup_table.py%20%E6%98%AF%E5%90%A6%E7%9B%B8%E5%90%8C%EF%BC%9F%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-2130953%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2130953%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E8%83%BD%E5%90%A6%E8%AF%B7%E6%82%A8%E8%AF%B4%E6%98%8E%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E7%9A%84%E7%94%A8%E4%BE%8B%EF%BC%9F%3C%2FP%3E%0A%3CP%3E%E5%B0%B1%E6%88%91%E4%B8%AA%E4%BA%BA%E8%80%8C%E8%A8%80%EF%BC%8C%E6%88%91%E4%BC%9A%E8%80%83%E8%99%91%E5%9C%A8%E4%B8%A4%E7%A7%8D%E5%85%B8%E5%9E%8B%E6%83%85%E5%86%B5%E4%B8%8B%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%9A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%E5%BD%93%E4%BD%A0%E6%83%B3%E5%9C%A8%E5%A4%9A%E5%8F%B0%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%BB%B4%E6%8A%A4%E9%80%9A%E7%94%A8%E7%9A%84%E4%BA%A4%E6%8D%A2%E6%9C%BA%E9%85%8D%E7%BD%AE%EF%BC%8C%E7%84%B6%E5%90%8E%20%22%20%E5%AF%B9%E6%AF%8F%E5%8F%B0%E4%BA%A4%E6%8D%A2%E6%9C%BA%E8%BF%9B%E8%A1%8C%E4%B8%AA%E6%80%A7%E5%8C%96%E8%AE%BE%E7%BD%AE%20%22%20%E6%97%B6%EF%BC%8C%E4%BC%9A%E5%9C%A8%E5%BC%80%E6%9C%BA%E5%90%8E%E5%AF%B9%E6%AF%8F%E5%8F%B0%E4%BA%A4%E6%8D%A2%E6%9C%BA%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6%80%81%E8%AE%BE%E7%BD%AE%E3%80%82%3C%2FLI%3E%0A%3CLI%3E%E5%BD%93%E6%82%A8%E9%9C%80%E8%A6%81%E6%A0%B9%E6%8D%AE%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8%E8%A6%81%E6%B1%82%E5%9C%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E4%BF%AE%E6%94%B9%E4%BA%A4%E6%8D%A2%E6%9C%BA%E9%85%8D%E7%BD%AE%E6%97%B6%E3%80%82%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%E5%9C%A8%E8%BF%99%E4%B8%A4%E7%A7%8D%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E9%80%9A%E5%B8%B8%E6%9C%89%E4%B8%89%E7%A7%8D%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0%E4%BA%A4%E6%8D%A2%E6%9C%BA%E9%85%8D%E7%BD%AE%EF%BC%9A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%E6%9D%A5%E8%87%AA%20M7%20%E5%86%85%E6%A0%B8%3C%2FLI%3E%0A%3CLI%3E%E9%80%9A%E8%BF%87%20SPI_HAP%20%E4%BB%8E%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E5%8F%91%E9%80%81%3C%2FLI%3E%0A%3CLI%3E%E9%80%9A%E8%BF%87%E4%BB%A5%E5%A4%AA%E7%BD%91%E4%BB%8E%E4%B8%BB%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%E6%82%A8%E7%9A%84%E7%94%A8%E4%BE%8B%E5%B1%9E%E4%BA%8E%E8%BF%99%E4%BA%9B%E7%B1%BB%E5%88%AB%E4%B9%8B%E4%B8%80%EF%BC%8C%E8%BF%98%E6%98%AF%E6%82%A8%E7%9A%84%E7%9B%AE%E6%A0%87%E6%9C%89%E6%89%80%E4%B8%8D%E5%90%8C%EF%BC%9F%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2130802%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2130802%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%AD%A3%E5%A6%82%E6%82%A8%E6%89%80%E6%8F%90%E5%88%B0%E7%9A%84%EF%BC%8C%E6%88%91%E5%B0%9D%E8%AF%95%E5%8A%A0%E5%85%A5%E4%BB%A3%E7%A0%81%3CBR%20%2F%3E%E6%82%A8%E8%83%BD%E5%90%A6%E7%A1%AE%E8%AE%A4%E6%88%91%E9%9C%80%E8%A6%81%E5%9C%A8%E5%93%AA%E9%87%8C%E6%94%BE%E7%BD%AE%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%BF%99%E5%B0%86%E6%9C%89%E5%8A%A9%E4%BA%8E%E6%88%91%E4%BB%AC%E5%88%9B%E5%BB%BA%E6%9D%A1%E7%9B%AE%3CBR%20%2F%3E%E6%82%A8%E5%9C%A8%E4%B9%8B%E5%89%8D%E7%9A%84%E4%BF%A1%E6%81%AF%E4%B8%AD%E6%8F%90%E5%88%B0%E6%9C%89%E4%B8%A4%E7%A7%8D%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E4%BD%BF%E7%94%A8%20ECT%EF%BC%88%E4%BB%A5%E5%A4%AA%E7%BD%91%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%EF%BC%89%E5%92%8C%20SPI_HAP%3CBR%20%2F%3E%E6%89%80%E4%BB%A5%E8%BF%99%E4%BA%9B%E5%B7%A5%E5%85%B7%E5%92%8C%E6%96%87%E4%BB%B6%E9%9C%80%E8%A6%81%E5%9C%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E8%BF%9B%E8%A1%8C%E5%A4%84%E7%90%86%EF%BC%8C%E5%AF%B9%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%E6%88%91%E5%88%86%E4%BA%AB%E7%9A%84%E4%BB%A3%E7%A0%81%E6%98%AF%E6%88%91%E8%AF%95%E5%9B%BE%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%E8%BF%99%E4%BA%9B%E5%B7%A5%E5%85%B7%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%9E%E7%8E%B0%E7%9A%84%3CBR%20%2F%3E%E6%88%91%E6%83%B3%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%8A%A8%E6%80%81%20L2%20%E6%9F%A5%E6%89%BE%E6%9D%A1%E7%9B%AE%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%81%9A%E5%8F%AF%E4%BB%A5%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20Atkinson%20Regards%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2130598%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2130598%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%BE%88%E6%8A%B1%E6%AD%89%E7%94%B1%E4%BA%8E%E5%85%AC%E5%85%B1%E5%81%87%E6%9C%9F%E8%80%8C%E5%BB%B6%E8%BF%9F%E5%9B%9E%E5%A4%8D%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E5%88%86%E4%BA%AB%E4%BB%A3%E7%A0%81%E3%80%82%E6%88%91%E5%BF%AB%E9%80%9F%E6%B5%8F%E8%A7%88%E4%BA%86%E4%B8%80%E4%B8%8B%EF%BC%8C%E4%B9%8D%E4%B8%80%E7%9C%8B%E4%BC%BC%E4%B9%8E%E4%B8%8E%20AN12925%20%E7%AC%AC%205.1.3.2%20%E7%AB%A0%E4%B8%AD%E6%A6%82%E8%BF%B0%E7%9A%84%E5%8E%9F%E5%88%99%E4%B8%80%E8%87%B4%E5%86%99%E5%85%A5%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%E9%A1%B9%E3%80%82%E6%88%91%E8%BF%98%E6%B3%A8%E6%84%8F%E5%88%B0%EF%BC%8Csja1110.h%20%E4%B8%AD%E7%9A%84%20%23define%20%E8%AF%AD%E5%8F%A5%E4%BC%BC%E4%B9%8E%E8%A2%AB%E9%87%8D%E5%A4%8D%E4%BD%BF%E7%94%A8%E4%BA%86%EF%BC%8C%E8%BF%99%E6%98%AF%E6%A0%87%E5%87%86%E5%81%9A%E6%B3%95%E3%80%82%3C%2FP%3E%0A%3CP%3E%E4%BD%86%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8C%E6%B7%B1%E5%85%A5%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5%E8%B6%85%E5%87%BA%E4%BA%86%E6%88%91%E4%BB%AC%E5%85%8D%E8%B4%B9%E5%9C%A8%E7%BA%BF%E6%94%AF%E6%8C%81%E7%9A%84%E8%8C%83%E5%9B%B4%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8C%E8%B0%83%E7%94%A8%E6%AD%A4%E5%87%BD%E6%95%B0%E7%9A%84%E6%97%B6%E9%97%B4%E5%92%8C%E4%B8%8A%E4%B8%8B%E6%96%87%E9%AB%98%E5%BA%A6%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8%EF%BC%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%9B%A0%E6%82%A8%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%92%8C%E8%A6%81%E6%B1%82%E8%80%8C%E5%BC%82%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2129272%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2129272%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3Estatic%20status_t%20wait_for_valid_clear(uint8_t%20swt)%20%7B%3CBR%20%2F%3Estatus_t%20status%3B%3CBR%20%2F%3Euint32_t%20ctrl%20%3D%200%3B%3CBR%20%2F%3Edo%20%7B%3CBR%20%2F%3Estatus%20%3D%20SWITCH_DRV_Read(swt%2C%201%2C%20DYN_BE_LKP_CTRL%2C%26amp%3Bctrl)%3B%3CBR%20%2F%3Eif%20(status%20%EF%BC%81%3D%20STATUS_SUCCESS)%20return%20status%3B%3CBR%20%2F%3E%7D%20while%20(ctrl%26amp%3B%20DYN_BE_LKP_CTRL_VALID_MASK)%EF%BC%9B%3C%2FP%3E%3CP%3Eif%20(ctrl%26amp%3B%20DYN_BE_LKP_CTRL_ERROR_MASK)%20return%20STATUS_ERROR%3B%3CBR%20%2F%3Ereturn%20STATUS_SUCCESS%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Estatus_t%20SJA1110_AddL2LookupEntry_Dynamic(uint8_t%20swt)%20%7B%3CBR%20%2F%3Estatus_t%20status%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20MAC%20%3D%2066%3A11%3A22%3A33%3A44%3A55%3CBR%20%2F%3Euint8_t%20mac%5B6%5D%20%3D%20%7B0x66%2C%200x11%2C%200x22%2C%200x33%2C%200x44%2C%200x55%7D%3B%3CBR%20%2F%3Euint64_t%20mac64%20%3D%20((uint64_t)mac%5B0%5D%26lt%3B%26lt%3B%2040)%7C%20((uint64_t)mac%5B1%5D%26lt%3B%26lt%3B%2032)%7C%20((uint64_t)mac%5B2%5D%26lt%3B%26lt%3B%2024)%7C%3CBR%20%2F%3E((uint64_t)mac%5B3%5D%26lt%3B%26lt%3B%2016)%7C%20((uint64_t)mac%5B4%5D%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%20%7C%20(uint64_t)mac%5B5%5D%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E5%87%86%E5%A4%87%20L2%20%E6%9F%A5%E6%89%BE%E6%9D%A1%E7%9B%AE%E5%AD%97%E6%AE%B5%3CBR%20%2F%3Euint32_t%20entry%5BWORD_COUNT%5D%20%3D%20%7B0%7D%EF%BC%9B%3C%2FP%3E%3CP%3E%E6%9D%A1%E7%9B%AE%20%5B0%5D%20%3D%20((5%20%26amp%3B%200xF)%20%26lt%3B%26lt%3B%2024)%20%7C%20(1%20%26lt%3B%26lt%3B%2011)%3B%20%2F%2F%20SrcPort%2C%20DestPorts%201%20%26amp%3B%202%3CBR%20%2F%3E%E6%9D%A1%E7%9B%AE%20%5B1%5D%20%3D%20(uint32_t)(mac64%20%26amp%3B%200xFFFFFFFF)%3B%3CBR%20%2F%3E%E6%9D%A1%E7%9B%AE%20%5B2%5D%20%3D%20(uint32_t)((mac64%20%26gt%3B%26gt%3B%2032)%20%26amp%3B%200xFFFF)%3B%3CBR%20%2F%3E%E6%9D%A1%E7%9B%AE%20%5B2%5D%20%7C%3D%20(3%20%26lt%3B%26lt%3B%2016)%3B%20%2F%2F%20VLAN%20ID%20%3D%203%3CBR%20%2F%3E%E6%9D%A1%E7%9B%AE%20%5B3%5D%20%3D%200%3B%20%2F%2F%20%E5%8F%AF%E9%80%89%E7%9A%84%E6%8E%A9%E7%A0%81%3CBR%20%2F%3E%E6%9D%A1%E7%9B%AE%20%5B4%5D%20%3D%200%3B%3CBR%20%2F%3E%E6%9D%A1%E7%9B%AE%20%5B5%5D%20%3D%20(8%20%26lt%3B%26lt%3B%204)%20%7C%20(1%20%26lt%3B%26lt%3B%2010)%3B%20%2F%2F%20CB_SID_IN%20%3D%208%2C%20CB_ON_DA%20%3D%201%3C%2FP%3E%3CP%3E%2F%2F%20%E7%AD%89%E5%BE%85%E7%9B%B4%E5%88%B0%E5%89%8D%E4%B8%80%E4%B8%AA%E6%93%8D%E4%BD%9C%E5%AE%8C%E6%88%90%3CBR%20%2F%3Estatus%20%3D%20wait_for_valid_clear(swt)%3B%3CBR%20%2F%3Eif%20(status%20!%3D%20STATUS_SUCCESS)%20return%20status%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E5%B0%86%20L2%20%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%86%99%E5%85%A5%E5%AF%84%E5%AD%98%E5%99%A8%3CBR%20%2F%3Estatus%20%3D%20SWITCH_DRV_Write(swt%EF%BC%8CWORD_COUNT%EF%BC%8CDYN_BE_LKP_ENTRY0%EF%BC%8Centry)%3B%3CBR%20%2F%3Eif%20(status%20!%3D%20STATUS_SUCCESS)%20return%20status%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E6%9E%84%E9%80%A0%E6%8E%A7%E5%88%B6%E5%AF%84%E5%AD%98%E5%99%A8%E5%80%BC%3CBR%20%2F%3Euint32_t%20ctrl%20%3D%20DYN_BE_LKP_CTRL_VALID_MASK%20%7C%3CBR%20%2F%3EDYN_BE_LKP_CTRL_RDWRSET_MASK%20%7C%3CBR%20%2F%3E(HOSTCMD_WRITE%26lt%3B%26lt%3B%20DYN_BE_LKP_CTRL_HOSTCMD_SHIFT)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%E5%86%99%E5%85%A5%3CBR%20%2F%3E%E7%8A%B6%E6%80%81%20%3D%20switch_drv_Write%20(swt%2C%201%2C%20DYN_BE_LKP_CTRL%2C%20%26amp%3B%20ctrl)%3B%20if%20(status!%20%3CBR%20%2F%3E%3D%20STATUS_SUCCESS)%20%E8%BF%94%E5%9B%9E%E7%8A%B6%E6%80%81%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E7%AD%89%E5%BE%85%E6%93%8D%E4%BD%9C%E5%AE%8C%E6%88%90%3CBR%20%2F%3Ereturn%20wait_for_valid_clear(swt)%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%99%E6%AE%B5%E4%BB%A3%E7%A0%81%E6%98%AF%E5%90%A6%E5%8F%AF%E7%94%A8%E4%BA%8E%E7%94%9F%E6%88%90%E5%8A%A8%E6%80%81%E6%9D%A1%E7%9B%AE%EF%BC%9F%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%E8%BF%99%E6%AE%B5%E4%BB%A3%E7%A0%81%E6%AD%A3%E7%A1%AE%EF%BC%8C%E9%9C%80%E8%A6%81%E5%9C%A8%E4%BD%95%E5%A4%84%E8%B0%83%E7%94%A8%E8%AF%A5%E5%87%BD%E6%95%B0%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20Atkinson%20Regards%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2128648%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2128648%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%23include%3CSTDINT.H%3E%3CBR%20%2F%3E%23include%3CSTDBOOL.H%3E%3C%2FSTDBOOL.H%3E%3C%2FSTDINT.H%3E%3C%2FP%3E%3CP%3E%2F%2F%20%E6%A0%B9%E6%8D%AE%20SoC%20%E6%98%A0%E5%B0%84%E5%AE%9A%E4%B9%89%E5%AF%84%E5%AD%98%E5%99%A8%E5%9C%B0%E5%9D%80%3CBR%20%2F%3E%23define%20DYN_BE_LKP_ENTRY0%200x000%20%2F%2F%20%E6%9B%BF%E6%8D%A2%E4%B8%BA%E5%AE%9E%E9%99%85%E5%9C%B0%E5%9D%80%3CBR%20%2F%3E%23define%20DYN_BE_LKP_ENTRY1%200x004%3CBR%20%2F%3E%23defineDYN_BE_LKP_ENTRY2%200x008%3CBR%20%2F%3E%23define%20DYN_BE_LKP_ENTRY3%200x00C%3CBR%20%2F%3E%23define%20DYN_BE_LKP_ENTRY4%200x010%3CBR%20%2F%3E%23define%20DYN_BE_LKP_ENTRY5%200x014%3CBR%20%2F%3E%23define%20DYN_BE_LKP_CTRL%200x018%3C%2FP%3E%3CP%3Evoid%20insert_l2_unicast_entry(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%2F%2F%20%3D%3D%3D%20INPUTS%20%3D%3D%3D%3CBR%20%2F%3Euint64_t%20mac%20%3D%200x021122334455ULL%3B%20%2F%2F%20MAC%20%E5%9C%B0%E5%9D%80%3CBR%20%2F%3Euint16_t%20vlan_id%20%3D%203%3B%3CBR%20%2F%3Euint8_t%20dest_port%20%3D%203%3B%20%2F%2F%20%E7%AB%AF%E5%8F%A3%203%3CBR%20%2F%3Euint16_t%20dest_ports_mask%20%3D%20(1%26lt%3B%26lt%3B%20dest_port)%3B%3CBR%20%2F%3Euint16_t%20index%20%3D%205%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%3D%3D%3D%20%E7%AC%AC%201%20%E6%AD%A5%EF%BC%9A%E7%AD%89%E5%BE%85%E4%B8%8A%E4%B8%80%E6%AD%A5%E6%93%8D%E4%BD%9C%E5%AE%8C%E6%88%90%20%3D%3D%3D%3CBR%20%2F%3Ewhile%20(read_register(DYN_BE_LKP_CTRL)%26amp%3B%20ETHSW_DYN_BE_LKP_CTRL_bValid_MASK)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%3D%3D%3D%20%E7%AC%AC%202%20%E6%AD%A5%EF%BC%9A%E5%87%86%E5%A4%87%E8%BE%93%E5%85%A5%E5%AD%97%E6%AE%B5%20%3D%3D%3D%3CBR%20%2F%3Euint32_t%20mac_lo%20%3D%20(uint32_t)(mac%26amp%3B%200xFFFFFFFF)%3B%20%2F%2F%20%E4%BD%8E%2032%20%E4%BD%8D%3CBR%20%2F%3Euint32_t%20mac_hi%20%3D%20(uint32_t)((mac%26gt%3B%26gt%3B%2032)%26amp%3B%200xFFFF)%3B%20%2F%2F%20%E9%AB%98%2016%20%E4%BD%8D%3C%2FP%3E%3CP%3Euint32_t%20entry0%20%3D%20ethsw_dyn_be_be_lkp_entry0_uventry_30__0_%20(0x00000000)%EF%BC%9Buint32_t%20entry1%20%3D%20ethsw_dyn_be_lkp_entry1_uventry_62__31_%20(mac_lo)%EF%BC%9Buint32_t%20entry2%20%3D%20ethsw_dyn_BE_BE_LKP_ENTRY1_UVENTRY_62__31_%20(mac_lo)%EF%BC%9Buint32_t%20entry2%20%3D%20ethsw_dyn_BE_BE_LK_LKp_entry2_uventry_94__63_%20(mac_hi)%EF%BC%9B%3CBR%20%2F%3Euint32_t%20entry3%20%3D%20ethsw_dyn_be_lkp_entry3_uventry_126__95_%20(((vlan_id%20%26amp%3B%200xFFF)%20%26lt%3B%20%26lt%3B%2016)%20%7C%20(dest_ports_mask%20%26amp%3B%200xFFF))%EF%BC%9Buint32_t%20entry4%20%3D%20ethfff%20sw_dyn_be_lkp_entry4_uventry_158__127_%20(0x00000000)%3B%2F%2F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%8F%AF%E9%80%89%E6%A0%87%E5%BF%97%2F%E4%BF%9D%E7%95%99%E7%9A%84%20%3CBR%20%2F%3E%20uint32_t%20%E6%9D%A1%E7%9B%AE5%20%3D%20ethsw_dyn_be_lkp_entry5_uventry_190__159_%EF%BC%88%E7%B4%A2%E5%BC%95%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%3D%3D%3D%20%E7%AC%AC%203%20%E6%AD%A5%EF%BC%9A%E5%B0%86%E6%9D%A1%E7%9B%AE%E5%86%99%E5%85%A5%20DYN%20%E5%AF%84%E5%AD%98%E5%99%A8%20%3D%3D%3D%3CBR%20%2F%3Ewrite_register(DYN_BE_LKP_ENTRY0%2C%20entry0)%3B%3CBR%20%2F%3Ewrite_register(DYN_BE_LKP_ENTRY1%2C%20entry1)%3B%3CBR%20%2F%3Ewrite_register(DYN_BE_LKP_ENTRY2%2C%20entry2)%EF%BC%9B%3CBR%20%2F%3Ewrite_register(DYN_BE_LKP_ENTRY3%2C%20entry3)%3B%3CBR%20%2F%3Ewrite_register(DYN_BE_LKP_ENTRY4%2C%20entry4)%3B%3CBR%20%2F%3Ewrite_register(DYN_BE_LKP_ENTRY5%2C%20entry5)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%3D%3D%3D%20%E6%AD%A5%E9%AA%A4%204%EF%BC%9A%E9%80%9A%E8%BF%87%E6%8E%A7%E5%88%B6%E5%AF%84%E5%AD%98%E5%99%A8%E8%A7%A6%E5%8F%91%E5%86%99%E5%85%A5%20%3D%3D%3D%20%3CBR%20%2F%3E%20uint32_t%20ctrl_val%20%3D%200%3B%20ctrl_val%20%7C%3D%20ethsw_dyn_be_ctrl_bvalid%20(1)%3B%20ctrl_val%20%7C%3D%20ethsw_dyn_be_be_ctrl_bw%20%3CBR%20%2F%3E%20rdb%20(1)%3B%2F%2F%E5%86%99%E5%85%A5%E6%93%8D%E4%BD%9C%20ctrl_val%20%7C%3D%20ethsw_dyn_be_be_be__lkp_ctrl_uvHostCommand%20(0b011)%3B%2F%2F%E4%B8%BB%E6%9C%BA%E5%86%99%E5%85%A5%20ctrl_val%20%7C%3D%20ethsw_dyn_be_lkp_ctrl_bvalident%20%3CBR%20%2F%3E%20ry%20(1)%3B%2F%2F%E6%9C%89%E6%95%88%E8%BE%93%E5%85%A5%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3Ewrite_register(DYN_BE_LKP_CTRL%2C%20ctrl_val)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%3D%3D%3D%20%E7%AC%AC%205%20%E6%AD%A5%EF%BC%9A%E7%AD%89%E5%BE%85%E6%93%8D%E4%BD%9C%E5%AE%8C%E6%88%90%20%3D%3D%3D%3CBR%20%2F%3Ewhile%20(read_register(DYN_BE_LKP_CTRL)%26amp%3B%20ETHSW_DYN_BE_LKP_CTRL_bValid_MASK)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%3D%3D%3D%20%E7%AC%AC%206%20%E6%AD%A5%EF%BC%9A%E6%A3%80%E6%9F%A5%E9%94%99%E8%AF%AF%20%3D%3D%3D%3CBR%20%2F%3Euint32_t%20status%20%3D%20read_register(DYN_BE_LKP_CTRL)%3B%3CBR%20%2F%3Eif%20(status%26amp%3B%20ETHSW_DYN_BE_LKP_CTRL_bError_MASK)%20%7B%3CBR%20%2F%3E%2F%2F%20%E5%A4%84%E7%90%86%E9%94%99%E8%AF%AF%3CBR%20%2F%3E%2F%2F%20%E4%BD%A0%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%E9%9C%80%E8%A6%81%E6%89%93%E5%8D%B0%E6%88%96%E8%AE%B0%E5%BD%95%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E6%8F%92%E5%85%A5%E8%BF%99%E6%AE%B5%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%B0%86%E6%95%B0%E6%8D%AE%E5%8A%A8%E6%80%81%E5%86%99%E5%85%A5%20L2%20%E6%9F%A5%E6%89%BE%E8%A1%A8%3CBR%20%2F%3E%E6%88%91%E5%BA%94%E8%AF%A5%E5%9C%A8%E5%93%AA%E9%87%8C%E6%8F%92%E5%85%A5%E8%BF%99%E6%AE%B5%E4%BB%A3%E7%A0%81%E8%BF%9B%E8%A1%8C%E6%B5%8B%E8%AF%95%EF%BC%9F%3CBR%20%2F%3E%E6%9C%9F%E5%BE%85%E6%82%A8%E7%9A%84%E5%9B%9E%E5%A4%8D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20Atkinson%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2128426%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2128426%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9C%A8%E9%80%9A%E8%BF%87%20SPI_HAP%20%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE%E7%9A%84%E6%96%B9%E6%B3%95%E4%B8%AD%3CBR%20%2F%3E%E5%9C%A8%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%20write_l2_lookup_table.py%EF%BC%9F%3CBR%20%2F%3E%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20SPI_HAP%20%E8%BF%9B%E8%A1%8C%E9%80%9A%E4%BF%A1%EF%BC%9F%E8%AE%BE%E5%A4%87%E5%90%AF%E5%8A%A8%E5%90%8E%E7%9A%84%E6%97%B6%E9%97%B4%E4%BB%A5%E5%89%8D%3CBR%20%2F%3E%E5%9C%A8%E9%9D%99%E6%80%81%E9%85%8D%E7%BD%AE%E6%9C%9F%E9%97%B4%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B7%B2%E7%BB%8F%E9%80%9A%E8%BF%87%E6%AF%8F%E4%B8%AA%E7%B4%A2%E5%BC%95%E9%85%8D%E7%BD%AE%E4%BA%86%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%EF%BC%9F%3CBR%20%2F%3E%E9%82%A3%E4%B9%88%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9C%80%E5%88%9D%E9%85%8D%E7%BD%AE%E7%9A%84%E6%98%AF%E9%9D%99%E6%80%81%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%98%AF%E5%90%A6%E5%B0%B1%E5%8F%AF%E4%BB%A5%E8%BF%9E%E6%8E%A5%EF%BC%9F%3CBR%20%2F%3E%E6%82%A8%E8%83%BD%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%8B%20write_l2_lookup_table.py%20%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%E5%BD%93%E4%BB%8E%E5%93%AA%E9%87%8C%EF%BC%88%E9%9C%80%E8%A6%81%E8%BF%9E%E6%8E%A5%E5%93%AA%E4%B8%AA%E7%AB%AF%E5%8F%A3%E6%89%8D%E8%83%BD%E4%BC%A0%E9%80%92%E6%95%B0%E6%8D%AE%EF%BC%89%E8%BF%90%E8%A1%8C%E8%BF%99%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%97%B6%EF%BC%8C%E8%84%9A%E6%9C%AC%E5%B0%86%E8%BD%AE%E8%AF%A2%E6%95%B0%E6%8D%AE%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3EAtkinson%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2128013%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20configuration%20in%20sja1110%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2128013%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%E7%9A%84%E6%96%B9%E6%B3%95%E5%8F%96%E5%86%B3%E4%BA%8E%E6%82%A8%E7%9A%84%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5--%E5%8F%AF%E4%BB%A5%E7%94%B1%E5%86%85%E9%83%A8%20M7%20%E5%86%85%E6%A0%B8%E6%89%A7%E8%A1%8C%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20SPI%20%E4%BB%8E%E5%A4%96%E9%83%A8%E6%89%A7%E8%A1%8C%E3%80%82%E4%B8%8B%E9%9D%A2%E6%98%AF%E4%B8%80%E4%BB%BD%E5%8F%AF%E8%83%BD%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E6%B8%85%E5%8D%95%EF%BC%9A%3C%2FP%3E%0A%3CP%3E1.ECT%EF%BC%88%E4%BB%A5%E5%A4%AA%E7%BD%91%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7%EF%BC%89%3CBR%20%2F%3E%E9%80%9A%E8%BF%87%E5%A4%96%E9%83%A8%E4%BB%A5%E5%A4%AA%E7%BD%91%EF%BC%88UDP%EF%BC%89%E5%B8%A7%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%E3%80%82M7%20%E6%A0%B8%E5%BF%83%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%9A%84%E5%86%85%E9%83%A8%E5%9B%BA%E4%BB%B6%E6%8E%A5%E6%94%B6%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%B0%86%E5%85%B6%E5%BA%94%E7%94%A8%E5%88%B0%E4%BA%A4%E6%8D%A2%E6%9C%BA%E6%A0%B8%E5%BF%83%E3%80%82%3C%2FP%3E%0A%3CP%3E2.%E4%BF%AE%E6%94%B9%E5%90%8E%E7%9A%84%20ECT%3CBR%20%2F%3EECT%20%E6%BA%90%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%BF%9B%E8%A1%8C%E8%B0%83%E6%95%B4%EF%BC%8C%E4%BB%A5%E6%8E%A5%E5%8F%97%E4%BB%BB%E4%BD%95%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B8%A7%E6%A0%BC%E5%BC%8F%EF%BC%88%E4%B8%8D%E4%BB%85%E4%BB%85%E6%98%AF%20UDP%EF%BC%89%E3%80%82%E8%BF%99%E6%A0%B7%E5%B0%B1%E5%8F%AF%E4%BB%A5%E9%9B%86%E6%88%90%E5%88%B0%E5%AE%9A%E5%88%B6%E5%8D%8F%E8%AE%AE%E6%88%96%E7%B3%BB%E7%BB%9F%E4%B8%AD%E3%80%82%E5%86%85%E9%83%A8%E9%80%BB%E8%BE%91%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98--M7%20%E5%86%85%E6%A0%B8%E6%89%A7%E8%A1%8C%E5%AE%9E%E9%99%85%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E6%9B%B4%E6%96%B0%E3%80%82%3C%2FP%3E%0A%3CP%3E3.SPI_HAP%EF%BC%88%E4%B8%BB%E6%9C%BA%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE%EF%BC%89%3CBR%20%2F%3E%E4%B8%BB%E6%9C%BA%E5%B7%A5%E5%85%B7%E4%B8%AD%E7%9A%84%20write_l2_lookup_table.py%20%E8%84%9A%E6%9C%AC%E6%BC%94%E7%A4%BA%E4%BA%86%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20SPI%20%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE%20L2%20%E8%A1%A8%E3%80%82%E4%BB%BB%E4%BD%95%E5%A4%96%E9%83%A8%20MCU%20%E6%88%96%E4%B8%BB%E5%A4%84%E7%90%86%E5%99%A8%E9%83%BD%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E8%BF%99%E7%A7%8D%E6%96%B9%E6%B3%95%E3%80%82%E5%A6%82%E6%9E%9C%E9%9C%80%E8%A6%81%EF%BC%8C%E8%AF%A5%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E4%B9%9F%E5%8F%AF%E4%BB%A5%E7%A7%BB%E6%A4%8D%E5%88%B0%20M7%20%E5%86%85%E6%A0%B8%E4%B8%8A%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E3%80%82%3C%2FP%3E%0A%3CP%3E%E4%B8%8A%E8%BF%B0%E6%89%80%E6%9C%89%E6%96%B9%E6%B3%95%E9%83%BD%E9%81%B5%E5%BE%AA%20AN12925%20%E7%AC%AC%205.1.3.2%20%E8%8A%82%E6%89%80%E8%BF%B0%E7%9A%84%E7%9B%B8%E5%90%8C%E5%8E%9F%E5%88%99%E3%80%82%E5%AF%84%E5%AD%98%E5%99%A8%E7%BA%A7%E5%88%AB%E7%9A%84%E6%B5%81%E7%A8%8B%E6%98%AF%E7%9B%B8%E5%90%8C%E7%9A%84%EF%BC%8C%E5%8C%85%E6%8B%AC%E8%BD%AE%E8%AF%A2%E6%8E%A7%E5%88%B6%E5%AF%84%E5%AD%98%E5%99%A8%E3%80%81%E5%86%99%E5%85%A5%E6%9D%A1%E7%9B%AE%E5%AF%84%E5%AD%98%E5%99%A8%E4%BB%A5%E5%8F%8A%E9%80%9A%E8%BF%87%E6%8E%A7%E5%88%B6%E5%AF%84%E5%AD%98%E5%99%A8%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%E6%9B%B4%E6%96%B0%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%B8%95%E7%BB%B4%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E