Commit graph

2406 commits

Author SHA1 Message Date
Kevin Lim
a896960cbf FastCPU model added. It's very similar to the SimpleCPU, just without a lot of the stats tracking.
Also various changes to make the CPU model less ISA dependent, which includes moving the code that checks for interrupts up to the ISA level, moving code that zeroes the zero registers up to the ISA level, and removing opcode and ra from the regfile.

arch/alpha/alpha_memory.cc:
    The regfile has been changed so it no longer has the opcode and ra.  Instead the xc holds the actual instruction, and from there the opcode and ra can be obtained with OPCODE() and RA().
arch/alpha/ev5.cc:
    Moved code that once existed within simpleCPU to ev5, and templatized it.
    This way the CPU models can call processInterrupts and the ISA specific interrupt handling is left to the ISA's code.
    Also moved ISA specific zero registers from simpleCPU to here.
arch/alpha/ev5.hh:
    Added macros for obtaining the opcode and ra from the instruction itself, as there is no longer opcode or ra in the regfile.
arch/alpha/isa_desc:
    Added in declarations for the FastCPU model.
arch/alpha/isa_traits.hh:
    Removed opcode and ra from the regfile.  The xc now holds the actual instruction, and the opcode and ra can be obtained through it.
    Also added the declaration for the templated zeroRegisters() function, which will set the zero registers to 0.
arch/isa_parser.py:
    Added in FastCPUExecContext so it will generate code for the FastCPU model as well.
cpu/exec_context.cc:
    Added in a more generic trap function so "ev5_trap" doesn't need to be called.  It currently still calls the old method, with plans for making this ISA dependent in the future.
cpu/exec_context.hh:
    Exec context now has the instruction within it.  Also added methods for exec context to read an instruction from memory, return the current instruction, and set the instruction if needed.
    Also has declaration for more generic trap() function.
cpu/simple_cpu/simple_cpu.cc:
    Removed references to opcode and ra, and instead sets the xc's instruction with the fetched instruction.
cpu/static_inst.hh:
    Added declaration for execute() using FastCPUExecContext.

--HG--
extra : convert_revision : 0441ea3700ac50b733e485395d4dd4ac83666f92
2004-05-27 17:46:16 -04:00
Ali Saidi
4f34dda81c test to see if pushing to m5-tru64 triggers an e-mail
--HG--
extra : convert_revision : df7aab669a8521d031c7202e36c3c086fa979854
2004-05-27 14:20:50 -04:00
Steve Reinhardt
12c6bef21a postint, postext:
Fix output path /m5 -> /z/m5

--HG--
extra : convert_revision : 11ebcc7e62f02be8b0aeb8857eebc33a27e29513
2004-05-27 14:12:49 -04:00
Steve Reinhardt
1c1acf553a Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/z/stever/bk/m5

--HG--
extra : convert_revision : 38d50d3d3640f02622e5ace5ac12b67d63eda3f0
2004-05-27 14:06:39 -04:00
Steve Reinhardt
c5c4533596 config_files.doxygen:
Apparently <> don't need backslashes if they're inside dbl-quoted strings.

--HG--
extra : convert_revision : dd5294781d0ef818d1a5b622f3415510baefb402
2004-05-27 14:06:29 -04:00
Andrew Schultz
ac27e69ef9 base_linux.ini:
Change disk image COW layer to be anonymous.

--HG--
extra : convert_revision : f0829acb26166fb0d63ed84f86288e973bf59a6a
2004-05-26 22:39:36 -04:00
Ali Saidi
242b59b534 removal of bootloader from config file, merged
--HG--
extra : convert_revision : 9168d939d4e707b00be6609368b592a0829a7226
2004-05-26 18:49:24 -04:00
Ali Saidi
fffae72b45 Fixed serial support in 2.6 (too much work for...)
Removed bootloader and just wrote command line into linux kernel

base/inifile.cc:
    the forked process should not return, it should exit.
dev/tsunami_uart.cc:
dev/tsunami_uart.hh:
    The serial port in reality has some delay and linux expects it. This
    schedules an interrupt 300 cycles after the transmit instead of
    immediately
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
    removed boot loader and stuck boot command line in the kernel manually

