Commit graph

359 commits

Author SHA1 Message Date
Nathan Binkert
4760ae46c6 Use the new PacketFifo class to avoid manual calculations
--HG--
extra : convert_revision : afa193904b7ed4d5e5c50e9dcb78e8e855b00ecc
2004-11-13 16:52:08 -05:00
Nathan Binkert
8922d69953 change the serialization of a packet so that we don't
do a nameOut.  This fixes a subtle bug in serialization that
can pop up.

--HG--
extra : convert_revision : b52df977dcbef1c9bd0d4405ba0b36dff3737cdf
2004-11-13 16:46:56 -05:00
Nathan Binkert
acb98fb0f6 we shouldn't ever pass around references to PacketPtrs,
const references are ok, or pass by value.

--HG--
extra : convert_revision : 7280a1c7d22b9294fddbe50f02f6f4c6ca9b2e5b
2004-11-13 16:33:16 -05:00
Nathan Binkert
bd3e3c0230 forgot a change in the previous commit. the ide controller
doesn't have its own interrupt functions

dev/ide_ctrl.hh:
    oops. we don't have our own interrupt functions anymore
    we get them from the base class.

--HG--
extra : convert_revision : 3eac228ec59f4fea0b0e49f961e8b21705dee27f
2004-11-13 16:24:47 -05:00
Nathan Binkert
b031888038 Use parameter structs for initialization so it's easier
to add new devices.  Abstract the Platform more so that
it is unnecessary to know know platform specifics for
interrupting or translating PCI DMA addresses.

dev/ide_ctrl.cc:
    convert to parameter struct for initialization
    use the interrupt functions in the PciDev base class
    convert from tsunami to using platform
    We don't need an interrupt controller here.
dev/ide_ctrl.hh:
    don't use Tsunami, use Platform
    make the IdeDisk a friend so that it can access my plaform
    convert to parameter struct for construction
dev/ide_disk.cc:
    don't use tsunami references, but platform references
dev/ns_gige.cc:
    Convert to parameter struct for initialzation. Use code in
    base class for interrupts so we don't need to know anything
    about the platform. Don't need an IntrControl *.
dev/ns_gige.hh:
    We don't need a Tsunami * anymore
    convert to a parameter struct for construction
dev/pcidev.cc:
    deal with new parameter struct
dev/pcidev.hh:
    - Move all of the configuration parameters into a param struct
    that we can pass into the constructor.
    - Add a Platform * for accessing new generic interrupt post/clear
    and dma address translation fuctions
    - Create functions for posting/clearing interrupts and translating
    dma addresses
dev/platform.cc:
    have default functions that panic on pci calls
dev/platform.hh:
    don't make the pci stuff pure virtual, but rather provide
    default implementations that panic.  Also, add dma address
    translation.
dev/tsunami.cc:
    this-> isn't necessary here.
    add pci address translation
dev/tsunami.hh:
    implement the pciToDma address translation

--HG--
extra : convert_revision : 7db27a2fa1f1bd84704921ec7ca0280b5653c43e
2004-11-13 15:45:22 -05:00
Nathan Binkert
e9f3279334 sort #includes
don't need to include ev5.hh anymore

--HG--
extra : convert_revision : f80d2767936d3fb07a9cb7fd4709cafe9ea93e63
2004-11-13 14:46:02 -05:00
Nathan Binkert
425dda00df Macros are nasty, so let's get rid of them. Convert all
all macros in ev5.hh to inline functions or constant typed
variables and make them follow our style while we're at it.

All of the stuff in this file actually belongs in the ISA
traits code, but this is a first step at getting things done
in the right manner.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/isa_desc:
dev/ns_gige.cc:
kern/tru64/tru64_events.cc:
    deal with changes in ev5.hh
arch/alpha/ev5.hh:
    Macros are nasty, so let's get rid of them.  Convert all
    all macros to inline functions or constant typed variables.
    Make them follow our style while we're at it.

    All of the stuff in this file actually belongs in the ISA
    traits code, but this is a first step at getting things done
    in the right manner.
arch/alpha/isa_traits.hh:
    move some of the ev5 specific code into the isa
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
    deal with isa addition
cpu/exec_context.hh:
    be less isa specific and use the isa traits to figure out
    what we can.
dev/alpha_console.cc:
dev/pciconfigall.cc:
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
dev/uart.cc:
    deal with changes in ev5.hh
    I don't believe this masking is actually necessary.  We should
    look at removing it later.
dev/ide_ctrl.cc:
    sort #includes
    deal with changes in ev5.hh

--HG--
extra : convert_revision : c8a3adf0a4b1d198aefe38fc38b295abf289b08a
2004-11-13 14:01:38 -05:00
Ali Saidi
be0184b463 Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5-smp
--HG--
extra : convert_revision : 59173b5d4599cfe1cbaa96705e9731ee5a8d8647
2004-10-25 18:15:28 -04:00
Ali Saidi
3402411661 changes to make interrupts part of the platform rather than tsunami
specific

--HG--
extra : convert_revision : f51788dd41c23f13b253268bb2b286a5225ef087
2004-10-25 18:14:13 -04:00
Nathan Binkert
a7fd7729ab flesh out the TCP/IP/Ethernet support
base/refcnt.hh:
    reorganize the RefCountingPtr a little bit to make it easier
    to derive from
dev/etherpkt.hh:
    this doesn't belong here. use the inet.hh stuff
dev/ns_gige.cc:
dev/ns_gige.hh:
    use newer features in the tcp/ip/ethernet stuff

--HG--
extra : convert_revision : 32c1953c95655c1f4c70e0d8adedfd94beead624
2004-10-23 16:18:44 -04:00
Nathan Binkert
833c5b5ef4 get rid of some unused variables
--HG--
extra : convert_revision : 187cee0e0bad09bbaff059eb60f20d7d32c1b52c
2004-10-23 13:11:42 -04:00
Nathan Binkert
224acc2abc get rid of pmap.h and make things variables and inline
functions instead of preprocessor macros.

arch/alpha/vtophys.cc:
    use new constants, functions and structs to clean up the
    vtophys code.
arch/alpha/vtophys.hh:
    Clean up a little bit and make the protypes match new changes.
base/remote_gdb.cc:
dev/ide_disk.cc:
kern/tru64/tru64_events.cc:
    use new constants from isa_traits.hh instead of ones from
    old pmap.h

--HG--
extra : convert_revision : 5dce34e3b0c84ba72cefca34e5999b99898edcef
2004-10-23 10:41:35 -04:00
Nathan Binkert
b881408ed7 Clean up the Range class and associated usages. The code was
never clear about whether the end of the range was inclusive
or exclusive.  Make it inclusive, but also provide a RangeSize()
function that will generate a Range based on a start and a size.
This, in combination with using the comparison operators, makes
almost all usages of the range not care how it is stored.

base/range.cc:
    Make the end of the range inclusive.

    start/end -> first/last
    (end seems too much like end() in stl)
base/range.hh:
    Make the end of the range inclusive.

    Fix all comparison operators so that they work correctly with
    an inclusive range.  Also, when comparing one range to another
    with <, <=, >, >=, we only look at the beginning of the range
    beacuse x <= y should be the same as x < y || x == y.  (This wasn't
    the case before.)

    Add a few functions for making a range:
    RangeSize is start and size
    RangeEx is start and end where end is exclusive
    RangeIn is start and end where end is inclusive

    start/end -> first/last
    (end seems too much like end() in stl)
dev/alpha_console.cc:
dev/baddev.cc:
dev/ide_ctrl.cc:
dev/ns_gige.cc:
dev/pciconfigall.cc:
dev/pcidev.cc:
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
dev/uart.cc:
    Use the RangeSize function to create a range.

--HG--
extra : convert_revision : 29a7eb7fce745680f1c77fefff456c2144bc3994
2004-10-22 01:34:40 -04:00
Steve Reinhardt
f267dc4a87 Clean up/standardize handling of various output files.
No more non-intuitive behavior shifts depending on whether
outputDirectory is set (at the expense of backwards compatibility).
outputDirectory is now always valid, defaults to ".".

dev/etherdump.cc:
    Use makeOutputStream() to create output file.
    New behavior: actually complain if dump file can't
    be opened, instead of quietly ignoring the problem.
dev/etherdump.hh:
dev/simconsole.cc:
dev/simconsole.hh:
    Use makeOutputStream() to create output file.
sim/builder.cc:
sim/builder.hh:
sim/main.cc:
    builderStream() is now *configStream.
sim/serialize.cc:
    outputDirectory is now always valid, no need to check.
sim/universe.cc:
    Clean up/standardize handling of various output files.
    No more non-intuitive behavior shifts depending on whether
    outputDirectory is set (at the expense of backwards compatibility).
    outputDirectory is now always valid, defaults to ".".
    New function makeOutputStream() does "the right thing" to
    associate a stream with a filename.

--HG--
extra : convert_revision : a03c58c547221b3906e0d6f55e4a569843f2d646
2004-10-19 20:00:20 -04:00
Ali Saidi
3ef950abba Fixes for bigendian platforms
arch/alpha/vtophys.cc:
    PGOFSET -> ALPHA_PGOFSET to avoid include file problems
base/callback.hh:
    Added  a class to create a callback from a function
base/intmath.hh:
    make FloorLog2 inlined
dev/pcidev.cc:
    more work in getting pciconfig space happy with different endiannesses
dev/uart.cc:
    used an incorrect size for write uint64_t instead of uint8_t
sim/system.cc:
    when writing things into system data structures we need to pay
    attention to endianness

--HG--
extra : convert_revision : 52f441b5789c45db30ef2f6fd4975cbc7323a381
2004-10-16 19:10:51 -05:00
Nathan Binkert
1d02345a24 a bit more cleaning of the network header wrappers.
base/inet.hh:
    add functions to the various headers to grab the most common
    encapsulated protocols.  This could easily get out of hand, but
    we're just worrying about tcp, udp, and ip for now.

    add common functions size(), bytes(), and payload() to all wrappers.
    size() gets the header size
    bytes() returns a uint8_t * to the beginning of the header
    payload() returns a uint8_t * to the beginning of the payload.
dev/etherpkt.cc:
dev/etherpkt.hh:
    don't cache pointers to headers.  It's probably not worth the
    hassle.

--HG--
extra : convert_revision : ba9df85ac019b8a48233042dde79fb9da9546410
2004-09-21 01:41:55 -04:00
Nathan Binkert
a58b834c8e Clean up network header stuff and make it more generic. Use
libdnet when we can instead of our own home grown stuff.

SConscript:
    separate the crc code into its own file
base/inet.cc:
    move the crc stuff to crc.cc
    add generic code for calculating ip/tcp/udp checksums
base/inet.hh:
    -  move crc stuff to crc.hh
    -  #include all of the libdnet stuff.  (this makes base/inet.hh the
    only file you need to include if you want to use this kind of stuff.)
    -  Wrap some of the libdnet structs to get easier access to structure
    members.  These wrappers will automatically deal with masking/shifting/
    byte-swapping.
base/refcnt.hh:
    If one derives from RefCountingPtr, they should have access to
    the internal data pointer.
build/SConstruct:
    make #include of dnet stuff work
dev/etherlink.cc:
dev/ethertap.cc:
dev/ethertap.hh:
    EtherPacket -> PacketData
dev/etherpkt.cc:
    EtherPacket -> PacketData
    add a function for populating extra info about a packet.
    Basically just gives pointers to ethernet/ip/tcp/udp headers
    if they exist.
dev/etherpkt.hh:
    EtherPacket -> PacketData
    remove most of the packet header stuff from teh PacketData
    class and just add a few generic functions for grabbing various
    headers that may exist in the packet.  The old functionality is
    contained in the headers.
