]> git.sur5r.net Git - u-boot/blobdiff - drivers/systemace.c
new: USE_MSR_INTR support
[u-boot] / drivers / systemace.c
index 634aa9ba7d1fc1d1c3d81f4034cbf3b870288ec7..c9fd5f16701872cac07c4d4dacb7af11316aefc1 100644 (file)
 #if (CFG_SYSTEMACE_WIDTH == 8)
 #if !defined(__BIG_ENDIAN)
 #define ace_readw(off) ((readb(CFG_SYSTEMACE_BASE+off)<<8) | \
-                        (readb(CFG_SYSTEMACE_BASE+off+1)))
+                       (readb(CFG_SYSTEMACE_BASE+off+1)))
 #define ace_writew(val, off) {writeb(val>>8, CFG_SYSTEMACE_BASE+off); \
                              writeb(val, CFG_SYSTEMACE_BASE+off+1);}
 #else
 #define ace_readw(off) ((readb(CFG_SYSTEMACE_BASE+off)) | \
-                        (readb(CFG_SYSTEMACE_BASE+off+1)<<8))
+                       (readb(CFG_SYSTEMACE_BASE+off+1)<<8))
 #define ace_writew(val, off) {writeb(val, CFG_SYSTEMACE_BASE+off); \
                              writeb(val>>8, CFG_SYSTEMACE_BASE+off+1);}
 #endif
@@ -73,7 +73,7 @@
 /* */
 
 static unsigned long systemace_read(int dev, unsigned long start,
-                                    unsigned long blkcnt, void *buffer);
+                                   unsigned long blkcnt, void *buffer);
 
 static block_dev_desc_t systemace_dev = { 0 };
 
@@ -137,7 +137,7 @@ block_dev_desc_t *systemace_get_dev(int dev)
  * number of blocks read. A zero return indicates an error.
  */
 static unsigned long systemace_read(int dev, unsigned long start,
-                                    unsigned long blkcnt, void *buffer)
+                                   unsigned long blkcnt, void *buffer)
 {
        int retry;
        unsigned blk_countdown;
@@ -211,10 +211,16 @@ static unsigned long systemace_read(int dev, unsigned long start,
                /* Write sector count | ReadMemCardData. */
                ace_writew((trans & 0xff) | 0x0300, 0x14);
 
+/* 
+ * For FPGA configuration via SystemACE is reset unacceptable
+ * CFGDONE bit in STATUSREG is not set to 1.
+ */
+#ifndef SYSTEMACE_CONFIG_FPGA
                /* Reset the configruation controller */
                val = ace_readw(0x18);
                val |= 0x0080;
                ace_writew(val, 0x18);
+#endif
 
                retry = trans * 16;
                while (retry > 0) {