diff options
author | Shengzhou Liu <Shengzhou.Liu@freescale.com> | 2014-04-25 16:31:22 +0800 |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2014-05-13 08:26:54 -0700 |
commit | 5122dfae5d3cd68e0b6e5e08597df91ba79770aa (patch) | |
tree | 7925d468a14f6ee9c4430c2be3cea771cddd3b35 /arch/powerpc/cpu/mpc85xx/cpu.c | |
parent | c665c473b605349b1c58890493255dd70e0b60fe (diff) | |
download | u-boot-imx-5122dfae5d3cd68e0b6e5e08597df91ba79770aa.zip u-boot-imx-5122dfae5d3cd68e0b6e5e08597df91ba79770aa.tar.gz u-boot-imx-5122dfae5d3cd68e0b6e5e08597df91ba79770aa.tar.bz2 |
powerpc/85xx: add T4080 SoC support
The T4080 SoC is a low-power version of the T4160.
T4080 combines 4 dual-threaded Power Architecture e6500
cores with single cluster and two memory complexes.
Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/cpu.c')
-rw-r--r-- | arch/powerpc/cpu/mpc85xx/cpu.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc85xx/cpu.c b/arch/powerpc/cpu/mpc85xx/cpu.c index 12e8e10..684d400 100644 --- a/arch/powerpc/cpu/mpc85xx/cpu.c +++ b/arch/powerpc/cpu/mpc85xx/cpu.c @@ -77,6 +77,30 @@ int checkcpu (void) major = SVR_MAJ(svr); minor = SVR_MIN(svr); +#if defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500) + if (SVR_SOC_VER(svr) == SVR_T4080) { + ccsr_rcpm_t *rcpm = + (void __iomem *)(CONFIG_SYS_FSL_CORENET_RCPM_ADDR); + + setbits_be32(&gur->devdisr2, FSL_CORENET_DEVDISR2_DTSEC1_6 || + FSL_CORENET_DEVDISR2_DTSEC1_9); + setbits_be32(&gur->devdisr3, FSL_CORENET_DEVDISR3_PCIE3); + setbits_be32(&gur->devdisr5, FSL_CORENET_DEVDISR5_DDR3); + + /* It needs SW to disable core4~7 as HW design sake on T4080 */ + for (i = 4; i < 8; i++) + cpu_disable(i); + + /* request core4~7 into PH20 state, prior to entering PCL10 + * state, all cores in cluster should be placed in PH20 state. + */ + setbits_be32(&rcpm->pcph20setr, 0xf0); + + /* put the 2nd cluster into PCL10 state */ + setbits_be32(&rcpm->clpcl10setr, 1 << 1); + } +#endif + if (cpu_numcores() > 1) { #ifndef CONFIG_MP puts("Unicore software on multiprocessor system!!\n" |