On 01/24/2017 02:34 AM, Prabhakar Kushwaha wrote: > IFC IP clock is always a constant divisor of platform clock > pre-defined per SoC. Clock control register (CCR) used in > current implementation governs IFC IP output clock. > > So update IFC IP clock to be defined as per predefined clock > divisor of platform clock. > > Signed-off-by: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > --- > Changes for v2: Split the patch in 2 patch set > Changes for v3: Rebased on top of u-boot commit > Changes for v4: fix compilation error > Changes for v5: Adding FSL_IFC as dependency > > README | 3 +++ > arch/powerpc/cpu/mpc85xx/Kconfig | 16 ++++++++++++++++ > arch/powerpc/cpu/mpc85xx/speed.c | 10 ++-------- > 3 files changed, 21 insertions(+), 8 deletions(-) > > diff --git a/README b/README > index a95348a..9fda381 100644 > --- a/README > +++ b/README > @@ -504,6 +504,9 @@ The following options need to be configured: > CONFIG_SYS_FSL_IFC_LE > Defines the IFC controller register space as Little Endian > > + CONFIG_SYS_FSL_IFC_CLK_DIV > + Defines divider of platform clock(clock input to IFC > controller). > + > CONFIG_SYS_FSL_PBL_PBI > It enables addition of RCW (Power on reset configuration) in > built image. > Please refer doc/README.pblimage for more details > diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig > b/arch/powerpc/cpu/mpc85xx/Kconfig > index c67b6b0..8c6503d 100644 > --- a/arch/powerpc/cpu/mpc85xx/Kconfig > +++ b/arch/powerpc/cpu/mpc85xx/Kconfig > @@ -1265,6 +1265,22 @@ config SYS_PPC_E500_DEBUG_TLB > symbol should be set to the TLB1 entry to be used for this > purpose. If unsure, do not change. > > +config SYS_FSL_IFC_CLK_DIV > + int "Divider of platform clock" > + depends on FSL_IFC > + default 2 if ARCH_B4420 || \ > + ARCH_B4860 || \ > + ARCH_T1024 || \ > + ARCH_T1023 || \ > + ARCH_T1040 || \ > + ARCH_T1042 || \ > + ARCH_T4160 || \ > + ARCH_T4240 > + default 1 > + help > + Defines divider of platform clock(clock input to > + IFC controller). > + > source "board/freescale/b4860qds/Kconfig" > source "board/freescale/bsc9131rdb/Kconfig" > source "board/freescale/bsc9132qds/Kconfig" > diff --git a/arch/powerpc/cpu/mpc85xx/speed.c > b/arch/powerpc/cpu/mpc85xx/speed.c > index fcf5d92..adba092 100644 > --- a/arch/powerpc/cpu/mpc85xx/speed.c > +++ b/arch/powerpc/cpu/mpc85xx/speed.c > @@ -27,10 +27,6 @@ DECLARE_GLOBAL_DATA_PTR; > void get_sys_info(sys_info_t *sys_info) > { > volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); > -#ifdef CONFIG_FSL_IFC > - struct fsl_ifc ifc_regs = {(void *)CONFIG_SYS_IFC_ADDR, (void *)NULL}; > - u32 ccr; > -#endif > #ifdef CONFIG_FSL_CORENET > volatile ccsr_clk_t *clk = (void *)(CONFIG_SYS_FSL_CORENET_CLK_ADDR); > unsigned int cpu; > @@ -640,10 +636,8 @@ void get_sys_info(sys_info_t *sys_info) > #endif > > #if defined(CONFIG_FSL_IFC) > - ccr = ifc_in32(&ifc_regs.gregs->ifc_ccr); > - ccr = ((ccr & IFC_CCR_CLK_DIV_MASK) >> IFC_CCR_CLK_DIV_SHIFT) + 1; > - > - sys_info->freq_localbus = sys_info->freq_systembus / ccr; > + sys_info->freq_localbus = sys_info->freq_systembus / > + CONFIG_SYS_FSL_IFC_CLK_DIV; > #endif > } > >
After this change, sys_info->freq_localbus holds the input clock of local bus, instead of output clock previously. It should be noted in the commit message. Same comment goes to patch 3/5. York _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot