PPC cpu stuff

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@872 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Greg Watson 2003-06-13 16:54:40 +00:00
parent 93247c0428
commit 88e467f38e
2 changed files with 94 additions and 0 deletions

36
src/arch/ppc/lib/cpu.c Normal file
View File

@ -0,0 +1,36 @@
#include <console/console.h>
#include <mem.h>
#include <arch/io.h>
#include <string.h>
#include <cpu/cpu.h>
#include <cpu/ppc/cpuid.h>
static void cache_on(struct mem_range *mem)
{
}
static void interrupts_on()
{
}
unsigned long cpu_initialize(struct mem_range *mem)
{
/* 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);
/* Turn on caching if we haven't already */
cache_on(mem);
display_cpuid();
interrupts_on();
printk_info("CPU #%d Initialized\n", processor_id);
return processor_id;
}

58
src/arch/ppc/lib/cpuid.c Normal file
View File

@ -0,0 +1,58 @@
/* $Id$ */
/* Copyright 2000 AG Electronics Ltd. */
/* This code is distributed without warranty under the GPL v2 (see COPYING) */
#include "ppc.h"
#include "ppcreg.h"
#include <console/console.h>
void display_cpuid(void)
{
unsigned type = __getpvr() >> 16;
unsigned version = __getpvr() & 0xffff;
const char *cpu_string = 0;
switch(type) {
case 1:
cpu_string = "601";
break;
case 3:
cpu_string = "603";
break;
case 4:
cpu_string = "604";
break;
case 6:
cpu_string = "603e";
break;
case 7:
cpu_string = "603ev";
break;
case 8:
cpu_string = "750";
break;
case 9:
cpu_string = "604e";
break;
case 10:
cpu_string = "604ev5 (MachV)";
break;
case 12:
cpu_string = "7400";
break;
case 50:
cpu_string = "821";
break;
case 80:
cpu_string = "860";
break;
case 0x800c:
cpu_string = "7410";
break;
}
if (cpu_string)
printk_info("PowerPC %s", cpu_string);
else
printk_info("PowerPC unknown (0x%x)", type);
printk_info(" CPU, version %d.%d\n", version >> 8, version & 0xff);
}