S32R294 Enet Rx IRQ not entered

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

S32R294 Enet Rx IRQ not entered

1,164 Views
zhuoruc
Contributor I

S32R294 Enet Rx IRQ not entered

We found a problem that we use MAC:S32R294 ENET with PHY:88Q2110 to transefer 1000Base-T1 ethernet packages.

MCU sometimes received some wrong data cause of the channel disturbance on 1000Base-T1. Sometimes the data bytes is wrong, and other times the packages are spliced unintendeely.

The problem is that, once the BABR bit is set in EIR, the receive frame/buffer interrupt can not enter any longer, althrough the receive counter in statistics register is added.

We try to clear the BABR bit in error irq, but it helps nothing. How to solve this problem? Thanks.

0 Kudos
7 Replies

1,040 Views
zhuoruc
Contributor I

We compare the module dump(start at 0xFC080000), the module memory dump in the failure situtation is same as the dump memory once enet finish to initialize itself, excepet for statistics registers.

The icache and dcache is disable at startup.s

Dest, Source MAC address is checked(work in PROMISCUOUS_MODE can reproduce the same problem).

New finding is that , this problem can reproduce even if there is no error event during the whole test, but rx event can not entered after enet receive ethernet frames for a period of time.But, the rx statistic register add normally at this time.

So we suppose that when a disturbance on a "special position in the ethernet frame", enet receive the frame, and after that the enet state machine might to be locked.

0 Kudos

1,040 Views
PetrS
NXP TechSupport
NXP TechSupport

last idea I have...use more descriptors in the ring.

BR, Petr

0 Kudos

1,040 Views
zhuoruc
Contributor I

Hi Petr, thanks so much for your support. We will try to investigate and do what we can except it is a module design problem locks the module if a speical frame received.

0 Kudos

1,040 Views
zhuoruc
Contributor I

Hi Petr,

I reproduce the problem, and check both of RxBD[E] and RDAR are set.

But the rx interrupt event still not entered.

The rxbd dump after reproduce the problem as following.data.png

0 Kudos

1,040 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

descriptor looks normal, I think. Further hints:

- compare configuration/registers upon init and after issue appears

- be sure descriptors and buffers are not cached

- be sure it is not address check issue

BR, Petr

0 Kudos

1,040 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

do you clear BABR properly, means just BABR bit?

After that, do you have still some RX descriptor empty a ready for receiving, i.e. having RxDB[E] set and RDAR bit set?

BR, Petr 

0 Kudos

1,040 Views
zhuoruc
Contributor I

Dear Petr,

After this siutuation occurs(rx event flag do not set any longer), I pause the MCU by debugger, and dump the ENET module. Then I send a frame on my PC, and dump the ENET module again. The rx counter in register is able to see it is increased. But no rx event set in interrupt flag during the test.

enet.png

0 Kudos