gem5.git
18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Fri, 28 Apr 2006 19:41:22 +0000 (15:41 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : d6f7c4dd146613eeba39249f2d916a77108bc8c1

18 years agodon't need BusBridge.py anymore
Ali Saidi [Fri, 28 Apr 2006 19:41:14 +0000 (15:41 -0400)]
don't need BusBridge.py anymore

--HG--
extra : convert_revision : 9ec26ee61d4bc68f1dcd1a8ac162c9519b8e6fde

18 years agorandom mix of tidbits
Ali Saidi [Fri, 28 Apr 2006 19:40:45 +0000 (15:40 -0400)]
random mix of tidbits

configs/test/fs.py:
    update fs.py to use a bus bridge
cpu/simple/cpu.hh:
    cpu should just return that it doesn't snoop any address ranges
python/m5/objects/System.py:
    move boot_osflags to system

--HG--
extra : convert_revision : b4256df7eada7e65b69513361de8bffc3fdd680b

18 years agodevices should increment pkt.time instead of assiging to it
Ali Saidi [Fri, 28 Apr 2006 19:38:43 +0000 (15:38 -0400)]
devices should increment pkt.time instead of assiging to it

--HG--
extra : convert_revision : b4ca3c7fc13bf0856eb2a800a11d5611b473ec3e

18 years agoadd a bridge object, modify bus object to be able to connect to other buses or bridge...
Ali Saidi [Fri, 28 Apr 2006 19:37:48 +0000 (15:37 -0400)]
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

18 years agoAdd SparcSystem object
Ali Saidi [Fri, 28 Apr 2006 19:34:03 +0000 (15:34 -0400)]
Add SparcSystem object

arch/alpha/system.hh:
sim/system.hh:
    make boot_osflags apply to all systems

--HG--
extra : convert_revision : 48cf903fd92be250b86817210951b85fa5e74632

18 years agoFixed constants to work on 32 bit hosts
Gabe Black [Fri, 28 Apr 2006 19:07:44 +0000 (15:07 -0400)]
Fixed constants to work on 32 bit hosts

--HG--
extra : convert_revision : acc8e6f60cfdca518fa45afef4165395cba23d4f

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Fri, 28 Apr 2006 18:03:42 +0000 (14:03 -0400)]
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

18 years agoAdded byteswapping code
Gabe Black [Fri, 28 Apr 2006 17:13:58 +0000 (13:13 -0400)]
Added byteswapping code

--HG--
extra : convert_revision : 67bf0689399328a728a0f3130d58d483e5f2f06e

18 years agoImproved the initial stack frame
Gabe Black [Fri, 28 Apr 2006 17:13:35 +0000 (13:13 -0400)]
Improved the initial stack frame

arch/sparc/isa/formats/mem.isa:
    Added some debugging output

--HG--
extra : convert_revision : cea88e2b3eddfa4e60bbbcb02f459d274d80db2e

18 years agoAdded an include which was forgotten
Gabe Black [Fri, 28 Apr 2006 17:12:46 +0000 (13:12 -0400)]
Added an include which was forgotten

--HG--
extra : convert_revision : ad76ab45358787edddb89910049bac7cca288824

18 years agoFixed up some syscalls
Gabe Black [Fri, 28 Apr 2006 17:12:17 +0000 (13:12 -0400)]
Fixed up some syscalls

--HG--
extra : convert_revision : f9a32e14fa4d4d4710df83dbf54cb77482ba5d03

18 years agoChanged the hello_sparc executable back to the cross compiled one
Gabe Black [Fri, 28 Apr 2006 17:11:32 +0000 (13:11 -0400)]
Changed the hello_sparc executable back to the cross compiled one

--HG--
extra : convert_revision : 565f75f76dd26ca0e25de4c89d1597a9f39483fd

18 years agoSome debugging of the ccr bits
Gabe Black [Fri, 28 Apr 2006 17:10:52 +0000 (13:10 -0400)]
Some debugging of the ccr bits

--HG--
extra : convert_revision : b3d100b2e34dcecc3ba33c9ad4b0b7e40c210ecc

18 years agoAdded in handling of the annul bit for branches, and fixed up computation of ccr...
Gabe Black [Fri, 28 Apr 2006 17:10:03 +0000 (13:10 -0400)]
Added in handling of the annul bit for branches, and fixed up computation of ccr bits.

--HG--
extra : convert_revision : ed38d26e13d25e21819dd32d159f1ee4ffcc780b

18 years agoAdded a linux.cc file to mesh with Korey's changes
Gabe Black [Fri, 28 Apr 2006 17:08:45 +0000 (13:08 -0400)]
Added a linux.cc file to mesh with Korey's changes

--HG--
extra : convert_revision : 2073c1cda4799a60fce917f227018dd2e52456a3

