Porting a K65 project to SDK 2.11.0, I was having issues with receiving packets over ethernet and discovered that the Rx Buffer Descriptors are not setup properly. In fsl_enet.c ENET_SetRxBufferDescriptors(), the control register is never initialized when using the new zero-copy buffer allocation method in enet_ethernetif_kinetis.c.
if (config->rxBuffAlloc == NULL)
{
curBuffDescrip->buffer = (uint8_t *)((uint32_t)&rxBuffer[count * rxBuffSizeAlign]);
/* Initializes the buffer descriptors with empty bit. */
curBuffDescrip->control = ENET_BUFFDESCRIPTOR_RX_EMPTY_MASK;
}Because rxBuffAlloc is defined, moving the initialization outside of this conditional solves the issue.
if (config->rxBuffAlloc == NULL)
{
curBuffDescrip->buffer = (uint8_t *)((uint32_t)&rxBuffer[count * rxBuffSizeAlign]);
}
/* Initializes the buffer descriptors with empty bit. */
curBuffDescrip->control = ENET_BUFFDESCRIPTOR_RX_EMPTY_MASK;