summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2008-10-11 15:14:37 -0700
committerGabe Black <gblack@eecs.umich.edu>2008-10-11 15:14:37 -0700
commit526933e5d03f5d7963bc5a244294ddbb068c4770 (patch)
tree024299f029be90c97c2f811dd57693f023e29228
parentf621b7b81f0913612381d5dc4993f52bb2116902 (diff)
downloadgem5-526933e5d03f5d7963bc5a244294ddbb068c4770.tar.xz
X86: Add an Intel MP table to the simulation.
-rw-r--r--configs/common/FSConfig.py8
-rw-r--r--src/arch/x86/bios/IntelMP.py9
2 files changed, 17 insertions, 0 deletions
diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py
index b2d9935ce..789145b66 100644
--- a/configs/common/FSConfig.py
+++ b/configs/common/FSConfig.py
@@ -189,6 +189,14 @@ def makeX86System(mem_mode, mdesc = None, self = None):
structures = [X86SMBiosBiosInformation()]
self.smbios_table.structures = structures
+ # Set up the Intel MP table
+ bp = X86IntelMPProcessor(
+ local_apic_id = 0,
+ local_apic_version = 0x14,
+ enable = True,
+ bootstrap = True)
+ self.intel_mp_table.add_entry(bp)
+
def makeLinuxX86System(mem_mode, mdesc = None):
self = LinuxX86System()
diff --git a/src/arch/x86/bios/IntelMP.py b/src/arch/x86/bios/IntelMP.py
index 70e7963fa..758932180 100644
--- a/src/arch/x86/bios/IntelMP.py
+++ b/src/arch/x86/bios/IntelMP.py
@@ -86,6 +86,15 @@ class X86IntelMPConfigTable(SimObject):
ext_entries = VectorParam.X86IntelMPExtConfigEntry([],
'extended configuration table entries')
+ def add_entry(self, entry):
+ if isinstance(entry, X86IntelMPBaseConfigEntry):
+ self.base_entries.append(entry)
+ elif isinstance(entry, X86IntelMPExtConfigEntry):
+ self.base_entries.append(entry)
+ else:
+ panic("Don't know what type of Intel MP entry %s is." \
+ % entry.__class__.__name__)
+
class X86IntelMPBaseConfigEntry(SimObject):
type = 'X86IntelMPBaseConfigEntry'
cxx_class = 'X86ISA::IntelMP::BaseConfigEntry'