gem5.git
15 years agoX86: Update stats for in place TLB miss handling.
Gabe Black [Wed, 25 Feb 2009 18:16:29 +0000 (10:16 -0800)]
X86: Update stats for in place TLB miss handling.

15 years agoX86: Make the X86 TLB take advantage of delayed translations, and get rid of the...
Gabe Black [Wed, 25 Feb 2009 18:16:21 +0000 (10:16 -0800)]
X86: Make the X86 TLB take advantage of delayed translations, and get rid of the fake TLB miss faults.

15 years agoCPU: Implement translateTiming which defers to translateAtomic, and convert the timin...
Gabe Black [Wed, 25 Feb 2009 18:16:15 +0000 (10:16 -0800)]
CPU: Implement translateTiming which defers to translateAtomic, and convert the timing simple CPU to use it.

15 years agoSPARC: Adjust a few instructions to not write registers in initiateAcc.
Gabe Black [Wed, 25 Feb 2009 18:16:04 +0000 (10:16 -0800)]
SPARC: Adjust a few instructions to not write registers in initiateAcc.

15 years agoX86: Make the stupd microop not update registers in initiateAcc.
Gabe Black [Wed, 25 Feb 2009 18:15:56 +0000 (10:15 -0800)]
X86: Make the stupd microop not update registers in initiateAcc.

15 years agoISA: Replace the translate functions in the TLBs with translateAtomic.
Gabe Black [Wed, 25 Feb 2009 18:15:44 +0000 (10:15 -0800)]
ISA: Replace the translate functions in the TLBs with translateAtomic.

15 years agoCPU: Get rid of translate... functions from various interface classes.
Gabe Black [Wed, 25 Feb 2009 18:15:34 +0000 (10:15 -0800)]
CPU: Get rid of translate... functions from various interface classes.

15 years agostats: reorganize how parameters are stored and accessed.
Nathan Binkert [Mon, 23 Feb 2009 20:22:19 +0000 (12:22 -0800)]
stats: reorganize how parameters are stored and accessed.

15 years agostats: move the limits stuff into the types.hh file
Nathan Binkert [Mon, 23 Feb 2009 20:22:18 +0000 (12:22 -0800)]
stats: move the limits stuff into the types.hh file

15 years agostats: get rid of the convoluted 'database' code.
Nathan Binkert [Mon, 23 Feb 2009 20:22:17 +0000 (12:22 -0800)]
stats: get rid of the convoluted 'database' code.
Just use the stuff directly and things ought to be more clear

15 years agostats: Try to make the names of things more intuitive.
Nathan Binkert [Mon, 23 Feb 2009 20:22:15 +0000 (12:22 -0800)]
stats: Try to make the names of things more intuitive.
Basically, this means renaming several things called data to info, which
is information about the statistics.  Things that are named data now are
actual data stored for the statistic.

15 years agostats: clean up the statistics unittest
Nathan Binkert [Mon, 23 Feb 2009 20:04:52 +0000 (12:04 -0800)]
stats: clean up the statistics unittest

15 years agostats: fix text printout for distributions
Nathan Binkert [Mon, 23 Feb 2009 20:04:50 +0000 (12:04 -0800)]
stats: fix text printout for distributions

15 years agostats: cleanup static stats to make startup work.
Nathan Binkert [Mon, 23 Feb 2009 20:03:06 +0000 (12:03 -0800)]
stats: cleanup static stats to make startup work.
This is mainly to allow the unit test to run without requiring the standard
M5 stats from being initialized (e.g. sim_seconds, sim_ticks, host_seconds)

15 years agodebug: Move debug_break into src/base
Nathan Binkert [Mon, 23 Feb 2009 19:48:40 +0000 (11:48 -0800)]
debug: Move debug_break into src/base

15 years agoX86: Pass whether an access was a read/write/fetch so faults can behave accordingly.
Gabe Black [Mon, 23 Feb 2009 08:20:34 +0000 (00:20 -0800)]
X86: Pass whether an access was a read/write/fetch so faults can behave accordingly.