dev/ns_gige.cc:
    -  IP -> Ip, UDP -> Udp, TCP ->Tcp when used in variable names
    -  get rid of our own byte swapping functions.
    -  whack checksum code and use libdnet version.
    -  Get pointers to the various packet headers and grab info from
    those headers.  (The byte swapping in the headers now.)
    -  Add stats for Udp Checksums
dev/ns_gige.hh:
    use libdnet for checksum code.
    IP -> Ip, TCP -> Tcp in variable names
    add stats for UDP checksums

--HG--
extra : convert_revision : 96c4160e1967b7c0090acd456df4a76e1f3aab53
2004-09-20 10:43:53 -04:00
Ali Saidi
23e0643c69 Updates to make SMP work.
dev/tsunami_cchip.cc:
    updates to ipi handling chipset code
sim/system.cc:
    debugSymbolTable, now has symbols from pal, console, and linux

--HG--
extra : convert_revision : c981d857f7e3d75f4c46172809e6d14e5f0a1238
2004-08-31 23:47:57 -04:00
Nathan Binkert
0b0a6778c9 Fixup interrupting of the ethernet device.
dev/ns_gige.cc:
    clean up the interrupt handling code so that it is simpler and
    less prone to bugs.  I hope I removed the bug where the:
    assert(intrTick >= curTick || intrTick == 0); would get triggered.
    I'm pretty sure that was due to intrTick not being cleared when
    the interrupt was cleared.

    This code probably still needs to be looked at more closely to
    make sure interrupts are not missed.

--HG--
extra : convert_revision : 61e2eb043540f2534a80c9b633006a71e7d6e282
2004-08-20 11:40:57 -04:00
Nathan Binkert
40174f119d cleanup interrupt code for gigabit device
dev/ns_gige.cc:
    Clean up the interrupt code.  Do a better job determining when
    coalescing should happen.
    Remove some bogus comments
    Stop using magic numbers in initialization and comment what
    the various numbers do
dev/ns_gige_reg.h:
    #define describing which interrupts cannot be delayed and
    which interrrupts we don't implement

--HG--
extra : convert_revision : eb196afa0bf448e1849dd2bd30dde32134effee7
2004-08-11 10:14:26 -04:00
Nathan Binkert
256afbbe26 std::
--HG--
extra : convert_revision : 8383048265ef5b4d7c995dbf44f7d85e349ddbde
2004-08-11 09:05:13 -04:00
Nathan Binkert
a3a1b4dbae better debugging
dev/ns_gige.cc:
    Make all DPRINTF statements take one line. If they need two lines,
    break them up into separate statements.  This makes grep much more
    effective since *every* line will be prefixed by the cycle that the
    trace message is from and the object that caused the message.
    normalize some debugging statements so that searching is easier
    (e.g. always say rxState, not rx state or receive state)
    break into the debugger when a packet is dropped since we don't really
    like dropping packets.

--HG--
extra : convert_revision : 9cf309ca2143a6b8c8215ac5dd6a31aae60173cd
2004-07-30 11:33:45 -04:00
Nathan Binkert
e60a4c58ee Fix a few bugs in the receive state machine. In doing back to tracking
whether or not the state machine is enabled rather than tracking the
specific instance of trying to halt the state machine.

dev/ns_gige.cc:
    change back to tracking the state machine's enableness instead of
    whether or not it is trying to halt.  Also fix a major bug that
    would cause the NIC to drop packets when the rx state machine was
    idle, but enabled.
    Fix a couple other bugs in the state machine where the idle interrupt
    would happen at the wrong time.
    Add a warning to deal with improper values of intrTick
dev/ns_gige.hh:
    We need to keep track of whether the state machine is enabled
    or not separately from the control register since the bits don't
    always reflect the truth.

--HG--
extra : convert_revision : 20056b225fa62a0744473babfd693506aa5f29b2
2004-07-30 11:29:45 -04:00
Nathan Binkert
8f87a57e70 make all ethernet dma use the new interface
--HG--
extra : convert_revision : 1cab883fac2bffd83cb035ebf28958c15118dfdc
2004-07-30 11:17:20 -04:00
Nathan Binkert
f1f85c5470 better debugging of DMA operations
dev/ns_gige.cc:
    use the new PhysicalMemory dma_read and dma_write functions

--HG--
extra : convert_revision : 427049d43355f02ac8bdfe2e60c24825dd734006
2004-07-30 11:09:03 -04:00
Nathan Binkert
da2566f014 style
--HG--
extra : convert_revision : 7489726b6c7bd11af603a448e4ff56c1e46139fe
2004-07-26 23:10:20 -04:00
Nathan Binkert
0650e4a43f When a packet has finished transmitting, kick the state
machine too.  The fifo may have been full and we want
to get another packet into it if we can.

--HG--
extra : convert_revision : 8f57294bd18f5eccb900118f2de83a4ccfd20dbb
2004-07-23 12:19:27 -04:00
Nathan Binkert
8844eadcdf notify the transmitter when the packet has finished transmitting.
--HG--
extra : convert_revision : 66f6f80945c1f621cdc3e743f601d2a73361bacd
2004-07-23 00:05:29 -04:00
Nathan Binkert
c9e6a15196 Add support to store less than the full packet in an etherdump
and actually default to only storing a max of 96 bytes per
packet since that should be plenty to fit all of the headers in.

--HG--
extra : convert_revision : 0c4a6571d80536477ed166e695d957e39da0334e
2004-07-22 23:54:24 -04:00
Nathan Binkert
5b1da825d8 Wrap tracing stuff in #if TRACING_ON to avoid compile error
in m5.fast

--HG--
extra : convert_revision : 329d810bfe282e88133ca35da62ee6dcc73a38f5
2004-07-21 15:44:57 -04:00
Erik Hallnor
a6939573ce Fix serialization when a tx interrupt isn't scheduled
dev/uart.cc:
    Fix serialization when a tx interrupt isn't scheduled.

--HG--
extra : convert_revision : 3029e284cbba417e3f453d83fdf2ef307d684916
2004-07-14 21:34:51 -04:00
Nathan Binkert
6f43d2b8d8 Fix infinite loop in ns_gige stat machine
argh!

dev/ns_gige.cc:
    Exit the state machine so that we don't come right back where
    we started and enter an infinite loop.

--HG--
extra : convert_revision : a5f2b5b5a692de6c80e4b02d7f9bc5d27fe17252
2004-07-14 09:02:15 -04:00
Nathan Binkert
13f8dc981f make the cache access latency a parameter that is based on bus
ticks for the most commonly accessed devices.

dev/baddev.cc:
    Get rid of the constant cache access latency.
    For unimportant devices, don't add any latency.
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ns_gige.cc:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/uart.cc:
dev/uart.hh:
    make the cache access latency a parameter that is based on bus
    ticks.
dev/io_device.cc:
dev/io_device.hh:
    add an io latency variable
dev/ns_gige.hh:
    this moved to io_device.hh

--HG--
extra : convert_revision : 4883130feeaef48abee492eddf0b8eb40eb94789
2004-07-12 22:58:22 -04:00
Lisa Hsu
f857bd9dff make tx/rx fifo size a param, also fix the empty dma problem by adjusting the state machine.
dev/ns_gige.cc:
    make tx/rx fifo sizes a param. the default is 128K for each.  also, make the state machine not move onto txFragRead if there is no room in the txfifo for data.
dev/ns_gige.hh:
    make tx/rx fifo size a param

--HG--
extra : convert_revision : ed91eb31c2b21d4cdc6de87d8641df6197be5209
2004-07-12 16:09:52 -04:00
Andrew Schultz
4f4252fa89 Remove second pciToDma translation on current PRD address pointer b/c
second translation (which is superfluous) doesn't work properly when
system memory is higher than 128MB

--HG--
extra : convert_revision : 9cdf6925689d376953b1aa071bcd1e2f06419202
2004-07-09 22:32:27 -04:00
Lisa Hsu
bbbfebd885 Merge zizzer.eecs.umich.edu:/bk/m5
into shizzle.(none):/home/hsul/work/m5clean

--HG--
extra : convert_revision : 78beb2735c6536ce3e639d59c99e755e9139f4f1
2004-07-09 11:50:40 -04:00
Lisa Hsu
7b2691d537 when you add caches, dma commands within the state machine are delayed and cause the state machine to exit until the dma comes back. thus, all relevant code must be executed BEFORE going to do the dma code.
dev/ns_gige.cc:
    rearrange code so nothing gets skipped when "doing dma."

--HG--
extra : convert_revision : cca66885f45e7df1831e2d8ccaddf5ece7600b13
2004-07-09 11:50:27 -04:00
Nathan Binkert
7c2084dcfe store the checkpoint to the proper directory
dev/disk_image.cc:
    store the disk checkpoint to the proper directory

--HG--
extra : convert_revision : f76347576691560f00c60b86ac2044960d5a193c
2004-07-08 15:59:46 -04:00
Lisa Hsu
19fd3439c7 tag each mem_req as coming from the nic if it is DMA'd from the NIC. the NIC tells the DMA interface, which in turn sets a new nic_req flag in the MemReq it makes.
dev/ns_gige.cc:
    tell all outgoing dma events that this request is from the NIC

--HG--
extra : convert_revision : 62af17a2728a0ff729e7723dc29bd0d130ca5fe3
2004-07-06 17:55:16 -04:00
Lisa Hsu
5bbd57917f these changes are an undo from my last changeset. these are meant for later.
--HG--
extra : convert_revision : 0126918ef293cba02aaaa61dff3c471eb4743116
2004-07-05 11:20:53 -04:00
Lisa Hsu
7ca7b343ff almost forgot to do this - hope it doesn't mess up schedule.
dev/ns_gige.cc:
dev/ns_gige.hh:
    add the stats nate wanted

--HG--
extra : convert_revision : b59d586def7df31741b53cdb59cf3b19253caf26
2004-07-04 16:47:07 -04:00
Lisa Hsu
31c52ac0a7 Merge zizzer.eecs.umich.edu:/bk/m5
into shizzle.(none):/home/hsul/work/linux-clean

--HG--
extra : convert_revision : a072c1560e1f8b5cac378ed5f047a8a9c86b97b9
2004-06-30 00:51:11 -04:00
Lisa Hsu
167c57f265 fix transmit side checksum offloading to not generate a pseudo header.
dev/ns_gige.cc:
    transmit side checksum offloading doesn't need pseudo header generation, it just takes the pseudo header checksum and uses it.

--HG--
extra : convert_revision : 9741bd650415c18ed37b06a453b23610d028135b
2004-06-30 00:50:56 -04:00
Ali Saidi
5a1340d046 Another fix for the too much work problem in 2.6. This should do it.
Both rx/tx interrupts are now scheduled for the future to give the
linux kernel time to get out of its loop.

--HG--
extra : convert_revision : 8fee0a25fde0ce0545c924f8547bed460602e006
2004-06-29 16:08:26 -04:00
Ali Saidi
38fe4d9a86 With the new uart code 300 cycles isn't quite enough, 350 seems to
work. When everything gets changed to seconds this should be updated.

--HG--
extra : convert_revision : 9f1064ff6fec5deceb591904f4571c9129ecc998
2004-06-28 21:23:10 -04:00
Nathan Binkert
19d5789db1 Don't serialize the absolute path so we can move checkpoints around.
sim/serialize.cc:
sim/serialize.hh:
    export the checkpoint directory

--HG--
extra : convert_revision : ba5b796fd930ab0487a502beefcf76bd6bb7c366
2004-06-28 15:54:05 -04:00
Ali Saidi
c75eadc2b2 allow the use of old console code and update elf_object not to rely on EM_ALPHA value.
base/loader/elf_object.cc:
    EM_ALPHA value isn't official, so perhaps we shouldn't use it
dev/alpha_console.cc:
dev/alpha_console.hh:
    this change allows the use of old console code

--HG--
extra : convert_revision : cfacd64ae7fd2595158ca1a83ebcdb66ee7e119b
2004-06-27 14:33:55 -04:00
Ali Saidi
54b49f933a rewrote uart and renamed console.cc to simconsole to reduce confusion
base/traceflags.py:
    removed TsunamiUart/TlaserUart and added a plain Uart
dev/alpha_console.cc:
    updated for new simconsole
dev/platform.hh:
    added a uart member to platform
dev/simconsole.cc:
dev/simconsole.hh:
    removed lots of legacy code, it should all be ours now.
    converted tabs to 8 spaces
    added our copyright
dev/tsunami.cc:
    uses simconsole.hh rather than console.hh
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
    never needed console.hh
dev/tsunami_io.hh:
    this does need eventq.hh and it just happend to be working whenn console.hh was
    included everywhere
dev/tsunamireg.h:
    added a couple more 8250/16550 uart defines
dev/uart.cc:
    new uart code, rewritten to support both tlaser and tsunami (both a 8250 and 8530
    uart).
dev/uart.hh:
    updated for new uart, legacy code removed

--HG--
rename : dev/console.cc => dev/simconsole.cc
rename : dev/console.hh => dev/simconsole.hh
rename : dev/tsunami_uart.cc => dev/uart.cc
rename : dev/tsunami_uart.hh => dev/uart.hh
extra : convert_revision : e663352d49d4c2d3c95643030cf73c0e85ba2f08
2004-06-26 21:26:28 -04:00
Ali Saidi
4799a7b874 minor changes to endian code so that it runs on x86 linux
base/intmath.hh:
    only need FloorLog2(size_t) on a mac, so ifdefed for this
dev/alpha_console.cc:
    Actually allocate the alphaAccess struct.

--HG--
extra : convert_revision : 1f50b1a025c8ee728a9f3d2c603ea38347234f54
2004-06-23 18:39:11 -04:00
Ali Saidi
17bfb1540e Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-endian
--HG--
extra : convert_revision : d4938c6011173d3017f47fd592c4b5e4c8d543a3
2004-06-23 17:55:54 -04:00
Andrew Schultz
06d8f0af5d Fix to properly shadow the DEV bit in the Drive/Head register so other
disks are properly detected and handled

--HG--
extra : convert_revision : ffc3046deb68458ee2ef6fa5263dc471488abc45
2004-06-23 15:37:05 -04:00
Ali Saidi
231fac0a2b more modifications for cross-endian support. linux now gets to pciconfig
dev/alpha_console.cc:
    rather than acessing a byte array for alpha access, access the members
    **this requires an updated console**
dev/pcidev.cc:
    correctly type all the pci data and store in in little endian no
    matter what system we are on
dev/tsunami_uart.cc:
    correct a bug with the data type.
kern/linux/linux_system.cc:
    system type in hwprb needs to be endian happy as well.

--HG--
extra : convert_revision : 8de9bb69365b5d30fceaf4fa342a1639f92d7a83
2004-06-23 15:07:09 -04:00
Lisa Hsu
e05dbb5116 l
base/traceflags.py:
    added some more traceflags for ethernet to break it up better
dev/etherpkt.hh:
    since we are not network host order, must reverse bytes for these typechecks.

    also, overload isTcp/UdpPkt to take an argument so you don't have to reget the ip header if you've already got one.
dev/ns_gige.cc:
    1) add some functions that reverse Endianness so we can generate adn evaluate checksum adn dprintf data accurately/more understandably

    2) forget about the implementation of fifo fill/drain thresholds, it's not used by the driver much, nor does it matter with use sending/receiving in whole packets anyway.
    get rid of teh associated variables.

    3) get rid of txFifoCnt the variable, it's redundant and unnecessary, just use txFifoAvail.

    4) change io_enable to ioEnable, just to be picky.

    5) modify some DPRINTF's to be clearer, also added a lot, and spread them into better traceflag categories

    6) fix the device bug!  it's the intrTick = 0 at teh beginning of cpuInterrupt().

    7) clear some bools in regsReset() so they don't holdover wrong state

    8) fix pseudo header generation for Tcp checksumming to account for network order
dev/ns_gige.hh:
    change io_enable to ioEnable, get rid of fill/drain thresh related variables and txFifoCnt, which is redundant

--HG--
extra : convert_revision : c538b75731f3c9e04354f57e6df9a40aeca5096d
2004-06-21 17:25:18 -04:00
Ali Saidi
3f7b780af5 Merge saidi@zizzer.eecs.umich.edu:/bk/linux
into ali-saidis-computer.local:/research/linux

--HG--
extra : convert_revision : 446dc5fad11a6b29954dc5b1e974430853aa2969
2004-06-21 01:04:48 -04:00
Ali Saidi
c27139c701 start towards getting m5 endian compliant
base/inifile.cc:
    Added mac os support and fixed a bug, on error we need to exit the
    child process not return
base/intmath.hh:
    gcc on macos wanted a seperate function for the size_t type
base/loader/elf_object.cc:
    I'm not sure why this works under linux because it seems to return
    the wrong value.
base/stats/text.cc:
    added define/include for mac os x
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.cc:
    added endian conversion code
dev/alpha_console.cc:
    rather than accessing a charecter array of varying size depending on
    the access, lets actually do this properly.
dev/alpha_console.hh:
    get rid of now nolonger used consoleData
dev/disk_image.cc:
    We have to byte swap the data is some cases, added function to do that
dev/ethertap.cc:
    added preproc directive for mac os

--HG--
extra : convert_revision : 2b5685765cfa2844926d7397f363d2788e3d640a
2004-06-21 00:58:30 -04:00
Andrew Schultz
f3a7930fa6 Fixes to IDE disk to fix serialization. Now passes simple CPU serialize
tests

dev/ide_ctrl.cc:
    Formatting
dev/ide_disk.cc:
    Remove some junk, add an assert to serialize, and add missing serialize
    for command register.

--HG--
extra : convert_revision : 8f99857e32f278dd4e6f23deffc8047c6411d5b2
2004-06-17 11:24:14 -04:00
Andrew Schultz
d1256a2f2c Fix serialize/unserialize of the timers and RTC events
--HG--
extra : convert_revision : aecf09b3b13a23ffef852a1539e8d4eec32008ad
2004-06-16 19:47:07 -04:00
Ali Saidi
e937b38e2c Updated serialization code and added #if tracing so that make fast
builds

dev/ide_ctrl.cc:
    added #if to remove variables that are optimized out.
dev/tsunami_io.cc:
dev/tsunami_io.hh:
    Updated serialization code

--HG--
extra : convert_revision : b322a3299097cbd05b9b5bb8b0a80e9fa33bdc20
2004-06-16 18:20:10 -04:00
Lisa Hsu
bfcb088281 minor mods for mimicking NS83820 functionality
dev/ide_ctrl.cc:
    generalize these #defs
dev/ide_ctrl.hh:
    put these in pcireg.h
dev/ns_gige.cc:
    do i need io_enable?  and assert will fail if i actually need to implement it, which may give clue as to wehtehr i need to implmeent the mem_enable and bm_enable stuff.
dev/ns_gige.hh:
    implement this in case it's needed
dev/pcireg.h:
    put these defs in pcireg instead

--HG--
extra : convert_revision : 5e3581b5da17410f943907139bd479f15d2231e8
2004-06-12 14:24:20 -04:00
Lisa Hsu
e5dba1642b fix serialization
dev/ns_gige.cc:
    fix serialization and move regsReset into the cc file
dev/ns_gige.hh:
    put regsReset into cc instead of here in hh

--HG--
extra : convert_revision : 3a8796fa583e0765503104a9dbe28cc69f1a8fa9
2004-06-11 15:26:21 -04:00
Ali Saidi
ca0dcd048c after unserialization in the ide driver we need to reprogram the
busbridges. Also small fix for gcc 3.3.3.

dev/etherpkt.hh:
    Gcc 3.3.3 wants assert.h to be include in this file.
dev/ide_ctrl.cc:
    after unserialization we need to tell the busbridges what addresses to
    respond to.

--HG--
extra : convert_revision : a421197a5be07761bdef571d0a9406d77788e270
2004-06-11 01:55:20 -04:00
Lisa Hsu
c78d847c01 Merge zizzer.eecs.umich.edu:/bk/linux
into lush.(none):/z/hsul/work/linux

--HG--
extra : convert_revision : 30b93e7a4548a00ba18e86aad85df4c790f51d43
2004-06-10 14:40:51 -04:00
Lisa Hsu
3c7f961751 fix some things on linux todo list. 1) the config.ini. 2) the etherpkt struct defs into ined_hdrs.hh
3) add some new functions to etherpkt.  4) checkin the nice ping_linux.ini that i've been using.

dev/etherpkt.hh:
    remove the packet headers nate hated so much.
    also add some new functionality regarding packets, like isIpHdr(), etc.
dev/ns_gige.cc:
    improve the code given the nice new functions offered in etherpkt

--HG--
extra : convert_revision : 2e27f5a8dca5323c0fa22d3c51af44a35f6be1a2
2004-06-10 14:27:44 -04:00
Ali Saidi
02f69b94c5 Fixes for detailed boot, made cttz and ctlz instructions more compact,
and started cleaning up config files.

arch/alpha/isa_desc:
    Made implementation of cttz and ctlz more compact
base/remote_gdb.cc:
    Added comment about PALcode debugger accesses
dev/baddev.cc:
dev/baddev.hh:
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/tsunami_uart.cc:
dev/tsunami_uart.hh:
    Cleaned up includes and changed device from FunctionalMemory to
    PioDevice for detailed boot
dev/ns_gige.cc:
    The ethernet dev uses two BARs, and the first bars size was being set
    incorrectly.
dev/tsunamireg.h:
    I don't know why we were using the superpage as the PCI memory addr.
    Changed and works correctly with detailed boot.

--HG--
extra : convert_revision : b535e76612cb90b544305dc1aa8c5e0e774564bd
2004-06-10 13:30:58 -04:00
Ali Saidi
2f316082e4 Updated Copyright with information in bitkeeper changelogs
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/alpha_tru64_process.hh:
arch/alpha/aout_machdep.h:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
arch/alpha/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
arch/alpha/vptr.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/bitfield.hh:
base/callback.hh:
base/circlebuf.cc:
base/circlebuf.hh:
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
base/compression/null_compression.hh:
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/date.cc:
base/dbl_list.hh:
base/endian.hh:
base/fast_alloc.cc:
base/fast_alloc.hh:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/hashmap.hh:
base/hostinfo.cc:
base/hostinfo.hh:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/inet.cc:
base/inet.hh:
base/inifile.cc:
base/inifile.hh:
base/intmath.cc:
base/intmath.hh:
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/ecoff_object.cc:
base/loader/ecoff_object.hh:
base/loader/elf_object.cc:
base/loader/elf_object.hh:
base/loader/object_file.cc:
base/loader/object_file.hh:
base/loader/symtab.cc:
base/loader/symtab.hh:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/mysql.cc:
base/mysql.hh:
base/pollevent.cc:
base/pollevent.hh:
base/predictor.hh:
base/random.cc:
base/random.hh:
base/range.cc:
base/range.hh:
base/refcnt.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/res_list.hh:
base/sat_counter.cc:
base/sat_counter.hh:
base/sched_list.hh:
base/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/stats/events.cc:
base/stats/events.hh:
base/stats/flags.hh:
base/stats/mysql.cc:
base/stats/mysql.hh:
base/stats/mysql_run.hh:
base/stats/output.hh:
base/stats/statdb.cc:
base/stats/statdb.hh:
base/stats/text.cc:
base/stats/text.hh:
base/stats/types.hh:
base/stats/visit.cc:
base/stats/visit.hh:
base/str.cc:
base/str.hh:
base/time.cc:
base/time.hh:
base/trace.cc:
base/trace.hh:
base/userinfo.cc:
base/userinfo.hh:
cpu/base_cpu.cc:
cpu/base_cpu.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/exetrace.cc:
cpu/exetrace.hh:
cpu/full_cpu/op_class.hh:
cpu/full_cpu/smt.hh:
cpu/inst_seq.hh:
cpu/intr_control.cc:
cpu/intr_control.hh:
cpu/memtest/memtest.cc:
cpu/memtest/memtest.hh:
cpu/pc_event.cc:
cpu/pc_event.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
cpu/static_inst.cc:
cpu/static_inst.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/baddev.cc:
dev/baddev.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.cc:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
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/ns_gige.cc:
dev/ns_gige.hh:
dev/ns_gige_reg.h:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/pcireg.h:
dev/platform.cc:
dev/platform.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
dev/tsunami.cc:
dev/tsunami.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/tsunami_uart.hh:
dev/tsunamireg.h:
docs/stl.hh:
kern/linux/linux.hh:
kern/linux/linux_syscalls.cc:
kern/linux/linux_syscalls.hh:
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
kern/system_events.cc:
kern/system_events.hh:
kern/tru64/dump_mbuf.cc:
kern/tru64/dump_mbuf.hh:
kern/tru64/mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_events.cc:
kern/tru64/tru64_events.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
sim/async.hh:
sim/builder.cc:
sim/builder.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/host.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/process.cc:
sim/process.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_exit.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/stat_control.cc:
sim/stat_control.hh:
sim/stats.hh:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
test/bitvectest.cc:
test/circletest.cc:
test/cprintftest.cc:
test/initest.cc:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/sized_test.cc:
test/stattest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
test/tracetest.cc:
util/m5/m5.c:
util/m5/m5op.h:
util/tap/tap.cc:
    Updated Copyright
