net: mvneta: dcache flush TX descriptors at init
authorRabeeh Khoury <rabeeh@solid-run.com>
Tue, 19 Jun 2018 18:36:50 +0000 (21:36 +0300)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 2 Jul 2018 19:14:20 +0000 (14:14 -0500)
This fixes sporadic timeout on initial packet Tx (usually ARP), with an
error message like:

  timeout: packet not sent

Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Chris Packham <judge.packham@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
drivers/net/mvneta.c

index 45e5eda95522c0f588e4878ee2e46e1fd59be854..254dd04697dbc8668e1dc031c1957f061c92dd75 100644 (file)
@@ -1702,6 +1702,7 @@ static int mvneta_probe(struct udevice *dev)
 
                /* Align buffer area for descs and rx_buffers to 1MiB */
                bd_space = memalign(1 << MMU_SECTION_SHIFT, BD_SPACE);
+               flush_dcache_range((ulong)bd_space, (ulong)bd_space + BD_SPACE);
                mmu_set_region_dcache_behaviour((phys_addr_t)bd_space, BD_SPACE,
                                                DCACHE_OFF);
                buffer_loc.tx_descs = (struct mvneta_tx_desc *)bd_space;