<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/etherswitch/arswitch, branch releng/12.4</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.4</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.4'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2018-02-06T08:35:49Z</updated>
<entry>
<title>[arswitch] Implement the switch MAC address fetch API.</title>
<updated>2018-02-06T08:35:49Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-06T08:35:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2ba4bf8fa549f002503f218ae503bf906bd71f3e'/>
<id>urn:sha1:2ba4bf8fa549f002503f218ae503bf906bd71f3e</id>
<content type='text'>
The placeholders are here for some future "set" MAC address API.

Tested:

* AR9340 switch
* AR8327 switch
</content>
</entry>
<entry>
<title>[arswitch] disable ARP copy-to-CPU port for AR9340 for now.</title>
<updated>2018-02-05T20:37:29Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-05T20:37:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f6f7bec6f8453c374b1cba3a6b6a4201653db4c1'/>
<id>urn:sha1:f6f7bec6f8453c374b1cba3a6b6a4201653db4c1</id>
<content type='text'>
I'll have to go double check to see if it does indeed pass ARP frames between
switch ports with this disabled, but it seems required for the CPU port to see
ARP traffic.

I'll dig into this some more.
</content>
</entry>
<entry>
<title>[arswitch] fix build breakage.</title>
<updated>2018-02-05T20:30:53Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-05T20:30:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=45a7272a5bd58b8587682d2a1bb10dd0c157a844'/>
<id>urn:sha1:45a7272a5bd58b8587682d2a1bb10dd0c157a844</id>
<content type='text'>
Apparently the last time I checked building this it didn't pick up that the
header had changed.
</content>
</entry>
<entry>
<title>[arswitch] Enable ATU dump support for the AR9340.</title>
<updated>2018-02-05T07:05:28Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-05T07:05:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f76883d64c4e2901b8699a807105d08b958afbe9'/>
<id>urn:sha1:f76883d64c4e2901b8699a807105d08b958afbe9</id>
<content type='text'>
This indeed uses the same registers as the AR8216 and later chips.

There seems to be an issue with ARP requests being sent out from the CPU
through this switch here, so figuring that out is next.  Learning works fine on
the AR8327 ethernet switch on the /other/ gigabit ethernet port, so I don't
think it's the network stack or ethernet driver.

Tested:

* DB120 - AR9340 SOC + ethernet switch (and other bits.)
</content>
</entry>
<entry>
<title>[arswitch] fix mac address field definition.</title>
<updated>2018-02-05T07:03:45Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-05T07:03:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7f81a2047916fe952936e2935a7b8fd53ce28765'/>
<id>urn:sha1:7f81a2047916fe952936e2935a7b8fd53ce28765</id>
<content type='text'>
Whilst here, add some further fields for future experimenting.

Tested:

* AR9340 switch
* AR9330 switch
* AR7240 switch
</content>
</entry>
<entry>
<title>[arswitch] Break out of the loop upon any error, not just -1.</title>
<updated>2018-02-05T05:51:37Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-05T05:51:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7ed0831923db7da247fd6bc2ee309eeec3f74d0a'/>
<id>urn:sha1:7ed0831923db7da247fd6bc2ee309eeec3f74d0a</id>
<content type='text'>
This fixes the AR9340 "unimplemented" thingy for now.
</content>
</entry>
<entry>
<title>[arswitch] fix up issues on the AR8327.</title>
<updated>2018-02-04T08:22:11Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-04T08:22:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c9f70b7b8814df41ce7d2182a6c1a77bc01ea5cf'/>
<id>urn:sha1:c9f70b7b8814df41ce7d2182a6c1a77bc01ea5cf</id>
<content type='text'>
This correctly dumps the ethernet bridge contents on an AR8327 switch.

Tested:

* AP135 - QCA9550 + AR8327 ethernet switch:

# etherswitchcfg atu dump
 [0] c0:3f:d5:7e:6f:45: portmask 0x00000004
 [1] f6:b6:03:96:1e:ba: portmask 0x00000004
 [2] 00:03:7f:11:38:4f: portmask 0x00000040
# arp -na
? (192.168.3.170) at 00:03:7f:11:38:4f on arge0 permanent [ethernet]
? (192.168.3.12) at c0:3f:d5:7e:6f:45 on arge0 expires in 1188 seconds [ethernet]
? (192.168.3.1) at f6:b6:03:96:1e:ba on arge0 expires in 1186 seconds [ethernet]
</content>
</entry>
<entry>
<title>[arswitch] add initial functionality for AR8327 ATU management.</title>
<updated>2018-02-03T00:59:08Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-03T00:59:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=65d59686e1f877df459c1ea76c93defc16fe0e44'/>
<id>urn:sha1:65d59686e1f877df459c1ea76c93defc16fe0e44</id>
<content type='text'>
* Add the bulk of the ATU table read function
* Correct how the ATU function and WAIT bits work

TODO:

* more testing, figure out how the multi-vlan table stuff works and push that
  up to userspace
</content>
</entry>
<entry>
<title>[arswitch] Stub out the ATU table dump in AR9340 switches until I implement</title>
<updated>2018-02-02T22:08:03Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-02T22:08:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=84a5558c389c99e849fafa4d9b05820da8a09935'/>
<id>urn:sha1:84a5558c389c99e849fafa4d9b05820da8a09935</id>
<content type='text'>
this.
</content>
</entry>
<entry>
<title>[arswitch] begin tidying up the learning and ATU management, introduce ATU APIs.</title>
<updated>2018-02-02T22:05:36Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2018-02-02T22:05:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=62042c979db43298b8e3d569cb9fd5bd7adc60ac'/>
<id>urn:sha1:62042c979db43298b8e3d569cb9fd5bd7adc60ac</id>
<content type='text'>
* Refactor the initial learning configuration (port learning, address expiry,
  handling address moving between ports, etc, etc) into a separate HAL routine
* and ensure that it's consistent between switch chips - the AR8216,8316,724x,9331
  SoCs all share the same switch code.
* .. the AR8327 needs doing - the defaults seem OK for now
* .. the AR9340 is different but it's also programmed now.

* Add support for flushing a single port worth of ATU entries
* Add support for fetching the ATU table from AR8216 and derived chips

Tested:

* AR9344, Carambola 2

TODO:

* Further testing on other chips
* Add AR9340 support
* Add AR8327 support
</content>
</entry>
</feed>
