gem5.git
15 years agoARM: Add a memory_barrier function to the "comm page".
Gabe Black [Wed, 10 Jun 2009 06:41:35 +0000 (23:41 -0700)]
ARM: Add a memory_barrier function to the "comm page".
This function doesn't actually provide a memory barrier (I don't think they're
implemented) and instead just returns.

15 years agoARM: Add a cmpxchg implementation to the "comm page".
Gabe Black [Wed, 10 Jun 2009 06:41:03 +0000 (23:41 -0700)]
ARM: Add a cmpxchg implementation to the "comm page".
This implementation does what it's supposed to (I think), but it's not atomic
and doesn't have memory barriers like the kernel's version.

15 years agoARM: Implement TLS. This is not tested.
Gabe Black [Wed, 10 Jun 2009 06:39:07 +0000 (23:39 -0700)]
ARM: Implement TLS. This is not tested.

15 years agoARM: Make ArmLinuxProcess understand "ARM private" system calls.
Gabe Black [Wed, 10 Jun 2009 06:38:50 +0000 (23:38 -0700)]
ARM: Make ArmLinuxProcess understand "ARM private" system calls.

15 years agoARM: Update the kernel version M5 reports to 2.6.16.19
Gabe Black [Wed, 10 Jun 2009 06:37:41 +0000 (23:37 -0700)]
ARM: Update the kernel version M5 reports to 2.6.16.19

15 years agocleanup: Make use of types properly and make the loop a little more clear.
Nathan Binkert [Sat, 6 Jun 2009 00:01:19 +0000 (17:01 -0700)]
cleanup: Make use of types properly and make the loop a little more clear.

15 years agoscons: Make it so that the processing of trace flags does not depend on order
Nathan Binkert [Fri, 5 Jun 2009 22:20:09 +0000 (15:20 -0700)]
scons: Make it so that the processing of trace flags does not depend on order

15 years agotypes: need typename keyword to get the type.
Nathan Binkert [Fri, 5 Jun 2009 18:40:02 +0000 (11:40 -0700)]
types: need typename keyword to get the type.

15 years agotypes: clean up types, especially signed vs unsigned
Nathan Binkert [Fri, 5 Jun 2009 06:21:12 +0000 (23:21 -0700)]
types: clean up types, especially signed vs unsigned

15 years agomove: put predictor includes and cc files into the same place
Nathan Binkert [Fri, 5 Jun 2009 04:50:20 +0000 (21:50 -0700)]
move: put predictor includes and cc files into the same place

--HG--
rename : src/cpu/2bit_local_pred.cc => src/cpu/pred/2bit_local.cc
rename : src/cpu/o3/2bit_local_pred.hh => src/cpu/pred/2bit_local.hh
rename : src/cpu/btb.cc => src/cpu/pred/btb.cc
rename : src/cpu/o3/btb.hh => src/cpu/pred/btb.hh
rename : src/cpu/ras.cc => src/cpu/pred/ras.cc
rename : src/cpu/o3/ras.hh => src/cpu/pred/ras.hh
rename : src/cpu/tournament_pred.cc => src/cpu/pred/tournament.cc
rename : src/cpu/o3/tournament_pred.hh => src/cpu/pred/tournament.hh

15 years agostyle: cleanup style
Nathan Binkert [Fri, 5 Jun 2009 04:41:46 +0000 (21:41 -0700)]
style: cleanup style

15 years agoswig: %include Event before PythonEvent so python gets the subclass correct.
Nathan Binkert [Mon, 1 Jun 2009 23:38:57 +0000 (16:38 -0700)]
swig: %include Event before PythonEvent so python gets the subclass correct.
Before this change, some versions of swig would cause PythonEvent to be
derived from object instead of Event

15 years agorequest: add accessor and constructor for setting time other than curTick
Nathan Binkert [Fri, 29 May 2009 22:30:16 +0000 (15:30 -0700)]
request: add accessor and constructor for setting time other than curTick

15 years agoX86: Keep track of more descriptor state to accomodate KVM.
Gabe Black [Fri, 29 May 2009 06:27:56 +0000 (23:27 -0700)]
X86: Keep track of more descriptor state to accomodate KVM.

15 years agotypes: add a type for thread IDs and try to use it everywhere
Nathan Binkert [Tue, 26 May 2009 16:23:13 +0000 (09:23 -0700)]
types: add a type for thread IDs and try to use it everywhere

15 years agoX86: Really set up the GDT and various hidden/visible segment registers.
Gabe Black [Tue, 26 May 2009 09:23:08 +0000 (02:23 -0700)]
X86: Really set up the GDT and various hidden/visible segment registers.

15 years agoutil: mkblankimage.sh should be executable
Steve Reinhardt [Sat, 23 May 2009 04:24:09 +0000 (21:24 -0700)]
util: mkblankimage.sh should be executable

15 years agobuild_opts: update ALPHA_FS cpu models
Korey Sewell [Thu, 21 May 2009 15:04:24 +0000 (11:04 -0400)]
build_opts: update ALPHA_FS cpu models

15 years agoigbe: Fix descriptor cache bug.
Steve Reinhardt [Thu, 21 May 2009 04:52:32 +0000 (21:52 -0700)]
igbe: Fix descriptor cache bug.

15 years agoincludes: sort includes again
Nathan Binkert [Sun, 17 May 2009 21:34:52 +0000 (14:34 -0700)]
includes: sort includes again

15 years agoincludes: use base/types.hh not inttypes.h or stdint.h
Nathan Binkert [Sun, 17 May 2009 21:34:51 +0000 (14:34 -0700)]
includes: use base/types.hh not inttypes.h or stdint.h

15 years agotypes: Move stuff for global types into src/base/types.hh
Nathan Binkert [Sun, 17 May 2009 21:34:50 +0000 (14:34 -0700)]
types: Move stuff for global types into src/base/types.hh

--HG--
rename : src/sim/host.hh => src/base/types.hh

15 years agostats: tidy up the Distribution type a little bit
Nathan Binkert [Wed, 13 May 2009 14:18:03 +0000 (07:18 -0700)]
stats: tidy up the Distribution type a little bit

15 years agostats: fancy is a bad name
Nathan Binkert [Wed, 13 May 2009 14:18:02 +0000 (07:18 -0700)]
stats: fancy is a bad name

15 years agostats: clean up the code for printing stats
Nathan Binkert [Wed, 13 May 2009 14:18:01 +0000 (07:18 -0700)]
stats: clean up the code for printing stats

15 years agomips-merge: merge hello world regress for inorder cpu
Korey Sewell [Wed, 13 May 2009 06:02:05 +0000 (02:02 -0400)]
mips-merge: merge hello world regress for inorder cpu
w/latest changes

15 years agoinorder-regress: add hello MIPS_SE
Korey Sewell [Wed, 13 May 2009 05:55:04 +0000 (01:55 -0400)]
inorder-regress: add hello MIPS_SE

15 years agoruby: deal with printf warnings and convert some to cprintf
Nathan Binkert [Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)]
ruby: deal with printf warnings and convert some to cprintf

15 years agoruby: remove random uint typedef and use unsigned
Nathan Binkert [Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)]
ruby: remove random uint typedef and use unsigned

15 years agoruby: Make ruby's Map use hashmap.hh to simplify things.
Nathan Binkert [Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)]
ruby: Make ruby's Map use hashmap.hh to simplify things.

15 years agogcc: work around a bogus gcc error
Nathan Binkert [Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)]
gcc: work around a bogus gcc error

15 years agoslicc: work around improper initialization of a global in slicc.
Nathan Binkert [Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)]
slicc: work around improper initialization of a global in slicc.

15 years agoslicc: clean up the slicc environment so things build properly on mac.
Nathan Binkert [Wed, 13 May 2009 05:33:04 +0000 (22:33 -0700)]
slicc: clean up the slicc environment so things build properly on mac.

15 years agomips_se: add cpu_models to build options
Korey Sewell [Wed, 13 May 2009 05:26:47 +0000 (01:26 -0400)]
mips_se: add cpu_models to build options

15 years agoinorder-mips: Remove eaComp & memAcc; use 'visible' eaComp
Korey Sewell [Wed, 13 May 2009 05:26:46 +0000 (01:26 -0400)]
inorder-mips: Remove eaComp & memAcc; use 'visible' eaComp
Inorder expects eaComp to be visible through StaticInst object. This mirrors a similar change
to ALPHA... Needs to be done for SPARC and whatever other ISAs want to use InOrderCPU

15 years agoarch-mips: add regWidth constant to float regfile
Korey Sewell [Wed, 13 May 2009 05:26:38 +0000 (01:26 -0400)]
arch-mips: add regWidth constant to float regfile

15 years agocpus: add InOrderCPU to default build
Korey Sewell [Wed, 13 May 2009 00:55:21 +0000 (20:55 -0400)]
cpus: add InOrderCPU to default build
regressions need this so they build the model

15 years agoinorder-regress: missing regress config file
Korey Sewell [Wed, 13 May 2009 00:30:40 +0000 (20:30 -0400)]
inorder-regress: missing regress config file
regressions need to access this file to setup the InOrderCPU object

15 years agoalpha-isa: add mt.hh so it can compile with inorder
Korey Sewell [Wed, 13 May 2009 00:18:34 +0000 (20:18 -0400)]
alpha-isa: add mt.hh so it can compile with inorder

15 years agoinorder-regress: add vortex ALPHA_SE
Korey Sewell [Tue, 12 May 2009 19:01:17 +0000 (15:01 -0400)]
inorder-regress: add vortex ALPHA_SE

15 years agoinorder-regress: add twolf ALPHA-SE
Korey Sewell [Tue, 12 May 2009 19:01:16 +0000 (15:01 -0400)]
inorder-regress: add twolf ALPHA-SE

15 years agoinorder-regress: add hello world
Korey Sewell [Tue, 12 May 2009 19:01:16 +0000 (15:01 -0400)]
inorder-regress: add hello world

15 years agoinorder-resources: delete events
Korey Sewell [Tue, 12 May 2009 19:01:16 +0000 (15:01 -0400)]
inorder-resources: delete events
make sure unrecognized events in the resource pool are deleted and also delete resource events in destructor

15 years agoinorder-tlb-cunit: merge the TLB as implicit to any memory access
Korey Sewell [Tue, 12 May 2009 19:01:16 +0000 (15:01 -0400)]
inorder-tlb-cunit: merge the TLB as implicit to any memory access
TLBUnit no longer used and we also get rid of memAccSize and memAccFlags functions added to ISA and StaticInst
since TLB is not a separate resource to acquire. Instead, TLB access is done before any read/write to memory
and the result is checked before it's sent out to memory.
* * *

15 years agoinorder-tlb: squash insts in TLB correctly
Korey Sewell [Tue, 12 May 2009 19:01:16 +0000 (15:01 -0400)]
inorder-tlb: squash insts in TLB correctly
TLB had a bug where if it was stalled and waiting , it would not squash all instructions older than squashed instruction correctly
* * *

15 years agoinorder-faults: ignore unalign translation faults for prefetches
Korey Sewell [Tue, 12 May 2009 19:01:16 +0000 (15:01 -0400)]
inorder-faults: ignore unalign translation faults for prefetches

15 years agoinorder-stc: update interface to handle store conditionals
Korey Sewell [Tue, 12 May 2009 19:01:15 +0000 (15:01 -0400)]
inorder-stc: update interface to handle store conditionals

15 years agoinorder-float: Fix storage of FP results
Korey Sewell [Tue, 12 May 2009 19:01:15 +0000 (15:01 -0400)]
inorder-float: Fix storage of FP results
inorder was incorrectly storing FP values and confusing the integer/fp storage view of floating point operations. A big issue was knowing trying to infer when were doing single or double precision access
because this lets you know the size of value to store (32-64 bits). This isnt exactly straightforward since alpha uses all 64-bit regs while mips/sparc uses a dual-reg view. by getting this value from
the actual floating point register file, the model can figure out what it needs to store

15 years agoinorder-fetch: update model to use predecoder
Korey Sewell [Tue, 12 May 2009 19:01:15 +0000 (15:01 -0400)]
inorder-fetch: update model to use predecoder

15 years agoinorder-mem: clean up allocation/deletion of requests/packets
Korey Sewell [Tue, 12 May 2009 19:01:15 +0000 (15:01 -0400)]
inorder-mem: clean up allocation/deletion of requests/packets
* * *

15 years agoinorder-mem: skeleton support for prefetch/writehints
Korey Sewell [Tue, 12 May 2009 19:01:15 +0000 (15:01 -0400)]
inorder-mem: skeleton support for prefetch/writehints

15 years agoinorder-o3: allow both to compile together
Korey Sewell [Tue, 12 May 2009 19:01:14 +0000 (15:01 -0400)]
inorder-o3: allow both to compile together
allow InOrder and O3CPU to be compiled at the same time: need to make branch prediction filed shared by both models

