History log of /freebsd-current/sys/dev/etherswitch/rtl8366/rtl8366rb.c
Revision Date Author Comments
# 95ee2897 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 74c592c0 31-Jan-2023 Justin Hibbits <jhibbits@FreeBSD.org>

etherswitch: Clean up whitespace after IfAPI conversion

Sponsored by: Juniper Networks, Inc.
Fixes: 2e6a8c1ae


# 2e6a8c1a 30-May-2022 Justin Hibbits <jhibbits@FreeBSD.org>

Mechanically convert etherswitch drivers to IfAPI

Reviewed by: kd
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D37813


# 42726c2f 09-May-2022 John Baldwin <jhb@FreeBSD.org>

etherswitch drivers: Remove unused devclass arguments to DRIVER_MODULE.


# 829a13fa 09-May-2022 John Baldwin <jhb@FreeBSD.org>

Remove unused etherswitch_devclass.


# 8933f7d6 19-Apr-2022 John Baldwin <jhb@FreeBSD.org>

Remove unused mdio_devclass.


# 3e38757d 19-Apr-2022 John Baldwin <jhb@FreeBSD.org>

Remove unused miibus_devclass and miibus_fdt_devclass.


# 7029da5c 26-Feb-2020 Pawel Biernacki <kaktus@FreeBSD.org>

Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)

r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are
still not MPSAFE (or already are but aren’t properly marked).
Use it in preparation for a general review of all nodes.

This is non-functional change that adds annotations to SYSCTL_NODE and
SYSCTL_PROC nodes using one of the soon-to-be-required flags.

Mark all obvious cases as MPSAFE. All entries that haven't been marked
as MPSAFE before are by default marked as NEEDGIANT

Approved by: kib (mentor, blanket)
Commented by: kib, gallatin, melifaro
Differential Revision: https://reviews.freebsd.org/D23718


# 1b8be09a 24-Jan-2018 Michael Zhilin <mizhka@FreeBSD.org>

[etherswitch] fix LINT build for rtl8366rb

Build with rtl8366rb has been broken due to incorrect retrieval of pointer
to device_t.

Reported by: lwhsu
Differential Revision: https://reviews.freebsd.org/D14044


# 0774131e 24-Jan-2018 Michael Zhilin <mizhka@FreeBSD.org>

[etherswitch] check if_alloc returns NULL

This patch is cosmetic. It checks if allocation of ifnet structure failed.
It's better to have this check rather than assume positive scenario.

Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
Reported by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>


# 718cf2cc 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/dev: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# 5a4380b5 27-May-2017 Michael Zhilin <mizhka@FreeBSD.org>

[etherswitch] [rtl8366] add phy4cpu setting and support mdioproxy

Tested on WZR-HP-G301NH(RTL8366RB) and WZR-HP-G300NH(RTL8366SR).

Submitted by: Hiroki Mori <yamori813@yahoo.co.jp>
Differential Revision: https://reviews.freebsd.org/D10740


# 477e3eff 15-Nov-2016 Michael Zhilin <mizhka@FreeBSD.org>

[etherswitch] add RTL8366SR support

Add RTL8366SR support at etherswitch driver. Tested on RTL8366RB and
RTL8366SR.

Submitted by: Hiroki Mori <yamori813@yahoo.co.jp>
Reviewed by: adrian, mizhka
Approved by: adrian(mentor)
Differential Revision: https://reviews.freebsd.org/D6796


# efce3748 12-Jul-2014 Rui Paulo <rpaulo@FreeBSD.org>

Revert r268543.

We should probably fix sys/gpio.h instead.


# bd08cbb8 11-Jul-2014 Rui Paulo <rpaulo@FreeBSD.org>

Move iic.h to sys/ so that it's automatically installed in /usr/include/sys.

This lets us call iic(4) ioctls without needing the kernel source code
and follows the same model of GPIO.

MFC after: 3 weeks


# 28b07d23 05-Jul-2014 Luiz Otavio O Souza <loos@FreeBSD.org>

Allow the PVID setting on CPU port.

Return our static list of supported media for the CPU port.

Tested on TP-Link 1043ND.


# bfae9329 03-Jul-2014 Luiz Otavio O Souza <loos@FreeBSD.org>

Initialize the switch vlan table at attachment.

Update some comments on code, specifying the correct vlans used on switch
setup.

Advertise the proper switch operation mode (the rtl8366rb only support
dot1q vlans).

This fixes the breakage that i introduced on r249752 and make the rtl8366rb
switch works again with etherswitchcfg(8).

Tested on TP-Link 1043ND.

Tested by: me, Harm Weites (harm at weites.com)


# b0bb5bfa 01-Jul-2014 Luiz Otavio O Souza <loos@FreeBSD.org>

Fix the reported status for the switch CPU port which was (wrongly)
reporting half-duplex link.

Tested on TP-Link WR1043ND.


# dddab089 01-Jul-2014 Luiz Otavio O Souza <loos@FreeBSD.org>

Add the CPU port flag to the CPU port on rtl8366 (port 5).

Do not allow any media change on the switch CPU port.

Tested on TP-Link WR1043ND.


# 3d02237c 29-Oct-2013 Luiz Otavio O Souza <loos@FreeBSD.org>

Fix the build of TP-WN1043ND kernel. Provide necessary includes and remove
unnecessary includes for rtl8366rb.

Approved by: adrian (mentor)


# cc320e37 23-Jul-2013 Luiz Otavio O Souza <loos@FreeBSD.org>

Add a new flag (ETHERSWITCH_VID_VALID) to say what vlangroups are in use.
This fix the case when etherswitch is printing the information of port 0
vlan group (in port based vlan mode) with no member ports.

Add the ETHERSWITCH_VID_VALID support to ip17x driver.

Add the ETHERSWITCH_VID_VALID support to rt8366 driver.

arswitch doesn't need to be updated as it doesn't support vlans management
yet.

Approved by: adrian (mentor)


# a3219359 21-Apr-2013 Adrian Chadd <adrian@FreeBSD.org>

Convert over the etherswitch framework to use VLAN IDs per port, rather
than VLAN groups.

Some chips (eg this rtl8366rb) has a VLAN group per port - you first
define a set of VLANs in a vlan group, then you assign a VLAN group
to a port.

Other chips (eg the AR8xxx switch chips) have a VLAN ID array per
port - there's no group per se, just a list of vlans that can be
configured.

So for now, the switch API will use the latter and rely on drivers
doing the heavy lifting if one wishes to use the VLAN group method.
Maybe later on both can be supported.

PR: kern/177878
PR: kern/177873
Submitted by: Luiz Otavio O Souza <loos.br@gmail.com>
Reviewed by: ray


# a043e8c7 11-May-2012 Adrian Chadd <adrian@FreeBSD.org>

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