Skip to contentSkip to conversation

net: sh_eth: add cache handling

PATCH Superseded Yoshihiro Shimoda 3 participants 5 messages Jan 17, 2011 – Jan 19, 2011 Network drivers

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 net: sh_eth: add cache handling

Some CPU needs cache handling. So this patch add the config of CONFIG_SH_ETHER_CACHE_WRITEBACK, and it calls wback function.

---
 drivers/net/sh_eth.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
drivers/net/sh_eth.c +9 -0
index 86cc324..53d918d 100644
@@ -36,6 +36,12 @@
 #ifndef CONFIG_SH_ETHER_PHY_ADDR
 # error "Please define CONFIG_SH_ETHER_PHY_ADDR"
 #endif
+#ifdef CONFIG_SH_ETHER_CACHE_WRITEBACK
+#define flush_cache_wback(addr, len)	\
+			dcache_wback_range((u32)addr, (u32)(addr + len - 1))
+#else
+#define flush_cache_wback(...)
+#endif
 
 #define SH_ETH_PHY_DELAY 50000
 
@@ -197,6 +203,7 @@ int sh_eth_send(struct eth_device *dev, volatile void *packet, int len)
 	}
 
 	/* Update tx descriptor */
+	flush_cache_wback(packet, len);
 	port_info->tx_desc_cur->td2 = ADDR_TO_PHY(packet);
 	port_info->tx_desc_cur->td1 = len << 16;
 	/* Must preserve the end of descriptor list indication */
@@ -312,6 +319,7 @@ static int sh_eth_tx_desc_init(struct sh_eth_dev *eth)
 
 	tmp_addr = (u32) (((int)port_info->tx_desc_malloc + TX_DESC_SIZE - 1) &
 			  ~(TX_DESC_SIZE - 1));
+	flush_cache_wback(tmp_addr, NUM_TX_DESC * sizeof(struct tx_desc_s));
 	/* Make sure we use a P2 address (non-cacheable) */
 	port_info->tx_desc_base = (struct tx_desc_s *)ADDR_TO_P2(tmp_addr);
 	port_info->tx_desc_cur = port_info->tx_desc_base;
@@ -361,6 +369,7 @@ static int sh_eth_rx_desc_init(struct sh_eth_dev *eth)
 
 	tmp_addr = (u32) (((int)port_info->rx_desc_malloc + RX_DESC_SIZE - 1) &
 			  ~(RX_DESC_SIZE - 1));
+	flush_cache_wback(tmp_addr, NUM_RX_DESC * sizeof(struct rx_desc_s));
 	/* Make sure we use a P2 address (non-cacheable) */
 	port_info->rx_desc_base = (struct rx_desc_s *)ADDR_TO_P2(tmp_addr);
 
Signature · 1 line
1.7.1
#1 lore raw

PATCH 1/2 net: sh_eth: add cache handling

Quoted 8 lines · Yoshihiro Shimoda

Some CPU needs cache handling. So this patch add the config of CONFIG_SH_ETHER_CACHE_WRITEBACK, and it calls wback function.

---
 drivers/net/sh_eth.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

Applied, thank.
Nobuhiro

#2 lore raw

PATCH 1/2 net: sh_eth: add cache handling

Dear Nobuhiro Iwamatsu,

Quoted 10 lines · In message <[email protected]> you wrote:
Quoted 8 lines · Yoshihiro Shimoda

Some CPU needs cache handling. So this patch add the config of CONFIG_SH_ETHER_CACHE_WRITEBACK, and it calls wback function.

---
 drivers/net/sh_eth.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

Applied, thank.

You are a bit fast. Network code should go throughthe network custodian, or at least it requires his ACK.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
How does a project get to be a year late?      ... One day at a time.
#3 lore raw

PATCH 1/2 net: sh_eth: add cache handling

In reply to Yoshihiro Shimoda

Dear Yoshihiro Shimoda,

Quoted 13 lines · In message <[email protected]> you wrote:

Some CPU needs cache handling. So this patch add the config of CONFIG_SH_ETHER_CACHE_WRITEBACK, and it calls wback function.

---
 drivers/net/sh_eth.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
drivers/net/sh_eth.c +0 -0
index 86cc324..53d918d 100644

drivers/net/sh_eth.c line 44

Quoted 9 lines
drivers/net/sh_eth.c +6 -0
@@ -36,6 +36,12 @@
 #ifndef CONFIG_SH_ETHER_PHY_ADDR
 # error "Please define CONFIG_SH_ETHER_PHY_ADDR"
 #endif
+#ifdef CONFIG_SH_ETHER_CACHE_WRITEBACK
+#define flush_cache_wback(addr, len)	\
+			dcache_wback_range((u32)addr, (u32)(addr + len - 1))
+#else
+#define flush_cache_wback(...)
+#endif

New config options must be documented in the README.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
When all is said and done, more is said than done.
#4 lore raw

PATCH 1/2 net: sh_eth: add cache handling

Dear Wolfgang Denk,

Quoted 18 lines · Wolfgang Denk

Dear Yoshihiro Shimoda,

drivers/net/sh_eth.c line 44

Quoted 12 lines · In message <[email protected]> you wrote:
drivers/net/sh_eth.c +6 -0
@@ -36,6 +36,12 @@
 #ifndef CONFIG_SH_ETHER_PHY_ADDR
 # error "Please define CONFIG_SH_ETHER_PHY_ADDR"
 #endif
+#ifdef CONFIG_SH_ETHER_CACHE_WRITEBACK
+#define flush_cache_wback(addr, len)	\
+			dcache_wback_range((u32)addr, (u32)(addr + len - 1))
+#else
+#define flush_cache_wback(...)
+#endif

New config options must be documented in the README.

I will document about this option in the README.
The README isn't written about the driver now,
so I will document about this driver first.

Best regards,
Yoshihiro Shimoda