diff options
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/mp.c')
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/mp.c | 23 | 
1 files changed, 23 insertions, 0 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/mp.c b/arch/powerpc/cpu/mpc85xx/mp.c index ddbc2211c..e05257cf0 100644 --- a/arch/powerpc/cpu/mpc85xx/mp.c +++ b/arch/powerpc/cpu/mpc85xx/mp.c @@ -77,6 +77,13 @@ int cpu_disable(int nr)  	return 0;  } + +int is_core_disabled(int nr) { +	ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); +	u32 coredisrl = in_be32(&gur->coredisrl); + +	return (coredisrl & (1 << nr)); +}  #else  int cpu_disable(int nr)  { @@ -96,6 +103,22 @@ int cpu_disable(int nr)  	return 0;  } + +int is_core_disabled(int nr) { +	ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); +	u32 devdisr = in_be32(&gur->devdisr); + +	switch (nr) { +	case 0: +		return (devdisr & MPC85xx_DEVDISR_CPU0); +	case 1: +		return (devdisr & MPC85xx_DEVDISR_CPU1); +	default: +		printf("Invalid cpu number for disable %d\n", nr); +	} + +	return 0; +}  #endif  static u8 boot_entry_map[4] = { |