--HG--
extra : convert_revision : 68aa54f8ca4e8391789f7a4c1ae227e6f8b94e13
2004-05-26 18:48:11 -04:00
Lisa Hsu
57d82e6254 this now pings in single-user mode, so it should ping in other modes fine as well.
dev/ns_gige.cc:
    remove some useless DPRINTF's and add some useful ones. fix the missing RXDESC interrupt.

--HG--
extra : convert_revision : 17142480db1eaafa24f88640f8c7b8e7e077de1a
2004-05-26 13:06:32 -04:00
Andrew Schultz
f0d45c797c Merge zizzer:/bk/linux
into zower.eecs.umich.edu:/.automount/zizzer/z/alschult/DiskModel/linux

--HG--
extra : convert_revision : 67753db3defad3c44640df09a9465670f1667800
2004-05-25 16:36:20 -04:00
Andrew Schultz
ced021a78f Varied fixes to get linux running. Allow for shutdown on linux.
dev/ide_disk.cc:
    Fix to PIO writes and also add command needed for shutdown
dev/pcidev.cc:
    Change the panic on write to read-only registers to a debug print.  The
    kernel tries to write back over all of the PCI registers to restore
    the saved SRM state, so we need to let it do this without panicing.
sim/system.cc:
    Add back increment of number of running systems to allow trap of halt
    work correctly.

--HG--
extra : convert_revision : 84aba4effbec14545f3610c19a8e321d7e7f7cf2
2004-05-25 16:35:18 -04:00
Ali Saidi
391f228fda Changed name of lisa's device to NSgigE instead of Etherdev so it
doesn't conflict with the old ethernet driver name.

Added config file to try to boot Tru64 with Tsunami

Cleaned up kern/linux a bit more and fixed bug where we were using
Tru64 system calls

dev/ns_gige.cc:
dev/ns_gige.hh:
dev/tsunami.hh:
    Changed name of lisa's device to NSgigE instead of Etherdev so it
    doesn't conflict with the old ethernet driver name.
kern/linux/linux_syscalls.hh:
    the Syscalls still used the Tru64 calls, oops.. fixed.

--HG--
extra : convert_revision : dedd20686cc367ed37f31920f753566afbc69045
2004-05-25 15:59:54 -04:00
Andrew Schultz
7c70a16c04 Fix to the PIO read state machine (write still needs fixes)
--HG--
extra : convert_revision : 2e8afcfe3448d921b26ebb76e65c0b237339e9b1
2004-05-24 18:58:27 -04:00
Ali Saidi
74c494a4eb parser.out and parser.py shouldn't have been added to the repository
--HG--
extra : convert_revision : c6a66243f5a1ec0f05d4233a0652a47db1ceba25
2004-05-24 15:06:21 -04:00
Ali Saidi
ba0e69172f Merge zeep.eecs.umich.edu:/.automount/zizzer/z/m5/Bitkeeper/linux
into zeep.eecs.umich.edu:/z/saidi/work/m5

--HG--
extra : convert_revision : 4c0755b9c3b19f928006da227edc335d328a9efe
2004-05-24 12:38:00 -04:00
Ali Saidi
3375cb6965 removed mbuf code from linux since it only exists in tru64
--HG--
extra : convert_revision : b1dbd8a143b7c1204bf57f6964880f957242d4fb
2004-05-24 12:37:45 -04:00
Nathan Binkert
3a0dfc43d1 make the interaction of the stats event stuff with the
database work better.

base/stats/events.cc:
    properly connect to the database
base/stats/mysql.cc:
    cleanup the event stuff too

--HG--
extra : convert_revision : f05fd6456decc9c4f95beff5c12497439e45f886
2004-05-23 12:53:34 -04:00
Nathan Binkert
6cf04bf31e fix column name for indexes
--HG--
extra : convert_revision : 34831eed6b218e470096f010438fd2f32a4960c5
2004-05-21 15:06:04 -04:00
Nathan Binkert
f622d74f81 add a few statistics events
arch/alpha/ev5.cc:
    Add an event for faults
cpu/simple_cpu/simple_cpu.cc:
    add events for uncached reads/writes

--HG--
extra : convert_revision : 747bdf12761e2de6ebbf54fecc9e0b71915b3a02
2004-05-21 13:58:39 -04:00
Nathan Binkert
fee1e1ec0a Add support for event tracking. Esentially this puts a sequence
of events into the database for a given run.

