diff options
author | Gabe Black <gabeblack@google.com> | 2020-01-29 16:49:40 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2020-02-01 12:31:56 +0000 |
commit | 4ae8d1c0ed18f351b52f421553b28fe109f87665 (patch) | |
tree | 08f688eed7d45f41f4c3af946bc0afdbf199aebf /src/arch/x86/system.cc | |
parent | 6a7a5b30050d10a7d9cc9cd5614988871253298d (diff) | |
download | gem5-4ae8d1c0ed18f351b52f421553b28fe109f87665.tar.xz |
arch,sim: Merge initCPU into the ISA System classes.
Those classes are already ISA specific, so we can just move initCPU's
contents there and take it out of utility.hh, utility.cc, and the base
System's initState.
Change-Id: I28f0d0b50d83efe5116b0b24d20f8182a02823e7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24905
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/arch/x86/system.cc')
-rw-r--r-- | src/arch/x86/system.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/arch/x86/system.cc b/src/arch/x86/system.cc index 096f10f5e..b0dab7bed 100644 --- a/src/arch/x86/system.cc +++ b/src/arch/x86/system.cc @@ -43,6 +43,7 @@ #include "arch/x86/bios/intelmp.hh" #include "arch/x86/bios/smbios.hh" +#include "arch/x86/faults.hh" #include "arch/x86/isa_traits.hh" #include "base/loader/object_file.hh" #include "cpu/thread_context.hh" @@ -107,6 +108,19 @@ X86System::initState() { System::initState(); + for (auto *tc: threadContexts) { + X86ISA::InitInterrupt(0).invoke(tc); + + if (tc->contextId() == 0) { + tc->activate(); + } else { + // This is an application processor (AP). It should be initialized + // to look like only the BIOS POST has run on it and put then put + // it into a halted state. + tc->suspend(); + } + } + if (!kernel) fatal("No kernel to load.\n"); |