<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/msk, branch release/8.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F8.1.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F8.1.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2010-05-10T20:01:51Z</updated>
<entry>
<title>MFC r207622-207623,207638</title>
<updated>2010-05-10T20:01:51Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-05-10T20:01:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4dd3847da5bcff2986d07696ba85aa313af9222b'/>
<id>urn:sha1:4dd3847da5bcff2986d07696ba85aa313af9222b</id>
<content type='text'>
r207622:
  Drop driver lock before exiting from interrupt handler.

r207623:
  Make sure to check whether driver is running before processing
  received frames. Also check driver has valid ifp pointer before
  calling msk_stop() in device_shutdown handler. While I'm here
  remove unnecessary accesses to interrupt mask registers in
  device_shutdown handler because driver puts the controller into
  reset state.
  With these changes, msk(4) now survive from heavy RX traffic(1byte
  UDP frame) while reboot is in progress.

r207638:
  When VLAN hardware tagging is disabled, make sure to disable VLAN
  checksum offloading as well as TSO over VLAN.
</content>
</entry>
<entry>
<title>MFC r207445:</title>
<updated>2010-05-06T18:47:16Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-05-06T18:47:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0deeb1ec10e1798ecdce040444e727781089ba04'/>
<id>urn:sha1:0deeb1ec10e1798ecdce040444e727781089ba04</id>
<content type='text'>
  Add basic support for Marvell 88E8059 Yukon Optima.

  Tested by:	James LaLagna &lt; jameslalagna &lt;&gt; gmail dot com &gt;
</content>
</entry>
<entry>
<title>MFC r207409,207442:</title>
<updated>2010-05-06T18:43:00Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-05-06T18:43:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6c3a42ef44f12e69086a579fcbc266f63a643924'/>
<id>urn:sha1:6c3a42ef44f12e69086a579fcbc266f63a643924</id>
<content type='text'>
r207409:
  Both RX_GMF_LP_THR and RX_GMF_UP_THR must be 16 bits register. If
  it is 8bits register then RX FIFO size can't exceed 2KB which is
  not true for almost all Yukon II controller.

r207442:
  Disable non-ASF packet flushing on Yukon Extreme as vendor's driver
  does. Without this change, Yukon Extreme seems to generate lots of
  RX FIFO overruns even though controller has available RX buffers.
  These excessive RX FIFO overruns generated lots of pause frames
  which in turn killed devices plugged into switch. It seems there is
  still occasional RX frame corruption on Yukon Extreme but this
  change seems to fix the pause frame storm.

  Reported by:	jhb
  Tested by:	jhb
</content>
</entry>
<entry>
<title>MFC r206876:</title>
<updated>2010-04-26T18:02:12Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-04-26T18:02:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ed0af45af3e0c82120c0d0054e93cb61849a6074'/>
<id>urn:sha1:ed0af45af3e0c82120c0d0054e93cb61849a6074</id>
<content type='text'>
  With r206844, CSUM_TCP is also set for CSUM_TSO case. Modify
  drivers to take into account for the change. Basically CSUM_TSO
  should be checked before checking CSUM_TCP.
</content>
</entry>
<entry>
<title>MFC r206364:</title>
<updated>2010-04-14T00:50:18Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-04-14T00:50:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b9b10dc47b767ac12944ba339694c69675ece580'/>
<id>urn:sha1:b9b10dc47b767ac12944ba339694c69675ece580</id>
<content type='text'>
  Partial revert r204545.
  Just relying on status LE ownership of status block seems to cause
  poor performance. Always read current status index register first
  and then check status ownership as we had before. Accessing status
  index register seems to trigger immediate status update if
  controller have pending status updates.

  Reported by:	Andre Albsmeier &lt;Andre.Albsmeier &lt;&gt; siemens dot com&gt;
  Tested by:	Andre Albsmeier &lt;Andre.Albsmeier &lt;&gt; siemens dot com&gt;
</content>
</entry>
<entry>
<title>MFC r205161:</title>
<updated>2010-03-24T17:36:56Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-03-24T17:36:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5c55bc1bf18809d2f6e0ea47e7faab8c9b36bdb7'/>
<id>urn:sha1:5c55bc1bf18809d2f6e0ea47e7faab8c9b36bdb7</id>
<content type='text'>
  It seems PCI_OUR_REG_[1-5] registers are not mapped on PCI
  configuration space on Yukon Ultra(88E8056) such that accesses to
  these registers were NOPs which in turn make msk(4) instable on
  this controller. Use indirect access method to access
  PCI_OUR_REG_[1-5] registers. This should fix a long standing
  instability bug which prevented msk(4) working on Yukon Ultra.
  Special thanks to koitsu who gave me remote access to his system.

  PR:	kern/114631, kern/116853
