Describe the bug
I noticed that there is a new issue in the Zynq port with the newest release 4.3.2. There was an additional check added to pxGetNetworkBufferWithDescriptor here:
|
( xRequestedSizeBytes <= ( ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER ) ) ) |
So the function does not succeed if the requested bytes is greater than ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER (normally 1500 + 14)
The Zynq port calls the function using dmaRX_TX_BUFFER_SIZE which is defined to 1536, so the function fails.
|
pxNewBuffer = pxGetNetworkBufferWithDescriptor( dmaRX_TX_BUFFER_SIZE, ( TickType_t ) 0 ); |
I'm not familiar enough with it, but is the solution to reduce the value of dmaRX_TX_BUFFER_SIZE?
Target
- IDE and version: Xilinx Vitis 2024.2
Host
Describe the bug
I noticed that there is a new issue in the Zynq port with the newest release 4.3.2. There was an additional check added to
pxGetNetworkBufferWithDescriptorhere:FreeRTOS-Plus-TCP/source/portable/BufferManagement/BufferAllocation_1.c
Line 241 in 28dd66c
So the function does not succeed if the requested bytes is greater than
ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER(normally 1500 + 14)The Zynq port calls the function using
dmaRX_TX_BUFFER_SIZEwhich is defined to 1536, so the function fails.FreeRTOS-Plus-TCP/source/portable/NetworkInterface/Zynq/x_emacpsif_dma.c
Line 525 in 28dd66c
I'm not familiar enough with it, but is the solution to reduce the value of
dmaRX_TX_BUFFER_SIZE?Target
Host