#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
279943 |
|
13-Mar-2015 |
adrian |
Commit 802.1q configuration support for the AR8327.
This is slightly different to the other switches - the VLAN table (VTU) programs in the vlan port mapping /and/ the port config (tagged, untagged, passthrough, any.)
So:
* Add VTU operations to program the VTU (vlan table) * abstract out the mirror-disable function so it's .. well, a function. * setup the port to have a dot1q configuration for dot1q - the port security is VLAN (not per-port VLAN) and requires an entry in the VLAN table; * add set_dot1q / get_dot1q to program the VLAN table; * since the tagged/untagged ports are now programmed into the VTU, rather than global - plumb the ports /and/ untagged ports bitmaps through the arswitch API.
Tested:
* AP135 - QCA9558 SoC + AR8327N switch
|
#
279797 |
|
08-Mar-2015 |
adrian |
Methodise a couple more of the VLAN methods.
|
#
279790 |
|
08-Mar-2015 |
adrian |
Add per-port vlan support for the AR8327.
All the per-port support is really doing is applying a port visibility mask to each of the switchports. Everything still look like a single portgroup (vlan id 1), but the per-port visibility mask is modified.
Whilst I'm here, also add some initial dot1q support - the pvid stuff is doing the right thing, but it's not useful without the rest of the VLAN table programming.
It's enough for me to be able to use the LAN/WAN port distinction on the AP135, where there isn't (for now!) a dedicated PHY for the "WAN" port.
Tested:
* AP135, QCA9558 SoC + AR8327 switch
|
#
279767 |
|
08-Mar-2015 |
adrian |
Fix up support for the AR8327.
* Even though I got the registers around "right", it seems I'm not tickling the MDIO access correctly for the internal PHY bus. Some of the switches are fine poking at the external PHY registers; others aren't. So, enable direct PHY bus access for the AR8327, and leave the existing code in place for the others.
* Go and shuffle the register access around. Whilst here, restore the 2ms delay if changing page.
* Comment out some of the stub printf()s; there's some upcoming work to add port VLAN support.
Tested:
* AP135 development board * Carambola2 - AR9331 SoC
|
#
262681 |
|
02-Mar-2014 |
adrian |
Add ATU flush support.
The OpenWRT AR8xxx switch support flushes the ATU (address translation unit) after each port link 'up' status change. I've modified this to just flush on any port transition.
Whilst here, bump the number of ports on the AR8327 to 6, rather than the default of 5. It's DB120 specific; I'll go and make this configurable later.
There's some debugging code in here still; I am still debugging whether this is or isn't working fully.
Tested:
* DB120, AR9344 + AR8327 switch
Obtained from: OpenWRT
|
#
262433 |
|
24-Feb-2014 |
adrian |
Add in port0/port6 configuration as part of the platform data code path.
It's still hardcoded (for db120) but it is now hardcoded in all the same place (ie, the pdata path.) The port config/status code now checks port0/port6 as appropriate to configure things.
Tested:
* Qualcomm Atheros DB120, AR8327 switch.
|
#
262428 |
|
24-Feb-2014 |
adrian |
* Ensure enough ports/phys are available for both the AR8327 and previous switches.
* Add some new VLAN HAL methods that will be used by the VLAN configuration code. The AR933x and later switches use slightly different register layouts (even though the driver currently doesn't support it.)
|
#
262207 |
|
19-Feb-2014 |
adrian |
Add methods for the VLAN port set/get routines.
The registers (and perhaps the flags) are different for the AR8327, so I'll stub those out until they're written.
Tested:
* DB120 - both on-chip AR9340 and AR8327 switches.
|
#
262204 |
|
19-Feb-2014 |
adrian |
Add a new method to set up the individual port in question.
The AR8327 requires some different setup code.
|
#
262202 |
|
19-Feb-2014 |
adrian |
Add in the AR8327 probe/attach code and switch type.
It detects fine, but (as expected) it won't attach just yet, let alone pass traffic.
Tested:
* DB120, AR8327 switch
|
#
262201 |
|
19-Feb-2014 |
adrian |
Store away the chip version and revision; some AR8327 code depends upon the chip revision.
|
#
262200 |
|
19-Feb-2014 |
adrian |
Add in a flag to control whether the low or high data word of a register access is latched in first.
The AR8327 apparently requires the low data word be latched in first.
Obtained from: Linux OpenWRT
|
#
256577 |
|
16-Oct-2013 |
adrian |
Prepare to link in the AR934x SoC switch support.
* Add an AR9340 switch version entry; * Support the switch being connected via MII; * Add a flag to note that a switch is actually an internal switch rather than an external switch.
Now:
* The ar9340 switch can interconnect via MII; * Since some slightly different phy/switch register access methods and quirks appear for the internal versus external switch, we will need a flag to mark it as an "internal" switch.
Tested:
* AR9344 (internal switch) * AR9331 (internal switch)
TODO:
* Test the AR8316 switch!
|
#
253572 |
|
23-Jul-2013 |
loos |
Add the support for 802.1q and port based vlans for arswitch.
Tested on: RB450G (standalone ar8316), RSPRO (standalone ar8316) and TPLink MR-3220 (ar724x integrated switch).
Approved by: adrian (mentor) Obtained from: zrouter
|
#
253570 |
|
23-Jul-2013 |
loos |
Fix the arswitch instability problem. It turns out that the arswitch_writereg() routine was writing the registers in the wrong order.
Revert -r241918 as the root problem is now fixed. Remove another workaround from arswitch_ar7240.c.
Simplify and fix the code on arswitch_writephy() by using arswitch_writereg().
While here remove a redundant declaration from arswitchvar.h.
Approved by: adrian (mentor)
|
#
241463 |
|
11-Oct-2012 |
ray |
Fix tiypo.
Submitted by: Luiz Otavio O Souza Approved by: adrian (mentor)
|
#
235323 |
|
12-May-2012 |
adrian |
Further arswitch work:
* Add in the AR724x support. It probes the same as an AR8216/AR8316, so just add in a hint to force the probe success rather than auto-detecting it.
* Add in the missing entries from conf/files, lacking in the previous commit.
The register values and CPU port / mirror port initialisation value was obtained from Linux OpenWRT ag71xx_ar7240.c.
The DELAY(1000) to let things settle is my local workaround. For some reason, PHY4 doesn't seem to probe very reliably without it. It's quite possible that we're missing some MDIO bus initialisation code in if_arge for the AR724x case. As I dislike DELAY() workarounds in general, it's definitely worth trying to figure out why this is the case.
Tested on: AP93 (AR7240) reference design
Obtained from: Linux OpenWRT
|
#
235288 |
|
11-May-2012 |
adrian |
Commit the first pass of the etherswitch support.
This is designed to support the very basic ethernet switch chip behaviour, specifically:
* accessing switch register space; * accessing per-PHY registers (for switches that actually expose PHYs); * basic vlan group support, which applies for the rtl8366 driver but not for the atheros switches.
This also includes initial support for:
* rtl8366rb support - which is a 10/100/1000 switch which supports vlan groups; * Initial Atheros AR8316 switch support - which is a 10/100/1000 switch which supports an alternate vlan configuration (so the vlan group methods are stubbed.)
The general idea here is that the switch driver may speak to a variety of backend busses (mdio, i2c, spi, whatever) and expose:
* If applicable, one or more MDIO busses which ethernet interfaces can then attach PHYs to via miiproxy/mdioproxy;
* exposes miibusses, one for each port at the moment, so ..
* .. a PHY can be exposed on each miibus, for each switch port, with all of the existing MII/ifnet framework.
However:
* The ifnet is manually created for now, and it isn't linked into the interface list, nor can you (currently) send/receive frames on this ifnet. At some point in the future there may be _some_ support for this, for switches with a multi-port, isolated mode.
* I'm still in the process of sorting out correct(er) locking.
TODO:
* ray's switch code in zrouter (zrouter.org) includes a much more developed newbus API that covers the various switch methods, as well as a capability API so drivers, the switch layer and the userland utility can properly control the subset of supported features.
The plan is to sort that out later, once the rest of ray's switch drivers are brought over and extended to export MII busses and PHYs.
Submitted by: Stefan Bethke <stb@lassitu.de> Reviewed by: ray
|