ColdFire: Fix M5253EVB dram bring up issue
authorTsiChung Liew <Tsi-Chung.Liew@freescale.com>
Wed, 6 Aug 2008 19:11:36 +0000 (14:11 -0500)
committerJohn Rigby <jrigby@freescale.com>
Thu, 14 Aug 2008 18:30:10 +0000 (12:30 -0600)
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
board/freescale/m5253evbe/m5253evbe.c

index f80a47c7b77db2fc3c326bbfc0c0a1a3c5f424bf..f3b1efdb28b4b6abe2989dd4a8d05144fd4f8e12 100644 (file)
@@ -36,8 +36,6 @@ int checkboard(void)
 
 phys_size_t initdram(int board_type)
 {
-       int i;
-
        /*
         * Check to see if the SDRAM has already been initialized
         * by a run control tool
@@ -50,21 +48,27 @@ phys_size_t initdram(int board_type)
 
                /* Initialize DRAM Control Register: DCR */
                mbar_writeShort(MCFSIM_DCR, (0x8400 | RC));
+               asm("nop");
 
-               mbar_writeLong(MCFSIM_DACR0, 0x00003224);
+               mbar_writeLong(MCFSIM_DACR0, 0x00002320);
+               asm("nop");
 
                /* Initialize DMR0 */
                dramsize = ((CFG_SDRAM_SIZE << 20) - 1) & 0xFFFC0000;
                mbar_writeLong(MCFSIM_DMR0, dramsize | 1);
+               asm("nop");
 
-               mbar_writeLong(MCFSIM_DACR0, 0x0000322c);
+               mbar_writeLong(MCFSIM_DACR0, 0x00002328);
+               asm("nop");
 
                /* Write to this block to initiate precharge */
                *(u32 *) (CFG_SDRAM_BASE) = 0xa5a5a5a5;
+               asm("nop");
 
                /* Set RE bit in DACR */
                mbar_writeLong(MCFSIM_DACR0,
                               mbar_readLong(MCFSIM_DACR0) | 0x8000);
+               asm("nop");
 
                /* Wait for at least 8 auto refresh cycles to occur */
                udelay(500);
@@ -72,6 +76,7 @@ phys_size_t initdram(int board_type)
                /* Finish the configuration by issuing the MRS */
                mbar_writeLong(MCFSIM_DACR0,
                               mbar_readLong(MCFSIM_DACR0) | 0x0040);
+               asm("nop");
 
                *(u32 *) (CFG_SDRAM_BASE + 0x800) = 0xa5a5a5a5;
        }