15 years agoinorder-unified-tlb: use unified TLB instead of old TLB model
Korey Sewell [Tue, 12 May 2009 19:01:14 +0000 (15:01 -0400)]
inorder-unified-tlb: use unified TLB instead of old TLB model

15 years agoinorder-miscregs: Fix indexing for misc. reg operands and update result-types for...
Korey Sewell [Tue, 12 May 2009 19:01:14 +0000 (15:01 -0400)]
inorder-miscregs: Fix indexing for misc. reg operands and update result-types for better tracing of these types of values

15 years agoinorder/alpha-isa: create eaComp object visible to StaticInst through ISA
Korey Sewell [Tue, 12 May 2009 19:01:14 +0000 (15:01 -0400)]
inorder/alpha-isa: create eaComp object visible to StaticInst through ISA
Remove subinstructions eaComp/memAcc since unused in CPU Models. Instead, create eaComp that is visible from StaticInst object. Gives InOrder model capability of generating address without actually initiating access
* * *

15 years agoinorder-bpred: edits to handle non-delay-slot ISAs
Korey Sewell [Tue, 12 May 2009 19:01:14 +0000 (15:01 -0400)]
inorder-bpred: edits to handle non-delay-slot ISAs
Changes so that InOrder can work for a non-delay-slot ISA like Alpha. Typically, changes have to do with handling misspeculated branches at different points in pipeline

15 years agoinorder-alpha-port: initial inorder support of ALPHA
Korey Sewell [Tue, 12 May 2009 19:01:13 +0000 (15:01 -0400)]
inorder-alpha-port: initial inorder support of ALPHA
Edit AlphaISA to support the inorder model. Mostly alternate constructor functions and also a few skeleton multithreaded support functions
* * *
Remove namespace from header file. Causes compiler issues that are hard to find
* * *
Separate the TLB from the CPU and allow it to live in the TLBUnit resource. Give CPU accessor functions for access and also bind at construction time
* * *
Expose memory access size and flags through instruction object
(temporarily memAccSize and memFlags to get TLB stuff working.)

15 years agoisa-parser: made a few changes, but not author-worthy
Korey Sewell [Tue, 12 May 2009 19:01:13 +0000 (15:01 -0400)]
isa-parser: made a few changes, but not author-worthy

15 years agoMerge Ruby Stuff
Korey Sewell [Mon, 11 May 2009 23:44:34 +0000 (19:44 -0400)]
Merge Ruby Stuff

15 years agoruby: assert(false) should be panic.
Nathan Binkert [Mon, 11 May 2009 23:32:32 +0000 (16:32 -0700)]
ruby: assert(false) should be panic.
This also fixes some compiler warnings

15 years agostats: remove a few compat leftovers
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
stats: remove a few compat leftovers

15 years agopython: pull out common code from main that processes arguments
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
python: pull out common code from main that processes arguments

15 years agostats: forgot an include for the mysql stuff
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
stats: forgot an include for the mysql stuff

15 years agoscons: add include guards to info.hh
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
scons: add include guards to info.hh