dev/console.cc:
dev/console.hh:
    This code isn't ours, and shouldn't have our copyright

--HG--
extra : convert_revision : 598f2e5eab5d5d3de2c1e862b389086e3212f7c4
2004-06-08 13:37:27 -04:00
Andrew Schultz
ee65ee1604 Fix to TsunamiIO unserialize
dev/tsunami_io.cc:
    Timers don't need to be rescheduled cause they aren't scheduled by
    the default constructor

--HG--
extra : convert_revision : afb68e4f0c4e2a2c98f0037e061752690080a503
2004-06-04 16:04:55 -04:00
Andrew Schultz
0379a27896 Merge zizzer:/bk/linux
into zower.eecs.umich.edu:/z/alschult/DiskModel/linux

--HG--
extra : convert_revision : b23a1d1a79ac5c593150d269d0523c474cf6a4a0
2004-06-04 15:13:04 -04:00
Andrew Schultz
d270ea851a Changes to support serialization with PCI devices
dev/ide_ctrl.cc:
    Properly serialize/unserialize the PciDev base class to get it to remap
    the MMU
dev/ns_gige.cc:
dev/ns_gige.hh:
    Remove the "addr" paramter from the constructor and change the device
    to use PCI based MMU mappings only
dev/pciconfigall.cc:
    Change comments
dev/pcidev.cc:
    Properly setup the MMU after a serialize

--HG--
extra : convert_revision : 4b2e7ba58e3c24fac1ff6f80635e704d6ecc0eff
2004-06-04 15:12:27 -04:00
Ali Saidi
df45c7b404 fixed serialization in tsunami_io and tsunami_uart and console
dev/console.cc:
dev/tsunami_io.cc:
dev/tsunami_uart.cc:
    fixed serialization

--HG--
extra : convert_revision : 1608a116b00007922fa382ddb0c10442a8724f8d
2004-06-04 14:26:17 -04:00
Ali Saidi
07448480fc Merge
dev/tsunami_pchip.cc:
    SCCS merged

--HG--
extra : convert_revision : 064e3bab82aacf813d1f049d72429fd990608044
2004-06-04 13:46:04 -04:00
Ali Saidi
9ce632d1f0 Updated copyright on Tsunami and kern/linux files.
dev/baddev.cc:
dev/baddev.hh:
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
dev/ns_gige.cc:
dev/ns_gige.hh:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/pcireg.h:
dev/platform.cc:
dev/platform.hh:
dev/tsunami.cc:
dev/tsunami.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
kern/linux/linux.hh:
kern/linux/linux_syscalls.cc:
kern/linux/linux_syscalls.hh:
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
    Updated copyright
dev/tsunamireg.h:
    Updated copyright and fixed a ULL

--HG--
extra : convert_revision : 4800bd227c7064044ee98169d6a91f74c791956f
2004-06-04 13:43:50 -04:00
Andrew Schultz
0408051f20 Fixes in translation in PCI to DMA address to fix boot problems with
Linux 2.6 with DMA support

dev/ide_disk.cc:
    Add debug infomation for DMA transfers and fix handling of PRD pointer
    values
dev/ide_disk.hh:
    Reduce buffer (MAX_DMA) size to 64K
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
    Add handling of PCTL register and also fix the translate from PCI to DMA
    addresses which was incorrect

--HG--
extra : convert_revision : 562f55fa1c7099ad0f5a23f59dec2c8ec7601d43
2004-06-03 17:48:05 -04:00
Ali Saidi
6010f637ff Removed dynamic cast to get interrupt frequency and replaced with a
virtual function in alphaaccess.cc

dev/alpha_console.cc:
dev/alpha_console.hh:
dev/platform.hh:
dev/tsunami.cc:
dev/tsunami.hh:
dev/tsunami_io.hh:
    Removed dynamic cast to get interrupt frequency and replaced with a
    virtual function

--HG--
extra : convert_revision : 01f514a33d8f76c6527ab25a713d5c86f9fd646e
2004-06-01 17:36:38 -04:00
Andrew Schultz
08b7d261b2 Merge zizzer:/bk/linux
into zower.eecs.umich.edu:/z/alschult/DiskModel/linux

--HG--
extra : convert_revision : 44678cd6aa2fa9e381d5d719d227013f5eb2a45c
2004-06-01 17:20:30 -04:00
Andrew Schultz
7bbb00d80f Fixes to the state machine to properly support software reset and to fix
PIO writes.  This was mainly related to not shadowing the status register
properly, and also not setting some of the status bits expected by the
operating system for the PIO write protocol.

--HG--
extra : convert_revision : fcdfd588be6e4f237aa6057889f0b3bdf4ea7631
2004-06-01 17:19:47 -04:00
Ali Saidi
ebd4aa6548 Added and cleaned up some comments
dev/tsunami_cchip.hh:
    clean up some comments
kern/linux/linux_syscalls.cc:
    Cleaned up spacing of syscall numbers
kern/linux/linux_system.hh:
    Added doxygen comments

--HG--
extra : convert_revision : 23ecdaa92a208458dd5c5d3c68ac9012ce2690da
2004-05-31 19:47:17 -04:00
Ali Saidi
9d0aa13991 Cleaned up and commented code. I think we are ready to merge with head.
dev/baddev.hh:
dev/pcidev.hh:
dev/tsunami.hh:
dev/tsunami_cchip.hh:
dev/tsunami_io.hh:
dev/tsunami_pchip.hh:
    Added doxygen comments
dev/pciconfigall.hh:
    Added doxygen comments. Made the hlist of devices private and provided
    members to modify the data.
dev/pcidev.cc:
    updated for change in pciconfigall
dev/tsunami_pchip.cc:
    Deleted commented out code we don't need
kern/linux/linux_syscalls.cc:
    Simplified the number -> name conversion.
kern/linux/linux_syscalls.hh:
    Removed StandardNumber and replaced with Number.
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
    LinuxSkipIdeDelay50msEvent was simply the same as the SkipFunc event,
    so I removed it. Same with with LinuxSkipFuncEvent.

--HG--
extra : convert_revision : 1508c335f87d90373f5772f3a0407ea13e858d7e
2004-05-30 17:45:46 -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
Nathan Binkert
62d756f253 rename namespace Statistics to Stats
--HG--
extra : convert_revision : 28f1703f8d7d8cf33fb952ae450f66bdba860fb7
2004-05-21 13:39:20 -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
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
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
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
Lisa Hsu
c5ec5bf3a7 Merge zizzer.eecs.umich.edu:/bk/linux
into shizzle.(none):/home/hsul/work/linux

--HG--
extra : convert_revision : 729b97489f990bffd23add762582b73d2eb2137d
2004-05-11 22:42:57 -04:00
Andrew Schultz
cd8db7669a Merge zizzer:/bk/linux
into zower.eecs.umich.edu:/.automount/zizzer/z/alschult/DiskModel/linux

--HG--
extra : convert_revision : 879834af81a124b1f1b546f1591713a8c36913e4
2004-05-11 18:09:45 -04:00
Andrew Schultz
3bfb59f70d Changes to fix bad DMA handling by disk when using scatter gather page
mappings (writes still unverified, and read could probably be looked over
a bit more too)

dev/ide_disk.cc:
dev/ide_disk.hh:
    Major changes to fix bogus handling of dma transfers.  The read seems to
    work pretty well, but the write is unverfied until we can get a disk
    image that actually tries to write.
dev/tsunami_pchip.cc:
    Change mask to properly mask 13 bits not 12

--HG--
extra : convert_revision : 08fe9bc32970e449cd045de479553a96a4e389d6
2004-05-11 18:06:50 -04:00
Lisa Hsu
a5f90eba3b first pass at merging m5 with linux
--HG--
extra : convert_revision : dfe23349b80ae3b34d3cb95c5734e01ef62f700e
2004-05-11 01:15:18 -04:00
Ali Saidi
3c7071a6be Added ULL for 64bit ints
Added function to skip determine_cpu_caches(). We may have to update this in the
future: see note below.

arch/alpha/alpha_memory.cc:
dev/ide_ctrl.cc:
dev/tsunamireg.h:
    Added ULL for 64bit ints
kern/linux/linux_system.cc:
    Added a function to skip determine_cpu_caches, right now it is only used for
    printing in proc, however in the future we may either want to implement the SC_CTL
    IPR register or manually set alpha_l1i_cacheshape, alpha_l1d_cacheshape,
    alpha_l2_cacheshape, alpha_l3_cacheshape to ((size << 10) | (linesize>>1)<<4 | way)
kern/linux/linux_system.hh:
    added event to skip determine_cpu_caches()

--HG--
extra : convert_revision : 1065f2091bbe6832b730af490f5b4672c2afedce
2004-05-09 20:14:18 -04:00
Andrew Schultz
4a5dcc37bf Whole mess'o'changes.. see individual files
arch/alpha/vtophys.cc:
    Removed buggy code that tries to fix PAL addresses (may cause problems
    while trying to debug in PAL code, but that should do this fix outside
    of vtophys)
base/loader/symtab.cc:
base/loader/symtab.hh:
cpu/exetrace.cc:
    Changed InstExec traces to always print a symbol name
dev/ide_ctrl.cc:
dev/ide_disk.cc:
    Tabs
dev/ide_disk.hh:
    Change buffer size
dev/tsunami_pchip.cc:
    Fix translatePciToDma to support scatter gather mapping
kern/linux/linux_system.cc:
    Force simulator to wait until remote debugger attaches (should be removed
    or turned on/off with a flag)

--HG--
extra : convert_revision : 1d08aebe3f448c87a963dd613de3e2e0cff0d48d
2004-05-06 15:21:07 -04:00
Andrew Schultz
8538ffdb36 Merge zizzer:/bk/linux
into zower.eecs.umich.edu:/.automount/zizzer/z/alschult/DiskModel/linux

--HG--
extra : convert_revision : 8eca0fba9d96bffea7a24bce9b14f0284bd58c83
2004-05-03 11:48:17 -04:00
Andrew Schultz
6807c319b0 Checkin of latest IDE and some separation between platforms (Tsunami and
Turbolaser)

