Adrian Figueroa wrote:
I can see some errors in low_level_output() in ethernetif.c.
This fails:
if((DmaTxDesc->Status & ETH_DMATXDESC_OWN) != (uint32_t)RESET)
{
errval = ERR_USE;
goto error;
}
I don't know the F7 driver, but my F4 driver seems to have
This again suggests that the ST provided driver is flawed (which is very
possible).
I have a transfer rate of around 10 Mbit/s with this window size, which is not
great yet. In fact, I need more than this.
Can you point me to some resources with regard to writing a driver/debugging
it?
Adrian Figueroa wrote::
>I have no idea why I have no packet loss with TCP_WND and TCP_SND_BUF
>set to 2xTCP_MSS. Instead, I get rare ZeroWindow errors from my PC.
Because you don't fill your DMA buffers in this case and as a result, you don't
drop tx segments.
Implementing a zero copy driver
I think so. At least I receive all my data intact after a few retransmissions.
Also, some block transfers complete without any retransmissions (32kByte size
per block).
Also, the DMA error was fixed by disabling the CPU caches (I- and D-cache).
Some registers are not set instantly, it seems. I
On Sep 14, 2017, at 5:09 AM, Adrian Figueroa
wrote:
>
> I did some more testing and it does not seem to be systematic. As lwIP is not
> showing errors in any of the stats, it is likely not its fault.
>
> Do you have any suggestions on how to find the reason for
Adrian Figueroa wrote:
>This fails:
>
> if((DmaTxDesc->Status & ETH_DMATXDESC_OWN) != (uint32_t)RESET)
> {
>errval = ERR_USE;
>goto error;
> }
>
>When DmaTxDesc->Status equals 818937856. What does this mean? Is the
>DMA used by something else?
I could mean your