summaryrefslogtreecommitdiff
path: root/src/arch/ppc/lib/cpu.c
diff options
context:
space:
mode:
authorEric Biederman <ebiederm@xmission.com>2004-10-27 08:53:57 +0000
committerEric Biederman <ebiederm@xmission.com>2004-10-27 08:53:57 +0000
commit6e53f50082cfac4ec2d06d2ff6515781190ad1c0 (patch)
treec352bf640df56343a303c5e5d04042ae2f90ebc8 /src/arch/ppc/lib/cpu.c
parent20fc678d65b4cdf6b24bdff45ef04933c538e2e8 (diff)
downloadcoreboot-6e53f50082cfac4ec2d06d2ff6515781190ad1c0.tar.xz
sizeram removal/conversion.
- mem.h and sizeram.h and all includes killed because the are no longer needed. - linuxbios_table.c updated to directly look at the device tree for occupied memory areas. - first very incomplete stab a converting the ppc code to work with the dynamic device tree - Ignore resources before we have read them from devices, (if the device is disabled ignore it's resources). - First stab at Pentium-M support - add part/init_timer.h making init_timer conditional until there is a better way of handling it. - Converted all of the x86 sizeram to northbridge set_resources functions. git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1722 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/ppc/lib/cpu.c')
-rw-r--r--src/arch/ppc/lib/cpu.c44
1 files changed, 29 insertions, 15 deletions
diff --git a/src/arch/ppc/lib/cpu.c b/src/arch/ppc/lib/cpu.c
index 7a8e46f5cd..efb914b059 100644
--- a/src/arch/ppc/lib/cpu.c
+++ b/src/arch/ppc/lib/cpu.c
@@ -1,35 +1,49 @@
#include <console/console.h>
-#include <mem.h>
#include <arch/io.h>
#include <string.h>
#include <cpu/cpu.h>
#include <cpu/ppc/cpuid.h>
#include <smp/start_stop.h>
+#include "ppc.h"
+#include "ppcreg.h"
-static void cache_on(struct mem_range *mem)
-{
-}
-
-static void interrupts_on()
-{
-}
+#error "FIXME what should call cpu_initialize?"
-unsigned long cpu_initialize(struct mem_range *mem)
+void cpu_initialize(void)
{
/* Because we busy wait at the printk spinlock.
* It is important to keep the number of printed messages
* from secondary cpus to a minimum, when debugging is
* disabled.
*/
- unsigned long processor_id = this_processors_id();
- printk_notice("Initializing CPU #%d\n", processor_id);
+ struct device *cpu;
+ struct cpu_info *info;
+ info = cpu_info();
+
+ printk_notice("Initializing CPU #%d\n", info->index);
+
+ cpu = info->cpu;
+ if (!cpu) {
+ die("CPU: missing cpu device structure");
+ }
- /* Turn on caching if we haven't already */
- cache_on(mem);
+ /* Find what type of cpu we are dealing with */
+ cpu->vendor 0; /* PPC cpus do not have a vendor field */
+ cpu->device = ppc_getpvr();
+ display_cpuid(cpu);
- display_cpuid();
+#if 0
+ /* Lookup the cpu's operations */
+ set_cpu_ops(cpu);
- interrupts_on();
+ /* Initialize the cpu */
+ if (cpu->ops && cpu->ops->init) {
+ cpu->enabled = 1;
+ cpu->initialized = 1;
+ cpu->ops->init();
+ }
+#endif
+ /* Turn on caching if we haven't already */
printk_info("CPU #%d Initialized\n", processor_id);
return processor_id;