When developing the Ethernet driver (for a RTOS) for the i.MX6Q (Sabre Platform) ENET module, I observed that the maximum receive buffer size limit for each Rx descriptor is 2032 bytes. That is, a single descriptor can hold a frame of length of up to 2032 bytes. If the descriptor length is larger than 2032 bytes, then it gets scattered into multiple descriptors.
I am not sure why this limitation is there. I couldn't find any such limitation in the i.MX6Q hardware specification. The maximum size of all receive buffers depends on the ENET_MRBR register value. According to the specification, the maximum receive buffer size (ENET_MRBR) is 14 bits long and the maximum value of the register can be 0x3FF0 (16368 bytes in decimal). But as per my observation, the register value is always considered as 11 bits long. That is why, the maximum value gets restricted to 0x7F0 bytes (2032 bytes in decimal).
Can you anyone shed some light on this?