18 years agoUse lower two bits of FCSR reg to determine rounding mode (may want to move this...
Korey Sewell [Fri, 28 Apr 2006 04:24:25 +0000 (00:24 -0400)]
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

18 years agochange readPC() + 4 to readNextPC() and the same for NNPC ...
Korey Sewell [Thu, 27 Apr 2006 20:44:12 +0000 (16:44 -0400)]
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

18 years agoRewrite CFC1 & CTC1 instruction definitions
Korey Sewell [Thu, 27 Apr 2006 09:07:11 +0000 (05:07 -0400)]
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

18 years agoChanges to get Floating Point Instructions w/new regfile to at least not segfault...
Korey Sewell [Wed, 26 Apr 2006 20:13:47 +0000 (16:13 -0400)]
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

18 years agoMostly done with all device models for new memory system. Still need to get timing...
Ali Saidi [Mon, 24 Apr 2006 23:31:50 +0000 (19:31 -0400)]
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

18 years agomake ide disk work for newmem
Ali Saidi [Thu, 20 Apr 2006 21:14:30 +0000 (17:14 -0400)]
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

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Tue, 18 Apr 2006 17:49:32 +0000 (13:49 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : bf142c05ad4880513ee3438e1fdf62070a6049e3

18 years agodwarf debugging symbols make gdb much happier than stabs. Use them
Ali Saidi [Tue, 18 Apr 2006 17:49:23 +0000 (13:49 -0400)]
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

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Tue, 18 Apr 2006 13:44:45 +0000 (09:44 -0400)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 3eb97976caf57e43119a998c31128ca6f163c05b

18 years agoChanged MIPS and Alpha to pass the syscall number to the syscall function
Gabe Black [Tue, 18 Apr 2006 13:44:24 +0000 (09:44 -0400)]
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

18 years agoFixes to SPARC syscall emulation mode.
Gabe Black [Tue, 18 Apr 2006 13:27:22 +0000 (09:27 -0400)]
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

18 years agochange packet: reset() to resetMin() resetAll() which reset the minium
Ali Saidi [Mon, 17 Apr 2006 18:55:15 +0000 (14:55 -0400)]
change packet: reset() to resetMin() resetAll() which reset the minium
and the entire packet respectively.

--HG--
extra : convert_revision : 70b8bc8a2cf304d4c955d1a997df4a9a8edd4989

18 years agoQuick fix for the CPU not printing out the right address upon re-execution of a load...
Kevin Lim [Fri, 14 Apr 2006 15:59:18 +0000 (11:59 -0400)]
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

18 years agoThese fixes now allow all of the 20 mips tests to work properly!
Korey Sewell [Fri, 14 Apr 2006 07:42:02 +0000 (03:42 -0400)]
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

18 years agoupdate Hello World binary for mips... the old one did not have a newline
Korey Sewell [Thu, 13 Apr 2006 21:40:16 +0000 (17:40 -0400)]
update Hello World binary for mips... the old one did not have a newline

--HG--
extra : convert_revision : f015cac39e42e11b1a56bbd1c5cf07403eb8f2da

18 years agoMove RLIMIT constants to OS/ISA specific files instead of generic OS container classes
Korey Sewell [Thu, 13 Apr 2006 20:47:32 +0000 (16:47 -0400)]
Move RLIMIT constants to OS/ISA specific files instead of generic OS container classes
Update MIPS/Linux constants

arch/alpha/linux/linux.hh:
    move RLIMIT constants to ALPHA/Linux class
arch/alpha/tru64/tru64.hh:
    move RLIMIT constants to ALPHA/Tru64 class
arch/mips/mips_linux.hh:
    update MIPS constants for MIPS/Linux
kern/linux/linux.hh:
    remove RLIMIT constants from generic Linux class... these are now in ISA specific / OS specific classes
kern/tru64/tru64.hh:
    remove RLIMIT constants from generic Tru64 class... these are now in ISA specific / OS specific classes

--HG--
extra : convert_revision : 2e2743d73ab18fcd558a5765cb4ef0e9671bd1d7

18 years agoremove non-needed files
Korey Sewell [Thu, 13 Apr 2006 09:47:35 +0000 (05:47 -0400)]
remove non-needed files

--HG--
extra : convert_revision : 6900ff6972e92bb1bcb4736cce948784c6b905e1

18 years agoChanges that get rid of the OSFlags and derive a new class of this format <architectu...
Korey Sewell [Thu, 13 Apr 2006 09:42:18 +0000 (05:42 -0400)]
Changes that get rid of the OSFlags and derive a new class of this format <architecture>-<OS>.
This class is derived from the original <OS> class and is used to define information that
is both architecure and OS specific (for example, the AlphaLinux class is derived from the
Linux class and defined in arch/alpha/linux/linux.hh).

SConscript:
    no need to compile linux.cc and tru64.cc now, since openFlagsTable has been moved
arch/alpha/SConscript:
    compile linux.cc and tru64.cc within alpha arch.
arch/alpha/linux/process.cc:
    template syscall functions on AlphaLinux instead of Linux ... AlphaLinux is derived off of Linux
arch/alpha/tru64/process.cc:
    template syscall functions on AlphaTru64 instead of Linux ... AlphaTru64 is derived off of Linux
    moved tableFunc syscall function into this file
arch/mips/SConscript:
    compile mips_linux.cc for openFlags table
arch/mips/isa_traits.hh:
    remove constants from here
arch/mips/linux_process.cc:
    template syscall functions on MipsLinux instead of Linux ... MipsLinux is derived off of Linux
kern/linux/linux.hh:
    remove OSFlags
kern/tru64/tru64.hh:
    remove OSFlags def., openFlagTable, and tableFunc ...
sim/syscall_emul.hh:
    go back to using "OS" instead of "OSFlags"
arch/alpha/linux/linux.cc:
    defines openFlagTable
arch/alpha/linux/linux.hh:
arch/alpha/tru64/tru64.hh:
    Alpha Linux constants placed here in class derived from Linux class
arch/alpha/tru64/tru64.cc:
    defines openFlagTable for AlphaTru64
arch/mips/mips_linux.cc:
    MIPS Linux open flag table
arch/mips/mips_linux.hh:
    Mips Linux constants placed here in class derived from Linux class

--HG--
extra : convert_revision : e6c1c2c895429c28fd141732e223e897ab19315e

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Wed, 12 Apr 2006 21:46:32 +0000 (17:46 -0400)]
Merge zizzer:/bk/newmem
into  zeep.eecs.umich.edu:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 5fc80b28362c4acc4dee576f60296b81aea004f2

18 years agofs now gets to the point where it would really like a filesystem.
Ali Saidi [Wed, 12 Apr 2006 21:46:25 +0000 (17:46 -0400)]
fs now gets to the point where it would really like a filesystem.
Time to make the ide device work

arch/alpha/system.cc:
    write the machine type and rev in the correct place
cpu/simple/cpu.cc:
    reset the packet structure every time it's reused... wow the
    simple cpu code  for talking to memory is getting horrible.
dev/alpha_console.cc:
    move the setAlphaAccess to startup() to make sure that the console
    binary is loaded
dev/tsunami_cchip.cc:
dev/tsunami_pchip.cc:
dev/uart8250.cc:
    fix a couple of bugs injected in the newmem fixes
mem/bus.cc:
    More verbose bus tracing
mem/packet.hh:
    Add a constructor to packet to set the result to unknown and a reset
    method in the case it's being reused
mem/vport.hh:
    don't need are own read/write methods since the base functional port
    ones call writeBlob readBlob which do the translation for us

--HG--
extra : convert_revision : 8d0e2b782bfbf13dc5c59dab1a79a084d2a7da0a

18 years agoMerge zizzer:/bk/newmem
Korey Sewell [Wed, 12 Apr 2006 07:51:09 +0000 (03:51 -0400)]
Merge zizzer:/bk/newmem
into  zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips

--HG--
extra : convert_revision : 4eff6e7ee7a25b8f5fdad7342b195a869cf528d6

18 years agoadd OSFlags struct to AlphaISA/MipsISA namespace. The OS classes then use these OSFla...
Korey Sewell [Wed, 12 Apr 2006 07:44:45 +0000 (03:44 -0400)]
add OSFlags struct to AlphaISA/MipsISA namespace. The OS classes then use these OSFlags to access architecture-specific AND OS-specific
flags for their functions (e.g. OS::OSFlags::TG_MAP_ANONYMOUS)...

arch/alpha/tru64/process.cc:
sim/syscall_emul.hh:
    Add OSFlags to code
arch/mips/isa/decoder.isa:
    slight decoder changes (more stylistic then anything)
arch/mips/isa/formats/util.isa:
    spacing
arch/mips/isa_traits.hh:
    add OSFlags struct to MipsISA namespace. The OS classes then use these OSFlags to access architecture-specific and OS-specific
    flags for their functions
kern/linux/linux.hh:
    remove constant placement ... define OSFlags in linux.hh
kern/tru64/tru64.hh:
    define OSFlags in tru64

--HG--
extra : convert_revision : 59be1036eb439ca4ea1eea1d3b52e508023de6c9

18 years agochange how much of the param string is copied into the kenel
Ali Saidi [Tue, 11 Apr 2006 23:35:30 +0000 (19:35 -0400)]
change how much of the param string is copied into the kenel
Set locked flag if required
make SC always return success -- this needs to be fixed at some point
fix a couple of things

FS executes a bit of console code before dying a horrible death

arch/alpha/linux/system.cc:
    only need to copy the length of the os flags param, not 256  bytes
cpu/simple/cpu.cc:
    Set the physical flag if required
    Make LL/SC always return success
mem/bus.cc:
    add some dprintfs and change a assert to a panic
mem/port.cc:
    delete the buffer with the [] operator
mem/request.hh:
    add a function to reset a request

--HG--
extra : convert_revision : f2b78ddad33c7f6ffe1c48791d86609ff1d10d46

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Tue, 11 Apr 2006 17:43:15 +0000 (13:43 -0400)]
Merge zizzer:/bk/newmem
into  zeep.eecs.umich.edu:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : ef75b46b9c1c267c84e6bb2b2234d46c4edcda16

18 years agofullsys now builds and runs for about one cycle
Ali Saidi [Tue, 11 Apr 2006 17:42:47 +0000 (13:42 -0400)]
fullsys now builds and runs for about one cycle

SConscript:
    easier to fix than temporarily remove
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
    mem needed for both fullsys and syscall
dev/baddev.cc:
    fix for new mem system
dev/io_device.cc:
    fix typo
dev/io_device.hh:
    PioDevice needs to be a memobject
dev/isa_fake.cc:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
    fix for new mem systems
dev/platform.cc:
dev/platform.hh:
dev/tsunami.cc:
dev/tsunami.hh:
    rather than the platform have a pointer to pciconfig, go the other
    way so all devices are the same and can have a platform pointer
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/uart8250.cc:
python/m5/objects/AlphaConsole.py:
python/m5/objects/BadDevice.py:
python/m5/objects/BaseCPU.py:
python/m5/objects/Device.py:
python/m5/objects/Pci.py:
python/m5/objects/PhysicalMemory.py:
python/m5/objects/System.py:
python/m5/objects/Tsunami.py:
python/m5/objects/Uart.py:
    fixes for newmem

--HG--
extra : convert_revision : b7b67e19095cca64889f6307725aa2f3d84c7105

18 years agoMerge zizzer:/bk/newmem
Korey Sewell [Tue, 11 Apr 2006 05:20:38 +0000 (01:20 -0400)]
Merge zizzer:/bk/newmem
into  zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips

--HG--
extra : convert_revision : 977cae02ac9e38143952bfd54f13b321577715f2

18 years agoLots of MIPS test files :
Korey Sewell [Tue, 11 Apr 2006 05:17:28 +0000 (01:17 -0400)]
Lots of MIPS test files :
Will remove these in future merge but it is just way easier to keep all these tests in
their own repo folder so I wont have to reset these up every time I pull from bitkeeper

--HG--
extra : convert_revision : ad9b8797fb16edad0323ee48aba1aa4551ea1cb7

18 years agoClean up mmapFunc.
Steve Reinhardt [Tue, 11 Apr 2006 00:02:36 +0000 (20:02 -0400)]
Clean up mmapFunc.

sim/syscall_emul.hh:
    Clean up mmapFunc: args should be aligned and PageTable::allocate
    already handles multi-page allocations, so most of thw work done here
    was unnecessary (as far as I can tell).  I didn't test this beyond
    compiling though...

--HG--
extra : convert_revision : d79591a1cc58ea82ea911cc05e0970e81e1d2c60

18 years agoedit to test_mips config file
Korey Sewell [Mon, 10 Apr 2006 22:41:25 +0000 (18:41 -0400)]
edit to test_mips config file

arch/mips/isa_traits.hh:
    add FIR misc reg (was lost in merge)

--HG--
extra : convert_revision : b056c9a307e5de08ff8cc4dfc541342d25c141b8

18 years agoPanic if physical memory isn't connected to anything
Ali Saidi [Mon, 10 Apr 2006 18:40:22 +0000 (14:40 -0400)]
Panic if physical memory isn't connected to anything
send range change at init for all devices

dev/io_device.cc:
dev/io_device.hh:
    add init function for pio devices to sent status changes around
mem/physical.cc:
mem/physical.hh:
    Panic if physical memory isn't connected to anything

--HG--
extra : convert_revision : 4223d1c3c73522d1e196c218eb0084d238677ad9

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Mon, 10 Apr 2006 18:14:25 +0000 (14:14 -0400)]
Merge zizzer:/bk/newmem
into  zeep.eecs.umich.edu:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 36da0febc30675e955a10eb8bc45586b6242a8c3

18 years agoupdates for newmem
Ali Saidi [Mon, 10 Apr 2006 18:14:06 +0000 (14:14 -0400)]
updates for newmem

SConscript:
    compile some more devices

--HG--
extra : convert_revision : 82a8164ab38814a56a0c143658bc06338cf6b8f5

18 years agoso I guess the IntRegFile class is needed after all!
Korey Sewell [Mon, 10 Apr 2006 16:57:59 +0000 (12:57 -0400)]
so I guess the IntRegFile class is needed after all!

--HG--
extra : convert_revision : a47368e859b1736bb1c0848960925c6d107435df

18 years agoTake out flags parameter (used for no align fault)
Korey Sewell [Mon, 10 Apr 2006 16:40:07 +0000 (12:40 -0400)]
Take out flags parameter (used for no align fault)

--HG--
extra : convert_revision : 153604b74cbaa31699215ff31f775aecf9d45d2a

18 years agoMerge zizzer:/bk/newmem
Korey Sewell [Mon, 10 Apr 2006 16:37:15 +0000 (12:37 -0400)]
Merge zizzer:/bk/newmem
into  zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips

arch/mips/isa/formats/mem.isa:
    Filled in Split-Memory Access Code
arch/mips/isa_traits.hh:
    Leave IntRegFile as an array instead of class with member functions
