MIMXRT1170-EVK Gig-Ethernet receiving bad content

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

MIMXRT1170-EVK Gig-Ethernet receiving bad content

996 Views
mjbcswitzerland
Specialist V

Hi All

I am wondering whether someone has experienced the same or can propose an explanation for what is being seen?

I am using the 1 Gig-Ethernet interface on the MIMXRT1170-EVK with a (non-SDK) driver used on its 10/100M interface that has been extended to support both interfaces at the same time.

I can use one or both of the Ethernet interfaces at 100Mb/s with no (known) issues.

The problem starts when using the Gig-Ethernet interface at 1Gb/s (not on a 100Mb/s network, where it is OK). If I run a ping test there are occasional failures due to the ping response returned by the board having a mis-matching ping payload:

For example

Reply from 192.168.1.3: bytes=32 time<1ms TTL=128
Reply from 192.168.1.3: bytes=32 time<1ms TTL=128
Reply from 192.168.1.3: bytes=32 time=1ms TTL=128
Reply from 192.168.1.3: bytes=32 time<1ms TTL=128
Reply from 192.168.1.3: bytes=32 - MISCOMPARE at offset 22 - time<1ms TTL=128

There are no IP errors as the IP and ICMP checksums are OK, meaning that the ping content was correctly echoed back. To verify this I also check the ping content received and finally verify the data that the Ethernet controller wrote to memory (by analysing the buffer descriptor and the memory that it points to).

Since every ping has the same payload this is easy to do and the result shows that whenever it fails the Ethernet controller has saved two bytes different to the content seen on the network with Wireshark.

Here I have two memory dumps from the RX buffer content pointed to by a buffer descriptor.
First when the ping was good and second when there was this ping error:

md 20006780 b 150
Memory Display
0x20006780 00 00 00 00 00 03 00 e0 4c 68 03 d2 08 00 45 00 ........Lh....E.
0x20006790 00 3c 19 df 00 00 80 01 9d 8d c0 a8 01 01 c0 a8 .<..............
0x200067a0 01 03 00 00 00 00 00 01 05 83 61 62 63 64 65 66 ..........abcdef
0x200067b0 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv
0x200067c0 77 61 62 63 64 65 66 67 68 69 62 63 64 65 66 67 wabcdefghibcdefg
0x200067d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x200067e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x200067f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x20006800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x20006810 00 00 00 00 00 00 ......



md 20006780 b 150
Memory Display
0x20006780 00 00 00 00 00 03 00 e0 4c 68 03 d2 08 00 45 00 ........Lh....E.
0x20006790 00 3c 19 df 00 00 80 01 9d 8d c0 a8 01 01 c0 a8 .<..............
0x200067a0 01 03 00 00 00 00 00 01 05 83 61 62 63 64 65 66 ..........abcdef
0x200067b0 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv
0x200067c0 68 69 62 63 64 65 66 67 68 69 62 63 64 65 66 67 hibcdefghibcdefg
0x200067d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x200067e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x200067f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x20006800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x20006810 00 00 00 00 00 00 ......