15 years agoRemove unnecessary building of FreeList/RenameMap in InOrder. Clean-up comments and...
Korey Sewell [Fri, 20 Feb 2009 16:02:48 +0000 (11:02 -0500)]
Remove unnecessary building of FreeList/RenameMap in InOrder. Clean-up comments and O3 extensions InOrder Thread Context

15 years agoevents: Make trace events happen at the right priority.
Nathan Binkert [Wed, 18 Feb 2009 18:00:15 +0000 (10:00 -0800)]
events: Make trace events happen at the right priority.
Also, while we're at it, remember that priorities are in the Event class
and add a disable method to disable tracing.

15 years agoMake etherdump timestamps zero-based.
Steve Reinhardt [Wed, 18 Feb 2009 03:24:46 +0000 (19:24 -0800)]
Make etherdump timestamps zero-based.
We previously used the actual wall time for the base timestamps,
making etherdumps non-deterministic.  This fixes that problem and
gets rid of the "malformed packet" at the front that we needed to
provide the right base timestamp to wireshark/tcpdump.

15 years agosycalls: implement mremap() and add DATA flag for getrlimit(). mremap has been tested...
Lisa Hsu [Mon, 16 Feb 2009 22:47:39 +0000 (17:47 -0500)]
sycalls: implement mremap() and add DATA flag for getrlimit(). mremap has been tested on Alpha, compiles for the rest but not tested. I don't see why it wouldn't work though.

15 years agoUpdate stats for new prefetching fixes.
Steve Reinhardt [Mon, 16 Feb 2009 17:09:45 +0000 (12:09 -0500)]
Update stats for new prefetching fixes.
Prefetching is not enabled in any of our regressions, so no significant
stat values have changed, but zero-valued prefetch stats no longer
show up when prefetching is disabled so there are noticable changes
in the reference stat files anyway.

15 years agoFixes to get prefetching working again.
Steve Reinhardt [Mon, 16 Feb 2009 16:56:40 +0000 (08:56 -0800)]
Fixes to get prefetching working again.
Apparently we broke it with the cache rewrite and never noticed.
Thanks to Bao Yungang <baoyungang@gmail.com> for a significant part
of these changes (and for inspiring me to work on the rest).
Some other overdue cleanup on the prefetch code too.

15 years agoX86: Make the loader recognize 32 bit x86 processes.
Gabe Black [Mon, 16 Feb 2009 07:43:39 +0000 (23:43 -0800)]
X86: Make the loader recognize 32 bit x86 processes.

15 years agotraceflags: fix --trace-help
Nathan Binkert [Mon, 16 Feb 2009 04:39:12 +0000 (20:39 -0800)]
traceflags: fix --trace-help

15 years agoSCons: Fix read_command so it can properly deal with command strings
Nathan Binkert [Mon, 16 Feb 2009 04:38:49 +0000 (20:38 -0800)]
SCons: Fix read_command so it can properly deal with command strings

15 years agoscons: clean up the main SConstruct file more.
Nathan Binkert [Thu, 12 Feb 2009 00:58:51 +0000 (16:58 -0800)]
scons: clean up the main SConstruct file more.
Add some features to read_command so it works a little bit better
Clean up the mercurial checks.
Filter the user environment and only pick out the useful stuff.

15 years agostyle
Nathan Binkert [Wed, 11 Feb 2009 06:19:27 +0000 (22:19 -0800)]
style

15 years agoConfigs: Add support for the InOrder CPU model
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
Configs: Add support for the InOrder CPU model

15 years agoInOrder: Import new inorder CPU model from MIPS.
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
InOrder: Import new inorder CPU model from MIPS.
This model currently only works in MIPS_SE mode, so it will take some effort
to clean it up and make it generally useful. Hopefully people are willing to
help make that happen!

15 years agosyscall: Expose ioctl for MIPS
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
syscall: Expose ioctl for MIPS

15 years agoExeTrace: Allow subclasses of the tracer to define their own prefix to dump
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
ExeTrace: Allow subclasses of the tracer to define their own prefix to dump

15 years agoCPU: Prepare CPU models for the new in-order CPU model.
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
CPU: Prepare CPU models for the new in-order CPU model.
Some new functions and forward declarations are necessary to make things work