15 years agoruby: add RUBY sticky option that must be set to add ruby to the build
Nathan Binkert [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: add RUBY sticky option that must be set to add ruby to the build
Default is false

15 years agoruby: Initial references for ruby regressions
Steve Reinhardt [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Initial references for ruby regressions

15 years agoruby: Set up Ruby regression tests.
Steve Reinhardt [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Set up Ruby regression tests.

15 years agoruby: Working M5 interface and updated Ruby interface.
Daniel Sanchez [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Working M5 interface and updated Ruby interface.
This changeset also includes a lot of work from Derek Hower <drh5@cs.wisc.edu>

RubyMemory is now both a driver for Ruby and a port for M5.  Changed
makeRequest/hitCallback interface. Brought packets (superficially)
into the sequencer. Modified tester infrastructure to be packet based.
and Ruby can be used together through the example ruby_se.py
script. SPARC parallel applications work, and the timing *seems* right
from combined M5/Ruby debug traces. To run,
% build/ALPHA_SE/m5.debug configs/example/ruby_se.py -c
  tests/test-progs/hello/bin/alpha/linux/hello -n 4 -t

15 years agoruby: Check stderr and not stdin before hanging on an assert.
Steve Reinhardt [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Check stderr and not stdin before hanging on an assert.

15 years agoruby: decommission code
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: decommission code

1. Set.* and BigSet.* are replaced with OptBigSet.* which was renamed Set.*
2. Decomissioned all bloom filters
3. Decomissioned ruby/simics directory

15 years agoruby: removed dead functions from the sequencer
Derek Hower [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: removed dead functions from the sequencer

15 years agoruby: Removed g_SIMULATING flag
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Removed g_SIMULATING flag
1. removed checks from tester files
2. removed else clause in Sequencer and DirectoryMemory else clause is
needed by the tester, it is up to Derek to revive it elsewhere when he
gets to it

Also:
1. Changed m_entries in DirectoryMemory to a map
2. And replaced SIMICS_read_physical_memory with a call to now-dummy
Derek's-to-be readPhysMem function

15 years agoruby: Remove transactional access types (e.g. LD_XACT) from CacheRequestType
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Remove transactional access types (e.g. LD_XACT) from CacheRequestType

1. Modified enumeration
2. Also modified profiler
3. Remove transactions from Tester
4. Edited XACT_MEM out of Synthetic Driver

15 years agoruby: reordered Debug and RubyConfig::init to fix segfault
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: reordered Debug and RubyConfig::init to fix segfault
due to uninitialized output file pointer.

15 years agoruby: Disabled RubyEventQueue's deletion of its home-grown priority heap.
Dan Gibson [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Disabled RubyEventQueue's deletion of its home-grown priority heap.
Temporarily to fix unusual memory problem.

15 years agoruby: Migrate all of ruby and slicc to SCons.
Nathan Binkert [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Migrate all of ruby and slicc to SCons.
Add the PROTOCOL sticky option sets the coherence protocol that slicc
will parse and therefore ruby will use.  This whole process was made
difficult by the fact that the set of files that are output by slicc
are not easily known ahead of time.  The easiest thing wound up being
to write a parser for slicc that would tell me.  Incidentally this
means we now have a slicc grammar written in python.

15 years agoruby: clean up a few warnings
Nathan Binkert [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: clean up a few warnings

15 years agoruby: Fixed some unresolved references.
Dan Gibson [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Fixed some unresolved references.

15 years agoruby: Make ruby #includes use full paths to the files they're including.
Nathan Binkert [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Make ruby #includes use full paths to the files they're including.
This basically means changing all #include statements and changing
autogenerated code so that it generates the correct paths.  Because
slicc generates #includes, I had to hard code the include paths to
mem/protocol.

15 years agoruby: remove unnecessary code.
Dan Gibson [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: remove unnecessary code.

1) Removing files from the ruby build left some unresovled
symbols. Those have been fixed.

2) Most of the dependencies on Simics data types and the simics
interface files have been removed.

3) Almost all mention of opal is gone.

4) Huge chunks of LogTM are now gone.

5) Handling 1-4 left ~hundreds of unresolved references, which were
fixed, yielding a snowball effect (and the massive size of this
delta).

15 years agoruby: Cleaned up sequencer. Removed LogTM specific code.
Derek Hower [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Cleaned up sequencer. Removed LogTM specific code.

15 years agoruby: added Packet interface to makeRequest and isReady.
Derek Hower [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: added Packet interface to makeRequest and isReady.
Also pushed Packet usage into the Sequencer

15 years agoruby: fold the debugging options into Debug.cc
Nathan Binkert [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: fold the debugging options into Debug.cc

15 years agoruby: Renamed Ruby's EventQueue to RubyEventQueue
Derek Hower [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Renamed Ruby's EventQueue to RubyEventQueue

--HG--
rename : src/mem/ruby/eventqueue/EventQueue.cc => src/mem/ruby/eventqueue/RubyEventQueue.cc
rename : src/mem/ruby/eventqueue/EventQueue.hh => src/mem/ruby/eventqueue/RubyEventQueue.hh
rename : src/mem/ruby/eventqueue/EventQueueNode.cc => src/mem/ruby/eventqueue/RubyEventQueueNode.cc
rename : src/mem/ruby/eventqueue/EventQueueNode.hh => src/mem/ruby/eventqueue/RubyEventQueueNode.hh

15 years agoruby: Removed System name clash by renaming ruby's System to RubySystem
Daniel Sanchez [Mon, 11 May 2009 17:38:44 +0000 (10:38 -0700)]
ruby: Removed System name clash by renaming ruby's System to RubySystem

15 years agoruby: rename config.include to config.hh and clean up the macro stuff.
Nathan Binkert [Mon, 11 May 2009 17:38:44 +0000 (10:38 -0700)]
ruby: rename config.include to config.hh and clean up the macro stuff.
I did the macro cleanup because I was worried that the SCons scanner
would get confused.  This code will hopefully go away soon anyway.

--HG--
rename : src/mem/ruby/config/config.include => src/mem/ruby/config/config.hh

15 years agoruby: strip out some unused defines
Nathan Binkert [Mon, 11 May 2009 17:38:44 +0000 (10:38 -0700)]
ruby: strip out some unused defines

15 years agoruby: Import ruby and slicc from GEMS
Nathan Binkert [Mon, 11 May 2009 17:38:43 +0000 (10:38 -0700)]
ruby: Import ruby and slicc from GEMS

We eventually plan to replace the m5 cache hierarchy with the GEMS
hierarchy, but for now we will make both live alongside eachother.

15 years agobranch merge
Korey Sewell [Tue, 5 May 2009 07:01:57 +0000 (03:01 -0400)]
branch merge

15 years agocpus: fix cpu progress event
Korey Sewell [Tue, 5 May 2009 06:51:31 +0000 (02:51 -0400)]
cpus: fix cpu progress event
this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting
progress events through repeatEvent flag and also changing the interval of the progress event as well

15 years agomerge code
Korey Sewell [Tue, 5 May 2009 06:44:21 +0000 (02:44 -0400)]
merge code

15 years agocpus: fix cpu progress event
Korey Sewell [Tue, 5 May 2009 06:39:05 +0000 (02:39 -0400)]
cpus: fix cpu progress event
this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting
progress events through repeatEvent flag and also changing the interval of the progress event as well

15 years agoscons: re-work the *Source functions to take more information.
Nathan Binkert [Mon, 4 May 2009 23:58:24 +0000 (16:58 -0700)]
scons: re-work the *Source functions to take more information.
Start by turning all of the *Source functions into classes
so we can do more calculations and more easily collect the data we need.
Add parameters to the new classes for indicating what sorts of flags the
objects should be compiled with so we can allow certain files to be compiled
without Werror for example.

15 years agoX86: Precompute the default and alternate address and operand size and the stack...
Gabe Black [Sun, 26 Apr 2009 23:49:24 +0000 (16:49 -0700)]
X86: Precompute the default and alternate address and operand size and the stack size.

15 years agoX86: Split out the internal memory space from the regular translate() and precompute...
Gabe Black [Sun, 26 Apr 2009 23:48:44 +0000 (16:48 -0700)]
X86: Split out the internal memory space from the regular translate() and precompute mode.

15 years agoX86: Centralize updates to the handy M5 reg.
Gabe Black [Sun, 26 Apr 2009 23:47:48 +0000 (16:47 -0700)]
X86: Centralize updates to the handy M5 reg.

15 years agoX86: Implement lowest priority interrupts more correctly.
Gabe Black [Sun, 26 Apr 2009 09:09:54 +0000 (02:09 -0700)]
X86: Implement lowest priority interrupts more correctly.
Lowest priority interrupts are now delivered based on a rotating offset into
the list of potential recipients. There could be parasitic cases were a
processor gets picked on and ends up at that rotating offset all the time, but
it's much more likely that the group will stay consistent and the pain will be
distributed evenly.

15 years agoX86: Tell the function that sends int messages who to send to instead of figuring...
Gabe Black [Sun, 26 Apr 2009 09:09:27 +0000 (02:09 -0700)]
X86: Tell the function that sends int messages who to send to instead of figuring it out itself.

15 years agoX86: Make the local APICs register themselves with the IO APIC.
Gabe Black [Sun, 26 Apr 2009 09:09:13 +0000 (02:09 -0700)]
X86: Make the local APICs register themselves with the IO APIC.
This is a hack so that the IO APIC can figure out information about the local
APICs. The local APICs still have no way to find out about each other.
Ideally, when the local APICs update state that's relevant to somebody else,
they'd send an update to everyone. Without being able to do a broadcast, that
would still require knowing who else there is to notify. Other broadcasts are
implemented using assumptions that may not always be true.

15 years agoX86: Record the initial APIC ID which identifies an APIC in M5.
Gabe Black [Sun, 26 Apr 2009 09:06:21 +0000 (02:06 -0700)]
X86: Record the initial APIC ID which identifies an APIC in M5.
The ID as exposed to software can be changed. Tracking those changes in M5
would be cumbersome, especially since there's no guarantee the IDs will remain
unique.