There are 6 buffer descriptors allocated to the receiver and the one that makes the error is also random (above I have two cases from the same buffer descriptor's rx buffer).

The difference are ALWAYS two bytes - "wa" changes to 'hi' at the address 0x200067c0.
Curious is that there are these two bytes at 0x200067b1 (15 bytes previously).


As noted, this is a random error (1 in 10 or 1 in 20 pings, for example), can take place in any buffer descriptor, always has exactly the same content difference and only occurs when it auto-negotiates to 1Gb/s and never occurs at 100Mb/s.
The MIB counters show no error.
There are no checksum issues on the IP / ICMP reception code as it is relying on the check-sum offloading in the Ethernet module to flag errors, which must have received the correct data to allow it to pass.
The logical conclusion is that the Ethernet controller successfully checks the ping request received but saves the content incorrectly to memory afterwards.

The question remains as to why and how to solve it?

Regards

Mark


0 Kudos
Reply
5 Replies

888 Views
mjbcswitzerland
Specialist V

Hi MayLiu

If I use the evkmimxrt1170_lwip_ping_bm_cm7 reference I don't have the same behavior - in 1Gb/s mode the ping responses are OK. (In comparison my setup has about 5% ping responses with the two byte error when operating at 1Gb/s but none at 100Mb/s).

However it is not that easy to do an exact comparison.
The example (as it is delivered) uses no advanced modes - it uses the buffer descriptors in basic mode without their advanced feature. It doesn't have IEEE1588 time sampling enabled. It doesn't use IP checksum off-loading, etc.

Therefore I will need to configure the various projects in a number of modes to see whether there is one that triggers the behavior (at 1Gb/s).

In the meantime it would be useful if you could ask the specialists whether they can think of an explanation for the 1G ENET controller to receive packets correctly (passing IP and ICMP checksum verification) but storing them with occasional two byte error identically in either SDRAM, OCR1, OCR2 or ITC memory?

Today I tested my project with the CM7 core running at different frequencies from 100MHz to 1GHz just to be sure that the processor's own operating speed didn't have any effect. The behavior was always identical, which is however essentially as expected based on the fact that the ENET's clocking and the CM7's clocking are independent from another (but I remember some devices where there was a lower limit to the CPU's frequency for correct Ethernet operation, so I wanted to be sure).

Don't forget that when the ENET auto-negotiates to 100Mb/s there are never any such errors, meaning that the basic operation (buffer and memory alignment and such) doesn't seem to be the underlying factor.

Thanks, regards

Mark

0 Kudos
Reply

869 Views
mayliu1
NXP Employee
NXP Employee

Hi @mjbcswitzerland ,

Thanks for your updated information.

Based on your feedback information , this issue is very unlikely to be related to the physical link.

1:   Please enforce Non‑Cacheable + Properly Aligned ENET Buffers
To avoid Cortex‑M7 cache coherency issues, place the RX and TX descriptors and data buffers in a Non‑Cacheable memory region, and make sure they are properly aligned.
You may configure a region in OCRAM or SDRAM as Non‑Cacheable by using the MPU.
You can refer to the NXP SDK demo and the application note below:
https://www.nxp.com/docs/en/application-note/AN12042.pdf

2:  Please verify the ETH_PAD_SIZE configuration
Make sure the padding setting matches your driver usage.

Best Regards

MayLiu

0 Kudos
Reply

967 Views
mayliu1
NXP Employee
NXP Employee

Hi @mjbcswitzerland ,

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.

The address 0x20006780 is inside the CM7 DTCM.
According to Erratum ERR050396, ENET may have data problems when it writes to CM7 TCM.

https://www.nxp.com.cn/docs/en/errata/ES_IMXRT1170BCE.pdf

mayliu1_0-1770104374646.png

To avoid this problem,  Please clear the bit IOMUXC_GPR_GPR28[CACHE_ENET] if ENET writes to TCM.

If this bit is set, then ENET buffers must be placed in OCRAM or external RAM, not in DTCM.

Wish it helps you

Best Reagrds

MayLiu

0 Kudos
Reply

945 Views
mjbcswitzerland
Specialist V

Hi @mayliu1 

Thank you for the tip - I hadn't checked potential errata.

Unfortunately it doesn't seem to be that errata though - 

1. IOMUXC_GPR_GPR28 is 0x00000000 and so no write caching on ENETs

2. I tried locating the receive buffer in OCR1, OCR2 and SDRAM but in each case the behavior is exactly identical - the exact same two bytes sometimes wrong and at the same frequency.

Here are some memory dumps in the three new RAM areas showing the location of the data (again with the differences being seen)


SDRAM (0x80000000)

0x8000003a     71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69  qrstuvwabcdefghi
0x8000062a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x8000063a     71 72 73 74 75 76 68 69 62 63 64 65 66 67 68 69  qrstuvhibcdefghi
0x80000c2a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x80000c3a     71 72 73 74 75 76 68 69 62 63 64 65 66 67 68 69  qrstuvhibcdefghi
0x8000122a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x8000123a     71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69  qrstuvwabcdefghi


Error seen at 0x80000c40/41


OCR2

0x202c122a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x202c123a     71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69  qrstuvwabcdefghi
0x202c182a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x202c183a     71 72 73 74 75 76 68 69 62 63 64 65 66 67 68 69  qrstuvhibcdefghi
0x202c1e2a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x202c1e3a     71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69  qrstuvwabcdefghi

Error seen at 0x202c1840/41


OCR1

0x20241e3a     71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69  qrstuvwabcdefghi
0x2024002a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x2024003a     71 72 73 74 75 76 68 69 62 63 64 65 66 67 68 69  qrstuvhibcdefghi
0x2024062a     61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  abcdefghijklmnop
0x2024063a     71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69  qrstuvwabcdefghi


Error seen at 0x2040040/41


3. The errata seems to suggest that by having MUXC_GPR_GPR28 set to 0 should be adequate to avoid the errata in TCM and these results look to confirm that it is not based on that since the same behavior is seen in the memory areas that should also not be affected by it.

Are there any further suggestions?

Regards

Mark








0 Kudos
Reply

917 Views
mayliu1
NXP Employee
NXP Employee

Hi @mjbcswitzerland ,

Thanks for your updated information.

Since you are not using the SDK, I suggest trying the NXP MCUXpresso SDK Ethernet example.
Please keep the cache handling and alignment settings as shown in the demo.

If the  two‑byte error still happens when using the SDK demo, then we can continue with deeper checks as the next step.
 
Best Regards
MayLiu
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2304849%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMIMXRT1170-EVK%20Gig-Ethernet%20receiving%20bad%20content%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2304849%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20All%3CBR%20%2F%3E%3CBR%20%2F%3EI%20am%20wondering%20whether%20someone%20has%20experienced%20the%20same%20or%20can%20propose%20an%20explanation%20for%20what%20is%20being%20seen%3F%3CBR%20%2F%3E%3CBR%20%2F%3EI%20am%20using%20the%201%20Gig-Ethernet%20interface%20on%20the%20MIMXRT1170-EVK%20with%20a%20(non-SDK)%20driver%20used%20on%20its%2010%2F100M%20interface%20that%20has%20been%20extended%20to%20support%20both%20interfaces%20at%20the%20same%20time.%3CBR%20%2F%3E%3CBR%20%2F%3EI%20can%20use%20one%20or%20both%20of%20the%20Ethernet%20interfaces%20at%20100Mb%2Fs%20with%20no%20(known)%20issues.%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20problem%20starts%20when%20using%20the%20Gig-Ethernet%20interface%20at%201Gb%2Fs%20(not%20on%20a%20100Mb%2Fs%20network%2C%20where%20it%20is%20OK).%20If%20I%20run%20a%20ping%20test%20there%20are%20occasional%20failures%20due%20to%20the%20ping%20response%20returned%20by%20the%20board%20having%20a%20mis-matching%20ping%20payload%3A%3CBR%20%2F%3E%3CBR%20%2F%3EFor%20example%3CBR%20%2F%3E%3CBR%20%2F%3EReply%20from%20192.168.1.3%3A%20bytes%3D32%20time%26lt%3B1ms%20TTL%3D128%3CBR%20%2F%3EReply%20from%20192.168.1.3%3A%20bytes%3D32%20time%26lt%3B1ms%20TTL%3D128%3CBR%20%2F%3EReply%20from%20192.168.1.3%3A%20bytes%3D32%20time%3D1ms%20TTL%3D128%3CBR%20%2F%3EReply%20from%20192.168.1.3%3A%20bytes%3D32%20time%26lt%3B1ms%20TTL%3D128%3CBR%20%2F%3EReply%20from%20192.168.1.3%3A%20bytes%3D32%20-%20%3CSTRONG%3EMISCOMPARE%20at%20offset%2022%3C%2FSTRONG%3E%20-%20time%26lt%3B1ms%20TTL%3D128%3CBR%20%2F%3E%3CBR%20%2F%3EThere%20are%20no%20IP%20errors%20as%20the%20IP%20and%20ICMP%20checksums%20are%20OK%2C%20meaning%20that%20the%20ping%20content%20was%20correctly%20echoed%20back.%20To%20verify%20this%20I%20also%20check%20the%20ping%20content%20received%20and%20finally%20verify%20the%20data%20that%20the%20Ethernet%20controller%20wrote%20to%20memory%20(by%20analysing%20the%20buffer%20descriptor%20and%20the%20memory%20that%20it%20points%20to).%3CBR%20%2F%3E%3CBR%20%2F%3ESince%20every%20ping%20has%20the%20same%20payload%20this%20is%20easy%20to%20do%20and%20the%20result%20shows%20that%20whenever%20it%20fails%20the%20Ethernet%20controller%20has%20saved%20two%20bytes%20different%20to%20the%20content%20seen%20on%20the%20network%20with%20Wireshark.%3CBR%20%2F%3E%3CBR%20%2F%3EHere%20I%20have%20two%20memory%20dumps%20from%20the%20RX%20buffer%20content%20pointed%20to%20by%20a%20buffer%20descriptor.%3CBR%20%2F%3EFirst%20when%20the%20ping%20was%20good%20and%20second%20when%20there%20was%20this%20ping%20error%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Emd%2020006780%20b%20150%0AMemory%20Display%0A0x20006780%2000%2000%2000%2000%2000%2003%2000%20e0%204c%2068%2003%20d2%2008%2000%2045%2000%20........Lh....E.%0A0x20006790%2000%203c%2019%20df%2000%2000%2080%2001%209d%208d%20c0%20a8%2001%2001%20c0%20a8%20.%26lt%3B..............%0A0x200067a0%2001%2003%2000%2000%2000%2000%2000%2001%2005%2083%2061%2062%2063%2064%2065%2066%20..........abcdef%0A0x200067b0%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%2071%2072%2073%2074%2075%2076%20ghijklmnopqrstuv%0A0x200067c0%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%2062%2063%2064%2065%2066%2067%20wabcdefghibcdefg%0A0x200067d0%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x200067e0%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x200067f0%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x20006800%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x20006810%2000%2000%2000%2000%2000%2000%20......%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Emd%2020006780%20b%20150%0AMemory%20Display%0A0x20006780%2000%2000%2000%2000%2000%2003%2000%20e0%204c%2068%2003%20d2%2008%2000%2045%2000%20........Lh....E.%0A0x20006790%2000%203c%2019%20df%2000%2000%2080%2001%209d%208d%20c0%20a8%2001%2001%20c0%20a8%20.%26lt%3B..............%0A0x200067a0%2001%2003%2000%2000%2000%2000%2000%2001%2005%2083%2061%2062%2063%2064%2065%2066%20..........abcdef%0A0x200067b0%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%2071%2072%2073%2074%2075%2076%20ghijklmnopqrstuv%0A0x200067c0%2068%2069%2062%2063%2064%2065%2066%2067%2068%2069%2062%2063%2064%2065%2066%2067%20hibcdefghibcdefg%0A0x200067d0%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x200067e0%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x200067f0%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x20006800%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20................%0A0x20006810%2000%2000%2000%2000%2000%2000%20......%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3EThere%20are%206%20buffer%20descriptors%20allocated%20to%20the%20receiver%20and%20the%20one%20that%20makes%20the%20error%20is%20also%20random%20(above%20I%20have%20two%20cases%20from%20the%20same%20buffer%20descriptor's%20rx%20buffer).%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20difference%20are%20ALWAYS%20two%20bytes%20-%20%22wa%22%20changes%20to%20'hi'%20at%20the%20address%200x200067c0.%3CBR%20%2F%3ECurious%20is%20that%20there%20are%20these%20two%20bytes%20at%200x200067b1%20(15%20bytes%20previously).%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3EAs%20noted%2C%20this%20is%20a%20random%20error%20(1%20in%2010%20or%201%20in%2020%20pings%2C%20for%20example)%2C%20can%20take%20place%20in%20any%20buffer%20descriptor%2C%20always%20has%20exactly%20the%20same%20content%20difference%20and%20only%20occurs%20when%20it%20auto-negotiates%20to%201Gb%2Fs%20and%20never%20occurs%20at%20100Mb%2Fs.%3CBR%20%2F%3EThe%20MIB%20counters%20show%20no%20error.%3CBR%20%2F%3EThere%20are%20no%20checksum%20issues%20on%20the%20IP%20%2F%20ICMP%20reception%20code%20as%20it%20is%20relying%20on%20the%20check-sum%20offloading%20in%20the%20Ethernet%20module%20to%20flag%20errors%2C%20which%20must%20have%20received%20the%20correct%20data%20to%20allow%20it%20to%20pass.%3CBR%20%2F%3EThe%20logical%20conclusion%20is%20that%20the%20Ethernet%20controller%20successfully%20checks%20the%20ping%20request%20received%20but%20saves%20the%20content%20incorrectly%20to%20memory%20afterwards.%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20question%20remains%20as%20to%20why%20and%20how%20to%20solve%20it%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3E%3CBR%20%2F%3EMark%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-2305045%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MIMXRT1170-EVK%20Gig-Ethernet%20receiving%20bad%20content%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305045%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F1431%22%20target%3D%22_blank%22%3E%40mjbcswitzerland%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThank%20you%20for%20your%20interest%20in%20NXP%20Semiconductor%20products%20and%20for%20the%20opportunity%20to%20serve%20you.%3C%2FP%3E%0A%3CDIV%3EThe%20address%200x20006780%20is%20inside%20the%20CM7%20DTCM.%3CBR%20%2F%3EAccording%20to%20Erratum%20ERR050396%2C%26nbsp%3BENET%20may%20have%20data%20problems%20when%20it%20writes%20to%20CM7%20TCM.%3C%2FDIV%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com.cn%2Fdocs%2Fen%2Ferrata%2FES_IMXRT1170BCE.pdf%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com.cn%2Fdocs%2Fen%2Ferrata%2FES_IMXRT1170BCE.pdf%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22mayliu1_0-1770104374646.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1770104374646.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1770104374646.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1770104374646.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1770104374646.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1770104374646.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F375256i9A9F8654F978192E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22mayliu1_0-1770104374646.png%22%20alt%3D%22mayliu1_0-1770104374646.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%3E%0A%3CP%3ETo%20avoid%20this%20problem%2C%26nbsp%3B%26nbsp%3BPlease%20clear%20the%20bit%20IOMUXC_GPR_GPR28%5BCACHE_ENET%5D%20if%20ENET%20writes%20to%20TCM.%3C%2FP%3E%0A%3CP%3EIf%20this%20bit%20is%20set%2C%20then%20ENET%20buffers%20must%20be%20placed%20in%20OCRAM%20or%20external%20RAM%2C%20not%20in%20DTCM.%3C%2FP%3E%0A%3C%2FDIV%3E%0A%3CP%3EWish%20it%20helps%20you%3C%2FP%3E%0A%3CP%3EBest%20Reagrds%3C%2FP%3E%0A%3CP%3EMayLiu%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2305598%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MIMXRT1170-EVK%20Gig-Ethernet%20receiving%20bad%20content%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305598%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F239163%22%20target%3D%22_blank%22%3E%40mayliu1%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EThank%20you%20for%20the%20tip%20-%20%3CEM%3EI%20hadn't%20checked%20potential%20errata%3C%2FEM%3E.%3CBR%20%2F%3E%3CBR%20%2F%3EUnfortunately%20it%20doesn't%20seem%20to%20be%20that%20errata%20though%20-%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E1.%26nbsp%3BIOMUXC_GPR_GPR28%20is%200x00000000%20and%20so%20no%20write%20caching%20on%20ENETs%3CBR%20%2F%3E%3CBR%20%2F%3E2.%20I%20tried%20locating%20the%20receive%20buffer%20in%20OCR1%2C%20OCR2%20and%20SDRAM%20but%20in%20each%20case%20the%20behavior%20is%20exactly%20identical%20-%20the%20exact%20same%20two%20bytes%20sometimes%20wrong%20and%20at%20the%20same%20frequency.%3CBR%20%2F%3E%3CBR%20%2F%3EHere%20are%20some%20memory%20dumps%20in%20the%20three%20new%20RAM%20areas%20showing%20the%20location%20of%20the%20data%20(again%20with%20the%20differences%20being%20seen)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3ESDRAM%20(0x80000000)%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E0x8000003a%20%20%20%20%2071%2072%2073%2074%2075%2076%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvwabcdefghi%0A0x8000062a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x8000063a%20%20%20%20%2071%2072%2073%2074%2075%2076%2068%2069%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvhibcdefghi%0A0x80000c2a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x80000c3a%20%20%20%20%2071%2072%2073%2074%2075%2076%2068%2069%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvhibcdefghi%0A0x8000122a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x8000123a%20%20%20%20%2071%2072%2073%2074%2075%2076%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvwabcdefghi%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3EError%20seen%20at%200x80000c40%2F41%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3EOCR2%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E0x202c122a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x202c123a%20%20%20%20%2071%2072%2073%2074%2075%2076%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvwabcdefghi%0A0x202c182a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x202c183a%20%20%20%20%2071%2072%2073%2074%2075%2076%2068%2069%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvhibcdefghi%0A0x202c1e2a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x202c1e3a%20%20%20%20%2071%2072%2073%2074%2075%2076%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvwabcdefghi%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EError%20seen%20at%200x202c1840%2F41%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3EOCR1%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E0x20241e3a%20%20%20%20%2071%2072%2073%2074%2075%2076%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvwabcdefghi%0A0x2024002a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x2024003a%20%20%20%20%2071%2072%2073%2074%2075%2076%2068%2069%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvhibcdefghi%0A0x2024062a%20%20%20%20%2061%2062%2063%2064%2065%2066%2067%2068%2069%206a%206b%206c%206d%206e%206f%2070%20%20abcdefghijklmnop%0A0x2024063a%20%20%20%20%2071%2072%2073%2074%2075%2076%2077%2061%2062%2063%2064%2065%2066%2067%2068%2069%20%20qrstuvwabcdefghi%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3EError%20seen%20at%200x2040040%2F41%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E3.%20The%20errata%20seems%20to%20suggest%20that%20by%20having%20MUXC_GPR_GPR28%20set%20to%200%20should%20be%20adequate%20to%20avoid%20the%20errata%20in%20TCM%20and%20these%20results%20look%20to%20confirm%20that%20it%20is%20not%20based%20on%20that%20since%20the%20same%20behavior%20is%20seen%20in%20the%20memory%20areas%20that%20should%20also%20not%20be%20affected%20by%20it.%3CBR%20%2F%3E%3CBR%20%2F%3EAre%20there%20any%20further%20suggestions%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%3CBR%20%2F%3E%3CBR%20%2F%3EMark%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%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-2312662%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MIMXRT1170-EVK%20Gig-Ethernet%20receiving%20bad%20content%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2312662%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F1431%22%20target%3D%22_blank%22%3E%40mjbcswitzerland%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThanks%20for%20your%20updated%20information.%3C%2FP%3E%0A%3CDIV%3E%0A%3CDIV%3ESince%20you%20are%20not%20using%20the%20SDK%2C%20I%20suggest%20trying%20the%20NXP%20MCUXpresso%20SDK%20Ethernet%20example.%3CBR%20%2F%3EPlease%20keep%20the%20cache%20handling%20and%20alignment%20settings%20as%20shown%20in%20the%20demo.%3C%2FDIV%3E%0A%3CDIV%3E%3CBR%20%2F%3EIf%20the%26nbsp%3B%20two%E2%80%91byte%20error%20still%20happens%20when%20using%20the%20SDK%20demo%2C%20then%20we%20can%20continue%20with%20deeper%20checks%20as%20the%20next%20step.%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3EBest%20Regards%3C%2FDIV%3E%0A%3CDIV%3EMayLiu%3C%2FDIV%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2314226%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MIMXRT1170-EVK%20Gig-Ethernet%20receiving%20bad%20content%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2314226%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20MayLiu%3CBR%20%2F%3E%3CBR%20%2F%3EIf%20I%20use%20the%20evkmimxrt1170_lwip_ping_bm_cm7%20reference%20I%20don't%20have%20the%20same%20behavior%20-%20in%201Gb%2Fs%20mode%20the%20ping%20responses%20are%20OK.%20(In%20comparison%20my%20setup%20has%20about%205%25%20ping%20responses%20with%20the%20two%20byte%20error%20when%20operating%20at%201Gb%2Fs%20but%20none%20at%20100Mb%2Fs).%3CBR%20%2F%3E%3CBR%20%2F%3EHowever%20it%20is%20not%20that%20easy%20to%20do%20an%20exact%20comparison.%3CBR%20%2F%3EThe%20example%20(as%20it%20is%20delivered)%20uses%20no%20advanced%20modes%20-%20it%20uses%20the%20buffer%20descriptors%20in%20basic%20mode%20without%20their%20advanced%20feature.%20It%20doesn't%20have%20IEEE1588%20time%20sampling%20enabled.%20It%20doesn't%20use%20IP%20checksum%20off-loading%2C%20etc.%3CBR%20%2F%3E%3CBR%20%2F%3ETherefore%20I%20will%20need%20to%20configure%20the%20various%20projects%20in%20a%20number%20of%20modes%20to%20see%20whether%20there%20is%20one%20that%20triggers%20the%20behavior%20(at%201Gb%2Fs).%3CBR%20%2F%3E%3CBR%20%2F%3EIn%20the%20meantime%20it%20would%20be%20useful%20if%20you%20could%20ask%20the%20specialists%20whether%20they%20can%20think%20of%20an%20explanation%20for%20the%201G%20ENET%20controller%20to%20receive%20packets%20correctly%20(passing%20IP%20and%20ICMP%20checksum%20verification)%20but%20storing%20them%20with%20occasional%20two%20byte%20error%20identically%20in%20either%20SDRAM%2C%20OCR1%2C%20OCR2%20or%20ITC%20memory%3F%3CBR%20%2F%3E%3CBR%20%2F%3EToday%20I%20tested%20my%20project%20with%20the%20CM7%20core%20running%20at%20different%20frequencies%20from%20100MHz%20to%201GHz%20just%20to%20be%20sure%20that%20the%20processor's%20own%20operating%20speed%20didn't%20have%20any%20effect.%20The%20behavior%20was%20always%20identical%2C%20which%20is%20however%20essentially%20as%20expected%20based%20on%20the%20fact%20that%20the%20ENET's%20clocking%20and%20the%20CM7's%20clocking%20are%20independent%20from%20another%20(but%20I%20remember%20some%20devices%20where%20there%20was%20a%20lower%20limit%20to%20the%20CPU's%20frequency%20for%20correct%20Ethernet%20operation%2C%20so%20I%20wanted%20to%20be%20sure).%3CBR%20%2F%3E%3CBR%20%2F%3EDon't%20forget%20that%20when%20the%20ENET%20auto-negotiates%20to%20100Mb%2Fs%20there%20are%20never%20any%20such%20errors%2C%20meaning%20that%20the%20basic%20operation%20(buffer%20and%20memory%20alignment%20and%20such)%20doesn't%20seem%20to%20be%20the%20underlying%20factor.%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%2C%20regards%3CBR%20%2F%3E%3CBR%20%2F%3EMark%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2315166%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MIMXRT1170-EVK%20Gig-Ethernet%20receiving%20bad%20content%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2315166%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F1431%22%20target%3D%22_blank%22%3E%40mjbcswitzerland%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%0A%3CP%3EThanks%20for%20your%20updated%20information.%3C%2FP%3E%0A%3CDIV%3E%0A%3CP%3EBased%20on%20your%20feedback%20information%20%2C%20this%20issue%20is%20very%20unlikely%20to%20be%20related%20to%20the%20physical%20link.%3C%2FP%3E%0A%3CP%3E1%3A%26nbsp%3B%20%26nbsp%3BPlease%20enforce%20Non%E2%80%91Cacheable%20%2B%20Properly%20Aligned%20ENET%20Buffers%3CBR%20%2F%3ETo%20avoid%20Cortex%E2%80%91M7%20cache%20coherency%20issues%2C%20place%20the%20RX%20and%20TX%20descriptors%20and%20data%20buffers%20in%20a%20Non%E2%80%91Cacheable%20memory%20region%2C%20and%20make%20sure%20they%20are%20properly%20aligned.%3CBR%20%2F%3EYou%20may%20configure%20a%20region%20in%20OCRAM%20or%20SDRAM%20as%20Non%E2%80%91Cacheable%20by%20using%20the%20MPU.%3CBR%20%2F%3EYou%20can%20refer%20to%20the%20NXP%20SDK%20demo%20and%20the%20application%20note%20below%3A%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fapplication-note%2FAN12042.pdf%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fapplication-note%2FAN12042.pdf%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E2%3A%26nbsp%3B%20Please%20verify%20the%20ETH_PAD_SIZE%20configuration%3CBR%20%2F%3EMake%20sure%20the%20padding%20setting%20matches%20your%20driver%20usage.%3C%2FP%3E%0A%3C%2FDIV%3E%0A%3CP%3EBest%20Regards%3C%2FP%3E%0A%3CP%3EMayLiu%3C%2FP%3E%3C%2FLINGO-BODY%3E