diff options
author | Scott Wood <scottwood@freescale.com> | 2015-03-20 19:28:13 -0700 |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2015-04-23 08:55:56 -0700 |
commit | d746fef40653d17a64ff81a8ff57c55d122d8d5e (patch) | |
tree | 1b25b085a5835828ba409e3501077edd6d5cf664 | |
parent | b991b981e04eddb30c47fe97fbcfb05099b4fd88 (diff) | |
download | u-boot-imx-d746fef40653d17a64ff81a8ff57c55d122d8d5e.zip u-boot-imx-d746fef40653d17a64ff81a8ff57c55d122d8d5e.tar.gz u-boot-imx-d746fef40653d17a64ff81a8ff57c55d122d8d5e.tar.bz2 |
armv8/ls2085a: Add workaround for USB erratum A-008751
Without this "USB may not work" according to the erratum text, though I
did not notice a problem without it.
Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: York Sun <yorksun@freescale.com>
-rw-r--r-- | arch/arm/cpu/armv8/fsl-lsch3/soc.c | 11 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-fsl-lsch3/config.h | 5 |
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv8/fsl-lsch3/soc.c b/arch/arm/cpu/armv8/fsl-lsch3/soc.c index 242a865..17700ef 100644 --- a/arch/arm/cpu/armv8/fsl-lsch3/soc.c +++ b/arch/arm/cpu/armv8/fsl-lsch3/soc.c @@ -7,8 +7,19 @@ #include <common.h> #include <fsl_ifc.h> #include <asm/arch-fsl-lsch3/soc.h> +#include <asm/io.h> + +static void erratum_a008751(void) +{ +#ifdef CONFIG_SYS_FSL_ERRATUM_A008751 + u32 __iomem *scfg = (u32 __iomem *)SCFG_BASE; + + writel(0x27672b2a, scfg + SCFG_USB3PRM1CR / 4); +#endif +} void fsl_lsch3_early_init_f(void) { + erratum_a008751(); init_early_memctl_regs(); /* tighten IFC timing */ } diff --git a/arch/arm/include/asm/arch-fsl-lsch3/config.h b/arch/arm/include/asm/arch-fsl-lsch3/config.h index 9121452..a81e3ed 100644 --- a/arch/arm/include/asm/arch-fsl-lsch3/config.h +++ b/arch/arm/include/asm/arch-fsl-lsch3/config.h @@ -124,6 +124,10 @@ #define CCI_MN_DVM_DOMAIN_CTL 0x200 #define CCI_MN_DVM_DOMAIN_CTL_SET 0x210 +/* Supplemental Configuration */ +#define SCFG_BASE 0x01fc0000 +#define SCFG_USB3PRM1CR 0x000 + #ifdef CONFIG_LS2085A #define CONFIG_MAX_CPUS 16 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8 @@ -138,6 +142,7 @@ #define CONFIG_SYS_FSL_ERRATUM_A008511 #define CONFIG_SYS_FSL_ERRATUM_A008514 #define CONFIG_SYS_FSL_ERRATUM_A008585 +#define CONFIG_SYS_FSL_ERRATUM_A008751 #endif #endif /* _ASM_ARMV8_FSL_LSCH3_CONFIG_ */ |