<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/pci/if_de.c, branch release/7.3.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F7.3.0_cvs</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F7.3.0_cvs'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2006-02-26T17:52:51Z</updated>
<entry>
<title>Remove de driver from old location.</title>
<updated>2006-02-26T17:52:51Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2006-02-26T17:52:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=38637d7d9d298bdb5d3c87ffe901fca4166bc9b6'/>
<id>urn:sha1:38637d7d9d298bdb5d3c87ffe901fca4166bc9b6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use the copy of the card's MAC address saved in tulip_enaddr() in the softc</title>
<updated>2005-12-22T16:18:23Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-12-22T16:18:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=2a3d3a660b86e36c479a2dd3c32e02b3509f7c8b'/>
<id>urn:sha1:2a3d3a660b86e36c479a2dd3c32e02b3509f7c8b</id>
<content type='text'>
if we need a valid MAC address (for probing the media for example) before
ether_ifattach() has been called since IF_LLADDR() is NULL then.

Tested by:	tisco
</content>
</entry>
<entry>
<title>Fix the type of "eaddr" to guarantee the required alignment.</title>
<updated>2005-12-01T21:18:04Z</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@FreeBSD.org</email>
</author>
<published>2005-12-01T21:18:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=6a4cb6fd25a53ad9e8f55a2ebf90584fe801c879'/>
<id>urn:sha1:6a4cb6fd25a53ad9e8f55a2ebf90584fe801c879</id>
<content type='text'>
Suggested by:	marcel
</content>
</entry>
<entry>
<title>Byte copy IF_LLADDR() on stack to align it to be safe for typecasts.</title>
<updated>2005-11-30T17:48:23Z</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@FreeBSD.org</email>
</author>
<published>2005-11-30T17:48:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=3faffd5dae0c1dd9acf64d65e2b166b16787f2ee'/>
<id>urn:sha1:3faffd5dae0c1dd9acf64d65e2b166b16787f2ee</id>
<content type='text'>
Tested by:	jhb
</content>
</entry>
<entry>
<title>Various fixes to make de(4) not panic after ru@'s IF_LLADDR() changes:</title>
<updated>2005-11-21T21:50:07Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-11-21T21:50:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f5e19c734266e459f9c34cf2126cb0021fb2d6ed'/>
<id>urn:sha1:f5e19c734266e459f9c34cf2126cb0021fb2d6ed</id>
<content type='text'>
- Don't call tulip_addr_filter() to reset the RX address filter in
  tulip_reset() since that gets called before ether_ifattach().  Just
  call it in tulip_init_locked().
- Use be16dec() and le16dec() to parse MAC addresses when programming
  the RX filter.
- Let ether_ioctl() handle SIOCSIFMTU since we were doing the exact same
  thing with the added bonus that we leaked the driver lock if the MTU
  was &gt; ETHERMTU in the homerolled version.  This part will be MFC'd.

Clue from:	wpaul (1)
Stolen from:	marcel (2 via patch for dc(4))
MFC after:	1 week
</content>
</entry>
<entry>
<title>- Store pointer to the link-level address right in "struct ifnet"</title>
<updated>2005-11-11T16:04:59Z</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@FreeBSD.org</email>
</author>
<published>2005-11-11T16:04:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=4a0d6638b3bb3b7ed39b852f722e904ac9a6e603'/>
<id>urn:sha1:4a0d6638b3bb3b7ed39b852f722e904ac9a6e603</id>
<content type='text'>
  rather than in ifindex_table[]; all (except one) accesses are
  through ifp anyway.  IF_LLADDR() works faster, and all (except
  one) ifaddr_byindex() users were converted to use ifp-&gt;if_addr.

- Stop storing a (pointer to) Ethernet address in "struct arpcom",
  and drop the IFP2ENADDR() macro; all users have been converted
  to use IF_LLADDR() instead.
</content>
</entry>
<entry>
<title>- Use m_defrag() instead of homerolling our own variant</title>
<updated>2005-08-26T14:27:38Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-08-26T14:27:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=dbc2a95f40d79a989ccb880f1bec3e3d52482d90'/>
<id>urn:sha1:dbc2a95f40d79a989ccb880f1bec3e3d52482d90</id>
<content type='text'>
  tulip_mbuf_compress().  If we fail to allocate a new mbuf to copy the
  data into, put the mbuf back in the driver's send queue so that we can
  retry it later rather than throwing the packet away.
