7a4d75bae3
CPU: Refactor read/write in the simple timing CPU.
Gabe Black
2008-11-13 23:30:37 -08:00
bcfd284d24
X86: Update the mcf stats. I must have missed updating these for the change to send both parts of a split packet at the same time.
Gabe Black
2008-11-13 23:30:15 -08:00
4d64d7664c
SCons: Allow top level directory of EXTRAS able to contain SConscripts. The current EXTRAS will fail if the top level directory pointed to by EXTRAS has a SConscript file in it. We allow this by including the directory name of the EXTRA in the build directory which prevents a clash between src/SConscript and extra/SConscript. Maintain compatibility with older uses of EXTRAS by adding a -I for each top level extra directory.
Nathan Binkert
2008-11-10 11:51:18 -08:00
eb5d9ba72b
pseudo inst: Add rpns (read processor nanoseconds) instruction. This instruction basically returns the number of nanoseconds that the CPU has been running.
Nathan Binkert
2008-11-10 11:51:18 -08:00
c25d966b06
Clean up the SimpleTimingPort class a little bit. Move the constructor into the .cc file and get rid of the typedef for SendEvent.
Nathan Binkert
2008-11-10 11:51:18 -08:00
ea70a44c9f
clean: Move some stuff from the hh file to the cc file.
Nathan Binkert
2008-11-10 11:51:18 -08:00
4e02e7c217
python: Fix the reference counting for python events placed on the eventq. We need to add a reference when an object is put on the C++ queue, and remove a reference when the object is removed from the queue. This was not happening before and caused a memory problem.
Nathan Binkert
2008-11-10 11:51:18 -08:00
1adfe5c7f3
O3CPU: Make the instcount debugging stuff per-cpu. This is to prevent the assertion from firing if you have a large multicore. Also make sure that it's not compiled in when NDEBUG is defined
Clint Smullen
2008-11-10 11:51:18 -08:00
9c49bc7b00
mem: update stuff for changes to Packet and Request
Nathan Binkert
2008-11-10 11:51:17 -08:00
3535d746ab
style: clean up the Packet stuff
Nathan Binkert
2008-11-10 11:51:17 -08:00
2dd699ed3d
flags: Provide an object for managing boolean flags for an object. In many cases it might be preferable to use bitset, but this object allows the user more easily manipulate groups of flags because the underlying type (e.g. uint64_t) is exposed.
Nathan Binkert
2008-11-10 11:51:17 -08:00
194f0310d3
safe_cast: add a new cast function for casts that should always succeed. In DEBUG mode, this does a dynamic_cast and asserts that the result is non null. Otherwise, it just does a static_cast. Again, this is only intended for cases where the cast should always succeed and what's desired is a debugging check to make sure.
Nathan Binkert
2008-11-10 11:51:17 -08:00
27e8f3c98a
DmaDevice: fix minor type in error message.
Steve Reinhardt
2008-11-10 14:45:31 -08:00
63127cbf37
mem: Assert that requests have non-negative size. Would have saved me much debugging time if these had been in there previously.
Steve Reinhardt
2008-11-10 14:11:07 -08:00
42bd460d7f
Cache: Refactor packet forwarding a bit. Makes adding write-through operations easier.
Steve Reinhardt
2008-11-10 14:10:28 -08:00
c981b7ed50
X86: Add x86 reference output for the timing CPU.
Gabe Black
2008-11-09 21:57:15 -08:00
846cb450f9
CPU: Make unaligned accesses work in the timing simple CPU.
Gabe Black
2008-11-09 21:56:28 -08:00
8c15518f30
X86: Fix completeAcc get call.
Gabe Black
2008-11-09 21:55:43 -08:00
909380f3ee
X86: Make the timing simple CPU handle variable length instructions.
Gabe Black
2008-11-09 21:55:01 -08:00
72743e5020
tracediff: add '#' support for sub-arg alternatives, '-n' param
Steve Reinhardt
2008-11-06 20:23:05 -08:00
92714e529f
Automated merge with ssh://daystrom.m5sim.org//repo/m5
Lisa Hsu
2008-11-06 11:11:50 -05:00
ddd179a418
Reference updates. Since split cache is gone, a lot of config.ini changes, and minor changes to stats that are likely due to the decoupling of insertions/evictions in the cache.
Lisa Hsu
2008-11-06 11:11:42 -05:00
be679b8e5e
Automated merge with ssh://m5sim.org//repo/m5
Lisa Hsu
2008-11-05 18:12:21 -05:00
2435918ac2
new mp eio test
Lisa Hsu
2008-11-05 18:10:30 -05:00
44839d6b71
Fix a few more places where the context stuff wasn't changed
Nathan Binkert
2008-11-05 07:20:03 -08:00
46b56bb7b6
Fix SPARC_FS compile
Lisa Hsu
2008-11-05 16:19:17 -05:00
07969dbbf1
Right now a single thread cpu 1 could get assigned context Id != 1, depending on the order in which it's registered with the system. To make them match, here is a little change.
Lisa Hsu
2008-11-05 15:30:49 -05:00
c68032ddcb
decouple eviction from insertion in the cache.
Lisa Hsu
2008-11-04 11:35:58 -05:00
4ab52cb986
Change the findBlock(addr, lat) to accessBlock, which I think has better connotations for what is really happening and how it should be used.
Lisa Hsu
2008-11-04 11:35:57 -05:00
dd99ff23c6
get rid of all instances of readTid() and getThreadNum(). Unify and eliminate redundancies with threadId() as their replacement.
Lisa Hsu
2008-11-04 11:35:42 -05:00
d857faf073
Add in Context IDs to the simulator. From now on, cpuId is almost never used, the primary identifier for a hardware context should be contextId(). The concept of threads within a CPU remains, in the form of threadId() because sometimes you need to know which context within a cpu to manipulate.
Lisa Hsu
2008-11-02 21:57:07 -05:00
67fda02dda
Make it so that all thread contexts are registered with the System, even in SE. Process still keeps track of the tc's it owns, but registration occurs with the System, this eases the way for system-wide context Ids based on registration.
Lisa Hsu
2008-11-02 21:57:06 -05:00
c55a467a06
make BaseCPU the provider of _cpuId, and cpuId() instead of being scattered across the subclasses. generally make it so that member data is _cpuId and accessor functions are cpuId(). The ID val comes from the python (default -1 if none provided), and if it is -1, the index of cpuList will be given. this has passed util/regress quick and se.py -n4 and fs.py -n4 as well as standard switch.
Lisa Hsu
2008-11-02 21:56:57 -05:00
f4bceb9760
Libelf: Append options to CCFLAGS for warning free libelf compile instead of deleting CCFLAGS. Should fix 64bit OS X compile problem.
Ali Saidi
2008-10-28 21:13:21 -04:00
95af120e60
CPU: The API change to EventWrapper did not get propagated to the entirety of TimingSimpleCPU. The constructor no-longer schedules an event at construction and the implict conversion between int and bool was allowing the old code to compile without warning.
Clint Smullen
2008-10-27 18:18:04 -04:00
cfa32d8de7
Checkpointing: createCountedDrain function, it was only returning an Event, which does not expose a setCount method to Python.
Clint Smullen
2008-10-27 19:46:01 -04:00
aadae0b06e
BATCH: Run as, ar, and ranlib with BATCH_CMD so that they execute on the batch hosts, not local host.
Ali Saidi
2008-10-26 14:45:47 -04:00
8788d703f8
s/cpu_id/cpuId in o3 (to be consistent and match style), also fix some typos in comments.
Lisa Hsu
2008-10-23 16:49:17 -04:00
546a6c0c1b
probe function no longer used anywhere.
Lisa Hsu
2008-10-23 16:49:13 -04:00
7a28ab2d18
remove the totally obsolete split cache
Lisa Hsu
2008-10-23 16:11:28 -04:00
9836d81c2b
style: Use the correct m5 style for things relating to interrupts.
Nathan Binkert
2008-10-21 07:12:53 -07:00
aac93b7d0c
Regression: Add single and dual boot O3 regressions. They both take about 8 minutes to complete.
Ali Saidi
2008-10-20 19:00:07 -04:00
b760b99f4d
O3CPU: Undo Gabe's changes to remove hwrei and simpalcheck from O3 CPU. Removing hwrei causes the instruction after the hwrei to be fetched before the ITB/DTB_CM register is updated in a call pal call sys and thus the translation fails because the user is attempting to access a super page address.
Ali Saidi
2008-10-20 16:22:59 -04:00
4fac54f227
Automated merge with ssh://daystrom.m5sim.org//z/repo/m5
Lisa Hsu
2008-10-19 22:50:53 -04:00
9b8011e255
need to add packet_access.hh in order to get tempalte definition
Nathan Binkert
2008-10-16 22:22:47 -07:00
81f5da1e89
get rid of local variable that's only used in an assert so fast compiles
Nathan Binkert
2008-10-16 22:22:17 -07:00
101c2d9174
Automated merge with ssh://daystrom.m5sim.org//z/repo/m5
Lisa Hsu
2008-10-16 14:16:26 -04:00
90e40ca982
This function declaration isn't used anywhere. HG: user: Lisa Hsu <hsul@eecs.umich.edu> HG: branch default HG: changed src/mem/cache/cache.hh
Lisa Hsu
2008-10-14 17:22:03 -04:00
5b07448cf1
eventq: make python events actually work
Nathan Binkert
2008-10-14 09:34:11 -07:00
ff2eea1ba3
eventq: revert code for unserializing events. Since I never implemented a proper solution, put it back to something that at least works for now. Once I add more event queues, I'll have to really fix this though
Nathan Binkert
2008-10-14 09:33:52 -07:00
809f6cb6d1
CPU: Explain why some code is commented out.
Gabe Black
2008-10-12 23:52:02 -07:00
34ca72d16d
Get rid of some commented out code.
Gabe Black
2008-10-12 23:50:22 -07:00
3c4567f2a6
X86: Set the delayed commit flag in x86 microops appropriately.
Gabe Black
2008-10-12 23:29:10 -07:00
33ebd04474
X86: Make the local APIC timer event generate an interrupt.
Gabe Black
2008-10-12 23:28:49 -07:00
bdc28d793d
X86: Implement the EOI register in the local APIC.
Gabe Black
2008-10-12 23:28:11 -07:00
fd37688294
X86: Add some DPRINTFs to the local APIC.
Gabe Black
2008-10-12 23:27:45 -07:00
be6055e0f2
X86: Make auto eoi mode work in the I8259 PIC.
Gabe Black
2008-10-12 23:27:08 -07:00
fb5bb434a9
X86: Make non-specific EOI commands work.
Gabe Black
2008-10-12 23:25:48 -07:00
8e664f3959
X86: Make the I8259 PIC accept a specific EOI command.
Gabe Black
2008-10-12 23:22:58 -07:00
e3004c579f
X86: Fix the segment setting code in IRET, and make it restore the flags.
Gabe Black
2008-10-12 23:05:22 -07:00
349a155b6e
X86: Panic when an unimplemented fault is invoked, rather than spinning forever
Gabe Black
2008-10-12 23:00:28 -07:00
564eda827b
X86: Implement the swapgs instruction.
Gabe Black
2008-10-12 23:00:07 -07:00
a2e0d539d8
X86: Add wrval/rdval microops for reading significant miscregs.
Gabe Black
2008-10-12 22:55:55 -07:00
9e8e2f9ec6
X86: Make the x86 interrupt fault kick off the interrupt microcode.
Gabe Black
2008-10-12 22:42:10 -07:00
4c19c56a77
X86: Implement entering an interrupt in microcode.
Gabe Black
2008-10-12 22:42:03 -07:00
f813a4be49
X86: Make sure register microops set fault rather than returning one.
Gabe Black
2008-10-12 22:24:06 -07:00
961b40cdb5
X86: Implement an wrdh microop which loads bases/offsets from 16 byte descriptors.
Gabe Black
2008-10-12 22:16:53 -07:00
989fa4fc0f
X86: Make the MicroPC type 16 bit.
Gabe Black
2008-10-12 20:48:24 -07:00
6074b1abf2
X86: Implement local labels for the ROM that actually refer into the ROM.
Gabe Black
2008-10-12 20:44:11 -07:00
6b46e5204d
X86: Implement the chks check of interrupt gate target code segments.
Gabe Black
2008-10-12 20:38:22 -07:00
30feb90c1c
X86: Add a check type for interrupt gates.
Gabe Black
2008-10-12 20:33:37 -07:00
15f5bb3055
X86: Fix chks checking the submode for stack segments.
Gabe Black
2008-10-12 20:29:52 -07:00
9e1fe2050a
X86: Let segment manipulation microops be conditional.
Gabe Black
2008-10-12 20:25:06 -07:00
e9158d763a
X86: Let the microassembler know about the microcode only H segment.
Gabe Black
2008-10-12 20:17:38 -07:00
223fc41c07
X86: Fix the rdbase microop
Gabe Black
2008-10-12 20:07:46 -07:00
0756dbb37a
X86: Don't fetch in the simple CPU if you're in the ROM.
Gabe Black
2008-10-12 19:32:06 -07:00
f245358343
Get rid of old RegContext code.
Gabe Black
2008-10-12 17:57:46 -07:00
cefb768131
X86: Create a handy way to access labels from the ROM in microcode.
Gabe Black
2008-10-12 17:52:51 -07:00
e5f8092467
X86: Make X86's microcode ROM actually do something.
Gabe Black
2008-10-12 17:48:44 -07:00
c9ea0b7349
CPU: Make the highest order bit in the micro pc determine if it's combinational or from the ROM.
Gabe Black
2008-10-12 16:59:55 -07:00
2736086d7c
CPU: Create a microcode ROM object in the CPU which is defined by the ISA.
Gabe Black
2008-10-12 15:59:21 -07:00
6fd4eff68f
X86: Create an eret microop which returns from ROM to combinational decoding.
Gabe Black
2008-10-12 15:53:04 -07:00
4aa18aa800
X86: Make Br never report itself as the last microop.
Gabe Black
2008-10-12 15:43:35 -07:00
77c0e1d110
X86: Create a SeqOp class of microops and make Br one of them.
Gabe Black
2008-10-12 15:33:17 -07:00
8384ff7d6c
X86: Update the stats for cpuid's new implementation
Gabe Black
2008-10-12 15:31:37 -07:00
a76c4b8ca1
X86: Implement CPUID with a magical function instead of microcode.
Gabe Black
2008-10-12 15:31:28 -07:00
d0a43ce2b2
X86: Fix the ordering of special physical address ranges.
Gabe Black
2008-10-12 14:01:06 -07:00
3a1905157e
X86: Create a mechanism for the IO APIC to access I8259 vectors.
Gabe Black
2008-10-12 13:54:57 -07:00
c35da8e495
X86: Actually use the extra vector bits we get from ICW2.
Gabe Black
2008-10-12 13:51:48 -07:00
ec9d3aad71
X86: Make the local APIC process interrupts and send them to the CPU.
Gabe Black
2008-10-12 13:45:21 -07:00
876f4845f2
X86: Make the local APIC handle interrupt messages from the IO APIC.
Gabe Black
2008-10-12 13:44:24 -07:00
4d5c7f7038
X86: Change the default value for the IO APIC redirection table.
Gabe Black
2008-10-12 13:35:26 -07:00
3420ad7644
X86: Make the bases for x86 fault class public.
Gabe Black
2008-10-12 13:29:26 -07:00
557bde43c3
X86: Make APICs communicate through the memory system.
Gabe Black
2008-10-12 13:28:54 -07:00
e459013182
Create a message port for sending messages as apposed to reading/writing a memory range.
Gabe Black
2008-10-12 12:08:51 -07:00
e0f137a87c
X86: Add a LocalApic trace flag.
Gabe Black
2008-10-12 12:07:25 -07:00
42ebebf99a
X86: Make the local APIC accessible through the memory system directly, and make the timer work.
Gabe Black
2008-10-12 11:08:00 -07:00
d9f9c967fb
Turn Interrupts objects into SimObjects. Also, move local APIC state into x86's Interrupts object.
Gabe Black
2008-10-12 09:09:56 -07:00
c4f1cc3b48
CPU: Eliminate the get_vec function.
Gabe Black
2008-10-12 08:24:09 -07:00
0c3848732e
CPU: Add a getInterruptController function
Gabe Black
2008-10-11 16:13:58 -07:00