base/range.hh:
    Change semantics of range to be inclusive of the end value, may need to
    check other users of range to make sure they are semantically correct.
    This was needed for access of last byte in range of address on IDE and
    makes sense for case of range from 0 to all f
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
    Whole mess of changes.. at current state simulator will boot and read
    partition table and then have a bunch of errors and panic
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/platform.hh:
    Changes to work with platform separation
dev/tsunami.cc:
dev/tsunami.hh:
    Change to work with platform separation

--HG--
extra : convert_revision : e1de22b54df7fdcf391efc2a8555ada93f46beab
2004-05-03 11:47:52 -04:00
Lisa Hsu
53b54c2b65 just comment ns_gige.cc a little more
dev/ns_gige.cc:
    add some comments

--HG--
extra : convert_revision : 96ae82f1f48b8e2e2ba8a6a0e2f37d8f992d15b3
2004-04-21 18:43:39 -04:00
Lisa Hsu
bf8de77465 This is where I'm at for Linux Ethernet before I head to Mexico.
base/range.hh:
    andrew thought this might be a bug.
dev/etherpkt.cc:
    don't need std:: since there is a using directive
dev/ns_gige.cc:
    update to new PIO and PCI system
dev/ns_gige.hh:
    update to deal with new PIO and PCI setup
dev/ns_gige_reg.h:
    Add some new #defines that I ended up needing
dev/pcidev.cc:
    some changes to the debugging printfs of pci device

--HG--
extra : convert_revision : 955ba8e8e1c418cfe1c6549dc3451ea091541556
2004-04-21 18:23:41 -04:00
Steve Reinhardt
d4069233eb Beta version of Python configuration tool. Generates .ini files from
Python script description.

arch/alpha/alpha_memory.cc:
dev/io_device.cc:
    Add DEFINE_SIM_OBJECT_CLASS_NAME for intermediate SimObjects.
test/paramtest.cc:
    Fix stupid spelling.

--HG--
extra : convert_revision : dc020208cb6507c1afb1ed771a7218daba678e09
2004-04-06 10:02:00 -07:00
Steve Reinhardt
782fb42992 Basic cleanup pass to get rid of a few things that made the Python
configuration unnecessarily awkward.  Biggest changes are:

- External and internal object names now match in all cases.  The
macros still allow them to be different; the only reason I didn't
get rid of that is that the macros themselves should be going away
soon.  In the few conflicting cases, I sometimes renamed the C++ object
and sometimes renamed the config object.  The latter sets of substitions
are:

s/BaseBus/Bus/;
s/MemoryObject/FunctionalMemory/;
s/MemoryControl/MemoryController/;
s/FUPool/FuncUnitPool/;

- SamplingCPU is temporarily broken... we need to change the model
of how this works in the .ini file.  Having it as a CPU proxy is
really awkward.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
cpu/simple_cpu/simple_cpu.cc:
sim/process.cc:
    Rename objects to match config name.
cpu/base_cpu.cc:
    Uncomment SimObject define since SamplingCPU no longer
    does this for us.
dev/ethertap.cc:
    Use unsigned instead of uint16_t for params.
kern/tru64/tru64_system.cc:
    Use unsigned instead of uint64_t for init_param param.
test/paramtest.cc:
    Fix old SimObjectParam.

--HG--
extra : convert_revision : 378ebbc6a71ad0694501d09979a44d111a59e8dc
2004-04-02 22:57:08 -08:00
Lisa Hsu
f4168a708c Merge zizzer:/bk/linux into zower.eecs.umich.edu:/z/hsul/work/bk/linux
--HG--
extra : convert_revision : 69440981a018ce8b7c1c8a73404da0a39faa3ac3
2004-03-23 17:11:19 -05:00
Andrew Schultz
75cef1a801 Add initial support for IDE
--HG--
extra : convert_revision : e07dc6c87b0b692d428b541d4032fcf82996ef15
2004-03-23 17:10:07 -05:00
Lisa Hsu
b45fd9c541 Merge zizzer:/bk/linux into zower.eecs.umich.edu:/z/hsul/work/bk/linux
--HG--
extra : convert_revision : 7af5650ceae277ce838e778bba1fba86285d6dca
2004-03-22 17:11:36 -05:00
Andrew Schultz
e8f7aca8cf Automerge
--HG--
extra : convert_revision : d79abea2623f31a27735640363dfbf655c226b62
2004-03-22 16:59:43 -05:00
Andrew Schultz
c8640365c2 Change member variable names to lower case
--HG--
extra : convert_revision : 390c30b8313e7acbd7d77b106716f7147d181111
2004-03-22 16:58:18 -05:00
Andrew Schultz
8baccdc6d3 Changed to inherit from DmaDevice to avoid multiple inheritance (now
assumes that all PCI devices are DmaDevices, and if not, they can just
ignore the DMA stuff)

--HG--
extra : convert_revision : aa58b658370696674ca4c32b265bc0400e5dda5a
2004-03-22 16:50:09 -05:00
Lisa Hsu
ddeaa4d5e1 Merge zizzer:/bk/linux into zower.eecs.umich.edu:/z/hsul/work/bk/linux
--HG--
extra : convert_revision : b4e2fc55ec9cd0caa7cdf02de8a61c66e8b35c67
2004-03-22 13:21:18 -05:00
Lisa Hsu
3bc851b7db forgot to check this in earlier - no confusion between types and member names!
dev/pcidev.cc:
    member variables should begin with lowercase so they don't get confused with types.
dev/pcidev.hh:
    member variables must begin with lowercase so they don't get confused with types.

--HG--
extra : convert_revision : f083baa60d0fbf64d858d684ff70ee06e7b7765d
2004-03-22 13:15:14 -05:00
Ron Dreslinski
b4ff8c555f Make it so that alpha_console can read the frequency from the correct
sim object(depends on which platform tsunami/tlaser is being used)

dev/alpha_console.cc:
    Use dynamice casting once during build to get at the proper device to calculate the frequency.
    It is either a tsunami_IO or a tlaser_clock depending on platform (tsunami/tlaser).
    If the simobject is not of either of those types then panic
dev/alpha_console.hh:
    Pass in a SimObject * that is to either a tlaser_clock or a tsunami_IO
sim/sim_object.cc:
    Make it so that you can have a SimObjectParam of type SimObject:

    example:
    SimObjectParam<SimObject *> so;

--HG--
extra : convert_revision : 08239ef23762b8ea11311630b73fe885d939402e
2004-03-19 14:51:02 -05:00
Lisa Hsu
25a07e7467 merge etherpkt and makefile
--HG--
extra : convert_revision : 8f416468c7c239a4de6f8df2d632832921c1ced8
2004-03-12 11:07:32 -05:00
Lisa Hsu
48e6ed48e0 first pass at ns_ethernet device. more will come later as i merge in nate's new ether infrastructure.
dev/etherpkt.hh:
    add some stuff for support of the NS ethernet device.

--HG--
extra : convert_revision : 51f6508463b6394055e3428a42b7de490a9ae6c1
2004-03-12 11:04:58 -05:00
Lisa Hsu
256a1ac478 merge from head of m5. note: i did not bother to merge the PIO stuff with scsi since we're not going that route anymore anyway. esp because it was giving me an error i couldn't seem to fix.
dev/alpha_console.cc:
    missed this >>>> after i merged
kern/linux/linux_system.cc:
    get rid of FS_MEASURES and change FnEvent to LinuxFnEvent
kern/linux/linux_system.hh:
    get rid of FS_MEASURE

--HG--
extra : convert_revision : 210f46573bba0c772a224ce110af9a9230fabf6a
2004-03-11 20:04:41 -05:00
Lisa Hsu
3bc8cffc75 merge with m5 head
--HG--
extra : convert_revision : c90339248d1ee74df1c6b90a77ec9ea41f646311
2004-03-11 18:52:29 -05:00
Lisa Hsu
c6c61870fa It was annoying me that there was PCIConfigAll and PciDev and PciConfigData. so for consistency I changed it.
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/tsunami.hh:
    change PCIConfigAll to PciConfigAll

--HG--
extra : convert_revision : d2fa3f59b906c870fd9d46cfa94728c7587e3652
2004-03-11 12:45:27 -05:00
Nathan Binkert
c74cb77fa4 Add support for a propagation delay on the link. The electrical
delay is more or less folded into the packet time, but an additional
delay is possible representing crossing a long haul link, or some
switches, etc.

--HG--
extra : convert_revision : 8fd689c2a7e3051e77f47a4cd5f51c6999d92c8f
2004-03-05 05:47:05 -05:00
Nathan Binkert
2272164d66 Fix dumping to work on the opteron. struct timeval can
vary in size, so we're explicit about the fields.

--HG--
extra : convert_revision : e5264849dafb878676b2bfd3a6e6f95f6f94ea48
2004-02-29 17:05:23 -05:00
Erik Hallnor
b491bda241 Add support for multiple address ranges in memory interfaces.
dev/alpha_console.cc:
    setAddrRange -> addAddrRange

--HG--
extra : convert_revision : 9dc853b80bea443b54a130ca4c110a68077cb336
2004-02-29 16:18:49 -05:00
Nathan Binkert
bc5ed80b32 configurable latency for programmed IO
fix serialization

dev/etherlink.cc:
    fix serialization

--HG--
extra : convert_revision : 6739001f3f97b745d9874bb4c5729cc4909625c2
2004-02-22 18:09:11 -05:00
Andrew Schultz
43787ad863 Added initial (hackish) support for translating between a PCI bus address
and a physical memory address for DMA

dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
    Changed registers to array and added mapping function to translate between
    PCI bus space and physical address space

--HG--
extra : convert_revision : e9dc4de4e7effe8e8e2365298843d6f767b5a289
2004-02-21 20:29:38 -05:00
Nathan Binkert
610081079c New Ethernet device. Descriptors are now done via DMA instead
of faking it.  Renamed stuff to follow our style.  Lots of
general cleanup.

dev/etherpkt.hh:
    fix up includes

--HG--
extra : convert_revision : fb3a21466cdae00f8747d6e3027c9f2c63569c48
2004-02-21 10:43:37 -05:00
Ron Dreslinski
4768c72964 Fix the RTC code so it is in the cchip, only interrupt processors that
are present

dev/tsunami_cchip.cc:
    Only need to interrupt processors that are there
    Move RTC interrupt code into a function
dev/tsunami_cchip.hh:
    Make a RTC interrupt function, move variables out of public scope
dev/tsunami_io.cc:
    Make a call to the RTC interrupt routine instead

--HG--
extra : convert_revision : 88113664d0e54a7dddc00ec11ff9b9d088232b31
2004-02-20 16:51:19 -05:00
Nathan Binkert
ec06c63cc7 make the dma interface useable.
make it so that pio devices must respond with some delay.

dev/io_device.cc:
    don't forget to include dma_interface.hh so we could use it.
dev/io_device.hh:
    the generic BusInterface isn't enough for doing DMA
    we need the actual DMAInterface

--HG--
extra : convert_revision : 70298d33c8520a3f4ad11aa600825a8cec7e44bf
2004-02-20 15:23:27 -05:00
Nathan Binkert
ee8c8cbcd8 make etherdump work again
dev/etherdump.cc:
    now that init is automatically called by the framework, don't
    init twice.

--HG--
extra : convert_revision : 16dcdef67aa193ed71ff546e7b255d60f39bf13d
2004-02-20 15:19:19 -05:00
Nathan Binkert
7ad5b6ee22 Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/memory

--HG--
extra : convert_revision : 691c89ebacb3c5a5eb67359ed102646b8547dd17
2004-02-20 15:08:02 -05:00
Ron Dreslinski
db940dd0b0 Add support for IPI's and extend RTC to interrupt all Processors
dev/tsunami_cchip.cc:
    Add support for IPI, making changes to read/write to MISC register
    Particularly the IPREQ, IPINTR, and ITINTR subfields
dev/tsunami_cchip.hh:
    Make an array to keep track of the number of outstanding IPI's,
    Extend RTC to interrupt all processors, not just cpu0