- Use m_devget() instead of doing it inline ourselves in the
  TULIP_COPY_RXDATA case.  If we fail to allocate an mbuf to copy the data
  into, don't forget about the original mbuf cluster.  The old code would
  lose the pointer and leak the cluster in that case.  Now it doesn't lose
  it but always sticks the original rx buffer back into the receive ring
  after trying to copy the data out and send it up the stack.  Also, if we
  fail to allocate a new mbuf to copy the data into, log an input error.
  Also, don't combine the priming case with the received-a-packet case to
  make the code flow a bit clearer and easier to follow.
</content>
</entry>
<entry>
<title>- Remove non-bus-dma code.</title>
<updated>2005-08-25T21:06:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-08-25T21:06:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=4faaaed479f8103060ed5e8723ce55be2af17c37'/>
<id>urn:sha1:4faaaed479f8103060ed5e8723ce55be2af17c37</id>
<content type='text'>
- Remove form feed characters.
- Fixup style of function declarations.
- Assume that an mbuf cluster is big enough to hold an ethernet frame.
  (This should really be using m_defrag(), but this diff is just simple
  changes for now.)
</content>
</entry>
<entry>
<title>Major rototill of this driver to add FreeBSD bus-dma support:</title>
<updated>2005-08-25T20:12:43Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-08-25T20:12:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f8190d8dc817fa5ef7ad2dd184decfce737d74b7'/>
<id>urn:sha1:f8190d8dc817fa5ef7ad2dd184decfce737d74b7</id>
<content type='text'>
- Allocate arrays of metadata for the descriptors in the rx and tx rings
  and change the ring pointers to walk the metadata array rather than the
  actual descriptor rings.  Each metadata object contains a pointer to its
  descriptor, a pointer to any associated mbuf, and a pointer to the
  associated bus_dmamap_t in the bus_dma case.  The mbuf pointers replace
  the tulip_txq and tulip_rxq local ifqueue's in the softc.
- Add lots of KTR trace entries using a local KTR_TULIP level which
  defaults to 0, but can be changed to KTR_DEV at the top of the file
  when debugging.
- Rename tulip_init(), tulip_start(), tulip_ifinit(), and tulip_ifstart()
  to tulip_init_locked(), tulip_start_locked(), tulip_init(), and
  tulip_start(), respectively, to match the convention in other drivers.
- Add a TULIP_SP_MAC() macro to encode two bytes of the MAC address into
  the setup buffer and use that in place of lots of BYTE_ORDER #ifdef's.
  Also, remove an incorrect XXX comment I added earlier, the driver was
  correct (at least it does the same thing dc(4) does).  TULIP_SP_MAC
  was shamelessly copied from DC_SP_MAC() in dc(4).
- Remove the #ifdef'd NetBSD bus-dma code and replace it with FreeBSD
  bus-dma code that not only compiles but even works at runtime.
- Use callout_init_mtx() instead of just callout_init().
- Correct the various wrapper macros for bus_dmamap_sync() for the rx
  and tx buffers to only ask for the sync ops that they actually need.
- Tidy the #ifdef TULIP_COPY_RXDATA code by expanding an #ifdef a bit
  so it becomes easier to read at the expense of a couple of duplicated
  lines of code.  Also, use m_getcl() to get an mbuf cluster rather than
  MGETHDR() followed by MCLGET().
- Maintain the ring free (ri_free) count for the rx ring metadata since
  we no longer have tulip_rxq.ifq_len around to indicate how many mbuf's
  are currently in the rx ring.
- Add code to teardown bus_dma resources when attach fails and generally
  fixup attach to do a better job of cleaning up when it fails.  This
  gets us a good bit closer to possibly having a detach method someday
  and making this driver an unloadable module.
- Add some functions that can be called from ddb to dump the state of
  a descriptor ring and to dump the state of an individual descriptor.
- Various comment grammer and spelling fixes.

I have bus-dma turned on by default, but I've left the non-bus-dma code
around so that it can be turned off to aid in debugging should any problems
turn up later on.  I'll be removing the non-bus-dma code in a subsequent
commit.
</content>
</entry>
<entry>
<title>- Use htole32() instead of using bswap32() conditional on #if BYTE_ORDER.</title>
<updated>2005-08-17T17:46:51Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-08-17T17:46:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=8a8573fdb23f1d14faabde22c10a3aa677151513'/>
<id>urn:sha1:8a8573fdb23f1d14faabde22c10a3aa677151513</id>
<content type='text'>
- Don't set IFF_ALLMULTI in our ifnet's if_flags if we end up allowing
  all multicast due to limits in the MAC receive filters in hardware.

Requested by:	rwatson (2)
</content>
</entry>
</feed>
