summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-10-12Create a message port for sending messages as apposed to reading/writing a ↵Gabe Black
memory range.
2008-10-12X86: Add a LocalApic trace flag.Gabe Black
2008-10-12X86: Make the local APIC accessible through the memory system directly, and ↵Gabe Black
make the timer work.
2008-10-12Turn Interrupts objects into SimObjects. Also, move local APIC state into ↵Gabe Black
x86's Interrupts object.
2008-10-12CPU: Eliminate the get_vec function.Gabe Black
2008-10-11CPU: Add a getInterruptController functionGabe Black
2008-10-11X86: Add entries for the IO APIC to the MP table.Gabe Black
2008-10-11X86: Create an IO APIC device.Gabe Black
2008-10-11X86: Set up a mechanism for the I8254 timer to cause interrupts.Gabe Black
2008-10-11X86: Add an Intel MP table to the simulation.Gabe Black
2008-10-11CPU: Eliminate the simPalCheck funciton.Gabe Black
2008-10-11CPU: Eliminate the hwrei function.Gabe Black
2008-10-11X86: Rename the PC device to Pc.Gabe Black
--HG-- rename : src/dev/x86/PC.py => src/dev/x86/Pc.py
2008-10-11X86: Bring the South Bridge device into dev/x86 and get rid of south_bridge ↵Gabe Black
directory. --HG-- rename : src/dev/x86/south_bridge/SouthBridge.py => src/dev/x86/SouthBridge.py rename : src/dev/x86/south_bridge/south_bridge.cc => src/dev/x86/south_bridge.cc rename : src/dev/x86/south_bridge/south_bridge.hh => src/dev/x86/south_bridge.hh
2008-10-11X86: Change I8254 and PCSpeaker devices from subdevices to SimObjects and ↵Gabe Black
eliminate subdevices. --HG-- rename : src/dev/x86/south_bridge/i8254.cc => src/dev/x86/i8254.cc rename : src/dev/x86/south_bridge/i8254.hh => src/dev/x86/i8254.hh rename : src/dev/x86/south_bridge/speaker.cc => src/dev/x86/speaker.cc rename : src/dev/x86/south_bridge/speaker.hh => src/dev/x86/speaker.hh
2008-10-11Devices: Make the Intel8254Timer device only use pointers to its counters.Gabe Black
2008-10-11X86: Make the CMOS and I8259 devices use IntDev and IntPin.Gabe Black
2008-10-11X86: Create the IntDev and IntPin system.Gabe Black
The IntDev class is a base for anything that supports IntPins. IntPins allow devices to generically trigger interrupts on a particular pin of an IntDev device without having to know what the device is or what pin they're attached to.
2008-10-11X86: Hook the CMOS device to the I8259 PICs.Gabe Black
2008-10-11X86: Make the I8259 decipher the commands it's given, and add some of it's ↵Gabe Black
registers.
2008-10-11X86: Change the I8259 from a subdevice into a real SimObject.Gabe Black
--HG-- rename : src/dev/x86/south_bridge/i8259.cc => src/dev/x86/i8259.cc rename : src/dev/x86/south_bridge/i8259.hh => src/dev/x86/i8259.hh
2008-10-11X86: Change the CMOS from a sub-device to a real SimObjectGabe Black
--HG-- rename : src/dev/x86/south_bridge/cmos.cc => src/dev/x86/cmos.cc rename : src/dev/x86/south_bridge/cmos.hh => src/dev/x86/cmos.hh
2008-10-10TLB: Make all tlbs derive from a common base class in both python and C++.Gabe Black
2008-10-10X86: Create SimObjects in python and C++ to represent the ACPI system ↵Gabe Black
description tables.
2008-10-10X86: Make the time on the RTC configurable.Gabe Black
2008-10-10X86: Create SimObjects in python and C++ to represent the Intel MP tables.Gabe Black
2008-10-10cprintf: properly deal with pointer typesNathan Binkert
2008-10-10swig: Add in a %rename to allow the same name to appear in multiple namespaces.Nathan Binkert
2008-10-10Rename the info function to inform to avoid likely name conflictsNathan Binkert
2008-10-10automergeNathan Binkert
2008-10-10output: Make panic/fatal/warn more flexible so we can add some new ones.Nathan Binkert
The major thrust of this change is to limit the amount of code duplication surrounding the code for these functions. This code also adds two new message types called info and hack. Info is meant to be less harsh than warn so people don't get confused and start thinking that the simulator is broken. Hack is a way for people to add runtime messages indicating that the simulator just executed a code "hack" that should probably be fixed. The benefit of knowing about these code hacks is that it will let people know what sorts of inaccuracies or potential bugs might be entering their experiments. Finally, I've added some flags to turn on and off these message types so command line options can change them.
2008-10-10gdb: add a debugging function that enters the python interpreter.Nathan Binkert
2008-10-10jobfile: Add support for dictionaries as jobfile options.Nathan Binkert
If the same dictionary option is seen in several options, those dictionaries are composed. If you define the same dictionary key in multiple options, the system flags an error. Also, clean up the jobfile code so that it is more debuggable.
2008-10-10python: Add a utility for nested attribute dicts.Nathan Binkert
Change attrdict so that attributes that begin with an underscore don't go into the dict.
2008-10-10misc: remove #include <cassert> from misc.hh since not everyone needs it.Nathan Binkert
2008-10-10X86: Turn SMBios structures into simobjects.Gabe Black
2008-10-10X86: Add a couple comments to the bios SConscriptGabe Black
2008-10-10X86: Split makeLinuxX86System into makeLinuxX86System and makeX86System.Gabe Black
2008-10-10X86: Move the smbios objects into a folder for BIOS objects.Gabe Black
2008-10-10X86: Fix compilation with new eventq API.Gabe Black
2008-10-09SimObjects: Clean up handling of C++ namespaces.Nathan Binkert
Make them easier to express by only having the cxx_type parameter which has the full namespace name, and drop the cxx_namespace thing. Add support for multiple levels of namespace.
2008-10-09range_map: Add a method to find which range a single value falls into.Nathan Binkert
2008-10-09style: conform to M5 style.Nathan Binkert
2008-10-09mem: Add a method for setting the time on a packet.Nathan Binkert
2008-10-09eventq: convert all usage of events to use the new API.Nathan Binkert
For now, there is still a single global event queue, but this is necessary for making the steps towards a parallelized m5.
2008-10-09eventq: Major API change for the Event and EventQueue structures.Nathan Binkert
Since the early days of M5, an event needed to know which event queue it was on, and that data was required at the time of construction of the event object. In the future parallelized M5, this sort of requirement does not work well since the proper event queue will not always be known at the time of construction of an event. Now, events are created, and the EventQueue itself has the schedule function, e.g. eventq->schedule(event, when). To simplify the syntax, I created a class called EventManager which holds a pointer to an EventQueue and provides the schedule interface that is a proxy for the EventQueue. The intent is that objects that frequently schedule events can be derived from EventManager and then they have the schedule interface. SimObject and Port are examples of objects that will become EventManagers. The end result is that any SimObject can just call schedule(event, when) and it will just call that SimObject's eventq->schedule function. Of course, some objects may have more than one EventQueue, so this interface might not be perfect for those, but they should be relatively few.
2008-10-09pdb: Try to make pdb work better.Nathan Binkert
I've done a few things here. First, I invoke the script a little bit differently so that pdb doesn't get confused. Second, I've stored the actual filename in the module's __file__ so that pdb can find the source file on your machine.
2008-10-09SINIC: Commit old code from ASPLOS 2006 studies.Nathan Binkert
NOTE: This code was written by Nathan Binkert in 2006 and is properly copyright "The Regents of the University of Michigan"
2008-10-09eventq: Don't use inline friend function when a static function will do.Nathan Binkert
Another good reason to avoid this is that swig will try to wrap the friend, but it won't try to wrap a private static function.
2008-10-09SCons: add code to provide a libm5 shared library.Nathan Binkert
Targets look like libm5_debug.so. This target can be dynamically linked into another C++ program and provide just about all of the M5 features. Additionally, this library is a standalone module that can be imported into python with an "import libm5_debug" type command line.