dev/tsunami_io.cc:
    Extend RTC to interrupt all present proccessors, not just cpu0

--HG--
extra : convert_revision : 0715cbf0abb06002c0fb0b05ef369304cdf75001
2004-02-20 14:28:59 -05:00
Ron Dreslinski
373d70980e Add serialization for packets on the ethernet link,
and for link events

--HG--
extra : convert_revision : 0054dbc4a42dd38ff8bbf64af303bc509dd5aa8a
2004-02-20 12:44:41 -05:00
Ali Saidi
706d6bea52 1 << x != (uint64_t)1 << x
dev/tsunami_cchip.cc:
    fixed another problem with the interrupt code, should all work now

--HG--
extra : convert_revision : 1d9fe6081b6391e3e09f1c4a9380a30240fac6dc
2004-02-16 16:04:34 -05:00
Andrew Schultz
9c9d1cb5bf Changed device IRQ back to 1
--HG--
extra : convert_revision : 3fb611e6e0305fe9854cdf7813492b75750cd7a9
2004-02-16 01:33:43 -05:00
Andrew Schultz
484a4de65a Added new aic register definition, fix some interrupt related calls
dev/tsunami_cchip.cc:
    Change interrupt level to 20 for devices

--HG--
extra : convert_revision : deee68d5434643dc751de08e5a804c14d1a86efd
2004-02-16 01:07:16 -05:00
Ali Saidi
03e8793f89 Merge
dev/tsunami_cchip.cc:
    SCCS merged

--HG--
extra : convert_revision : a4b2b0b92038217608a733a6c8f27edb018e910d
2004-02-16 00:00:23 -05:00
Ali Saidi
de5fa66714 Rewrote interrupt code to handle masking correctly and changed every
interrupt to use a different subnumber since both devices could
interrupt at the same time and we don't want to loose one.

dev/tsunami_cchip.cc:
    rewrote interrupt code to handle interrupt mask clearing correctly
dev/tsunami_cchip.hh:
    changed (post/clear)DRIR to use a interrupt number rather than a vecotr
dev/tsunami_io.cc:
    updated for new post/clearDRIR calls

--HG--
extra : convert_revision : 5b39f5e15a66d5eb6e689e6ece62f99b5fa735ab
2004-02-15 23:56:44 -05:00
Andrew Schultz
44b277a62f Interrupt changes
dev/tsunami_cchip.cc:
    Changed to point to IPL 20 rather than 21

--HG--
extra : convert_revision : ee70f4bae4e06b92a0e02ea71ed65d4e260e7967
2004-02-15 22:36:23 -05:00
Andrew Schultz
1978851fc7 Fix some debug printing errors
--HG--
extra : convert_revision : 3ef3d2c7eb67c45a7e005c1c072f3098142ea210
2004-02-15 18:24:14 -05:00
Andrew Schultz
092ec1978d Fix to remote debugger while in PAL
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
    Fix to remote debugger while in PAL code
dev/pcidev.cc:
    Remove extra debug printf

--HG--
extra : convert_revision : e64988846ad05cd3ddf47034d72d99dae3501591
2004-02-13 18:15:04 -05:00
Nathan Binkert
cc53465cd5 Add support for all devices to get requests from a timing memory bus.
In the future, this can be used for actual data, but for now, it's
so that devices can respond to timing accesses properly.  This way,
an uncached access on a bus further away will take longer to respond.

dev/alpha_console.cc:
dev/alpha_console.hh:
    suport the separate IO bus

--HG--
extra : convert_revision : ececb70f5febfd00231f6e406f93b2a79be01261
2004-02-11 16:07:55 -05:00
Ali Saidi
29eae76153 Merge
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
dev/tsunami_uart.cc:
    SCCS merged

--HG--
extra : convert_revision : da3d1998d6dd39e0d3f8754074c513cdd8a4193c
2004-02-11 15:36:36 -05:00
Ali Saidi
0f34a00703 added serializeation code
--HG--
extra : convert_revision : 468f3c739707d167af43562695b604fd7dead661
2004-02-11 15:32:30 -05:00
Andrew Schultz
e72e8b28c8 Fix masking of read/write address to get read/write offset
Changed base_linux.ini file to use physical addresses

dev/alpha_console.cc:
dev/pciconfigall.cc:
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
    Fix masking of read/write address to get read/write offset
dev/tsunami_uart.cc:
    Fix masking of read/write address to get read/write offset
    Also added add_child call that was missed
dev/tsunami_uart.hh:
    Changed size to 0x8

--HG--
extra : convert_revision : 1468ca43167bfb28b28c4510401a1ebad683e102
2004-02-10 22:35:18 -05:00
Andrew Schultz
81d5ffe7de Changed new linux stuff to work with new FunctionalMemory interface and
some sundry problems with new interface

dev/alpha_console.cc:
dev/alpha_console.hh:
dev/baddev.cc:
dev/baddev.hh:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/tsunami_uart.cc:
dev/tsunami_uart.hh:
    Fixed to use new FunctionalMemory interface

--HG--
extra : convert_revision : bee98e6285d92f28fafacf919ab06eaf333a9b56
2004-02-10 00:19:43 -05:00
Andrew Schultz
eac2d6a668 Merge linux tree with head
arch/alpha/alpha_memory.cc:
dev/alpha_console.cc:
dev/alpha_console.hh:
    Merge

--HG--
extra : convert_revision : 3233648f204338ab3f102ff117754dce955dcc37
2004-02-09 17:50:47 -05:00
Andrew Schultz
48bb27be72 Added platform.hh
--HG--
extra : convert_revision : c11fde5e5f0e344d2f4c89c57a4d41ca179a31e5
2004-02-09 14:52:41 -05:00
Andrew Schultz
581a6ea0dd Fixes for updating mmu mappings
dev/tsunami.hh:
    Added generic platform base class

--HG--
extra : convert_revision : ff74956937f9fca5bdfa5e3779add776e4a91f8b
2004-02-09 14:47:39 -05:00
Ali Saidi
b93cab4e85 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/linux
into zizzer.eecs.umich.edu:/y/saidi/work/m5

--HG--
extra : convert_revision : 35c2de18adad0957538453b2a083e59de535aa88
2004-02-09 13:46:38 -05:00
Ali Saidi
1ded394fc3 Some changes to for linux 2.6.2
dev/pcidev.cc:
    Linux 2.6 writes the latency timer, so it was added to the list of
    allowable writes
dev/tsunami_uart.cc:
dev/tsunami_uart.hh:
    A couple of changes so that the new linux autoconf serial driver thinks
    that the serial port exists and configures it

--HG--
extra : convert_revision : 6c026ef754e31de56c9b837ceb8f6be48c8d8d9c
2004-02-09 13:40:58 -05:00
Nathan Binkert
da8a702212 - Whack unused code
-  Make the MemoryController use address ranges (via Range) instead
of an address and a mask

base/remote_gdb.cc:
    reflect name change
dev/alpha_access.h:
    better include
dev/alpha_console.cc:
    -  FunctionalMemory no longer takes care of mapping my address into
    the proper address space.  It must be done locally.
    -  the memory controller no longer uses a mask, but a size, and the
    size is determined by the device, not the .ini file
    -  fix up address calculations to reflect the removal of a mask
    -  PhysicalMemory::getSize() -> PhysicalMemory::size()
dev/alpha_console.hh:
    -  FunctionalMemory no longer takes care of mapping my address into
    the proper address space.  It must be done locally.
    -  the memory controller no longer uses a mask, but a size, and the
    size is determined by the device, not the .ini file
    -  fix up address calculations to reflect the removal of a mask
    -  get rid of MmapDevice and inherit from FunctionalMemory

--HG--
extra : convert_revision : e3a65c9debf6f899632d62c70781cbdc2826616b
2004-02-09 10:49:48 -05:00
Andrew Schultz
c76675be58 Now skips the calibrate_delay loop in the kernel boot
dev/tsunami.cc:
    Changed so Tsunami has a pointer to the System to which it belongs.
    Now it is derived from generic base class Platform so platform stuff
    can be accessed based on the system
dev/tsunami_io.cc:
dev/tsunami_io.hh:
    Cleanup and added copyright
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
    Added event to skip the "calibrate_delay" function, now calculate
    loops_per_jiffy based on frequency, interrupt frequency, and constant
sim/system.hh:
    Added pointer to generic Platform base class

--HG--
extra : convert_revision : 5bd925eec220a2ca48eb6164d2ecfdec96922c2c
2004-02-05 18:23:16 -05:00
Ali Saidi
77a30ed48d fixed mapping of device memory and i/o space
--HG--
extra : convert_revision : 9236c7f0aeb4d555880bdfdfa7f55cedf1cbb950
2004-02-05 15:12:33 -05:00
Ali Saidi
09c40bfe43 added some comments
--HG--
extra : convert_revision : eeb0a2c227261ce601ec5e5e8e57b58cbcf22a17
2004-02-05 13:22:02 -05:00
Ali Saidi
f4ef613ffd mereged some comments with some of andrews changes
--HG--
extra : convert_revision : 8b3d1b2fe15eeb7d97462dac0043ca6b0863f6e6
2004-02-05 13:17:44 -05:00
Ali Saidi
7a6a435983 added some comments
--HG--
extra : convert_revision : b33c94984f8d9ac2baf8d7b45fa79460846b1755
2004-02-05 13:05:20 -05:00
Andrew Schultz
daa579fc0f Fix PCI code so it builds properly now
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/tsunami.cc:
dev/tsunami.hh:
    A bunch of changes to clean up new PCI code and to fix build

--HG--
extra : convert_revision : 71063bcc565c50fc293b323ddce2c8e701f544ff
2004-02-05 02:25:45 -05:00
Steve Reinhardt
b6ff600bca Add support for "serializing" instructions that flush
execution pipeline (Alpha trapb & excb).

Add support for write memory barriers (mostly impacts
store buffer).

Add StaticInst flag to indicate memory barriers, though
this is not modeled in the pipeline yet.

arch/alpha/isa_desc:
    Implement trapb, excb, mb, and wmb as insts with
    no execution effect (empty execute() function) but
    with flags that indicate their side effects.

    Also make sure every instruction that needs to go to
    the execute stage has a real opClass value, since we
    are now using No_OpClass to signal insts that can get
    dropped at dispatch.

    StaticInst::branchTarget() is now a const method.
cpu/static_inst.hh:
    Add flags to indicate serializing insts (trapb, excb) and
    memory and write barriers.

    Also declare some StaticInst methods as const methods.
dev/etherlink.hh:
sim/eventq.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_object.hh:
    Make name() return value const.

--HG--
extra : convert_revision : 39520e71469fa20e0a7446b2e06b494eec17a02c
2004-02-04 21:42:00 -08:00
Ali Saidi
69e1e10f5d Added code so that BAR writes will result in an updated memory mapping
dev/pcidev.cc:
dev/pcidev.hh:
    BAR changes should now change the mmu mapping

--HG--
extra : convert_revision : 2d5c60ef076ab0588a25def1ecd9dbb90c9144d7
2004-02-04 19:56:24 -05:00
Andrew Schultz
f2b8df2420 Changes to support PciDev as a new base class for devices which use PCI
--HG--
extra : convert_revision : fc2bc4399665344220b1a7e345ae6d2df03c9960
2004-02-04 15:03:50 -05:00
Andrew Schultz
0a585921f0 Mostly changes to point Tsunami related stuff to use AdaptecController
dev/tsunami.cc:
dev/tsunami.hh:
    Change to use AdaptecController with Tsunami

