summaryrefslogtreecommitdiff
path: root/board/flagadm/flash.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2009-09-15 00:09:21 +0200
committerTom Rix <Tom.Rix@windriver.com>2009-10-03 09:04:30 -0500
commitd4a1561a847e96af66773789fda7dc2a9ab7ebfc (patch)
tree06ab5376539b089f2ecd0262e6a31e316d755f46 /board/flagadm/flash.c
parentef6061e49ba66ecfec09f0049ba22ce3f5125c11 (diff)
downloadu-boot-imx-d4a1561a847e96af66773789fda7dc2a9ab7ebfc.zip
u-boot-imx-d4a1561a847e96af66773789fda7dc2a9ab7ebfc.tar.gz
u-boot-imx-d4a1561a847e96af66773789fda7dc2a9ab7ebfc.tar.bz2
board/flagadm/flash.c: fix compile warning
Fix warning: flash.c:531: warning: dereferencing type-punned pointer will break strict-aliasing rules Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Kári Davíđsson <kd@flaga.is>
Diffstat (limited to 'board/flagadm/flash.c')
-rw-r--r--board/flagadm/flash.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/board/flagadm/flash.c b/board/flagadm/flash.c
index bbefbac..a69b1a4 100644
--- a/board/flagadm/flash.c
+++ b/board/flagadm/flash.c
@@ -528,11 +528,17 @@ int write_word (flash_info_t *info, ulong dest, ulong da)
ulong start;
char csr;
int flag;
- ushort * d = (ushort*)&da;
int i;
+ union {
+ u32 data32;
+ u16 data16[2];
+ } data;
+
+ data.data32 = da;
/* Check if Flash is (sufficiently) erased */
- if (((*addr & d[0]) != d[0]) || ((*(addr+1) & d[1]) != d[1])) {
+ if (((*addr & data.data16[0]) != data.data16[0]) ||
+ ((*(addr+1) & data.data16[1]) != data.data16[1])) {
return (2);
}
/* Disable interrupts which might cause a timeout here */
@@ -544,7 +550,7 @@ int write_word (flash_info_t *info, ulong dest, ulong da)
*addr = 0x0010;
/* Write Data */
- *addr = d[i];
+ *addr = data.data16[i];
/* re-enable interrupts if necessary */
if (flag)