mem/page_table.cc:
    take out NO ALIGN FAULT page table access code for now... No need to messs up what works

--HG--
extra : convert_revision : cbf1cce9145daf9ee9ceabc9080271ddb0561489

18 years agoFinally MIPS does hello world!
Korey Sewell [Mon, 10 Apr 2006 16:23:17 +0000 (12:23 -0400)]
Finally MIPS does hello world!

arch/mips/isa/bitfields.isa:
    add RS_SRL bitfield ...these must be set to 0 for a SRL instruction
arch/mips/isa/decoder.isa:
    Make unimplemented instructions Fail instead of just Warn
    Edits to SRA & SRAV instructions
    Implement CFC1 instructions
    Unaligned Memory Access Support (Maybe Not fully functional yet)
    Enforce a more strict decode policy (in terms of different bitfields set to 0 on certain instructions)
arch/mips/isa/formats/branch.isa:
    Fix disassembly
arch/mips/isa/formats/int.isa:
    Add sign extend Immediate and zero extend Immediate to Int class.
    Probably a bit unnecessary in the long run since these manipulations could
    be done in the actually instruction instead of keep a int value
arch/mips/isa/formats/mem.isa:
    Comment/Remove out split-memory access code... revisit this after SimpleCPU works
arch/mips/isa/formats/unimp.isa:
    Add inst2string function to Unimplemented panic. PRints out the instruction
    binary to help in debuggin
arch/mips/isa/formats/unknown.isa:
    define inst2string function , use in unknown disassembly and panic function
arch/mips/isa/operands.isa:
    Make "Mem" default to a unsigned word since this is MIPS32
arch/mips/isa_traits.hh:
    change return values to 32 instead of 64
arch/mips/linux_process.cc:
    assign some syscalls to the right functions
cpu/static_inst.hh:
    more debug functions for MIPS (these will be move to the mips directory soon)
mem/page_table.cc:
mem/page_table.hh:
    toward a better implementation for unaligned memory access
mem/request.hh:
    NO ALIGN FAULT flag added to support unaligned memory access
sim/syscall_emul.cc:
    additional SyscallVerbose comments

--HG--
extra : convert_revision : 1987d80c9f4ede507f1f0148435e0bee97d2428c

18 years agoMerge zizzer:/z/m5/Bitkeeper/newmem
Ron Dreslinski [Fri, 7 Apr 2006 22:16:11 +0000 (18:16 -0400)]
Merge zizzer:/z/m5/Bitkeeper/newmem
into  zazzer.eecs.umich.edu:/z/rdreslin/m5bk/newmem

--HG--
extra : convert_revision : 85406b562373f7d768a44a8c327055cb02d3f6c5

18 years agoa bit of bad code trampling on memory
Ali Saidi [Fri, 7 Apr 2006 20:26:22 +0000 (16:26 -0400)]
a bit of bad code trampling on memory

--HG--
extra : convert_revision : c0252dce6d7fc4c35ecd9f87ac4555e704de91b7

18 years agoMove to a model with a unified request object.
Ron Dreslinski [Fri, 7 Apr 2006 19:54:48 +0000 (15:54 -0400)]
Move to a model with a unified request object.
Constructor takes a bool to signify that it is either a cpu_request or not a cpu_request.
When accedding variables of a cpu_request it asserts that it is a cpu_request.
It also asserts that a value being read has been written at some point in time prior (not gaurnteeing it is up to date, but it was at least written before read).

There is also a isCpuReq() function to determine if this is a cpu_request.  It should be called before accesing a cpu_request only variable.

SConscript:
    Add compilation support for request.cc
arch/alpha/tlb.cc:
arch/alpha/tlb.hh:
cpu/cpu_exec_context.hh:
cpu/exec_context.hh:
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
dev/io_device.cc:
mem/page_table.cc:
mem/page_table.hh:
mem/port.cc:
    Update for unified request object and accessor functions.
mem/request.hh:
    Remove CpuRequest, make it a unified object.  Make variables private with accessor functions.

    May want to move things from .cc file into header (usually a assert() and either returning a value, or writting two).

--HG--
extra : convert_revision : f1e45cc490dadc7a418634539b03c3e72684a6e3

18 years agoa sparc binary that can be debugged
Ali Saidi [Thu, 6 Apr 2006 22:32:10 +0000 (18:32 -0400)]
a sparc binary that can be debugged

--HG--
extra : convert_revision : cb021c1e704b5771e0f86e794b7e59f8a4b96856

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Thu, 6 Apr 2006 22:04:57 +0000 (18:04 -0400)]
Merge zizzer:/bk/newmem
into  zeep.eecs.umich.edu:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : a0bfc7495ba0f2916214d6712f67c5c239a210a0

18 years agoadded unimp faults
Ali Saidi [Thu, 6 Apr 2006 22:04:49 +0000 (18:04 -0400)]
added unimp faults
update for newmem

arch/mips/faults.cc:
arch/mips/faults.hh:
arch/sparc/faults.cc:
arch/sparc/faults.hh:
    added unimp faults for mips
arch/mips/isa/base.isa:
arch/mips/isa/includes.isa:
    thou shalt not put includes inside a namespace
dev/alpha_console.cc:
    fix formatting
dev/io_device.hh:
    add comments
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
    update for newmem
sim/process.cc:
    fix seemingly wronge code.

--HG--
extra : convert_revision : 9dcfe188d00d525b935d8ef4fa323280bbfa9a0e

18 years agoFixed for full system.
Gabe Black [Thu, 6 Apr 2006 19:21:52 +0000 (15:21 -0400)]
Fixed for full system.

--HG--
extra : convert_revision : 28c9cd55d887c9de7156c8cf76b7b91117f749d5

18 years agoSmall touchups to SPARC
Gabe Black [Thu, 6 Apr 2006 19:14:08 +0000 (15:14 -0400)]
Small touchups to SPARC

arch/sparc/regfile.hh:
    Added debug output to the setAltGlobals function.

--HG--
extra : convert_revision : b5ed3ff6d6f30e840c2488d846658dadedb59869

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Thu, 6 Apr 2006 19:00:11 +0000 (15:00 -0400)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : bd6352647798275a12d52d55a129cdddd8e25423

18 years agofixes for newmem
Ali Saidi [Thu, 6 Apr 2006 18:57:51 +0000 (14:57 -0400)]
fixes for newmem
ALPHA_FS finally compiles again

SConscript:
    Use a couple more FS sources, still don't compile that much
arch/alpha/faults.hh:
    the unimp fault should probably exist in nonfs too.
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/simconsole.cc:
dev/simple_disk.cc:
dev/simple_disk.hh:
dev/uart.cc:
dev/uart.hh:
dev/uart8250.cc:
dev/uart8250.hh:
sim/process.cc:
sim/system.cc:
    fixes for newmem