base/stats/mysql.cc:
base/stats/mysql.hh:
    reorganize mysql stat stuff so that other stuff can use
    the same database connection
base/traceflags.py:
    Trace flag to print out events

--HG--
extra : convert_revision : 4d502532ed0ba40b42baefee46b2c99defcc620c
2004-05-21 13:57:44 -04:00
Nathan Binkert
62d756f253 rename namespace Statistics to Stats
--HG--
extra : convert_revision : 28f1703f8d7d8cf33fb952ae450f66bdba860fb7
2004-05-21 13:39:20 -04:00
Nathan Binkert
b4405682d9 Change the namespace Statistics to Stats
--HG--
extra : convert_revision : 3084b292bbe2e8a392af8e99a31763ca0b0a9467
2004-05-21 13:03:17 -04:00
Erik Hallnor
47604c8c89 Update the adaptive cache compression scheme.
--HG--
extra : convert_revision : 50c158b0545c29c03e346f1bd2952951ac77659b
2004-05-20 23:26:44 -04:00
Nathan Binkert
2674b6920f Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : d5f03880c6564b80f662a467524c79aa90b1a0b0
2004-05-19 22:00:30 -04:00
Nathan Binkert
2cf71ff6ef Replaced by python
--HG--
extra : convert_revision : 5c95c2b3169b8b1a51166d7f8fcde3de39fa30f9
2004-05-19 21:54:05 -04:00
Andrew Schultz
f5c7b1358c Remove the uncacheable bit 39 check (needs to be merged in with head tree
if Tru64 is to continue to be supported on Turbolaser) and fixed
translation of physical addresses by clearing PA<42:35> when the real
uncachable bit (43) is set

arch/alpha/ev5.hh:
    Change to support 256 ASNs and seperate VA_SPACE checks for EV5 and EV6
    also add support proper translation of uncacheable physical addresses
dev/ide_ctrl.cc:
    Fix to work with real address translation

--HG--
extra : convert_revision : aa3d1c284b8271d4763a8da2509c91bbcf83189a
2004-05-19 15:58:24 -04:00
Steve Reinhardt
27a6e8258d Add a level of indirection to the register accessors used in
instruction execute methods.  Register i now means the instruction's
i'th src (or dest) operand, not architectural register i.  Current
models that use the architectural reg index can look that up easily
in the instruction object.  Future models that do register renaming
should find this much simpler to deal with.

arch/isa_parser.py:
    Generate register accessors with an extra level of indirection.
cpu/simple_cpu/simple_cpu.hh:
    Modify register accessors to use an extra level of indirection.

--HG--
extra : convert_revision : f4c7d6bfa92fb2ea6251f31ee368809c3643f08f
2004-05-18 22:09:13 -07:00
Steve Reinhardt
4c55d26e66 Replace explicit xc->misspeculating() tests in execute() methods
with an IsNonSpeculative flag.
No effect on results of non-full-system or SimpleCPU.
Very small impact on full-system FullCPU runs since old wrong-path
call_pal insts used to change the PC, where now they're treated
as no-ops.

arch/alpha/isa_desc:
    Get rid of xc->misspeculating() checks, use IsNonSpeculative flag instead.
cpu/static_inst.hh:
    Add IsNonSpeculative flag and isNonSpeculative() method to test it.

--HG--
extra : convert_revision : 7ec536bfc28b905c429c09eb920ed73ef2beeeba
2004-05-18 16:09:02 -07:00
Lisa Hsu
675b849b50 fix the indefinite interrupting of the ethernet device.
dev/ns_gige.cc:
    clear the device interrupts
dev/ns_gige_reg.h:
    Add a new mask

--HG--
extra : convert_revision : ce3617315677cbee577ed8893821a8abc5a1a10d
2004-05-18 14:30:17 -04:00
Lisa Hsu
f42b13afc1 lift FnEvents and and Binning stuff out of LinuxSystem into commonn places with Tru64.
kern/linux/linux_system.cc:
    add binned_fns parameter to System, remove nonLinux events from LinuxSystem, fix ~LinuxSystem() by adding delete of some things that need to be deleted.
