summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_tht.c
AgeCommit message (Collapse)Author
2007-07-22clear the IFF_ALLMULTI flag when the interface goes down.David Gwynne
2007-07-22the softc variable is sc, not sp.David Gwynne
2007-05-28use memcpy when copying to/from the fifos, apparently gcc can do a betterDavid Gwynne
job of optimising it.
2007-05-26chop ETHER_ALIGN off the size of the packet we tell the hw we can doDavid Gwynne
2007-05-26ETHER_ALIGN rx mbuf so that it works on strict alignment archs. OK dlg@Claudio Jeker
2007-05-26correctly byteswap the mac address when moving it on and off teh cardDavid Gwynne
2007-05-17copy the lladdr from the arpcom struct onto the hardware when the interfaceDavid Gwynne
is brought up. this driver now supports all the features our network layer expects of it.
2007-05-17support changing the mtu up to the maximum frame size it currentlyDavid Gwynne
supports (MCLBYTES).
2007-05-16add support for multicast addresses. this adds the add/del multi handlersDavid Gwynne
to the ioctl, and programs the multicast filter in tht_iff. we are not using the perfect multicast filters, only the imperfect one. i think there is a requirement that addresses in the perfect filter be in order, but im not sure how to do that nicely (yet). this has taken a long time because i dont know how to write c.
2007-05-08make a start at dealing with interface flags. this toggles the hardwareDavid Gwynne
promiscuity depending on the if_flags IFF_PROMISC bit.
2007-05-08add the multicast filter registersDavid Gwynne
2007-05-08write the mac back to the chip when we bring it up.David Gwynne
2007-05-06point the macros for the interrupt coalescing registers at the rightDavid Gwynne
location. they moved from what the doco says to somewhere else. pointed out by Nadav Shemer (thanks)
2007-05-06typoDavid Gwynne
2007-05-04the hardware does checksumming on rx as well. mark the mbufs with what theDavid Gwynne
hw says.
2007-05-04advertise tx checksumming to the network stack, and tell the hardware toDavid Gwynne
do it.
2007-05-04increase the number of tx and rx descriptors from 64 to 128 eachDavid Gwynne
2007-05-04call the right function to fill the rxf fifo after rxdDavid Gwynne
2007-05-04disable debugging outputDavid Gwynne
2007-05-04put more rx descriptors back on the chip straight after we've taken someDavid Gwynne
off.
2007-05-04wrap the wptr round when we hit the end of the fifo.David Gwynne
2007-04-30fix dmesg; ok dlgTheo de Raadt
2007-04-29missing arguments in a couple of printfs.David Gwynne
patch from Tim van der Molen
2007-04-29Nadav Shemer of Tehuti Networks is magical.David Gwynne
not leaving the gap in the txt fifo when uploading the firmware was the cause of my fifo write bug in tht_start. because i was filling the whole fifo, i was writing the wptr back to its original position. because of this i dont think the firmware thought i had written anything. only the last short chunk would have been noticed, which strikes me as possibly confusing to the chip. this diff removes the delay at the top of tht_fifo_post. one less XXX :)
2007-04-29clocks and pll register bitsDavid Gwynne
2007-04-29we dont want to completely fill fifos, so leave a gap when we calculateDavid Gwynne
how much of the fifo we want to write firmware to. from Nadav Shemer at Tehuti Networks
2007-04-29when we post a fifo we're giving the dma mem back to the hardware, so weDavid Gwynne
need a presync, not a postsync. another good find by Nadav Shemer at Tehuti Networks
2007-04-29when completing a tx pkt, put it back on the tx free list, not the rx one.David Gwynne
found by Nadav Shemer at Tehuti Networks.
2007-04-27Correct typo in comment, no code changesChad Loder
2007-04-27Fix copy/paste-o in offset of TDINTCM register jointly spotted by dlg andChad Loder
myself. This register controls TX interrupt and packet coalescing. OK dlg@
2007-04-27my txt fifo write bug is extremely strange. i need a delay before theDavid Gwynne
wptr write for it to work. delay(75) works, delay(67) doesnt, so im disabling the fifo debug and adding delay(100) till this is worked out properly with tehuti.
2007-04-25hook the rx path up.David Gwynne
despite having written it without being able to test, there was only one real bug. i wasnt keeping track of the mbuf in the rx init path, so when the completion tried to use it, it was dereferencing random memory.
2007-04-25add some dprintfs to the fifo handlers.David Gwynne
enabling these makes tx completions occur. i wish i could figure out why.
2007-04-25when populating the rxf fifo, actually sync the rxf fifo at the start andDavid Gwynne
end of it, not txf. still doesnt fix my bug
2007-04-25we only have to mask interrupts once when we bring the interface downDavid Gwynne
2007-04-25i got a reg init wrong, still no tx completion though.David Gwynne
2007-04-25enable tx completion interrupts and provide handling for them.David Gwynne
unfortunately theres a bug somehwere. i had this working 6 hours ago, but after scrubbing that diff it no longer completes packets. so annoying.
2007-04-25fix a dprintf in the debug pathDavid Gwynne
2007-04-25more register init in tht_upDavid Gwynne
2007-04-25put a two second timeout on the chip init after the firmware is loadedDavid Gwynne
2007-04-25shift some bits like the spec says i should.David Gwynne
2007-04-25format string fixDavid Gwynne
2007-04-25add some debug to the tx paths so i can see packets go on and off the hw.David Gwynne
2007-04-25fix the conditions that the tx free path keeps looping on so that it willDavid Gwynne
process all available descriptors, instead of leaving one behind.
2007-04-25configure the 10G mac and enable (more) interrupts when the interface isDavid Gwynne
brought up. mask them again when the interface goes down.
2007-04-25split tht_fifo_ready into tht_fifo_writable and tht_fifo_readable. the wayDavid Gwynne
you determine usable space in the fifo is different between read and write fifos, not half different like i thought it was.
2007-04-25start implementing interrupt handling.David Gwynne
the firmware generates an interrupt when it detects a link state change, so we dont have to poll for it like other nics do. this sets it up so the interrupt is handled even if the nic is down at the time. you can plug and unplug the cable now and see pretty dmesg output.
2007-04-25add more register definitions, in particular the interrupt ones.David Gwynne
2007-04-25im an idiot. for (;;) { } while (condition); loops forever, no matter whatDavid Gwynne
the condition is.
2007-04-25add some debug goo to be used soonDavid Gwynne