public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] at91_emac: fix compile warning
@ 2011-06-09 10:22 Andreas Bießmann
  2011-06-09 11:08 ` Reinhard Meyer
  2011-06-12 10:08 ` Andreas Bießmann
  0 siblings, 2 replies; 6+ messages in thread
From: Andreas Bießmann @ 2011-06-09 10:22 UTC (permalink / raw)
  To: u-boot

This patch removes the warning

---8<---
at91_emac.c: In function 'at91emac_write_hwaddr':
at91_emac.c:487:2: warning: dereferencing type-punned pointer will break strict-aliasing rules
--->8---

Signed-off-by: Andreas Bie?mann <andreas.devel@gmail.com>
---
BEWARE! This patch is only compile tested!

It is possible, that there is an endianess problem. It would be great, if one
could test it on real hardware!

Reinhard, you could adopt the macb driver also to get the warning there fixed.
If it works on at91sam this way it would also work on at91rm9200 cause they have the
same endianess.

 drivers/net/at91_emac.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/at91_emac.c b/drivers/net/at91_emac.c
index b09ff8c..97d2739 100644
--- a/drivers/net/at91_emac.c
+++ b/drivers/net/at91_emac.c
@@ -481,11 +481,13 @@ static int at91emac_write_hwaddr(struct eth_device *netdev)
 	dev = (emac_device *) netdev->priv;
 
 	writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
-	DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
-		cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))),
-		cpu_to_le32(*((u32 *)netdev->enetaddr)));
-	writel(cpu_to_le32(*((u32 *)netdev->enetaddr)), &emac->sa2l);
-	writel(cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))), &emac->sa2h);
+	DEBUG_AT91EMAC("init MAC-ADDR %02x:%02x:%02x:%02x:%02x:%02x\n",
+		netdev->enetaddr[5], netdev->enetaddr[4], netdev->enetaddr[3],
+		netdev->enetaddr[2], netdev->enetaddr[1], netdev->enetaddr[0]);
+	writel( (netdev->enetaddr[0] | netdev->enetaddr[1] << 8 |
+			netdev->enetaddr[2] << 16 | netdev->enetaddr[3] << 24),
+			&emac->sa2l);
+	writel((netdev->enetaddr[4] | netdev->enetaddr[5] << 8), &emac->sa2h);
 	DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
 		readl(&emac->sa2h), readl(&emac->sa2l));
 	return 0;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-06-12 10:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-09 10:22 [U-Boot] [PATCH] at91_emac: fix compile warning Andreas Bießmann
2011-06-09 11:08 ` Reinhard Meyer
2011-06-09 11:26   ` Andreas Bießmann
2011-06-09 12:06     ` Reinhard Meyer
2011-06-09 12:13       ` Andreas Bießmann
2011-06-12 10:08 ` Andreas Bießmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox