mpc83xx: mpc8360emds: Don't use LBC SDRAM when DDR is available
authorAnton Vorontsov <avorontsov@ru.mvista.com>
Wed, 16 Sep 2009 19:21:57 +0000 (23:21 +0400)
committerKim Phillips <kim.phillips@freescale.com>
Fri, 25 Sep 2009 23:25:51 +0000 (18:25 -0500)
Since commit 5c2ff323a94e27e481f70c44838d43fcd844dd46 ("mpc8360emds:
rework LBC SDRAM setup"), LBC SDRAM is available for use in Linux.

Though, it appears that QE Ethernet in Gigabit mode can't transmit
large packets when it tries to work with a data in LBC SDRAM (memtest
didn't discover any issues, is LBC SDRAM just too slow?).

With this patch we can still use the board without DDR memory, but
if DDR is available, we don't use LBC SDRAM.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
board/freescale/mpc8360emds/mpc8360emds.c

index dc4dbd3c3a567556cf59f737a42cf814ae43ceaf..769eb2f11f46046821cfb28610b5466561f3286d 100644 (file)
@@ -126,6 +126,7 @@ phys_size_t initdram(int board_type)
 {
        volatile immap_t *im = (immap_t *) CONFIG_SYS_IMMR;
        u32 msize = 0;
+       u32 lbc_sdram_size;
 
        if ((im->sysconf.immrbar & IMMRBAR_BASE_ADDR) != (u32) im)
                return -1;
@@ -147,7 +148,9 @@ phys_size_t initdram(int board_type)
        /*
         * Initialize SDRAM if it is on local bus.
         */
-       msize += sdram_init(msize * 1024 * 1024);
+       lbc_sdram_size = sdram_init(msize * 1024 * 1024);
+       if (!msize)
+               msize = lbc_sdram_size;
 
        /* return total bus SDRAM size(bytes)  -- DDR */
        return (msize * 1024 * 1024);