15 years agocopyright: This file need not have had the more restrictive copyright.
Nathan Binkert [Tue, 10 Feb 2009 04:10:15 +0000 (20:10 -0800)]
copyright: This file need not have had the more restrictive copyright.

15 years agoscons: Require SCons version 0.98.1
Nathan Binkert [Tue, 10 Feb 2009 04:10:14 +0000 (20:10 -0800)]
scons: Require SCons version 0.98.1
This allows me to clean things up so we are up to date with respect to
deprecated features.  There are many features scheduled for permanent failure
in scons 2.0 and 0.98.1 provides the most compatability for that.  It
also paves the way for some nice new features that I will add soon

15 years agoscons: Don't build the intermediate static library unless explicitly requested.
Nathan Binkert [Tue, 10 Feb 2009 04:10:12 +0000 (20:10 -0800)]
scons: Don't build the intermediate static library unless explicitly requested.
This means that similar to libm5_fast.so, you need to explicitly build
build/ALPHA_SE/libm5_fast.a if you want it.

15 years agoQuell g++ 4.3 warning about operator ambiguity
Nathan Binkert [Sat, 7 Feb 2009 04:55:50 +0000 (20:55 -0800)]
Quell g++ 4.3 warning about operator ambiguity

15 years agosome new files are missing copyright notices
Nathan Binkert [Thu, 5 Feb 2009 00:26:15 +0000 (16:26 -0800)]
some new files are missing copyright notices

15 years agoX86: Add some missing default arguments.
Gabe Black [Mon, 2 Feb 2009 06:40:51 +0000 (22:40 -0800)]
X86: Add some missing default arguments.

15 years agoX86: All x86 fault classes now attempt to do something useful.
Gabe Black [Mon, 2 Feb 2009 01:09:08 +0000 (17:09 -0800)]
X86: All x86 fault classes now attempt to do something useful.

15 years agoX86: Make the fault classes handle error codes better.
Gabe Black [Mon, 2 Feb 2009 01:08:32 +0000 (17:08 -0800)]
X86: Make the fault classes handle error codes better.

15 years agoX86: Make the long mode interrupt/exception microcode handle an error code.
Gabe Black [Mon, 2 Feb 2009 01:07:43 +0000 (17:07 -0800)]
X86: Make the long mode interrupt/exception microcode handle an error code.

15 years agoX86: Distinguish between hardware and software interrupts/exceptions
Gabe Black [Mon, 2 Feb 2009 01:07:18 +0000 (17:07 -0800)]
X86: Distinguish between hardware and software interrupts/exceptions

15 years agoX86: Fix the upper bound on some ranges that were setting up the micro code assembler.
Gabe Black [Mon, 2 Feb 2009 01:06:25 +0000 (17:06 -0800)]
X86: Fix the upper bound on some ranges that were setting up the micro code assembler.

15 years agoX86: Make the chks microop check for the right int descriptor type.
Gabe Black [Mon, 2 Feb 2009 01:05:37 +0000 (17:05 -0800)]
X86: Make the chks microop check for the right int descriptor type.

15 years agoX86: Touch up the interrupt entering microcode.
Gabe Black [Mon, 2 Feb 2009 01:04:21 +0000 (17:04 -0800)]
X86: Touch up the interrupt entering microcode.

15 years agoX86: Keep track of the vector for all exceptions/faults.
Gabe Black [Mon, 2 Feb 2009 01:03:11 +0000 (17:03 -0800)]
X86: Keep track of the vector for all exceptions/faults.

15 years agoX86: Update stats now that the micropc isn't always reset on faults.
Gabe Black [Mon, 2 Feb 2009 01:02:16 +0000 (17:02 -0800)]
X86: Update stats now that the micropc isn't always reset on faults.

15 years agoCPU: Don't always reset the micro pc on faults. Let the faults handle it.
Gabe Black [Sun, 1 Feb 2009 08:30:54 +0000 (00:30 -0800)]
CPU: Don't always reset the micro pc on faults. Let the faults handle it.

