diff options
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/cmd_errata.c | 3 | ||||
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/cpu_init.c | 14 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/config_mpc85xx.h | 5 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/immap_85xx.h | 9 | 
4 files changed, 30 insertions, 1 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/cmd_errata.c b/arch/powerpc/cpu/mpc85xx/cmd_errata.c index 5d72f4c34..422782ca8 100644 --- a/arch/powerpc/cpu/mpc85xx/cmd_errata.c +++ b/arch/powerpc/cpu/mpc85xx/cmd_errata.c @@ -255,6 +255,9 @@ static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #ifdef CONFIG_SYS_P4080_ERRATUM_PCIE_A003  	puts("Work-around for Erratum PCIe-A003 enabled\n");  #endif +#ifdef CONFIG_SYS_FSL_ERRATUM_USB14 +	puts("Work-around for Erratum USB14 enabled\n"); +#endif  	return 0;  } diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c index de9d91611..53713e31d 100644 --- a/arch/powerpc/cpu/mpc85xx/cpu_init.c +++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c @@ -623,6 +623,20 @@ skip_l2:  	}  #endif +#ifdef CONFIG_SYS_FSL_ERRATUM_USB14 +	/* On P204x/P304x/P50x0 Rev1.0, USB transmit will result internal +	 * multi-bit ECC errors which has impact on performance, so software +	 * should disable all ECC reporting from USB1 and USB2. +	 */ +	if (IS_SVR_REV(get_svr(), 1, 0)) { +		struct dcsr_dcfg_regs *dcfg = (struct dcsr_dcfg_regs *) +			(CONFIG_SYS_DCSRBAR + CONFIG_SYS_DCSR_DCFG_OFFSET); +		setbits_be32(&dcfg->ecccr1, +				(DCSR_DCFG_ECC_DISABLE_USB1 | +				 DCSR_DCFG_ECC_DISABLE_USB2)); +	} +#endif +  #ifdef CONFIG_FMAN_ENET  	fman_enet_init();  #endif diff --git a/arch/powerpc/include/asm/config_mpc85xx.h b/arch/powerpc/include/asm/config_mpc85xx.h index 8285ae148..284b82a9d 100644 --- a/arch/powerpc/include/asm/config_mpc85xx.h +++ b/arch/powerpc/include/asm/config_mpc85xx.h @@ -333,6 +333,7 @@  #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY  #define CONFIG_SYS_FSL_ERRATUM_ESDHC111  #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 +#define CONFIG_SYS_FSL_ERRATUM_USB14  #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999  #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474  #define CONFIG_SYS_FSL_SRIO_PCIE_BOOT_MASTER @@ -365,6 +366,7 @@  #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY  #define CONFIG_SYS_FSL_ERRATUM_ESDHC111  #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 +#define CONFIG_SYS_FSL_ERRATUM_USB14  #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999  #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474  #define CONFIG_SYS_FSL_SRIO_PCIE_BOOT_MASTER @@ -442,6 +444,7 @@  #define CONFIG_SYS_FSL_USB2_PHY_ENABLE  #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY  #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 +#define CONFIG_SYS_FSL_ERRATUM_USB14  #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474  #define CONFIG_SYS_FSL_SRIO_PCIE_BOOT_MASTER  #define CONFIG_SYS_FSL_SRIO_MAX_PORTS	2 @@ -473,7 +476,7 @@  #define CONFIG_SYS_FSL_USB2_PHY_ENABLE  #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY  #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 -#define CONFIG_SYS_FSL_ERRATUM_USB138 +#define CONFIG_SYS_FSL_ERRATUM_USB14  #define CONFIG_SYS_FSL_ERRATUM_DDR_A003  #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474  #define CONFIG_SYS_FSL_ERRATUM_A004699 diff --git a/arch/powerpc/include/asm/immap_85xx.h b/arch/powerpc/include/asm/immap_85xx.h index 1c8d1ac0e..baaa9fee5 100644 --- a/arch/powerpc/include/asm/immap_85xx.h +++ b/arch/powerpc/include/asm/immap_85xx.h @@ -3161,4 +3161,13 @@ struct ccsr_cluster_l2 {  #define CONFIG_SYS_FSL_CLUSTER_1_L2 \  	(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CLUSTER_1_L2_OFFSET)  #endif /* CONFIG_SYS_FSL_QORIQ_CHASSIS2 */ + +#define	CONFIG_SYS_DCSR_DCFG_OFFSET	0X20000 +struct dcsr_dcfg_regs { +	u8  res_0[0x520]; +	u32 ecccr1; +#define	DCSR_DCFG_ECC_DISABLE_USB1	0x00008000 +#define	DCSR_DCFG_ECC_DISABLE_USB2	0x00004000 +	u8  res_524[0x1000 - 0x524]; /* 0x524 - 0x1000 */ +};  #endif /*__IMMAP_85xx__*/ |