Problem with FreeRTOS+TCP on NXP RT1064 custom board

Hi all,

I am building a custom board using a NXP RT1064 crossover processor and I want to implement FreeRTOS+TCP as communication stack.

Therefore I had a look on the actual +TCP download package which has version 4.0.999 and I was happy to find a network interface driver for RT1060 (NXP1060) which is appart from not having an internal FLASH the same chip as RT1064.

I implemented the +TCP sources into my MCUXPRESSO project and found out, that the latest compatible MCUXPressor-SDK is version 2.12.1 (from fall 2022).

I was able to compile using SDK 2.12.1 without any errors nor warnings and when I run the code I get the following debug outputs:

[FreeRTOS_AddEndPoint]  FreeRTOS_AddEndPoint: MAC: 30-4c IPv4: c0a80001ip

[prvIPTask]  prvIPTask started

[xSetupPHY]  Starting PHY initialization.
[prvNXP1060_NetworkInterfaceInitialise]  Configuration successful. Waiting for link to go up and auto-negotiation to complete.
[xWaitPHY]  Link up.
[xWaitPHY]  Waiting for auto-negotiation to complete.
[xWaitPHY]  Auto-negotiation complete.
[xEMACInit]  ENET initialized.
[prvNXP1060_NetworkInterfaceInitialise]  Driver ready for use.

So far, I was quite happy as it looks like the stack is running and the interface is up.

But I cant receive nor send anything - when the stack just runs for a while, I get the following outputs from time to time:

[prvNXP1060_NetworkInterfaceOutput]  Failed to send the frame - driver busy!
[prvNXP1060_NetworkInterfaceOutput]  Failed to send the frame - driver busy!
[prvNXP1060_NetworkInterfaceOutput]  Failed to send the frame - driver busy!
[prvNXP1060_NetworkInterfaceOutput]  Failed to send the frame - driver busy!

I put Breakpoints into the IRQ handler in “fsl_enet.c”:

  • ENET_TransmitIRQHandler
  • ENET_ReceiveIRQHandler
  • ENET_ErrorIRQHandler

but they are never reached.

The only thing, what is realized is “link up”/“link down” when I remove the ethernet cable.

So I think I missed something in the initialization maybe and I have the following questions:

  1. Is MCUXPresso SDK 2.12.1 the right version?
  2. Is there an example project using MCUXPresso SDK (maybe also ready for MCUXpresso itself)?
  3. Can someone point me some spots where I should have a look in the code to get more usable information or which I have to fix?

Best regards,

Marco.

If it is a custom board, hardware problems can not be ruled out - do you have access to a barebone code reference without an RTOS, just so a minimal configuration can prove the hardware correct with as few software components as possible active?

Next thing I would check is the (R)MII interface. I wouldn’t rely on the debug output claiming that the PHY could be successfully initialized. Can you trace the communication between the MCU and the PHY?