kern/linux/linux_system.hh:
    fix header file to go with linux_system.cc, removing nonLinux events and adding binned_fns param.
kern/tru64/tru64_system.cc:
    add somme consistency by having having binned_fns be _binned_fns in the Tru64System arg list.

--HG--
extra : convert_revision : b2ec0c1614e185aafa177c220b91d1f6a4fe6876
2004-05-18 13:53:11 -04:00
Lisa Hsu
a0ccdf8aba merge m5 with linux for the event and binning lifting
--HG--
extra : convert_revision : 09d3678746c2e9a93a9982dc75d5e1ac309cb2fa
2004-05-18 01:40:03 -04:00
Steve Reinhardt
02af86f7e8 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : 4dae71fe3482737a22745b27c2ca6983191c4a18
2004-05-17 12:10:28 -07:00
Lisa Hsu
b8082eb508 lift system-independent binning stuff out of Tru64System into System.
kern/tru64/tru64_system.cc:
    make binned_fns a parameter for System in addition to Tru64System.  Do all the fnEvents setting at the System level, since that is system-independent.
kern/tru64/tru64_system.hh:
    deal with FnEvents in the System, and move some fns over to System.
sim/system.cc:
sim/system.hh:
    lift binning stuff into System out of Tru64System

--HG--
extra : convert_revision : 591dee6f2013f5c43037726c529a00682b5cf82e
2004-05-17 15:08:24 -04:00
Steve Reinhardt
9ca875f189 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : 266d03e82a04cca07f669f778ad11907f2f003d2
2004-05-17 11:50:02 -07:00
Steve Reinhardt
1d545281b9 Significant changes to ISA description to completely factor
out CPU model.  ISA description now generates multiple
output source files to (in theory) reduce compilation time.

arch/alpha/isa_desc:
    Update for parser changes.  Move most constructors
    out of class declarations (which are now in decoder.hh)
    and into decoder.cc.  Move all execute() methods into
    exec output.
arch/isa_parser.py:
    Significant changes to make ISA description completely
    independent of CPU model, and isolate model-dependent parts
    of parser into one little class (CpuModel).  Also split up code
    output into multiple files (a header, a main source file, and
    per-cpu execute() method files).

    Noticeable changes to language as a result.  See updated Doxygen
    documentation.
cpu/simple_cpu/simple_cpu.hh:
    SimpleCPUExecContext typedef no longer needed.
    Add forward declaration of Process.
cpu/static_inst.hh:
    SimpleCPUExecContext and FullCPUExecContext typedefs no longer needed.
    Make eaCompInst() and memAccInst() return const refs.

