@ -119,6 +119,44 @@ static void erratum_a008997(void)
# endif /* CONFIG_SYS_FSL_ERRATUM_A008997 */
}
# if defined(CONFIG_ARCH_LS1043A) || defined(CONFIG_ARCH_LS1046A)
# define PROGRAM_USB_PHY_RX_OVRD_IN_HI(phy) \
out_be16 ( ( phy ) + SCFG_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_1 ) ; \
out_be16 ( ( phy ) + SCFG_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_2 ) ; \
out_be16 ( ( phy ) + SCFG_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_3 ) ; \
out_be16 ( ( phy ) + SCFG_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_4 )
# elif defined(CONFIG_ARCH_LS2080A)
# define PROGRAM_USB_PHY_RX_OVRD_IN_HI(phy) \
out_le16 ( ( phy ) + DCSR_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_1 ) ; \
out_le16 ( ( phy ) + DCSR_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_2 ) ; \
out_le16 ( ( phy ) + DCSR_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_3 ) ; \
out_le16 ( ( phy ) + DCSR_USB_PHY_RX_OVRD_IN_HI , USB_PHY_RX_EQ_VAL_4 )
# endif
static void erratum_a009007 ( void )
{
# if defined(CONFIG_ARCH_LS1043A) || defined(CONFIG_ARCH_LS1046A)
void __iomem * usb_phy = ( void __iomem * ) SCFG_USB_PHY1 ;
PROGRAM_USB_PHY_RX_OVRD_IN_HI ( usb_phy ) ;
usb_phy = ( void __iomem * ) SCFG_USB_PHY2 ;
PROGRAM_USB_PHY_RX_OVRD_IN_HI ( usb_phy ) ;
usb_phy = ( void __iomem * ) SCFG_USB_PHY3 ;
PROGRAM_USB_PHY_RX_OVRD_IN_HI ( usb_phy ) ;
# elif defined(CONFIG_ARCH_LS2080A)
void __iomem * dcsr = ( void __iomem * ) DCSR_BASE ;
PROGRAM_USB_PHY_RX_OVRD_IN_HI ( dcsr + DCSR_USB_PHY1 ) ;
PROGRAM_USB_PHY_RX_OVRD_IN_HI ( dcsr + DCSR_USB_PHY2 ) ;
# endif /* CONFIG_SYS_FSL_ERRATUM_A009007 */
}
# if defined(CONFIG_FSL_LSCH3)
/*
* This erratum requires setting a value to eddrtqcr1 to
@ -268,6 +306,7 @@ void fsl_lsch3_early_init_f(void)
erratum_a009008 ( ) ;
erratum_a009798 ( ) ;
erratum_a008997 ( ) ;
erratum_a009007 ( ) ;
# ifdef CONFIG_CHAIN_OF_TRUST
/* In case of Secure Boot, the IBR configures the SMMU
* to allow only Secure transactions .
@ -549,6 +588,7 @@ void fsl_lsch2_early_init_f(void)
erratum_a009008 ( ) ;
erratum_a009798 ( ) ;
erratum_a008997 ( ) ;
erratum_a009007 ( ) ;
}
# endif