diff options
| author | Kumar Gala <galak@kernel.crashing.org> | 2010-06-09 22:33:53 -0500 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2010-07-16 10:55:08 -0500 | 
| commit | 8f3a7fa4a230f5e974e99b617138e2aaa45109e7 (patch) | |
| tree | 0a6687513dc8baa6144306721048af316da77272 /arch/powerpc/cpu/mpc85xx/mp.c | |
| parent | 11beefa38267b756252de5d3ed4f88c45f3442c7 (diff) | |
| download | olio-uboot-2014.01-8f3a7fa4a230f5e974e99b617138e2aaa45109e7.tar.xz olio-uboot-2014.01-8f3a7fa4a230f5e974e99b617138e2aaa45109e7.zip | |
powerpc/8xxx: Add is_core_disabled to remove disabled cores from dtb
If we explicitly disabled a core remove it from the dtb we pass on to
the kernel.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
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] = { |