From 526933e5d03f5d7963bc5a244294ddbb068c4770 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sat, 11 Oct 2008 15:14:37 -0700 Subject: [PATCH] X86: Add an Intel MP table to the simulation. --- configs/common/FSConfig.py | 8 ++++++++ src/arch/x86/bios/IntelMP.py | 9 +++++++++ 2 files changed, 17 insertions(+) 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'