Ethernet TX doesn't work because ETH_DMATxDescListInit() doesn't initialize the entire ETH_DMADescTypeDef
The officially recommended recipe for lwIP on STM32H7 puts the ethernet DMA descriptors in SRAM1. SRAM1 is not zero'd by the default startup code.It's unsafe for the network drivers to assume that buffers and critical data structures live in .bss.F...