--HG--
extra : convert_revision : 71471f267804fafd0a881bac7445677e76334daf
2004-05-17 11:49:46 -07:00
Lisa Hsu
73501ea38f push the new system_events file that i was prevented from pushing way back when cable died. :(. also, fix the printing of binned stats, it was printing hex values instead of bin names.
base/stats/text.cc:
    fix the printing of binned stats.

--HG--
extra : convert_revision : 3a04d004f5ea1d90536f7102fce946fd6dd34613
2004-05-17 13:22:19 -04:00
Andrew Schultz
4d98ab1ca9 Changes to let system boot with COW image
--HG--
extra : convert_revision : f98f05834c2d3dc07448b17596247f17e7b73cfd
2004-05-17 11:51:26 -04:00
Lisa Hsu
5d959ce32e Merge zizzer.eecs.umich.edu:/bk/m5
into shizzle.(none):/home/hsul/work/m5

--HG--
extra : convert_revision : fb775c1ed5ac9712929bbd7186b9ab13e90e2dc1
2004-05-17 10:40:45 -04:00
Nathan Binkert
32a8827b3e Now that the generation stuff is working, make the gendir
work correctly.

--HG--
extra : convert_revision : 08a5147f5a5cac46800eeef47b4a23451a1139c2
2004-05-16 11:41:41 -04:00
Nathan Binkert
c6c7e24145 Make the build process deal with the target arch directory
and generated files a bit better.

--HG--
extra : convert_revision : e2216289bb53fd231e228c2d9d740317c00991bb
2004-05-16 09:28:06 -04:00
Ali Saidi
aa14ee4864 manual merge of linux_system and makefile
kern/linux/linux_system.cc:
    merged

--HG--
extra : convert_revision : 81ef6a46f76968985f44c72f296a79ea77e73d12
2004-05-14 17:39:32 -04:00
Ali Saidi
fd21387149 Linux boots... various fixes to make console work correctly
dev/console.cc:
    commented out code that checks if an interrupt is happening before issuing one
    because they can get lost when linux boots
dev/console.hh:
    added a setPlatform function to set the platform to interrupt
dev/platform.hh:
dev/tsunami.cc:
dev/tsunami.hh:
    Added virtual functions to post console interrupts
dev/tsunami_io.cc:
    allowed a 64bit read of the PIC since we can't do a physical byte read
dev/tsunami_uart.cc:
    moved TsunamiUart to PioDevice
    various little fixes to make linux work
dev/tsunami_uart.hh:
    Made Tsunami_Uart a PIO device
dev/tsunamireg.h:
    added some UART defines and used the ULL macros
kern/linux/linux_system.cc:
    commented out waiting for gdb

--HG--
extra : convert_revision : 8cfd0700f3812ab349a6d7f132f85f4f421c5c5e
2004-05-14 17:34:15 -04:00
Lisa Hsu
9aeea1cfbd Merge zizzer.eecs.umich.edu:/bk/m5
into shizzle.(none):/home/hsul/work/m5

--HG--
extra : convert_revision : e47c4db52bdf074b596591f145ffb1a6443d63a4
2004-05-13 11:40:22 -04:00
Lisa Hsu
7f28ae6b01 lift some things out of the tru64 directory into common directory so linux can use it without replication later.
kern/tru64/tru64_events.cc:
kern/tru64/tru64_events.hh:
    lift out SkipFuncEvent and FnEvents since these can be used by any OS.
kern/tru64/tru64_system.cc:
    add system_events (the common OS events file)

--HG--
extra : convert_revision : 4d7a843d67459af4d77e433ae3c1b0fbc5f0b56b
2004-05-13 11:40:07 -04:00
Nathan Binkert
f13926c099 Add VPtr class that makes it possible to esentially create
a pointer to an object that lives inside simulated memory.
Useful for doing a bit of analysis of what's going on in
the running kernel.

--HG--
extra : convert_revision : d78089cce5ec4334483a710ba512eaf18d9b0319
2004-05-13 08:08:42 -04:00
Nathan Binkert
2d8777a79b remove the annotation junk
arch/alpha/isa_desc:
    remove the annotation junk
    Move some code to AlphaPseudo where it belongs
arch/alpha/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
    remove the annotation junk
    add pseudo instruction code that was previously misplaced

--HG--
extra : convert_revision : 97db8402aa34e0bdf044b138c52331fc9e714986
2004-05-13 08:03:36 -04:00
Nathan Binkert
8bc3ce93cb pass the address of both the old an new pcbb on context
switches.  (Makes other uncommitted code easier to merge.)

arch/alpha/ev5.cc:
    pass the address of both the old an new pcbb on context
    switches

--HG--
extra : convert_revision : bff8c8d1b532ad5f9af6270169bbfb1b5c05256a
2004-05-13 07:28:54 -04:00
Nathan Binkert
6a26c92d6f wrap mbuf stuff in the tru64 namespace since other OSes
may be different

--HG--
extra : convert_revision : 75ea218b5219c7a2b5bf7dca7c52dfff22740478
2004-05-13 07:00:31 -04:00
Nathan Binkert
ce697a592e Avoid sending a signal to ourselves if we're not debugging
--HG--
extra : convert_revision : d6ba1ce30bad4a44d716238a8107c3bff0ce89c4
2004-05-13 06:59:05 -04:00
Andrew Schultz
ab9415a2bd Fixes to DMA writing (still unverified) and added serialize/unserialize
dev/ide_ctrl.cc:
    Added serialize/unserialize functions and move some inlined functions
    to regular functions
dev/ide_ctrl.hh:
    Change inlined functions to regular functions
dev/ide_disk.cc:
    Changes to dmaWrite and also add serialize/unserialize functions
dev/ide_disk.hh:
    Support for serializing/unserializing

--HG--
extra : convert_revision : 40e016dc7f6637b033fe33409338437c985a05f4
2004-05-12 16:55:49 -04:00