Commit graph

2665 commits

Author SHA1 Message Date
Ali Saidi
c4b3a2fa0f devices should increment pkt.time instead of assiging to it
--HG--
extra : convert_revision : b4ca3c7fc13bf0856eb2a800a11d5611b473ec3e
2006-04-28 15:38:43 -04:00
Ali Saidi
53d93ef918 add a bridge object, modify bus object to be able to connect to other buses or bridges without panicing
SConscript:
    add new cc files to scons
mem/bus.cc:
mem/bus.hh:
    implement addressRanges() on the bus.
    propigate address ranges to anyone who is interested stripping out ranges of who your propigating to (to avoid livelock)
mem/packet.hh:
    add intersect function that returns true if two packets touch at least one byte of the same data (for functional access)
    add fixPacket() that will eventually take the correct action giving a timing and functional packet, right now it panics
mem/physical.cc:
    Don't panic if the physical memory recieves a status change, just ignore.

--HG--
extra : convert_revision : d470d51f2fb1db2700ad271e09792315ef33ba01
2006-04-28 15:37:48 -04:00
Ali Saidi
c819a1c0e1 Add SparcSystem object
arch/alpha/system.hh:
sim/system.hh:
    make boot_osflags apply to all systems

--HG--
extra : convert_revision : 48cf903fd92be250b86817210951b85fa5e74632
2006-04-28 15:34:03 -04:00
Gabe Black
7bb70e3e30 Fixed constants to work on 32 bit hosts
--HG--
extra : convert_revision : acc8e6f60cfdca518fa45afef4165395cba23d4f
2006-04-28 15:07:44 -04:00
Gabe Black
20c8553787 Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

cpu/simple/cpu.cc:
    Hand merged

--HG--
extra : convert_revision : 68414730c23d41c30cfb7bcfa604029a5fc8622c
2006-04-28 14:03:42 -04:00
Gabe Black
7a9c65b7b6 Added byteswapping code
--HG--
extra : convert_revision : 67bf0689399328a728a0f3130d58d483e5f2f06e
2006-04-28 13:13:58 -04:00
Gabe Black
9eaedf314b Improved the initial stack frame
arch/sparc/isa/formats/mem.isa:
    Added some debugging output

--HG--
extra : convert_revision : cea88e2b3eddfa4e60bbbcb02f459d274d80db2e
2006-04-28 13:13:35 -04:00
Gabe Black
cba0c3736b Added an include which was forgotten
--HG--
extra : convert_revision : ad76ab45358787edddb89910049bac7cca288824
2006-04-28 13:12:46 -04:00
Gabe Black
d514caa202 Fixed up some syscalls
--HG--
extra : convert_revision : f9a32e14fa4d4d4710df83dbf54cb77482ba5d03
2006-04-28 13:12:17 -04:00
Gabe Black
25bf3125da Changed the hello_sparc executable back to the cross compiled one
--HG--
extra : convert_revision : 565f75f76dd26ca0e25de4c89d1597a9f39483fd
2006-04-28 13:11:32 -04:00
Gabe Black
7abeb6b18d Some debugging of the ccr bits
--HG--
extra : convert_revision : b3d100b2e34dcecc3ba33c9ad4b0b7e40c210ecc
2006-04-28 13:10:52 -04:00
Gabe Black
9920976892 Added in handling of the annul bit for branches, and fixed up computation of ccr bits.
--HG--
extra : convert_revision : ed38d26e13d25e21819dd32d159f1ee4ffcc780b
2006-04-28 13:10:03 -04:00
Gabe Black
5b561338eb Added a linux.cc file to mesh with Korey's changes
--HG--
extra : convert_revision : 2073c1cda4799a60fce917f227018dd2e52456a3
2006-04-28 13:08:45 -04:00
Korey Sewell
2d077df1a0 More Modest Changes for FP MIPS execution...
arch/mips/isa/decoder.isa:
    Fix Reg. Operands for FP Conversion Instructions - Must Make Sure That You use 'uw' or 'ud' as needed.
arch/mips/isa_traits.cc:
    if a conversion function isnt implemented yet, than have M5 panic...
    (plan to implement SINGLE_TO_DOUBLE first)

--HG--
extra : convert_revision : 6a7f703a5d65139d3981a8753c31fc8f5bf313cf
2006-04-28 03:05:11 -04:00
Korey Sewell
a183f66a8a Use lower two bits of FCSR reg to determine rounding mode (may want to move this out of decoder.isa and into a template)
Have FP conversion instructions use re-defined convert_and_round() function

