[POWERPC] 4xx: Introduce cpu_setup functionality to 44x platform
This adds cpu_setup functionality for ppc44x platform. Low level cpu-spefic initialization routines should be placed in cpu_setup_44x.S and a callback should be added to cputable. The cpu_setup is invoked by identify_cpu() function at early init. Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
This commit is contained in:
parent
2e71cc0d51
commit
84e3ad5b91
|
@ -58,6 +58,7 @@ obj-y += time.o prom.o traps.o setup-common.o \
|
|||
misc_$(CONFIG_WORD_SIZE).o
|
||||
obj-$(CONFIG_PPC32) += entry_32.o setup_32.o
|
||||
obj-$(CONFIG_PPC64) += dma_64.o iommu.o
|
||||
obj-$(CONFIG_44x) += cpu_setup_44x.o
|
||||
obj-$(CONFIG_PPC_MULTIPLATFORM) += prom_init.o
|
||||
obj-$(CONFIG_MODULES) += ppc_ksyms.o
|
||||
obj-$(CONFIG_BOOTX_TEXT) += btext.o
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* This file contains low level CPU setup functions.
|
||||
* Valentine Barshak <vbarshak@ru.mvista.com>
|
||||
* MontaVista Software, Inc (c) 2007
|
||||
*
|
||||
* Based on cpu_setup_6xx code by
|
||||
* Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <asm/processor.h>
|
||||
#include <asm/cputable.h>
|
||||
#include <asm/ppc_asm.h>
|
||||
|
|
@ -1319,17 +1319,18 @@ struct cpu_spec *identify_cpu(unsigned long offset, unsigned int pvr)
|
|||
for (i = 0; i < ARRAY_SIZE(cpu_specs); i++,s++)
|
||||
if ((pvr & s->pvr_mask) == s->pvr_value) {
|
||||
*cur = cpu_specs + i;
|
||||
#ifdef CONFIG_PPC64
|
||||
/* ppc64 expects identify_cpu to also call setup_cpu
|
||||
* for that processor. I will consolidate that at a
|
||||
* later time, for now, just use our friend #ifdef.
|
||||
#if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
|
||||
/* ppc64 and booke expect identify_cpu to also call
|
||||
* setup_cpu for that processor. I will consolidate
|
||||
* that at a later time, for now, just use #ifdef.
|
||||
* we also don't need to PTRRELOC the function pointer
|
||||
* on ppc64 as we are running at 0 in real mode.
|
||||
* on ppc64 and booke as we are running at 0 in real
|
||||
* mode on ppc64 and reloc_offset is always 0 on booke.
|
||||
*/
|
||||
if (s->cpu_setup) {
|
||||
s->cpu_setup(offset, s);
|
||||
}
|
||||
#endif /* CONFIG_PPC64 */
|
||||
#endif /* CONFIG_PPC64 || CONFIG_BOOKE */
|
||||
return s;
|
||||
}
|
||||
BUG();
|
||||
|
|
Loading…
Reference in New Issue