dev/io_device.hh:
    a system pointer is probably useful for every device to have
mem/bus.hh:
mem/physical.cc:
    new address ranges function
python/m5/objects/SimpleDisk.py:
    simple disk now has a system pointer rather than physmem directly

--HG--
extra : convert_revision : d8c0a5c6510a6210aec5e8adfb0a4a06ec0dcebf

18 years agoChanged the CleanWindow fault from an enumerate fault into a regular one.
Gabe Black [Thu, 6 Apr 2006 18:53:14 +0000 (14:53 -0400)]
Changed the CleanWindow fault from an enumerate fault into a regular one.

--HG--
extra : convert_revision : bf43015f5e47768a6e07ce36dc66a38426beceee

18 years agoFixed up the isa description. Also added some capability to the isa_parser in the...
Gabe Black [Thu, 6 Apr 2006 18:52:44 +0000 (14:52 -0400)]
Fixed up the isa description. Also added some capability to the isa_parser in the InstObjParams constructor.

arch/isa_parser.py:
    Expanded the capability of the InstObjParams constructor to allow adding in extra keys for use in templates. These are added as key, value tuples as optional arguements.
arch/sparc/isa/base.isa:
arch/sparc/isa/formats/mem.isa:
arch/sparc/isa/formats/priv.isa:
    The genCompositeIop function is no longer needed, as this functionality is now in the InstObjParams constructor.
arch/sparc/isa/decoder.isa:
    Fixed up alot of instructions, and fixed indentation.
arch/sparc/isa/formats/integerop.isa:
    The genCompositeIop function is no longer needed, as this functionality is now in the InstObjParams constructor. Also changed the immediate values to be signed.
base/traceflags.py:
    Added SPARC traceflag
configs/test/hello_sparc:
    Recompiled without -mflat
cpu/cpu_exec_context.cc:
    Used the regfile clear function rather than memsetting to 0.

--HG--
extra : convert_revision : b9da6f264f3ebc4ce1815008dfff7f476b247ee9

18 years agoEnable register windows.
Gabe Black [Thu, 6 Apr 2006 18:47:03 +0000 (14:47 -0400)]
Enable register windows.

arch/alpha/isa_traits.hh:
arch/mips/isa_traits.cc:
    Turned the integer register file into a class instead of a typedef to an array.
arch/alpha/regfile.hh:
    Changed the integer register file into a class instead of a typedef to an array. Also put the parts of the register file, ie the int, float, and misc register files, pc, npc, and nnpc, behind accessor functions. Added a changeContext function, and ContextParam and ContextVal types, so that things like the register window can be changed through call backs.
arch/mips/isa_traits.hh:
    Turned the integer register file into a class instead of a typedef to an array. Also moved a "using namespace" into the namespace definition.
arch/sparc/isa_traits.hh:
    Turned the integer register file into a class instead of a typedef to an array. Also "fixed" the max number of src and dest regs. They may need to be even larger.
arch/sparc/regfile.hh:
    Changed the integer register file into a class instead of a typedef to an array. Also put the parts of the register file, ie the int, float, and misc register files, pc, npc, and nnpc, behind accessor functions. Added a changeContext function, and ContextParam and ContextVal types, so that things like the register window can be changed through call backs. Created setCWP and setAltGlobals functions for the IntRegFile.
cpu/cpu_exec_context.hh:
    Used the accessor functions for the register file, and added a changeRegFileContext function to call back into the RegFile. Used the RegFile clear function rather than memsetting it to 0.
cpu/exec_context.hh:
    Added the changeRegFileContext function.
cpu/exetrace.cc:
    Use the TheISA::NumIntRegs constant, and use readReg now that the integer register file is a class instead of an array.
cpu/exetrace.hh:
    Get the address of the regs object, now that it isn't an array.

--HG--
extra : convert_revision : ea2dd81be1c2e66b3c684af319eb58f8a77fd49c

18 years agofixes for new memory system
Ali Saidi [Thu, 6 Apr 2006 04:51:46 +0000 (00:51 -0400)]
fixes for new memory system

SConscript:
    comment out most devices
    add vport.cc
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
    push in alpha name space
    fix for new memory system
arch/alpha/faults.cc:
arch/alpha/faults.hh:
    Added an unimplemented fault that can be returned if a certain
    function isn't implemented
arch/alpha/freebsd/system.cc:
arch/alpha/linux/system.cc:
arch/alpha/stacktrace.cc:
arch/alpha/system.cc:
arch/alpha/tlb.hh:
arch/alpha/tru64/system.cc:
    fixed for new memory system
arch/alpha/tlb.cc:
    fixed for new memory system
    removed code that seems to have no purpose
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
    fixed for new memory system
    put in namespace AlphaISA
base/remote_gdb.cc:
    fix for new memory system
cpu/cpu_exec_context.cc:
cpu/cpu_exec_context.hh:
cpu/exec_context.hh:
    create two ports one of physical accesses and one for superpage accesses
    Add functions getVirtPort() getPhysPort() delVirtPort(). To get statically
    allocated physical or virtual ports or if an execcontext is passed in
    get a dynamically allocated virtual port
dev/alpha_console.cc:
dev/alpha_console.hh:
    Redo for new memory system
dev/io_device.cc:
dev/io_device.hh:
    new I/O devices for new memory system
kern/linux/events.cc:
kern/linux/printk.cc:
kern/linux/printk.hh:
kern/tru64/dump_mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
    Arguments now in namespaces
kern/tru64/tru64_events.cc:
mem/bus.cc:
    fix for new memory syste
mem/physical.hh:
    new addressranges function
    getPort should be public
mem/port.hh:
    Add write/read methods to functional port
    update getDeviceAddrRanges to have a list of both snoops and response lists
sim/pseudo_inst.cc:
sim/system.cc:
sim/system.hh:
    Update for new mem system
sim/vptr.hh:
    comment out code and replace with panics
    This will need to be fixed at some point, but it's not easy.

