Commit graph

31 commits

Author SHA1 Message Date
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 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 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
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
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
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 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
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
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
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
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 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
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
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
Nathan Binkert 62d756f253 rename namespace Statistics to Stats
--HG--
extra : convert_revision : 28f1703f8d7d8cf33fb952ae450f66bdba860fb7
2004-05-21 13:39:20 -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
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
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