arch/mips/isa/decoder.isa:
    Use lower two bits of FCSR reg to determine rounding mode (may want to move this out of decoder.isa and into a template)
    Have FP conversion instructions to use re-defined convert_and_round() function
arch/mips/isa/formats/util.isa:
    Remove convert_and_round function from here
arch/mips/isa_traits.cc:
    Define convert_and_round function here
arch/mips/isa_traits.hh:
    Use "enums" to define FP conversion types & Round Modes
    Declare convert_and_round function here

--HG--
extra : convert_revision : 0f4f8c1732a53b277361559ea71af2a1feb4fc64
2006-04-28 00:24:25 -04:00
Korey Sewell
316f1f3239 change readPC() + 4 to readNextPC() and the same for NNPC ...
arch/mips/isa/decoder.isa:
    remove useless cout statements
arch/mips/isa_traits.hh:
    space

--HG--
extra : convert_revision : 8b8cf5df6fc3eb92598360343eb887c35cda202d
2006-04-27 16:44:12 -04:00
Korey Sewell
07d4ad4dbe Rewrite CFC1 & CTC1 instruction definitions
Use Load/Store Float Memory Formats for FP mem insts
Fix Load/Store into FP to not create a "nop" if it sees reg 0 at the defintion

arch/mips/isa/decoder.isa:
    Rewrite CFC1 & CTC1 instruction definitions
    Use Load/Store Float Memory Formats for FP mem insts
arch/mips/isa/formats/fp.isa:
    comment changes
arch/mips/isa/formats/mem.isa:
    Fix Load/Store Float Memory Formats

--HG--
extra : convert_revision : ef1cb7a78452f8dff044b05c89e61bec866bf1b7
2006-04-27 05:07:11 -04:00
Nathan Binkert
8e9d44477c Major update to sinic to support VSINIC better
dev/sinic.cc:
    - Size the virtualRegs array based on the configured value
    - Add debugging stuff for uniquely identifying vnic usage
    - Only count totally unprocessed packets when notifying via RxDone
    - Add initial virtual address support
    - Fix some bugs in accessing packets out of order to make sure that
    busy packets are processed first
    - Add fifo watermark stuff
    - Make number of vnics, zero/delay copy and watermarks parameters
dev/sinic.hh:
    add rxUnique and txUnique to uniquely identify tx and rx VNICs
    Create a separate list of Busy VNICs since more than one might
    be busy and we want to service those first
    Add more watermark stuff and new parameters
dev/sinicreg.hh:
    Make the number of virtual nics a read-only parameter
    add bits for ZeroCopy/DelayCopy
    rename Virtual to Vaddr so it's not ambiguous
    Add a flag for TxData/RxData to indicate a virtual address
    Report rxfifo status in RxDone
python/m5/objects/Ethernet.py:
    add more options for the fifo thresholds
    add number of vnics as a parameter
    add copy type as a parameter
    add virtual addressing as a parameter

--HG--
extra : convert_revision : 850e2433b585d65469d4c5d85ad7ca820db10f4a
2006-04-26 17:52:33 -04:00
Nathan Binkert
225345e50e Bit of formatting for sinicreg.hh
dev/sinicreg.hh:
    Formatting

--HG--
extra : convert_revision : 267a63f866342b34d9be680d7aa54c2490fb8fd9
2006-04-26 17:36:06 -04:00
Korey Sewell
303dda5e8e Changes to get Floating Point Instructions w/new regfile to at least not segfault and break my INT tests
arch/mips/isa/decoder.isa:
    Change decoder to read COP1 (floating point) instructions to decode correctly
arch/mips/isa_traits.hh:
    Change to use overlapping single/double FP regfile

--HG--
extra : convert_revision : 2d15d6d88939f7e0d63279d5c35d7eea536a573c
2006-04-26 16:13:47 -04:00
Nathan Binkert
8c80350c14 more debugging for sinic
dev/sinic.cc:
    more debugging
    fix assert

--HG--
extra : convert_revision : 11ac750080f1e65415ff3735011c0b830fbcf72f
2006-04-25 10:57:08 -04:00
Nathan Binkert
6d18428b5f more debugging for sinic
dev/sinic.cc:
    better panic messages
    better debugging