--HG--
extra : convert_revision : 41f41f422cfbab3751284d55cccb6ea64a7956e2

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Sat, 1 Apr 2006 01:32:18 +0000 (20:32 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 08ae5e999d9b313e3e40cb6d58863905b70ca781

18 years agoFixes to SPARC for syscall emulation mode.
Gabe Black [Sat, 1 Apr 2006 01:31:53 +0000 (20:31 -0500)]
Fixes to SPARC for syscall emulation mode.

arch/sparc/isa/base.isa:
arch/sparc/isa/decoder.isa:
arch/sparc/isa/formats.isa:
arch/sparc/isa/formats/branch.isa:
arch/sparc/isa/formats/integerop.isa:
arch/sparc/isa/formats/mem.isa:
arch/sparc/isa/formats/nop.isa:
arch/sparc/isa/formats/trap.isa:
arch/sparc/isa/formats/unknown.isa:
arch/sparc/isa/includes.isa:
arch/sparc/isa/operands.isa:
    Fixes towards running in syscall emulation mode.
arch/sparc/linux/process.cc:
    Fixed the assert and comment to check that the Num_Syscall_Descs is less than or equal to 284. Why does this assert need to exist anyway?
base/loader/elf_object.cc:
    Cleared out comments about resolved issues.
cpu/simple/cpu.cc:
    Use NNPC for both SPARC and MIPS, instead of just MIPS
configs/test/hello_sparc:
    A test program for SPARC which prints "Hello World!"

--HG--
rename : arch/sparc/isa/formats/noop.isa => arch/sparc/isa/formats/nop.isa
extra : convert_revision : 10b3e3b9f21c215d809cffa930448007102ba698

18 years agoAdd a functional port that is used to load the original binaries in FS
Ali Saidi [Thu, 30 Mar 2006 23:06:00 +0000 (18:06 -0500)]
Add a functional port that is used to load the original binaries in FS
SE mode now has a port that goes to whatever toplevel mem object the
CPU sees that does the appropriate translation for syscall emulation

SConscript:
    translating port is a syscall emu only source
arch/alpha/system.cc:
base/loader/object_file.cc:
base/loader/object_file.hh:
    Use the new functional port to write the binaries into memory
cpu/cpu_exec_context.cc:
cpu/cpu_exec_context.hh:
cpu/simple/cpu.cc:
    We aren't always going to be writing straight to memory with syscalls
    support writing to a cache
mem/port.hh:
    Add a simple unidirectional functional port that panics on any incoming requests
mem/translating_port.hh:
    make translating port inherit from the simple port
sim/system.cc:
sim/system.hh:
    Add a functional port that is used to load the original binaries

--HG--
extra : convert_revision : 9096866d0b23e3aceea68394abb76e63c0f8fd8d

18 years agoMake TranslatingPort be a type of Port rather than something special
Ali Saidi [Thu, 30 Mar 2006 20:59:49 +0000 (15:59 -0500)]
Make TranslatingPort be a type of Port rather than something special

arch/alpha/arguments.cc:
    rather than returning 0, put a panic in... it will actually make us fix
    this rather than scratching our respective heads
base/loader/object_file.cc:
base/loader/object_file.hh:
    Object loader now takes a port rather than a translating port
cpu/cpu_exec_context.cc:
cpu/cpu_exec_context.hh:
sim/process.cc:
    Make translating port a type of port rather than anything special
cpu/simple/cpu.cc:
    no need to grab a port from the cpu anymore
mem/physical.cc:
    add an additional type of port to physicalmemory called "functional"
    Only used for functional accesses (loading binaries/syscall emu)
mem/port.hh:
    make readBlok/writeBlob virtual so translating port can do the
    translation first
mem/translating_port.cc:
mem/translating_port.hh:
    Make TranslatingPort inherit from Port
sim/system.cc:
    header file that doesn't exit removed

--HG--
extra : convert_revision : 89b08f6146bba61f5605678d736055feab2fe6f7

18 years agoFixes for full system compiling.
Kevin Lim [Thu, 30 Mar 2006 15:42:55 +0000 (10:42 -0500)]
Fixes for full system compiling.

arch/alpha/arguments.cc:
    There will not be a phys mem ptr in the XC in the newmem.  This read will have to go through something else.
arch/alpha/ev5.cc:
    Remove instantiations of these functions for the FastCPU, as the FastCPU is not really used.  Also this messed up the ability to specify which CPU models are being built.
cpu/exec_context.hh:
    Remove getPhysMemPtr() function.
cpu/exetrace.cc:
    Include sim/system.hh, and sort the includes.
cpu/simple/cpu.cc:
    Fixes for full system compilation.
kern/system_events.cc:
    Remove include of encumbered FullCPU.  The branch prediction will need to be fixed up in a more generic way in the future.

--HG--
extra : convert_revision : a8bbf562a277aa80e8f40112570c0a825298a05c

18 years agopage_table.cc is a syscall only kinda thing
Ali Saidi [Wed, 29 Mar 2006 23:42:53 +0000 (18:42 -0500)]
page_table.cc is a syscall only kinda thing
fix tlbs for newmem

SConscript:
    page_table.cc is a syscall only kinda thing
arch/alpha/tlb.cc:
arch/alpha/tlb.hh:
    fix tlbs for newmem

--HG--
extra : convert_revision : 0aafcb9698b993a807be883bde1696ee4d33b408

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Wed, 29 Mar 2006 22:40:09 +0000 (17:40 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 7866241cf43416636cbd6a3a4f6eeda561ed2e27

18 years agoupdate for connector magic
Ali Saidi [Wed, 29 Mar 2006 22:39:20 +0000 (17:39 -0500)]
update for connector magic

--HG--
extra : convert_revision : 111af292373edebcd106938e76610f9ac4a6ce58

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Wed, 29 Mar 2006 22:37:41 +0000 (17:37 -0500)]
Merge zizzer:/bk/newmem
into  zeep.eecs.umich.edu:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 5ab4ce9f6ec7af326d8906060ae3558cfd67ca08

18 years agomove stuff around so PageShift is defined before it is needed
Ali Saidi [Wed, 29 Mar 2006 22:37:25 +0000 (17:37 -0500)]
move stuff around so PageShift is defined before it is needed
don't ever include a file while in a namespace
start of making alpha console new memsystem happy
Make a BasePioDevice which is what all the simple Pio devices will inherit from
add a description of when the data pointer will have memory

arch/alpha/isa_traits.hh:
    don't ever include a file while in a namespace
dev/alpha_console.cc:
dev/alpha_console.hh:
    start of making alpha console new memsystem happy
dev/io_device.cc:
dev/io_device.hh:
    Make a BasePioDevice which is what all the simple Pio devices will inherit from
mem/packet.hh:
    add a description of when the data pointer will have memory

--HG--
extra : convert_revision : 495c0915541f9cad3eb42891e60b4ecbee7952bf

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Wed, 29 Mar 2006 22:35:51 +0000 (17:35 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 984b015700ccef71d95b4d7d775a7b3f24084dc6

18 years agoRemove "using namespace std" from global declarations.
Kevin Lim [Wed, 29 Mar 2006 21:05:26 +0000 (16:05 -0500)]
Remove "using namespace std" from global declarations.

--HG--
extra : convert_revision : c580bc6bd308fd502fb5a14ea84b5214e1d2718e

18 years agoMake CPU_MODELS a sticky build option.
Steve Reinhardt [Wed, 29 Mar 2006 03:55:08 +0000 (22:55 -0500)]
Make CPU_MODELS a sticky build option.
This causes a crash if you're using scons 0.96.1 *and* you specify
more than one CPU model.  Since the .isa scanner now works with 0.96.91
then upgrading should not be an issue.  For now we're only using one CPU
model (SimpleCPU) so there isn't even a pressing need to upgrade yet.

build/SConstruct:
    Make CPU_MODELS a sticky option.
    This causes a crash if you're using scons 0.96.1 *and* you specify
    more than one CPU model.  Since the .isa scanner now works with 0.96.91
    then upgrading should not be an issue.  For now we're only using one CPU
    model (SimpleCPU) so there isn't even a pressing need to upgrade yet.

--HG--
extra : convert_revision : d8319c4cd5c937c2c033270cef850d19b805d256

18 years agoOnly compile in Tru64 objects if we're doing Alpha.
Steve Reinhardt [Wed, 29 Mar 2006 03:44:24 +0000 (22:44 -0500)]
Only compile in Tru64 objects if we're doing Alpha.

--HG--
extra : convert_revision : 15bcdb3a6552ad8ee070677c9464ae1302768068

18 years agoUse op_decl instead of op_src_decl + op_dest_decl in .isa templates.
Steve Reinhardt [Wed, 29 Mar 2006 03:32:08 +0000 (22:32 -0500)]
Use op_decl instead of op_src_decl + op_dest_decl in .isa templates.
The latter causes multiple variable definitions if the same operand
is used as both a src and a dest.

arch/alpha/isa/mem.isa:
arch/mips/isa/formats/mem.isa:
    Use op_decl instead of op_src_decl + op_dest_decl.
    The latter causes multiple variable definitions if the same operand
    is used as both a src and a dest.

--HG--
extra : convert_revision : c14d91b293d3afef45c8728d3d8784f372c0b7f4

18 years agoMake Alpha ItbFault methods abstract instead of calling panic()
Steve Reinhardt [Wed, 29 Mar 2006 03:30:43 +0000 (22:30 -0500)]
Make Alpha ItbFault methods abstract instead of calling panic()
(which wasn't working since panic() isn't declared yet here).

arch/alpha/faults.hh:
    Make ItbFault methods abstract instead of calling panic()
    (which wasn't working since panic() isn't declared yet here).

--HG--
extra : convert_revision : b15242baa370777f265a3f6b7d5f5c05702b016f

18 years agoMake .isa-file ##include file paths relative to including file.
Steve Reinhardt [Wed, 29 Mar 2006 03:29:42 +0000 (22:29 -0500)]
Make .isa-file ##include file paths relative to including file.
Makes .isa files cleaner and simplifies scanner too.
Simplified scanner to work under both old and new versions of scons.

arch/SConscript:
    Simplify .isa scanner... seems to work with both scons 0.96.1 and 0.96.91 now.
    Assumes .isa ##include paths are relative to including file.
arch/alpha/isa/main.isa:
arch/mips/isa/formats/formats.isa:
arch/mips/isa/main.isa:
arch/sparc/isa/formats.isa:
arch/sparc/isa/main.isa:
    Make ##include paths relative to including file.
arch/isa_parser.py:
    Make ##include file paths relative to including file.
    Makes .isa files cleaner and simplifies scanner too.
    Partial rewrite of include-handling code to use cool re.sub() feature
    where you can specify a function to provide the replacement string.
    Minor cleanup of error-handling code.
    Also got rid of '#!' at top to make caller choose which python interpreter
    is used (since SPARC now requires 2.4 to build, we may need to do that via
    scons in the future).

--HG--
rename : arch/mips/isa/formats.isa => arch/mips/isa/formats/formats.isa
extra : convert_revision : 15a3920fa3aaf80cd94083eda853aa4e49425045

18 years agoFixed a typo.
Gabe Black [Wed, 29 Mar 2006 00:39:29 +0000 (19:39 -0500)]
Fixed a typo.

--HG--
extra : convert_revision : 9ad2bde341a9efb2826159229427b719ff2142f4

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Wed, 29 Mar 2006 00:36:40 +0000 (19:36 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 7effd744f9061d4aa8e9c3fa769115dfa73cbb79

18 years agoSPARC compiles for SE!
Gabe Black [Wed, 29 Mar 2006 00:36:34 +0000 (19:36 -0500)]
SPARC compiles for SE!

arch/sparc/isa/decoder.isa:
    Replaced register number munging with RdLow and RdHigh operands.
arch/sparc/isa/formats/mem.isa:
    Fixed how the address calculation code is dealt with.
arch/sparc/isa/operands.isa:
    Changed the tabbing so that the whole oeprands block was consistent, and added RdLow and RdHigh operands. These registers are used when Rd is meant to refer to a pair of registers, rather than just one.
arch/sparc/isa_traits.hh:
    Moved some functions to the new (to SPARC) utility.hh file. Also, dummy Fpcr_DepTag and Uniq_DepTag DepTags were added to pacify Tru64. These need to be removed, and Tru64 needs to not be compiled in if it isn't appropriate.
arch/sparc/regfile.hh:
    Changed regSpace to have the correct size.
arch/sparc/utility.hh:
    A new file for sparc to match the one for alpha.

--HG--
extra : convert_revision : ff6b529093d15f327ec11f067ad533bacdba9932

18 years agoMove TLB faults into the normal Fault code. The TLB no longer fills in IPRs through...
Kevin Lim [Tue, 28 Mar 2006 23:01:01 +0000 (18:01 -0500)]
Move TLB faults into the normal Fault code.  The TLB no longer fills in IPRs through its own fault() method; this is handled by the fault's invoke() methods.

arch/alpha/faults.cc:
    Move TLB fault code into the normal fault invoke() method.
arch/alpha/faults.hh:
    Move DTB/ITB fault handling code into their own class with a specific invoke() method.  Have DTB/ITB faults derive from these classes.

    Unfortunately the DtbAlignmentFault is somewhat odd; it's a normal alignment fault, but it must also set some specific IPRs.
arch/alpha/tlb.cc:
arch/alpha/tlb.hh:
    Setting IPRs is now handled through the fault itself.

--HG--
extra : convert_revision : 5cb92ce2186ff79f632bfcbc9ba62a8a04400eae

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Gabe Black [Tue, 28 Mar 2006 20:14:13 +0000 (15:14 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem

--HG--
extra : convert_revision : 762df7bf15e8e22a8fab8bbcd933047d1c8cdfa9

18 years agoMoving towards compilation.
Gabe Black [Tue, 28 Mar 2006 20:13:57 +0000 (15:13 -0500)]
Moving towards compilation.

arch/sparc/isa/decoder.isa:
    Fixed comments so they don't comment out the ending braces of the format specifier.

--HG--
extra : convert_revision : 3f037c0a17abd0dff71d22fdcd95959c3670e88a

18 years agoAdd the bus and connector objects to scons
Ali Saidi [Mon, 27 Mar 2006 02:44:22 +0000 (21:44 -0500)]
Add the bus and connector objects to scons
change getPort parameter from char* to string
Add an extra phase between construction and init called connect

SConscript:
    Add the bus and connector objects to scons
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
    the connection to memory shouldn't be made until we know the memory
    object exists (e.g. after construction)
dev/io_device.hh:
    change to const string
mem/bus.hh:
    change getPort parameter from char* to string
    initialize num_interfaces
mem/mem_object.hh:
    change getPort parameter from char* to string
mem/physical.cc:
mem/physical.hh:
    change getPort parameter from char* to string
    get rid of the bus object I created last time
python/m5/objects/PhysicalMemory.py:
    get rid of the bus object I created last time
sim/main.cc:
sim/sim_object.cc:
sim/sim_object.hh:
    Add an extra phase between construction and init called connect

--HG--
extra : convert_revision : 0e994f93374fa72a06d291655c440ff1b8e155a9

18 years agoupdate for objects having a bus
Ali Saidi [Sat, 25 Mar 2006 23:34:50 +0000 (18:34 -0500)]
update for objects having a bus

--HG--
extra : convert_revision : 96b5494b7d0b5ca702ac69cfa0bf8c4d44e1cc3b

18 years agoImplement a very very simple bus
Ali Saidi [Sat, 25 Mar 2006 23:31:20 +0000 (18:31 -0500)]
Implement a very very simple bus
requestTime -> time
responseTime -> packet.time

Make CPU and memory able to connect to the bus

dev/io_device.cc:
    update for request and packet both having a time
    hand platform off to port for eventual selection of request modes
dev/io_device.hh:
    update for request and packet both havig a time
    hand platform off to port for eventual selection of request modes
mem/bus.hh:
    Add a device map struct that maps a range to a portId
    - Which needs work it theory it should be an interval tree
    - but it is a list and works fine right now

    Add a function called findPort which returns port for an addr range

    Add a deviceBlockSize function that really shouldn't exist, but it
    was easier than fixing the translating port
mem/packet.hh:
    add a time to each packet
mem/physical.cc:
mem/physical.hh:
python/m5/objects/PhysicalMemory.py:
    Make physical memory take a MemObject parameter of what to connect to
mem/request.hh:
    remove requestTime/responseTime for just time in request which
    is requset time and the time in the packet which is responsetime
python/m5/objects/BaseCPU.py:
    Instead of memory cpu connects to any memory object
python/m5/objects/Bus.py:
    Fix for new bus object

--HG--
extra : convert_revision : 72605e8a3fcdd9e80a41f439909ee7feb3f1fe1d

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Tue, 21 Mar 2006 20:45:40 +0000 (15:45 -0500)]
Merge zizzer:/bk/newmem
into  zeep.eecs.umich.edu:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 45dba22ecbdfc8e1bb0df1efd06a37f40d56b67f

18 years agoMake PioPort/DmaPort,DmaDevice/PioDevice compile.
Ali Saidi [Tue, 21 Mar 2006 20:45:31 +0000 (15:45 -0500)]
Make PioPort/DmaPort,DmaDevice/PioDevice compile.
Add another type to the PacketResult enum of Unknown
Seperate time into requsetTime and responseTime.

dev/io_device.cc:
dev/io_device.hh:
    Make PioPort/DmaPort,DmaDevice/PioDevice compile.
mem/packet.hh:
    Add another type to the PacketResult enum of Unknown (e.g. no state set yet)
mem/request.hh:
    Seperate time into requsetTime and responseTime.

--HG--
extra : convert_revision : c6394cb838013296caea6492275252b8cae2882f

18 years agoMerge zizzer:/bk/newmem
Korey Sewell [Sun, 19 Mar 2006 18:41:04 +0000 (13:41 -0500)]
Merge zizzer:/bk/newmem
into  zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips

--HG--
extra : convert_revision : db8490e41ec17fc8f4e2dc9548ecdc7d28b4cdd1

18 years agosupport for unaligned memory access
Korey Sewell [Sun, 19 Mar 2006 18:40:03 +0000 (13:40 -0500)]
support for unaligned memory access

arch/mips/isa/base.isa:
    disassembly fixes
arch/mips/isa/decoder.isa:
    support for unaligned loads/stores
arch/mips/isa_traits.hh:
    edit Syscall Reg values
arch/mips/linux_process.cc:
    call writevFunc on writev syscall

--HG--
extra : convert_revision : 4aea6d069bd7ba0e83b23d2d85c50d68532f0454

18 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
Steve Reinhardt [Sat, 18 Mar 2006 19:42:21 +0000 (14:42 -0500)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into  zizzer.eecs.umich.edu:/z/stever/bk/newmem-head

sim/process.cc:
    Fix bad auto merge (m5 changes unnecessary in newmem).

--HG--
extra : convert_revision : a3ced4cd1668cd47bd02430872ca68b1433aae98

18 years agomore syscall fixes
Korey Sewell [Sat, 18 Mar 2006 16:31:31 +0000 (11:31 -0500)]
more syscall fixes

arch/mips/isa_traits.hh:
    use syscall return function from alpha
arch/mips/linux_process.cc:
    fix some syntax errors,  map some functions to the desc. table

--HG--
extra : convert_revision : 75e8e8893b7d96bb4fc8e8eced53bd16c0a727d1

18 years agoMerge zizzer:/bk/newmem
Korey Sewell [Sat, 18 Mar 2006 15:52:19 +0000 (10:52 -0500)]
Merge zizzer:/bk/newmem
into  zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips

--HG--
extra : convert_revision : 1646b4fb065e3ed9d8de22e3f5c3aa05a2ef01b6

18 years agosteps toward making syscalls work
Korey Sewell [Sat, 18 Mar 2006 15:51:28 +0000 (10:51 -0500)]
steps toward making syscalls work

arch/mips/isa/decoder.isa:
arch/mips/isa_traits.hh:
sim/syscall_emul.cc:
    make syscall instruction functional
arch/mips/linux_process.cc:
    add all MIPS/Linux syscalls to descriptor list

--HG--
extra : convert_revision : 5455a345e76be921e9f63b248aef874b6358e465