summaryrefslogtreecommitdiff
path: root/dev/ns_gige.hh
AgeCommit message (Collapse)Author
2004-10-23flesh out the TCP/IP/Ethernet supportNathan Binkert
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-09-20Clean up network header stuff and make it more generic. UseNathan Binkert
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-07-30Fix a few bugs in the receive state machine. In doing back to trackingNathan Binkert
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-26styleNathan Binkert
--HG-- extra : convert_revision : 7489726b6c7bd11af603a448e4ff56c1e46139fe
2004-07-23When a packet has finished transmitting, kick the stateNathan Binkert
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-12make the cache access latency a parameter that is based on busNathan Binkert
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-12make tx/rx fifo size a param, also fix the empty dma problem by adjusting ↵Lisa Hsu
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-04almost forgot to do this - hope it doesn't mess up schedule.Lisa Hsu
dev/ns_gige.cc: dev/ns_gige.hh: add the stats nate wanted --HG-- extra : convert_revision : b59d586def7df31741b53cdb59cf3b19253caf26
2004-06-21lLisa Hsu
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-12minor mods for mimicking NS83820 functionalityLisa Hsu
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-11fix serializationLisa Hsu
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-04Merge zizzer:/bk/linuxAndrew Schultz
into zower.eecs.umich.edu:/z/alschult/DiskModel/linux --HG-- extra : convert_revision : b23a1d1a79ac5c593150d269d0523c474cf6a4a0
2004-06-04Changes to support serialization with PCI devicesAndrew Schultz
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-04Updated copyright on Tsunami and kern/linux files.Ali Saidi
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-05-25Changed name of lisa's device to NSgigE instead of Etherdev so itAli Saidi
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-21rename namespace Statistics to StatsNathan Binkert
--HG-- extra : convert_revision : 28f1703f8d7d8cf33fb952ae450f66bdba860fb7
2004-04-21This is where I'm at for Linux Ethernet before I head to Mexico.Lisa Hsu
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-03-12first pass at ns_ethernet device. more will come later as i merge in nate's ↵Lisa Hsu
new ether infrastructure. dev/etherpkt.hh: add some stuff for support of the NS ethernet device. --HG-- extra : convert_revision : 51f6508463b6394055e3428a42b7de490a9ae6c1