STM32 gotchas
161. No connectivity from ETH and OTG-HS to FLASH in 'F407 and 'F446 (so ETH/USB won't transmit const data)

The ETH and OTH_HS modules incorporate a DMA unit, which after having been set up, transfer data autonomously from/to the interface to/from memory. For this, they have a master connection to the AHB bus matrix, where the memories are connected as slaves.

In 'F407 (and 'F417; also in 'F405/'F415 and in 'F446 which do have OTG-HS but don't have ETH) bus matrix, these modules don't have connectivity to every memory in the system - namely they cannot access the FLASH.

The practical consequence is, that ETH and OTH_HS (in DMA mode) in these STM32 models cannot transmit data from FLASH. As compilers usually place data qualified as const into FLASH, those data cannot be transmitted. If the software/drivers for these modules are not written to meticulously check all errors, upon attempting to transmit such data they simply cease to work. In case of ETH, this for example may mean that a device based on STM32F407 ceases to respond to pings, if it attempts to serve a web-page from internal FLASH (as noticed by user DMart, with explanation provided by Mahdy Sghaier (ST Employee)).

In 'F427/'F429 - successors to 'F407 - this limitation is not present.