--HG--
extra : convert_revision : 06a9c6c8365ba1c1e58276ed63f299c6be25f0ba
2006-04-25 10:40:35 -04:00
Nathan Binkert
b505af87d1 Fix segfault in sinic
dev/sinic.cc:
    check that there is a fault before testing the fault type

--HG--
extra : convert_revision : 0cc95ba660655766b779e77d912dbc685cd476a8
2006-04-25 10:20:37 -04:00
Ali Saidi
8f8d09538f Mostly done with all device models for new memory system. Still need to get timing packets working and get sinic working
after merge from head. Checkpointing may need some work now. Endian-happiness still not complete.

SConscript:
    add all devices back into make file
base/inet.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.cc:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/pktfifo.cc:
dev/pktfifo.hh:
    rename PacketPtr EthPacketPtr so it doesn't conflict with the PacketPtr type in the memory system
configs/test/fs.py:
    add nics to fs.py
cpu/cpu_exec_context.cc:
    remove this check, as it's not valid. We may want to add something else back in to make sure that no one can delete the
    static virtual ports in the exec context
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
dev/alpha_console.cc:
dev/ide_ctrl.cc:
    use new methods for accessing packet data
dev/ide_disk.cc:
    add some more dprintfs
dev/io_device.cc:
    delete packets when we are done with them. Update for new packet methods to access data
dev/isa_fake.cc:
dev/pciconfigall.cc:
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
dev/uart8250.cc:
dev/uart8250.hh:
mem/physical.cc:
mem/port.cc:
    dUpdate for new packet methods to access data
dev/ns_gige.cc:
    Update for new memory system
dev/ns_gige.hh:
python/m5/objects/Ethernet.py:
    update for new memory system
dev/sinic.cc:
dev/sinic.hh:
    Update for new memory system. Untested as need to merge in head because of kernel driver differences between versions
mem/packet.hh:
    Add methods to access data instead of accessing it directly.

--HG--
extra : convert_revision : 223f43876afd404e68337270cd9a5e44d0bf553e
2006-04-24 19:31:50 -04:00
Kevin Lim
d363d5aad7 Quiesce stuff.
cpu/ozone/cpu.hh:
    Add quiesce stat (not clear how it should be used yet).
cpu/ozone/cpu_impl.hh:
    Fix for quiesce.

--HG--
extra : convert_revision : a1998818e241374ae3f4c3cabbef885dda55c884
2006-04-24 17:40:00 -04:00
Kevin Lim
31e09892d7 Include option for disabling PC symbols.
cpu/inst_seq.hh:
cpu/o3/cpu.cc:
cpu/ozone/cpu_builder.cc:
cpu/ozone/thread_state.hh:
    SE build fixes.

--HG--
extra : convert_revision : a4df6128533105f849b5469f62d83dffe299b7df
2006-04-24 17:11:31 -04:00
Kevin Lim
e704960c80 Updates to Ozone model for quiesce, store conditionals.
--HG--
extra : convert_revision : 72ddd75ad0b5783aca9484e7d178c2915ee8e355
2006-04-24 17:10:06 -04:00
Kevin Lim
676afbe2c7 New stats added to O3 model.
--HG--
extra : convert_revision : 7abb491e89e3e1a331cd19aa05ddce5184abf9e0
2006-04-24 17:06:00 -04:00
Kevin Lim
b14bf03219 Fixes for ll/sc for the O3 model.
cpu/o3/alpha_cpu.hh:
    Store conditionals should not write their data to memory if they failed.
cpu/o3/lsq_unit.hh:
    Setup request parameters when they're needed.

--HG--
extra : convert_revision : d75cd7deda03584b7e25cb567e4d79032cac7118
2006-04-24 16:59:50 -04:00
Kevin Lim
b363a3703d Allow the switching on and off of PC symbols for tracing.
--HG--
extra : convert_revision : a2422e30ace9874ba1be44cd0e1d3024cabbf1ed
2006-04-24 16:56:24 -04:00
Kevin Lim
55db48891c Use dwarf-2 debugging symbols (they work much better).
--HG--
extra : convert_revision : 669e4c32f2bc2c035a4199d6152a638b75a25148
2006-04-24 16:55:31 -04:00
Kevin Lim
7bab47ac3a Include new OzoneCPU files
--HG--
extra : convert_revision : f8c8751aab62df5d57c6491c5ce9b90b5a176e86
2006-04-22 19:17:05 -04:00
Kevin Lim
6b4396111b Updates for OzoneCPU.
cpu/static_inst.hh:
    Updates for new CPU, also include a classification of quiesce instructions.