</content>
</entry>
<entry>
<title>MFC r204545:</title>
<updated>2010-03-24T17:18:44Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-03-24T17:18:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=51e48a8ee4b9bc131841d5d7acedb7b661870f06'/>
<id>urn:sha1:51e48a8ee4b9bc131841d5d7acedb7b661870f06</id>
<content type='text'>
  Remove taskqueue based interrupt handling. After r204541 msk(4)
  does not generate excessive interrupts any more so we don't need
  to have two copies of interrupt handler.
  While I'm here remove two STAT_PUT_IDX register accesses in LE
  status event handler. After r204539 msk(4) always sync status LEs
  so there is no need to resort to reading STAT_PUT_IDX register to
  know the end of status LE processing. Just trust status LE's
  ownership bit.
</content>
</entry>
<entry>
<title>MFC r204541:</title>
<updated>2010-03-24T17:11:01Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-03-24T17:11:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=51574f115239b066dd76f30907e5d7f0befe6d73'/>
<id>urn:sha1:51574f115239b066dd76f30907e5d7f0befe6d73</id>
<content type='text'>
  Implement rudimentary interrupt moderation with programmable
  countdown timer register. The timer resolution may vary among
  controllers but the value would be represented by core clock
  cycles. msk(4) will automatically computes number of required clock
  cycles from given micro-seconds unit.
  The default interrupt holdoff timer value is 100us which will
  ensure less than 10k interrupts under load. The timer value can be
  changed with dev.mskc.0.int_holdoff sysctl node.

  Note, the interrupt moderation is shared resource on dual-port
  controllers so you can't use separate interrupt moderation value
  for each port. This means we can't stop interrupt moderation in
  driver stop routine. Also have msk_tick() reclaim transmitted Tx
  buffers as safety belt. With this change there is no need to check
  missing Tx completion interrupt in watchdog handler, so remove it.
</content>
</entry>
<entry>
<title>MFC r204363,204365-204367,204539-204540:</title>
<updated>2010-03-23T21:51:31Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-03-23T21:51:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5774c1ed84d612329defe7a422f06002271dff51'/>
<id>urn:sha1:5774c1ed84d612329defe7a422f06002271dff51</id>
<content type='text'>
r204363:
  Optimize inserting LE for TX checksum computation. Controller does
  not require checksum LE configuration if checksum start and write
  position is the same as before. So keep track last checksum start
  and write position and insert new LE whenever the position is
  changed. This reduces number of LEs used in TX path as well as
  slightly enhance TX performance.

r204365:
  Don't hardcod register offset to set PCIe max read request size.
  The register offset is not valid on 88E8072 controller. Also don't
  blindly increase max read request size to 4096, instead, use 2048
  which seems to be more sane value and only change the value if the
  hardware default size(512) was used on that register.
  For PCIX controllers, use system defined constant rather than using
  magic value.
  While I'm here stop showing negotiated link width.

r204366:
  Allocate single MSI message. msk(4) used to allocate 2 MSI messages
  for controllers like 88E8053 which reports two MSI messages.
  Because we don't get anything useful things with 2 MSI messages,
  allocating 1 MSI message would be more sane approach.
  While I'm here, enable MSI for dual-port controllers too. Because
  status block is shared for dual-port controllers, I don't think
  msk(4) will encounter problem for using MSI on dual-port
  controllers.

r204367:
  Remove trailing white spaces.

r204539:
  Properly sync status LEs after processing.

r204540:
  Make sure to enable flow-control only if established link is
  full-duplex. Previously msk(4) used to allow flow-control on
  1000baseT half-duplex media. Also GMAC pause is enabled if link
  partner is capable of handling it.
  While I'm here use IFM_OPTIONS instead of using IFM_GMASK to check
  optional flags of link.
</content>
</entry>
<entry>
<title>MFC r204361-204362:</title>
<updated>2010-03-23T21:38:25Z</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2010-03-23T21:38:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b951499f98f74bf1e1593b31f8e866bcac08a4df'/>
<id>urn:sha1:b951499f98f74bf1e1593b31f8e866bcac08a4df</id>
<content type='text'>
r204361:
  Reuse the configured LE for VLAN if new LE was created for TSO.
  Only old controllers need to create new LE for TSO. This change
  makes TSO work over VLANs.

r204362:
  Add TSO support on VLANs. Controller requires VLAN hardware tagging
  to make TSO work over VLANs.
</content>
</entry>
</feed>