--HG--
extra : convert_revision : 6ff4f9f7ae1959589340b2ab23755b4dbfec4dbc
2004-02-03 17:02:48 -05:00
Andrew Schultz
d08e1bc569 Fix to support redefinition of functional_memory base class
--HG--
extra : convert_revision : c06b2cfd2787022ee5dc664886873a9afa459434
2004-02-03 16:59:40 -05:00
Nathan Binkert
85bc028185 merge
--HG--
extra : convert_revision : 47425264e672f727cbb13aa7b9bb2a67790b25e8
2004-02-03 11:24:03 -05:00
Steve Reinhardt
956aff1291 More conversions of ref-counted parameters to references:
Statistics::NodePtr, StaticInstPtr, ethernet PacketPtr.

base/statistics.hh:
    Change NodePtr parameters to Nodeptr &.
cpu/exetrace.hh:
    Change StaticInstPtr parameters to StaticInstPtr &.
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.cc:
dev/ethertap.hh:
    change PacketPtr parameters to PacketPtr &.

--HG--
extra : convert_revision : a778efdca33b0ec5beb76cf47db0e9e4728897ee
2004-02-02 15:45:22 -08:00
Steve Reinhardt
7b07b0877f Change MemReqPtr parameters to references.
This avoids incrementing and decrementing the MemReq
reference counters on every call and return.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
cpu/exec_context.hh:
cpu/memtest/memtest.cc:
cpu/memtest/memtest.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
    Change MemReqPtr parameters to references.

--HG--
extra : convert_revision : 3ba18bdd9f996563988402576bfdd3430e1ab1e5
2004-02-02 10:47:21 -08:00
Nathan Binkert
bbf952376e Update for changes in the console
This is basically the same thing that was done for tlaser_uart

--HG--
extra : convert_revision : e0de84b83d1ee4fe0ef769b4de232dbbd7d9c228
2004-01-30 18:12:48 -05:00
Nathan Binkert
4ae64216c3 Merge
--HG--
extra : convert_revision : 8690e31b64235874d74ea4a1123a408610fb115b
2004-01-30 16:01:26 -05:00
Ali Saidi
0035440536 Linux boots with no devices
dev/tsunami.hh:
    Started commenting code
dev/tsunami_cchip.cc:
    removed unneccessary config files
dev/tsunami_io.cc:
    Added code to see the value written
dev/tsunami_uart.cc:
    conviently one of the addresses the SuperI/O southbridge can be is the same space
    as the UART. This stops the simulator from panicing although it should probably be
    changed a bit.

--HG--
extra : convert_revision : a3334a2c418ee8228089d0e1791fa78bbb276fe5
2004-01-30 15:24:50 -05:00
Nathan Binkert
ee4263f72e Fix character input by handling the character and the
special console values separately.

dev/alpha_console.cc:
    use new console specific input function

--HG--
extra : convert_revision : 08997d6115d2aac3a26cac2774b3c3fc0cd76ab0
2004-01-29 16:32:03 -05:00
Nathan Binkert
2db1b6ea1b provide an output stream for simulator output. (This takes place of the
statStream catchall that we had before)
Also provide an optional output directory that multiple simulator output
files can be written to.
Make most output files use the output directory

base/misc.cc:
    send warnings to the outputStream as well
base/trace.cc:
    dprintf_stream defaults to cerr
dev/console.cc:
    use the output directory for the console output if it exists
dev/etherdump.cc:
    dump to the output directory if it exists
sim/builder.cc:
sim/builder.hh:
    move constructor and destructor to .cc file
    use a function to get the stream that the builder dumps its
    output to, and create a separate file in the output directory
    if able
sim/main.cc:
    statStream -> outputStream
sim/serialize.cc:
    dump checkpoints to the output directory if specified
sim/universe.cc:
    provide an output stream for simulator output.  (This takes place of the
    statStream catchall that we had before)
    Also provide an optional output directory that multiple simulator output
    files can be written to.

--HG--
extra : convert_revision : 03abce20edbbf7ec19c9ddd8d69ec8485c383532
2004-01-29 00:38:18 -05:00
Ali Saidi
00c49783ef moved devices around in config space and support figuring out cpuid
from cchip register

dev/tsunami_cchip.cc:
    added support for figuring out which cpu you are

--HG--
extra : convert_revision : 7862678a259931bb0a5b2ca8ad298a704bd272ec
2004-01-28 20:23:40 -05:00
Ron Dreslinski
d41c904402 Add support for PIC interrupts in IO, and DIRx interrupts in CChip
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
    Add Interrupt capabilities for DIRx, added postDRIR and clearDRIR
    functions
dev/tsunami_io.cc:
    Add PIC interrupts, and post/clearPIC functions
dev/tsunami_io.hh:
    Add support for PIC interrupts, added post/clearPIC functions

--HG--
extra : convert_revision : b705568670b157c1a4496c365226526fa96e21e0
2004-01-28 19:18:29 -05:00
Ali Saidi
b6fba57065 our first interrupt
cpu/exetrace.cc:
    added looking for symbols at PC+4 and PC+8 thanks to gcc skiping
    setting the gp where it can and jumping <func>+8
dev/console.cc:
    commented out weird interrupt per nate's suggestion
dev/tsunami_cchip.cc:
    moved rtc flag to correct bit
dev/tsunami_io.cc:
    time interrupt will be 1024Hz and at some point be configurable by
    linux
dev/tsunami_io.hh:
    Timer interrupt will be 1024hz for now and in the future be
    configurable by linux

--HG--
extra : convert_revision : 2fcc924c8848eb3c6166d9d517617ed193a2b89a
2004-01-28 18:12:52 -05:00
Ron Dreslinski
3ccc0b1f96 Add support for RTC to interrupt, HACK in alpha_console temporary
dev/alpha_console.cc:
    Fix reference to tlaserclock, HACK FOR NOW
dev/alpha_console.hh:
    fix reference to tlaser_clock, HACK FOR NOW
dev/tsunami.cc:
    Add proper tsunami chip pointers
dev/tsunami.hh:
    add proper tsunami chip pointers add RTC interrupt capabilities
dev/tsunami_cchip.cc:
    Add proper Interrupt for RTC
dev/tsunami_cchip.hh:
    Add proper interrupt for RTC
dev/tsunami_io.cc:
dev/tsunami_io.hh:
    Make RTC interrupt
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
    Add back pointer to tsunami

--HG--
extra : convert_revision : 2b0a8616b0bed8d9962ee5ca643dce56b9922d52
2004-01-27 21:36:46 -05:00
Ali Saidi
6f3c09a12c uart works in linux
dev/tsunami_uart.cc:
    added code make it work with linux's uart code.

--HG--
extra : convert_revision : 893a3439dac16cfe68dbd50daa475be04d9ee3de
2004-01-27 18:14:04 -05:00
Ali Saidi
b7f44f6e06 Support for Tsunami coming along... RTC, PIC working, UART in progress
dev/tsunami_io.cc:
    PIC, PIT, RTC implementation for tsunami working so far
dev/tsunami_io.hh:
    PIT, PIC, RTC implementation for tlaser working so far
dev/tsunamireg.h:
    Added RTC defines
kern/linux/linux_system.cc:
    wrote cycle frequency into variable so linux doesn't probe for it.
    The support exists, but it takes two seconds of time to do on a real
    machine, so forever in the simulator.

--HG--
extra : convert_revision : e0ed7f271ece4ed69c06af35d1b0e8ed848cd138
2004-01-26 13:26:34 -05:00
Ron Dreslinski
9b397ce7f4 Add RTC event for uip bit
dev/tsunami_io.cc:
    Add RTC event to change the state of a uip bit
dev/tsunami_io.hh:
    Add RTC event to change state of an uip bit

--HG--
extra : convert_revision : acde7bdfe152d3e08f7ed53b4c8e910378f6ae67
2004-01-23 13:01:32 -05:00
Ali Saidi
f9f4a74986 added the 8254 programmable interval timer
--HG--
extra : convert_revision : 6a111db98c05a3dd692c757611c3eb9c8cfdd32f
2004-01-22 19:02:07 -05:00
Ali Saidi
d9e8ecbf46 renamed tsunami_dma to tsunami_io
dev/tsunami_io.cc:
    renamed to io instead of dma since it's more than the DMA controller now
dev/tsunami_io.hh:
    renamed from dma to io since it's more than dma just now

--HG--
rename : dev/tsunami_dma.cc => dev/tsunami_io.cc
rename : dev/tsunami_dma.hh => dev/tsunami_io.hh
extra : convert_revision : 4ffb69679eb7cea5725fae3446e088899f1f9315
2004-01-22 00:36:26 -05:00
Ali Saidi
de17a03304 updated tsunami_dma
dev/tsunami_dma.cc:
    decide actually differentiating between the different i/o requests
    would be a better idea
dev/tsunami_dma.hh:
    added mask and mode variables, incase they are needed
dev/tsunamireg.h:
    added some i/o port defs

--HG--
extra : convert_revision : 5c7a88a8f8c8725359737b399cfa80610149a5f4
2004-01-22 00:08:48 -05:00
Ali Saidi
0e805e1ff3 one step closer to booting
dev/alpha_access.h:
    removed my attempted hack to get console compling in linux
dev/tsunami.cc:
dev/tsunami.hh:
    added pchip pointer to tsunami
dev/tsunami_cchip.cc:
    made printing better
dev/tsunami_cchip.hh:
    commented out back pointer for now, since the parser has issues with it
dev/tsunamireg.h:
    added pchip registers

--HG--
extra : convert_revision : b4fceb7d08e757d9aaf37df8eb1bcd5ae29ce0da
2004-01-21 20:14:10 -05:00
Ali Saidi
cb51c1503c Slowly on our way to booting with Tsunami
--HG--
extra : convert_revision : ec8e7e2dc929ad84c5e320fbfb02070e94cd1ad1
2004-01-15 17:29:35 -05:00
Ali Saidi
c9d88aa089 Minor fixes to loader and an additional header file in alpha_access.h
when we are compiling the console.

base/loader/elf_object.cc:
    added code to verify that the .bss section is 0;
    added code to only load function and label types
dev/alpha_access.h:
    include inittypes if we are compiling the console code

--HG--
extra : convert_revision : b88fb36500b1c1003d44ed95cefdd2a30b7466b8
2004-01-14 04:18:20 -05:00
Steve Reinhardt
510eef0fa0 Modify handling of serialize:dir parameter to make it more useful.
Move global checkpoint-related functions and vars into Checkpoint class (as statics).

arch/alpha/pseudo_inst.cc:
dev/disk_image.cc:
    Move global checkpoint-related functions and vars
    into Checkpoint class (as statics).
sim/serialize.cc:
    Move global checkpoint-related functions and vars
    into Checkpoint class (as statics).

    Checkpoint constructor now takes checkpoint directory name instead
    of file name.

    Make serialize:dir parameter actually set checkpoint directory name
    instead of directory in which checkpoint directory is created.  If
    the value contains a '%', the curTick value is sprintf'd into the
    format to create the directory name.  The default is backwards compatible
    with the old fixed name ("m5.%012d").
sim/serialize.hh:
    Move global checkpoint-related functions and vars
    into Checkpoint class (as statics).

    Checkpoint constructor now takes checkpoint directory name instead
    of file name.

--HG--
extra : convert_revision : d0aa87b62911f405a4f5811271b9e6351fdd9fe4
2004-01-11 15:24:18 -08:00
Nathan Binkert
318e0c93ed add support for simple character input via the system console
dev/alpha_access.h:
    -  use our standard types instead of this extra typedef
    -  advance the ALPHA_ACCESS version since the interface
    has changed.  *this means you need a new console binary*
    -  shuffle a couple things around to pack the data structure
    a bit better
    -  add a placeholder for character input
dev/alpha_console.cc:
    Clean up the read code path a bit and add support for character
    input via the console

    Clean up the write path and use a switch instead of a bunch of
    if statements