--HG--
extra : convert_revision : a34cd56da88fe57d7de24674fbb375bbf13f887f
2006-04-22 19:10:39 -04:00
Kevin Lim
bfc507e44e Remove unnecessary functions.
cpu/exec_context.hh:
    Remove functions that shouldn't be accessible to anything outside of the CPU.

--HG--
extra : convert_revision : 9793c3ceb6d5404484bafc7a75d75ed71815d9eb
2006-04-22 18:49:52 -04:00
Kevin Lim
f0baf0ec99 Update the python file for the CPU.
--HG--
extra : convert_revision : be899403d893f5ab6c11ae5a4334c0e36bd6ff61
2006-04-22 18:47:07 -04:00
Kevin Lim
759ff4b910 Updates for OzoneCPU.
build/SConstruct:
    Include Ozone CPU models.
cpu/cpu_models.py:
    Include OzoneCPU models.

--HG--
extra : convert_revision : 51a016c216cacd2cc613eed79653026c2edda4b3
2006-04-22 18:45:01 -04:00
Kevin Lim
a8b03e4d01 Updates for O3 model.
arch/alpha/isa/decoder.isa:
    Make IPR accessing instructions serializing so they are not issued incorrectly in the O3 model.
arch/alpha/isa/pal.isa:
    Allow IPR instructions to have flags.
base/traceflags.py:
    Include new trace flags from the two new CPU models.
cpu/SConscript:
    Create the templates for the split mem accessor methods.  Also include the new files from the new models (the Ozone model will be checked in next).
cpu/base_dyn_inst.cc:
cpu/base_dyn_inst.hh:
    Update to the BaseDynInst for the new models.

--HG--
extra : convert_revision : cc82db9c72ec3e29cea4c3fdff74a3843e287a35
2006-04-22 18:26:48 -04:00
Kevin Lim
c30f91c2f6 Namespace fix.
base/timebuf.hh:
    namespace fix.

--HG--
extra : convert_revision : 38e880b9394cf2923e2fb9775368cd93d719f950
2006-04-22 18:16:18 -04:00
Kevin Lim
de8baeb58a Move quiesce event to its own class.
SConscript:
    Move quiesce event to its own file/class.

--HG--
extra : convert_revision : 6aa7863adb529fc03142666213c3ec348825bd3b
2006-04-22 18:11:54 -04:00
Kevin Lim
bd38b56774 Move TLB faults into the normal fault classes. Now they are executed when the fault is invoked.
--HG--
extra : convert_revision : b5f00fff277e863b3fe43422bc39d0487c482e60
2006-04-22 18:09:08 -04:00
Ali Saidi
6dc3b2fa39 make ide disk work for newmem
SConscript:
    compile ide devices
base/chunk_generator.hh:
    add another parameter to the chuck generator called complete() which
    returns the number of bytes transfered so far. Very useful for
    adding to a pointer.
configs/test/fs.py:
    Add ide disk to fs test configuration
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
dev/io_device.cc:
dev/io_device.hh:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
    update for new memory system
mem/bus.cc:
    support devices that return multiple ranges
    remove old ranges before using new info
mem/packet.hh:
    make senderstate void* per steve's request that we use every
    construct possible in C++
mem/physical.cc:
    have memory stamp the packet with the time.
mem/physical.hh:
    actually set the memory latency variable
python/m5/objects/Device.py:
    Add DmaDevice
python/m5/objects/Ide.py:
    Ide disk no longer has a physmem pointer
python/m5/objects/Pci.py:
    update pci device for newmem
python/m5/objects/PhysicalMemory.py:
    add latency parameter for physical memory
sim/byteswap.hh:
    use fast architecture dependent byteswap calls if they exist

--HG--
extra : convert_revision : e3cf2e8f61064ad302d94bc22010a00c59f3f793
2006-04-20 17:14:30 -04:00
Ali Saidi
9a41591693 Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : bf142c05ad4880513ee3438e1fdf62070a6049e3
2006-04-18 13:49:32 -04:00
Ali Saidi
316cdd0a19 dwarf debugging symbols make gdb much happier than stabs. Use them
and maximum debugging in for debug target.
No such thing as -O5 in GCC, so might as well just use -O3