15 years agoX86: Fix the time keeping of the Local APIC timer.
Gabe Black [Sun, 1 Feb 2009 08:30:11 +0000 (00:30 -0800)]
X86: Fix the time keeping of the Local APIC timer.

15 years agoX86: Find the natural lpj for this configuration.
Gabe Black [Sun, 1 Feb 2009 08:29:07 +0000 (00:29 -0800)]
X86: Find the natural lpj for this configuration.

15 years agoX86: Fix the microcode for the LODS instruction.
Gabe Black [Sun, 1 Feb 2009 08:28:28 +0000 (00:28 -0800)]
X86: Fix the microcode for the LODS instruction.

15 years agoX86: Add a root device to the kernel command line.
Gabe Black [Sun, 1 Feb 2009 08:27:49 +0000 (00:27 -0800)]
X86: Add a root device to the kernel command line.

15 years agoX86: Implement pciToDma.
Gabe Black [Sun, 1 Feb 2009 08:27:15 +0000 (00:27 -0800)]
X86: Implement pciToDma.

15 years agoX86: Configure the first PCI interrupt.
Gabe Black [Sun, 1 Feb 2009 08:26:10 +0000 (00:26 -0800)]
X86: Configure the first PCI interrupt.

15 years agoX86: Hook up the IDE controller interrupt line.
Gabe Black [Sun, 1 Feb 2009 08:25:15 +0000 (00:25 -0800)]
X86: Hook up the IDE controller interrupt line.

15 years agoX86: Hook in a hard drive image.
Gabe Black [Sun, 1 Feb 2009 08:24:26 +0000 (00:24 -0800)]
X86: Hook in a hard drive image.

15 years agoX86: Take out the IDE noprobe kernel arguments.
Gabe Black [Sun, 1 Feb 2009 08:20:44 +0000 (00:20 -0800)]
X86: Take out the IDE noprobe kernel arguments.

15 years agoX86: Fix some incorrect register widths.
Gabe Black [Sun, 1 Feb 2009 08:18:13 +0000 (00:18 -0800)]
X86: Fix some incorrect register widths.

15 years agoX86: Add extended Intel MP entries correctly.
Gabe Black [Sun, 1 Feb 2009 08:15:38 +0000 (00:15 -0800)]
X86: Add extended Intel MP entries correctly.

15 years agoX86: Compute PCI config addresses correctly.
Gabe Black [Sun, 1 Feb 2009 08:11:49 +0000 (00:11 -0800)]
X86: Compute PCI config addresses correctly.

15 years agoX86: Calculate flags based on the actual result.
Gabe Black [Sun, 1 Feb 2009 08:08:16 +0000 (00:08 -0800)]
X86: Calculate flags based on the actual result.

15 years agoX86: Make sure the predecoder is cleared out for interrupts.
Gabe Black [Sun, 1 Feb 2009 08:04:34 +0000 (00:04 -0800)]
X86: Make sure the predecoder is cleared out for interrupts.

15 years agoDevices: Add support for legacy fixed IO locations in BARs.
Gabe Black [Sun, 1 Feb 2009 08:02:21 +0000 (00:02 -0800)]
Devices: Add support for legacy fixed IO locations in BARs.

15 years agoX86: Plug in an IDE controller.
Gabe Black [Sun, 1 Feb 2009 08:00:03 +0000 (00:00 -0800)]
X86: Plug in an IDE controller.

15 years agoX86: Refactor and clean up the keyboard controller.
Gabe Black [Sun, 1 Feb 2009 07:59:25 +0000 (23:59 -0800)]
X86: Refactor and clean up the keyboard controller.

15 years agoX86: Add a keyboard controller device.
Gabe Black [Sun, 1 Feb 2009 07:59:01 +0000 (23:59 -0800)]
X86: Add a keyboard controller device.

15 years agoX86: Set up the console interrupt and add some DPRINTFs.
Gabe Black [Sun, 1 Feb 2009 07:56:46 +0000 (23:56 -0800)]
X86: Set up the console interrupt and add some DPRINTFs.

