Commits for the new config static device design, to allow more than one static
cpu of a certain type and to eliminate the cpu p5 cpu p6 cpu k7 nonsense in the old config files. Next step is to hook into Eric's pci device stuff. git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1067 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
bbb6d1020f
commit
a43048d371
|
@ -1,3 +1,4 @@
|
||||||
uses k7
|
uses k7
|
||||||
uses CPU_FIXUP
|
uses CPU_FIXUP
|
||||||
|
dir /cpu/p6
|
||||||
#object cpufixup.o
|
#object cpufixup.o
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
uses CPU_FIXUP
|
uses CPU_FIXUP
|
||||||
|
dir /cpu/k7
|
||||||
|
config chip.h
|
||||||
if CPU_FIXUP
|
if CPU_FIXUP
|
||||||
object cpufixup.o
|
object cpufixup.o
|
||||||
object apic_timer.o
|
object apic_timer.o
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
#include <cpu/p6/msr.h>
|
#include <cpu/p6/msr.h>
|
||||||
#include <cpu/k8/mtrr.h>
|
#include <cpu/k8/mtrr.h>
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
|
#include <device/chip.h>
|
||||||
|
|
||||||
|
#include "chip.h"
|
||||||
|
|
||||||
void k8_cpufixup(struct mem_range *mem)
|
void k8_cpufixup(struct mem_range *mem)
|
||||||
{
|
{
|
||||||
|
@ -51,3 +54,27 @@ void k8_cpufixup(struct mem_range *mem)
|
||||||
msr.lo |= SYSCFG_MSR_MtrrVarDramEn | SYSCFG_MSR_TOM2En;
|
msr.lo |= SYSCFG_MSR_MtrrVarDramEn | SYSCFG_MSR_TOM2En;
|
||||||
wrmsr(SYSCFG_MSR, msr);
|
wrmsr(SYSCFG_MSR, msr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void k8_enable(struct chip *chip, enum chip_pass pass)
|
||||||
|
{
|
||||||
|
|
||||||
|
struct cpu_k8_config *conf = (struct cpu_k8_config *)chip->chip_info;
|
||||||
|
|
||||||
|
switch (pass) {
|
||||||
|
case CONF_PASS_PRE_CONSOLE:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* nothing yet */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct chip_control cpu_k8_control = {
|
||||||
|
enable: k8_enable,
|
||||||
|
name: "AMD K8"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
uses i686
|
uses i686
|
||||||
uses INTEL_PPRO_MTRR
|
uses INTEL_PPRO_MTRR
|
||||||
|
dir /cpu/p5
|
||||||
#object microcode.o
|
#object microcode.o
|
||||||
object mtrr.o
|
object mtrr.o
|
||||||
#object l2_cache.o
|
#object l2_cache.o
|
||||||
|
|
|
@ -145,18 +145,21 @@ mainboardinit cpu/k8/disable_mmx_sse.inc
|
||||||
###
|
###
|
||||||
northbridge amd/amdk8
|
northbridge amd/amdk8
|
||||||
end
|
end
|
||||||
southbridge amd/amd8111
|
southbridge amd/amd8111 "amd8111"
|
||||||
end
|
end
|
||||||
southbridge amd/amd8131
|
southbridge amd/amd8131 "amd8131"
|
||||||
end
|
end
|
||||||
#mainboardinit archi386/smp/secondary.inc
|
#mainboardinit archi386/smp/secondary.inc
|
||||||
superio NSC/pc87360
|
superio NSC/pc87360
|
||||||
register "com1" = "{1}"
|
register "com1" = "{1}"
|
||||||
register "lpt" = "{1}"
|
register "lpt" = "{1}"
|
||||||
end
|
end
|
||||||
dir /pc80
|
# dir /pc80
|
||||||
##dir /src/superio/winbond/w83627hf
|
##dir /src/superio/winbond/w83627hf
|
||||||
cpu p5 end
|
dir /cpu/k8
|
||||||
cpu p6 end
|
cpu k8 "cpu0"
|
||||||
cpu k7 end
|
register "up" = "{.chip = &amd8111, .ht_width=8, .ht_speed=200}"
|
||||||
cpu k8 end
|
end
|
||||||
|
|
||||||
|
cpu k8 "cpu1"
|
||||||
|
end
|
||||||
|
|
|
@ -4,8 +4,30 @@
|
||||||
#include <device/pci_ids.h>
|
#include <device/pci_ids.h>
|
||||||
#include <device/pci_ops.h>
|
#include <device/pci_ops.h>
|
||||||
|
|
||||||
|
#include <arch/io.h>
|
||||||
|
#include <device/chip.h>
|
||||||
|
#include "chip.h"
|
||||||
|
|
||||||
|
|
||||||
unsigned long initial_apicid[MAX_CPUS] =
|
unsigned long initial_apicid[MAX_CPUS] =
|
||||||
{
|
{
|
||||||
0, 1,
|
0, 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
enable(struct chip *chip, enum chip_pass pass)
|
||||||
|
{
|
||||||
|
|
||||||
|
struct mainboard_arima_hdama_config *conf =
|
||||||
|
(struct mainboard_arima_hdama_config *)chip->chip_info;
|
||||||
|
|
||||||
|
switch (pass) {
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
struct chip_control mainboard_arima_hdama_control = {
|
||||||
|
enable: enable,
|
||||||
|
name: "Arima HDAMA mainboard "
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@ alloptions = 0 # override uses at top level
|
||||||
local_path = re.compile(r'^\.')
|
local_path = re.compile(r'^\.')
|
||||||
include_pattern = re.compile(r'%%([^%]+)%%')
|
include_pattern = re.compile(r'%%([^%]+)%%')
|
||||||
|
|
||||||
|
# the cpu type for this mainboard
|
||||||
|
cpu_type = 0
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Utility Classes
|
# Utility Classes
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
@ -1062,8 +1065,22 @@ def target(name):
|
||||||
print "Will place Makefile, crt0.S, etc. in %s" % target_dir
|
print "Will place Makefile, crt0.S, etc. in %s" % target_dir
|
||||||
|
|
||||||
|
|
||||||
|
def cpudir(path):
|
||||||
|
global cpu_type
|
||||||
|
if (cpu_type and (cpu_type != path)):
|
||||||
|
fatal("Two different CPU types: %s and %s" % (cpu_type, path))
|
||||||
|
srcdir = "/cpu/%s" % path
|
||||||
|
dodir(srcdir, "Config.lb")
|
||||||
|
cpu_type = path
|
||||||
|
|
||||||
def part(type, path, file, name):
|
def part(type, path, file, name):
|
||||||
global curimage, dirstack, partstack
|
global curimage, dirstack, partstack
|
||||||
|
# special case for 'cpu' parts.
|
||||||
|
# we could add a new function too, but this is rather trivial.
|
||||||
|
# if the part is a cpu, and we haven't seen it before,
|
||||||
|
# arrange to source the directory /cpu/'type'
|
||||||
|
if (type == 'cpu'):
|
||||||
|
cpudir(path)
|
||||||
partdir = os.path.join(type, path)
|
partdir = os.path.join(type, path)
|
||||||
srcdir = os.path.join(treetop, 'src')
|
srcdir = os.path.join(treetop, 'src')
|
||||||
fulldir = os.path.join(srcdir, partdir)
|
fulldir = os.path.join(srcdir, partdir)
|
||||||
|
|
Loading…
Reference in New Issue