--HG--
extra : convert_revision : f2e02c4f95c57eace010e75e2457193353088308
2006-04-18 13:49:23 -04:00
Gabe Black
cae6b571d6 Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 3eb97976caf57e43119a998c31128ca6f163c05b
2006-04-18 09:44:45 -04:00
Gabe Black
609c4ecea6 Changed MIPS and Alpha to pass the syscall number to the syscall function
arch/alpha/isa/decoder.isa:
    Fixed up Alpha to pass the syscall number directly to the syscall function.
arch/mips/isa/decoder.isa:
    Fixed up MIPS to pass the syscall number directly to the syscall function.
arch/mips/isa/operands.isa:
    Added an R2 operand which is passed to the syscall function as the syscall number to use.

--HG--
extra : convert_revision : 066d486cd6a2761b29e413c6d526c268788975f3
2006-04-18 09:44:24 -04:00
Gabe Black
3d99b4a544 Fixes to SPARC syscall emulation mode.
arch/sparc/isa/base.isa:
    Added a set of abbreviations for the different condition tests.
arch/sparc/isa/decoder.isa:
    Fixes and additions to get syscall emulation closer to working.
arch/sparc/isa/formats/branch.isa:
    Fixed branches so that the immediate version actually uses the immediate value
arch/sparc/isa/formats/integerop.isa:
    Compute the condition codes -before- writing to the state of the machine.
arch/sparc/isa/formats/mem.isa:
    An attempt to fix up the output of the disassembly of loads and stores.
arch/sparc/isa/formats/trap.isa:
    Added code to disassemble a trap instruction. This probably needs to be fixed up so there are immediate and register versions.
arch/sparc/isa/operands.isa:
    Added an R1 operand, and fixed up the numbering
arch/sparc/isa_traits.hh:
    SyscallNumReg is no longer needed, the max number of sources and destinations are fixed up, and the syscall return uses xcc instead of icc.
arch/sparc/linux/process.cc:
arch/sparc/linux/process.hh:
    Added a getresuidFunc syscall implementation. This isn't actually used, but I thought it was and will leave it in.
arch/sparc/process.cc:
arch/sparc/process.hh:
    Fixed up how the initial stack frame is set up.
arch/sparc/regfile.hh:
    Changed the number of windows from 6 to 32 so we don't have to worry about spill and fill traps for now, and commented out the register file setting itself up.
cpu/cpu_exec_context.hh:
cpu/exec_context.hh:
cpu/simple/cpu.hh:
sim/process.cc:
sim/process.hh:
    Changed the syscall mechanism to pass down the syscall number directly.

--HG--
extra : convert_revision : 15723b949a0ddb3d24e68c079343b4dba2439f43
2006-04-18 09:27:22 -04:00
Ali Saidi
0534e355b7 change packet: reset() to resetMin() resetAll() which reset the minium
and the entire packet respectively.

--HG--
extra : convert_revision : 70b8bc8a2cf304d4c955d1a997df4a9a8edd4989
2006-04-17 14:55:15 -04:00
Kevin Lim
2022800005 Quick fix for the CPU not printing out the right address upon re-execution of a load that missed in the cache.
Split mem ops will solve this problem in the future.

--HG--
extra : convert_revision : 5bb921998aa0408d568030ef544b9905c4038bb2
2006-04-14 11:59:18 -04:00
Korey Sewell
48f2626eac These fixes now allow all of the 20 mips tests to work properly!
Floating Point Mips Tests still need to be added, tested, and debugged.

arch/mips/isa/decoder.isa:
    Fix mult and multu instructions. This semantic error causes the problem: <int64> = <int32> * <int32>. Although I was placing
    the output into a 64-bit integer the multiply was just doing a 32-bit multiply so the solution is to just use
    the 'sd' & 'ud' operands so that the ISA parser will use the int64_t and uint64_t types in calculation.
arch/mips/isa/formats/int.isa:
    Trace output fix. Don't print first comma unless there is a destination register for sure!

--HG--
extra : convert_revision : 2c503dca70b104fed0b58454975f745dd3cc2eee
2006-04-14 03:42:02 -04:00
Korey Sewell
200205aa85 update Hello World binary for mips... the old one did not have a newline
--HG--
extra : convert_revision : f015cac39e42e11b1a56bbd1c5cf07403eb8f2da
2006-04-13 17:40:16 -04:00