15 years agoX86: Configure the IO APIC more.
Gabe Black [Sun, 1 Feb 2009 07:44:05 +0000 (23:44 -0800)]
X86: Configure the IO APIC more.

15 years agoX86: Add some interrupt info to the intel MP tables.
Gabe Black [Sun, 1 Feb 2009 07:43:09 +0000 (23:43 -0800)]
X86: Add some interrupt info to the intel MP tables.

15 years agoX86: Rework interrupt pins to allow one to many connections.
Gabe Black [Sun, 1 Feb 2009 07:33:54 +0000 (23:33 -0800)]
X86: Rework interrupt pins to allow one to many connections.

15 years agoX86: Initialize the value behind port 61 so unused bits are consistent.
Gabe Black [Sun, 1 Feb 2009 07:26:43 +0000 (23:26 -0800)]
X86: Initialize the value behind port 61 so unused bits are consistent.

15 years agoX86: Set/correct some default values for x86 parameters.
Gabe Black [Mon, 2 Feb 2009 00:59:34 +0000 (16:59 -0800)]
X86: Set/correct some default values for x86 parameters.

15 years agoSCons: Fix how we get Mercurial revision information since internals keep changing.
Ali Saidi [Sat, 31 Jan 2009 01:04:57 +0000 (20:04 -0500)]
SCons: Fix how we get Mercurial revision information since internals keep changing.

15 years agoErrors: Use the correct panic/warn/fatal/info message in some places.
Ali Saidi [Sat, 31 Jan 2009 01:04:17 +0000 (20:04 -0500)]
Errors: Use the correct panic/warn/fatal/info message in some places.

15 years agoErrors: Print a URL with a hash of the format string to find more information about...
Ali Saidi [Sat, 31 Jan 2009 01:04:15 +0000 (20:04 -0500)]
Errors: Print a URL with a hash of the format string to find more information about an error.

15 years agoConfig: Cause a fatal() when a parameter without a default value isn't set(FS #315).
Ali Saidi [Sat, 31 Jan 2009 00:08:13 +0000 (19:08 -0500)]
Config: Cause a fatal() when a parameter without a default value isn't set(FS #315).

15 years agoFix typo
Nathan Binkert [Fri, 30 Jan 2009 06:27:11 +0000 (22:27 -0800)]
Fix typo

15 years agoX86: Prevent Linux for probing for non-existant IDE controllers.
Gabe Black [Mon, 26 Jan 2009 04:36:24 +0000 (20:36 -0800)]
X86: Prevent Linux for probing for non-existant IDE controllers.

15 years agoX86: Add a dummy minimal DMA controller that doesn't do anything.
Gabe Black [Mon, 26 Jan 2009 04:35:00 +0000 (20:35 -0800)]
X86: Add a dummy minimal DMA controller that doesn't do anything.

15 years agoX86: Add a device to back the non-existant floppy drive controller.
Gabe Black [Mon, 26 Jan 2009 04:34:17 +0000 (20:34 -0800)]
X86: Add a device to back the non-existant floppy drive controller.

15 years agoX86: Add fake devices for non-existant serial ports.
Gabe Black [Mon, 26 Jan 2009 04:33:52 +0000 (20:33 -0800)]
X86: Add fake devices for non-existant serial ports.

15 years agoX86: Implement the xadd instruction.
Gabe Black [Mon, 26 Jan 2009 04:33:27 +0000 (20:33 -0800)]
X86: Implement the xadd instruction.

15 years agoX86: Implement the bswap instruction.
Gabe Black [Mon, 26 Jan 2009 04:32:43 +0000 (20:32 -0800)]
X86: Implement the bswap instruction.

15 years agoDev: Make the RTC device ignore writes to a read only bit.
Gabe Black [Mon, 26 Jan 2009 04:32:26 +0000 (20:32 -0800)]
Dev: Make the RTC device ignore writes to a read only bit.

15 years agoX86: Fix a bug in the iret microcode.
Gabe Black [Mon, 26 Jan 2009 04:31:17 +0000 (20:31 -0800)]
X86: Fix a bug in the iret microcode.

