diff options
| author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-07-12 13:20:35 +0200 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-07-12 13:20:35 +0200 | 
| commit | efc284e32503b240dbd35c6e8b8d098d702b4be7 (patch) | |
| tree | 6331525bc0342e3f3fa0615905851a8a5673142e | |
| parent | d035fcf9b6a5a0d7ce8d3d5f3ef960618deea47e (diff) | |
| parent | a3f170cdbf7ae0bd24c94c2f46725699bbd69f05 (diff) | |
| download | olio-uboot-2014.01-efc284e32503b240dbd35c6e8b8d098d702b4be7.tar.xz olio-uboot-2014.01-efc284e32503b240dbd35c6e8b8d098d702b4be7.zip | |
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'
| -rw-r--r-- | drivers/net/fec_mxc.c | 23 | ||||
| -rw-r--r-- | include/configs/m28evk.h | 1 | ||||
| -rw-r--r-- | include/configs/mx51evk.h | 4 | ||||
| -rw-r--r-- | include/configs/mx53ard.h | 4 | ||||
| -rw-r--r-- | include/configs/mx53loco.h | 4 | ||||
| -rw-r--r-- | include/configs/mx6qsabrelite.h | 4 | ||||
| -rw-r--r-- | include/configs/mx6slevk.h | 4 | ||||
| -rw-r--r-- | include/configs/wandboard.h | 4 | 
8 files changed, 35 insertions, 13 deletions
| diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index da95e285b..ec5b9db66 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -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);  	}  	/* @@ -738,6 +737,28 @@ static int fec_send(struct eth_device *dev, void *packet, int length)  	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  	 */  	fec_tx_task_enable(fec); diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index 5b3fa43eb..10ccc3bc3 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -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 diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h index 13d1839eb..4383375d0 100644 --- a/include/configs/mx51evk.h +++ b/include/configs/mx51evk.h @@ -162,8 +162,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=ttymxc0,${baudrate} " \  		"root=${mmcroot}\0" \  	"loadbootscript=" \ diff --git a/include/configs/mx53ard.h b/include/configs/mx53ard.h index b0a965fbb..fa160e415 100644 --- a/include/configs/mx53ard.h +++ b/include/configs/mx53ard.h @@ -118,8 +118,8 @@  	"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 " \ diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h index a4b610f9b..cc31e9b4e 100644 --- a/include/configs/mx53loco.h +++ b/include/configs/mx53loco.h @@ -124,8 +124,8 @@  	"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" \ diff --git a/include/configs/mx6qsabrelite.h b/include/configs/mx6qsabrelite.h index b81441848..c7db81d0d 100644 --- a/include/configs/mx6qsabrelite.h +++ b/include/configs/mx6qsabrelite.h @@ -170,8 +170,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=" \ diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h index 19dcdd605..55e3ad97a 100644 --- a/include/configs/mx6slevk.h +++ b/include/configs/mx6slevk.h @@ -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=" \ diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h index b2995d8ea..ee6bf216b 100644 --- a/include/configs/wandboard.h +++ b/include/configs/wandboard.h @@ -120,8 +120,8 @@  	"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 " \ |