]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'
authorAlbert ARIBAUD <albert.u.boot@aribaud.net>
Fri, 12 Jul 2013 11:20:35 +0000 (13:20 +0200)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Fri, 12 Jul 2013 11:20:35 +0000 (13:20 +0200)
drivers/net/fec_mxc.c
include/configs/m28evk.h
include/configs/mx51evk.h
include/configs/mx53ard.h
include/configs/mx53loco.h
include/configs/mx6qsabrelite.h
include/configs/mx6slevk.h
include/configs/wandboard.h

index da95e285b70db65f1f6bb709414ca5ff5ec2f8b0..ec5b9db660070a8e7825208288b54975c7a2f042 100644 (file)
@@ -560,7 +560,6 @@ static int fec_init(struct eth_device *dev, bd_t* bd)
                }
                memset(fec->tbd_base, 0, size);
                fec_tbd_init(fec);
-               flush_dcache_range((unsigned)fec->tbd_base, size);
        }
 
        /*
@@ -737,6 +736,28 @@ static int fec_send(struct eth_device *dev, void *packet, int length)
        addr = (uint32_t)fec->tbd_base;
        flush_dcache_range(addr, addr + size);
 
+       /*
+        * Below we read the DMA descriptor's last four bytes back from the
+        * DRAM. This is important in order to make sure that all WRITE
+        * operations on the bus that were triggered by previous cache FLUSH
+        * have completed.
+        *
+        * Otherwise, on MX28, it is possible to observe a corruption of the
+        * DMA descriptors. Please refer to schematic "Figure 1-2" in MX28RM
+        * for the bus structure of MX28. The scenario is as follows:
+        *
+        * 1) ARM core triggers a series of WRITEs on the AHB_ARB2 bus going
+        *    to DRAM due to flush_dcache_range()
+        * 2) ARM core writes the FEC registers via AHB_ARB2
+        * 3) FEC DMA starts reading/writing from/to DRAM via AHB_ARB3
+        *
+        * Note that 2) does sometimes finish before 1) due to reordering of
+        * WRITE accesses on the AHB bus, therefore triggering 3) before the
+        * DMA descriptor is fully written into DRAM. This results in occasional
+        * corruption of the DMA descriptor.
+        */
+       readl(addr + size - 4);
+
        /*
         * Enable SmartDMA transmit task
         */
index 5b3fa43eb46cbbc0d85f95c849352f385740da74..10ccc3bc375e99a9cb3fb7895f4e5d0c4b50ce65 100644 (file)
@@ -70,6 +70,7 @@
 #define CONFIG_CMD_MII
 #define CONFIG_CMD_MMC
 #define CONFIG_CMD_NAND
+#define CONFIG_CMD_NAND_TRIMFFS
 #define CONFIG_CMD_NET
 #define CONFIG_CMD_NFS
 #define CONFIG_CMD_PING
index 13d1839ebe3ca8aa42151272a711ed9902aa2d90..4383375d0227dabe1b488b1876c458ae43ad5617 100644 (file)
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "mmcdev=0\0" \
-       "mmcpart=2\0" \
-       "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
        "mmcargs=setenv bootargs console=ttymxc0,${baudrate} " \
                "root=${mmcroot}\0" \
        "loadbootscript=" \
index b0a965fbba490bf9da460cb49986350202673e77..fa160e4154894281596ac9dd7830082a030463ac 100644 (file)
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
-       "mmcpart=2\0" \
-       "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
        "update_sd_firmware_filename=u-boot.imx\0" \
        "update_sd_firmware=" \
                "if test ${ip_dyn} = yes; then " \
index a4b610f9b7647997c4b11d5c09c93d457ec09164..cc31e9b4e711b1edb8535eb0c1f3a347ac900d88 100644 (file)
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "mmcdev=0\0" \
-       "mmcpart=2\0" \
-       "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rw rootwait\0" \
        "mmcargs=setenv bootargs console=ttymxc0,${baudrate} root=${mmcroot}\0" \
        "loadbootscript=" \
                "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
index b814418481c0192b8364f392d6a3395b37733b24..c7db81d0d83e67efe490df9af571f32139d75274 100644 (file)
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "mmcdev=0\0" \
-       "mmcpart=2\0" \
-       "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
        "mmcargs=setenv bootargs console=${console},${baudrate} " \
                "root=${mmcroot}\0" \
        "loadbootscript=" \
index 19dcdd605cc5e1beb31f3cbf7fe1db2e70c5b7db..55e3ad97a1d2ad90949509ff4a5c525c1794beaf 100644 (file)
@@ -73,8 +73,8 @@
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "mmcdev=0\0" \
-       "mmcpart=2\0" \
-       "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
        "mmcargs=setenv bootargs console=${console},${baudrate} " \
                "root=${mmcroot}\0" \
        "loadbootscript=" \
index b2995d8ea92775c8de0f218bb574bfc21c367444..ee6bf216bd58e006dfa46657c39ae621e7a1c861 100644 (file)
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
-       "mmcpart=2\0" \
-       "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
        "update_sd_firmware_filename=u-boot.imx\0" \
        "update_sd_firmware=" \
                "if test ${ip_dyn} = yes; then " \