15 years agoX86: Make the interrupt object wake up the CPU when something becomes pending.
Gabe Black [Mon, 26 Jan 2009 04:30:51 +0000 (20:30 -0800)]
X86: Make the interrupt object wake up the CPU when something becomes pending.

15 years agoCPU: Add a setCPU function to the interrupt objects.
Gabe Black [Mon, 26 Jan 2009 04:29:03 +0000 (20:29 -0800)]
CPU: Add a setCPU function to the interrupt objects.

15 years agoDevices: Make the destructor virtual on the CopyEnginChannel object.
Gabe Black [Mon, 26 Jan 2009 04:26:53 +0000 (20:26 -0800)]
Devices: Make the destructor virtual on the CopyEnginChannel object.
This fixes a compile warning which becomes an error.

15 years agopseudo inst: Add new wake cpu instruction for sending a message to wake a cpu.
Nathan Binkert [Sat, 24 Jan 2009 15:27:22 +0000 (07:27 -0800)]
pseudo inst: Add new wake cpu instruction for sending a message to wake a cpu.
It's instantaneous and so it's somewhat bogus, but it's a first step.

15 years agocpu: provide a wakeup mechanism that can be used to pull CPUs out of sleep.
Nathan Binkert [Sat, 24 Jan 2009 15:27:21 +0000 (07:27 -0800)]
cpu: provide a wakeup mechanism that can be used to pull CPUs out of sleep.
Make interrupts use the new wakeup method, and pull all of the interrupt
stuff into the cpu base class so that only the wakeup code needs to be updated.
I tried to make wakeup, wakeCPU, and the various other mechanisms for waking
and sleeping a little more sane, but I couldn't understand why the statistics
were changing the way they were.  Maybe we'll try again some day.

15 years agoTrace: Add DPRINTFS macro that takes parameter to call name() for trace printing.
Ali Saidi [Fri, 23 Jan 2009 22:19:48 +0000 (17:19 -0500)]
Trace: Add DPRINTFS macro that takes parameter to call name() for trace printing.

15 years agoIGbE: Fix two e1000 driver bugs that I missed before.
Ali Saidi [Fri, 23 Jan 2009 22:19:47 +0000 (17:19 -0500)]
IGbE: Fix two e1000 driver bugs that I missed before.

15 years agoo3cpu: give a name to the activity recorder for better tracing
Nathan Binkert [Wed, 21 Jan 2009 22:56:18 +0000 (14:56 -0800)]
o3cpu: give a name to the activity recorder for better tracing

15 years agothread_context: move getSystemPtr so SE mode can get to it.
Nathan Binkert [Tue, 20 Jan 2009 04:36:49 +0000 (20:36 -0800)]
thread_context: move getSystemPtr so SE mode can get to it.
There was really no reason that it should be FS only.

15 years agopython: add fatal() function to the m5 package and use it
Nathan Binkert [Mon, 19 Jan 2009 22:43:09 +0000 (14:43 -0800)]
python: add fatal() function to the m5 package and use it

15 years agopython: Try to isolate the stuff that's in the m5.internal package a bit more.
Nathan Binkert [Mon, 19 Jan 2009 17:59:15 +0000 (09:59 -0800)]
python: Try to isolate the stuff that's in the m5.internal package a bit more.

15 years agotracing: Add help strings for some of the trace flags
Nathan Binkert [Mon, 19 Jan 2009 17:59:14 +0000 (09:59 -0800)]
tracing: Add help strings for some of the trace flags

15 years agotracing: panic() if people try to use tracing, but TRACING_ON is not set.
Nathan Binkert [Mon, 19 Jan 2009 17:59:13 +0000 (09:59 -0800)]
tracing: panic() if people try to use tracing, but TRACING_ON is not set.
Also clean things up so that help strings can more easily be added.
Move the help function into trace.py

15 years agopython: Rework how things are imported
Nathan Binkert [Mon, 19 Jan 2009 17:59:13 +0000 (09:59 -0800)]
python: Rework how things are imported

15 years agoscons: Don't add all objects to the library twice
Nathan Binkert [Mon, 19 Jan 2009 17:03:41 +0000 (09:03 -0800)]
scons: Don't add all objects to the library twice