summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/mpc85xx/cpu_init.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2011-07-30 01:39:14 +0200
committerWolfgang Denk <wd@denx.de>2011-07-30 01:39:14 +0200
commitdd620b26332eb1e9fc0216760909c4046ba09745 (patch)
treedac488abee6a6768479629b2c1b2d904d0f9e309 /arch/powerpc/cpu/mpc85xx/cpu_init.c
parent84b5e8022ef62b68df360392a55c4fc2f2e568d7 (diff)
parent57567361769bfa02d0622c06e5e9f66392e2593a (diff)
Merge branch 'master' of /home/wd/git/u-boot/custodians
* 'master' of /home/wd/git/u-boot/custodians: powerpc/8xxx: Remove dependency on <usb.h> powerpc/85xx: enable USB2 gadget mode for corenet ds board powerpc/85xx: verify the device tree before booting Linux MPC8xxx: drop redundant boot messages powerpc/85xx: Fix build failure for P1023RDS powerpc/p2041rdb: Enable SATA support powerpc/85xx: Cleanup handling of PVR detection for e500/e500mc/e5500 powerpc/85xx: Fix up clock_freq property in CAN node of dts 85xx: enable FDT support for STX SSA board powerpc/85xx: provide 85xx flush_icache for cmd_cache powerpc/p2041rdb: Enable backside L2 cache support powerpc/85xx: Handle the lack of L2 cache on P2040/P2040E powerpc/85xx: Add support for P2041[e] XAUI in SERDES powerpc/85xx: Rename P2040 id & SERDES to P2041 powerpc/85xx: Adding configuration for DCSRCR to enable 32M access powerpc/85xx: Fix setting of EPAPR_MAGIC value
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/cpu_init.c')
-rw-r--r--arch/powerpc/cpu/mpc85xx/cpu_init.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c
index b3da970d420..6aca166a98e 100644
--- a/arch/powerpc/cpu/mpc85xx/cpu_init.c
+++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c
@@ -222,6 +222,10 @@ static void corenet_tb_init(void)
void cpu_init_f (void)
{
extern void m8560_cpm_reset (void);
+#ifdef CONFIG_SYS_DCSRBAR_PHYS
+ ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+#endif
+
#ifdef CONFIG_MPC8548
ccsr_local_ecm_t *ecm = (void *)(CONFIG_SYS_MPC85xx_ECM_ADDR);
uint svr = get_svr();
@@ -262,6 +266,13 @@ void cpu_init_f (void)
/* Invalidate the CPC before DDR gets enabled */
invalidate_cpc();
+
+ #ifdef CONFIG_SYS_DCSRBAR_PHYS
+ /* set DCSRCR so that DCSR space is 1G */
+ setbits_be32(&gur->dcsrcr, FSL_CORENET_DCSR_SZ_1G);
+ in_be32(&gur->dcsrcr);
+#endif
+
}
/* Implement a dummy function for those platforms w/o SERDES */
@@ -381,6 +392,12 @@ int cpu_init_r(void)
puts("enabled\n");
}
#elif defined(CONFIG_BACKSIDE_L2_CACHE)
+ if ((SVR_SOC_VER(get_svr()) == SVR_P2040) ||
+ (SVR_SOC_VER(get_svr()) == SVR_P2040_E)) {
+ puts("N/A\n");
+ goto skip_l2;
+ }
+
u32 l2cfg0 = mfspr(SPRN_L2CFG0);
/* invalidate the L2 cache */
@@ -401,6 +418,8 @@ int cpu_init_r(void)
;
printf("%d KB enabled\n", (l2cfg0 & 0x3fff) * 64);
}
+
+skip_l2:
#else
puts("disabled\n");
#endif