From e2a62ac8145e116f814dbc924370e359499ef318 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 20 Jul 2015 07:05:35 -0600 Subject: [PATCH] STM32 F7 Ethernet: RX/TX descriptors should be flushed to memory when they are first initialized --- arch/arm/src/stm32f7/stm32_ethernet.c | 14 +++++++++++++- configs | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/stm32f7/stm32_ethernet.c b/arch/arm/src/stm32f7/stm32_ethernet.c index e19d1d8b92..aae5edcd24 100644 --- a/arch/arm/src/stm32f7/stm32_ethernet.c +++ b/arch/arm/src/stm32f7/stm32_ethernet.c @@ -2984,7 +2984,13 @@ static void stm32_txdescinit(struct stm32_ethmac_s *priv, } } - /* Set Transmit Desciptor List Address Register */ + /* Flush all of the initialized TX descriptors to physical memory */ + + arch_clean_dcache((uintptr_t)txtable, + (uintptr_t)txtable + + TXTABLE_SIZE * sizeof(union stm32_txdesc_u)); + + /* Set Transmit Descriptor List Address Register */ stm32_putreg((uint32_t)&txtable[0].txdesc, STM32_ETH_DMATDLAR); } @@ -3068,6 +3074,12 @@ static void stm32_rxdescinit(struct stm32_ethmac_s *priv, } } + /* Flush all of the initialized RX descriptors to physical memory */ + + arch_clean_dcache((uintptr_t)rxtable, + (uintptr_t)rxtable + + RXTABLE_SIZE * sizeof(union stm32_rxdesc_u)); + /* Set Receive Descriptor List Address Register */ stm32_putreg((uint32_t)&rxtable[0].rxdesc, STM32_ETH_DMARDLAR); diff --git a/configs b/configs index d8f3b1da89..78716e8dba 160000 --- a/configs +++ b/configs @@ -1 +1 @@ -Subproject commit d8f3b1da89695fc704fc1e2e405c2879210becc5 +Subproject commit 78716e8dbacee7ffe65016ab5511c248835341c8