--HG--
extra : convert_revision : a1a5bc8fed9ec9c4c46548fdf79604661668b81a
2003-12-22 17:51:14 -05:00
Nathan Binkert
255ac8372d Make stuff build on openbsd
arch/alpha/alpha_tru64_process.cc:
    So, I don't know why linux uses an off_t here.
    I'm also not sure why linux defines an off_t to be a long
    Let's just use long here since it works for linux, and that's
    what bsd does
base/inifile.cc:
    correct #include for OpenBSD
dev/disk_image.cc:
    the correct type for this is streampos

--HG--
extra : convert_revision : f3ac3a3b8515d66e07ffb9780d8a9e387297b6a0
2003-12-19 00:02:20 -05:00
Steve Reinhardt
777c1ebfab Stats & serialization tweaks & cleanup. Unserializing from
a checkpoint now gives identical results to running from scratch
and doing at switchover at the same cycle!
- CPUs start at cycle 0 again, not cycle 1.
- curTick is now serialized & unserialized.
- Stats get reset in main (before event loop).  Since this is done
after curTick is unserialized, simTicks gets set correctly for
running from a checkpoint.
- Simplify serialization to happen in a single pass.
- s/Serializeable/Serializable/

arch/alpha/isa_traits.hh:
dev/etherlink.hh:
sim/eventq.cc:
sim/eventq.hh:
    s/Serializeable/Serializable/
kern/tru64/tru64_system.cc:
sim/process.cc:
    Make initial CPU activation on cycle 0 again (not 1).
sim/main.cc:
    Reset stats before getting started.
    Make error message on falling out of event loop
    more meaningful.
sim/serialize.cc:
sim/serialize.hh:
    Get rid of now-useless initial pass; serialization is
    done in a single pass now.
    Serialize & unserialize curTick.
    Wrap curTick and mainEventQueue in a "globals" Serializable object.
    s/Serializeable/Serializable/
sim/sim_object.cc:
    Add static function to serialize all SimObjects.
sim/sim_object.hh:
    Add static function to serialize all SimObjects.
    s/Serializeable/Serializable/

--HG--
extra : convert_revision : 9dcc411d0009b54b8eb61c3a509680b81b9f6f68
2003-12-11 00:16:46 -08:00
Steve Reinhardt
4ce6118fda Factor ExecContext::setStatus(), BaseCPU::execCtxStatusChange(),
and SimpleCPU::setStatus() into separate functions.  For example,
setStatus(Active) is now activate().

--HG--
extra : convert_revision : 4392e07caf6c918db0b535f613175109681686fe
2003-12-10 17:47:28 -08:00
Nathan Binkert
123d0294b5 Make it so that we create a directory for each checkpoint so that
there aren't so many files littering your directory

dev/disk_image.cc:
    Checkpoints now in a directory
sim/serialize.hh:
    Make it so that we create a directory for each checkpoint so that
    there aren't so many files littering your directory.
    Remove unused variable

--HG--
extra : convert_revision : 261824eee62f7b68f6ae6e3dbd49ad5128ced148
2003-11-14 01:19:16 -05:00
Nathan Binkert
f2b6ecdfeb This is M5!
dev/console.cc:
    Simplescalar -> m5

--HG--
extra : convert_revision : c559258c68b5cae6862718240958171e1258ee2b
2003-11-04 23:45:06 -05:00
Nathan Binkert
247984bc22 A little bit of code here and there to get more access to
what the console output is.

base/circlebuf.hh:
base/circlebuf.cc:
    add stuff to spit to an ostream
    prepend _ in front of protected member variables
    formatting
dev/console.hh:
dev/console.cc:
    Add DPRINTF to spit out the lines of console data
dev/console.cc:
    little hack to append name() to the file so that we can
    easily get multiple output files.
dev/console.hh:
    TRACING_ON == 1 not defined(TRACING_ON)

--HG--
extra : convert_revision : bbe80715fb97ee4c4ed6b484955ef71289f09fc9
2003-11-04 17:43:41 -05:00
Nathan Binkert
a7635fa6ef fix type! argh
dev/etherlink.cc:
    int -> Tick

--HG--
extra : convert_revision : 33c45ea306e6532b91d84018702b220b25de463e
2003-11-04 12:48:21 -05:00
Nathan Binkert
667cbb6690 Implement more m5 pseduo opcodes:
resetstats
dumpstats
dumpresetstats
m5checkpoint

Lots of cleanup of serialization and stats dumping/resetting to
work with these new instructions

arch/alpha/isa_desc:
    Implement more m5 pseduo opcodes:
    resetstats
    dumpstats
    dumpresetstats
    m5checkpoint

    All of these functions take two optional parameters, the first is a delay,
    and the second is a period.  The delay tells the simulator to wait the
    specified number of nanoseconds before triggering the event, the period
    tells the simulator to repeat the event with a specified frequency
base/statistics.cc:
base/statistics.hh:
    regReset RegResetCallback
dev/disk_image.cc:
    serializeFilename -> CheckpointFile()
sim/debug.cc:
    Move this debugging statement to sim_stats.cc
sim/eventq.cc:
    Don't AutoDelete an event if it is scheduled since the process()
    function could potentially schedule the event again.
sim/main.cc:
    DumpStatsEvent is now Statistics::SetupEvent(Dump, curTick)
sim/serialize.cc:
    Change the serialize event so that it's possible to cause the
    event to repeat.  Also make the priority such that the event
    happens just before the simulator would exit if both events
    were scheduled for the same cycle.

    get rid of the serializeFilename variable and provide a CheckpointFile()
    function.  This function takes a basename that is set in the
    configuration, and appends the current cycle to the name so that
    multiple checkpoints can be dumped from the same simulation.

    Also, don't exit the simulation when a checkpoint file is dumped.
sim/serialize.hh:
    serializeFilename -> CheckpointFile()
    SetupCheckpoint function to tell the simulator to prepare
    to checkpoint at a certain time with a certain period
sim/sim_events.cc:
    DumpStatsEvent stuff gets move to sim_stats.(cc|hh)
    The context stuff gets moved into the already existing
    stats context in stat_context.cc
sim/sim_events.hh:
    DumpStatsEvent stuff gets move to sim_stats.(cc|hh)
sim/universe.cc:
    Provide some simple functions for converting times into
    ticks.  These use floating point math to get as close as
    possible to the real values.  Multipliers are set up ahead
    of time

--HG--
extra : convert_revision : d06ef26a9237529a1e5060cb1ac2dcc04d4ec252
2003-11-02 18:02:58 -05:00
Ron Dreslinski
095962c914 Fix overwritting and ordering issues with serialization routines
dev/disk_image.cc:
    seperate serialization output files for different cow images

--HG--
extra : convert_revision : b62551f8e3f6315bb92ae3cb44e077d8084cbfe7
2003-11-01 23:00:40 -05:00
Andrew Schultz
2ab51fbcdb Changed the naming of Serializeable derived objects. Serializeable no longer has
objName as a member, instead it has the pure virtual function name().  SimObject
now has a objName member, and all classes derived directly from Serializeable
have to implement a name() function (which now makes them unique by pointer value)

cpu/simple_cpu/simple_cpu.cc:
    Change initialization of Event to get rid of Serializeable naming
dev/etherlink.cc:
dev/etherlink.hh:
    Seralizeable derived naming changes
sim/eventq.cc:
    Serializeable derived naming changes, also changed serialization process so it
    doesn't need to use nameChildren
sim/eventq.hh:
    Serializeable derived naming changes, remove constructor for specifying event name
sim/serialize.cc:
    Serializeable derived naming changes, remove setName function and the child naming
    pass for serialization
sim/serialize.hh:
    Serializeable derived naming changes, removed nameChildren, setName
sim/sim_object.cc:
sim/sim_object.hh:
    Serializeable derived naming changes

--HG--
extra : convert_revision : 67bcc275b6c210f7049f98a1ad0d22e8f5596a63
2003-10-31 17:32:04 -05:00
Ron Dreslinski
1044b29a1d Serialization support for cow images
dev/disk_image.cc:
dev/disk_image.hh:
    Serialization of cow images

--HG--
extra : convert_revision : 144179b8cad00b32df8c448a8556a465e24737aa
2003-10-30 16:48:23 -05:00
Steve Raasch
48ce8b70e6 Add serialization (which Nate now says we probably don't need)
--HG--
extra : convert_revision : e075fafdf6e72a424110a120e24ca71cb44cfb03
2003-10-30 15:16:00 -05:00
Steve Reinhardt
735b187a06 Merge Steve & Erik's etherdev & scsi changes with mine (specifically
new arg type for unserialize()).

dev/etherpkt.hh:
    unserialize() takes Checkpoint* instead of IniFile* now.

--HG--
extra : convert_revision : 21b9d97350a591b0f95d84f6c0cfcdfa0b28d714
2003-10-29 22:13:16 -08:00
Steve Reinhardt
9a88c8e17d Merge.
--HG--
extra : convert_revision : 1552730090e0904fbc4e4c8f515b306355cb66f3
2003-10-29 21:50:28 -08:00
Steve Reinhardt
5a1eb9049d Support for Serializable non-SimObject things like events.
Can now serialize & unserialize DmaRequestEvents and DmaTransferEvents.
Also support serialize/unserialize of pointers to SimObjects and
other Serializable objects.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/isa_traits.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
    unserialize() now takes a Checkpoint* instead of an IniFile*.
cpu/simple_cpu/simple_cpu.cc:
    unserialize() now takes a Checkpoint* instead of an IniFile*.
    Put ExecContext in its own section so its _status fields doesn't conflict.
sim/eventq.cc:
sim/eventq.hh:
    unserialize() now takes a Checkpoint* instead of an IniFile*.
    Events get serialized by the event queue only if they're marked
    as AutoSerialize... others are assumed to be serialized by something
    else (e.g. an owning SimObject) or to not matter.
sim/param.cc:
    Shift 'const' in case T is a ptr type.
sim/serialize.cc:
sim/serialize.hh:
    Define Checkpoint object to encapsulate everything you need to know
    about a checkpoint.  Use it to allow lookups of named Serializable
    objects (and SimObjects) during unserialization.
    unserialize() now takes a Checkpoint* instead of an IniFile*.

--HG--
extra : convert_revision : 8e6baab32405f8f548bb67a097b2f713296537a5
2003-10-29 21:45:39 -08:00
Steve Raasch
dcc0197caa Add serialization for etherdev
These changes don't seem to break anything, and may even be correct.

dev/etherpkt.hh:
    Add serialization

--HG--
extra : convert_revision : 02962b9bef01c1c3f35a095788117bd95e7ed4bc
2003-10-29 20:24:47 -05:00
Steve Reinhardt
aa12cac9fd Rename SERIALIZE_MEMBER to SERIALIZE_SCALAR.
--HG--
extra : convert_revision : 848cfcf3323d224cdb2ff14df6f6996607a5c27f
2003-10-29 00:46:26 -08:00
Steve Reinhardt
1511370d09 More progress on checkpointing... we can now write out a checkpoint and read it back in,
though most objects don't actually serialize any data.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/isa_traits.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
    Change unserialize param from IniFile& to const IniFile*.
cpu/simple_cpu/simple_cpu.cc:
    Change unserialize param from IniFile& to const IniFile*.
    Make unserialize call ExecContext::unserialize.
sim/eventq.cc:
    Rename MainEventQueue (no spaces) for easier parsing in checkpoints.
    Disable event serialization for now, so we can focus on the easy stuff.
sim/serialize.cc:
    Change paramIn and arrayParamIn param from IniFile& to const IniFile*.
sim/serialize.hh:
    Change unserialize, paramIn, and arrayParamIn params from IniFile& to const IniFile*.

--HG--
extra : convert_revision : 6e8853ed375eddec0e140c95a01dd51bd225f7b9
2003-10-29 00:41:24 -08:00
Steve Reinhardt
b90f810575 Revamp serialization to make it easier.
--HG--
extra : convert_revision : c57a538d7cf606dbdf5fa244f92da46bd830e335
2003-10-28 12:55:12 -08:00