found it. DMA can obviously not handle fragmented pbufs to receive packets. -> debug cleanup needed

This commit is contained in:
2024-08-22 18:14:51 +02:00
parent 497e380860
commit ae47ca8291
5 changed files with 37 additions and 3 deletions

View File

@ -273,11 +273,20 @@ s32_t xemacpsif_input(struct netif *netif)
/* no packet could be read, silently ignore this */
if (p == NULL) {
outbyte('x');
return 0;
}
/* points to packet payload, which starts with an Ethernet header */
ethhdr = p->payload;
xil_printf(" %p",p->payload);
for (int j = 0; j < 6; j++) {
for (int i = 0; i < 8; i++) {
xil_printf(" %02x", *((uint8_t *)(p->payload) + i + j * 8 ) );
}
xil_printf("\n");
}
#if LINK_STATS
lwip_stats.link.recv++;
@ -298,13 +307,19 @@ s32_t xemacpsif_input(struct netif *netif)
#endif /* PPPOE_SUPPORT */
/* full packet send to tcpip_thread to process */
if (netif->input(p, netif) != ERR_OK) {
outbyte('y');
LWIP_DEBUGF(NETIF_DEBUG, ("xemacpsif_input: IP input error\r\n"));
pbuf_free(p);
p = NULL;
}
outbyte('o');
break;
default:
outbyte('z');
for (int i = 0; i < 14; i++) {
xil_printf(" %02x", *((uint8_t *)(p->payload) + i ) );
}
pbuf_free(p);
p = NULL;
break;