* Patches by Sean Chang, 09 Aug 2004:
[platform/kernel/u-boot.git] / common / cmd_ace.c
index 4969811..c5b08bf 100644 (file)
  */
 static unsigned ace_readw(unsigned offset)
 {
-      return readw(CFG_SYSTEMACE_BASE+offset);
+#if (CFG_SYSTEMACE_WIDTH == 8)
+  u16 temp;
+
+#if !defined(__BIG_ENDIAN)
+  temp =((u16)readb(CFG_SYSTEMACE_BASE+offset) << 8);
+  temp |= (u16)readb(CFG_SYSTEMACE_BASE+offset+1);
+#else
+  temp = (u16)readb(CFG_SYSTEMACE_BASE+offset);
+  temp |=((u16)readb(CFG_SYSTEMACE_BASE+offset+1) << 8);
+#endif
+  return temp;
+#else
+  return readw(CFG_SYSTEMACE_BASE+offset);
+#endif
 }
 
 static void ace_writew(unsigned val, unsigned offset)
 {
-      writew(val, CFG_SYSTEMACE_BASE+offset);
+#if (CFG_SYSTEMACE_WIDTH == 8)
+#if !defined(__BIG_ENDIAN)
+  writeb((u8)(val>>8), CFG_SYSTEMACE_BASE+offset);
+  writeb((u8)val, CFG_SYSTEMACE_BASE+offset+1);
+#else
+  writeb((u8)val, CFG_SYSTEMACE_BASE+offset);
+  writeb((u8)(val>>8), CFG_SYSTEMACE_BASE+offset+1);
+#endif
+#else
+  writew(val, CFG_SYSTEMACE_BASE+offset);
+#endif
 }
 
 /* */