Commit Graph

603 Commits

Author SHA1 Message Date
Mieczyslaw Nalewaj
3dd3c61c30 realtek: drop 5.15 support
Drop config and files for Linux 5.15.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/16417
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-20 11:16:02 +02:00
Stephen Howell
732f539fb7 realtek: add support for HPE 1920-48G (JG927A) and 1920-48G-PoE (JG928A)
Hardware information:
---------------------

- SoC: RTL8393M
- Copper phy: 6×RTL8218B
- Fibre phy: RTL8214FC
- Flash: 32MiB SPI NOR, MX25L25635FMI
- RAM: 128MiB DDR3, Micron MT41K64M16TW-107
- Serial port: ±5V serial port to RJ45, ZT3232 (MAX3232 compatible)
- +370W POE on JG928A model

Note: SFP ports currently non-functional due to missing support for
RTL8214FC on the RTL8393M target.

Updated for Linux 6.6 kernel.

Installation:
-------------
- Initial installation follows same process as HPE 1920-24G (JG924A)

- Based on prior work of Jan Hoffmann <jan@3e8.eu>
- Additional work by Andreas Böhler <dev@aboehler.at>
- PoE updates and tidy-up by Stephen Howell <howels@allthatwemight.be>
Signed-off-by: Stephen Howell <howels@allthatwemight.be>
2024-09-17 21:44:34 +02:00
Robert Marko
afa9811a0c realtek: default to 6.6
Now that there is 6.6 support for realtek, lets encourage testing it by
making it default so 5.15 can be dropped ASAP.

Link: https://github.com/openwrt/openwrt/pull/16408
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-17 21:21:37 +02:00
Markus Stockhausen
93881ec190 realtek: 6.6: MDIO post fixes
Merging of the realtek 6.6 series forgot to include some final fixes
for the new MDIO driver. What was changed in last second?

1. The MDIO driver used wrong constants to make use of the raw
page (for direct register access). Provide a rawpage variable in
the bus private structure, populate it during initialization and
make use of it at the proper places

2. We always used the variable portaddr for the bus index. Usually
our driver uses either addr or port for the same meaning. Remove the
duplication and reuse the normal addr variable.

3. Drop functions rtmdio_write_page() and rtmdio_read_page(). These
only call the PHY driver read/write page functions. We know that
these will only access page 0x1f. As we have only Realtek PHYs
and our driver only reacts to this special page, just hardcode it.
Benefit is that we can use these functions for PHY detection when
read/write page functions are not yet assigned.

4. Add two new helper functions phy_port_read_paged() and
phy_port_write_paged(). These allow to access arbitrary ports on
the MDIO bus when the packages are not initialized. These will be
needed for proper RTL8218B and RTL8214FC detection in forthcoming
patches.

5. The port tracking wrongly used index 0 to mark "normal" access.
This does not allow to make a "special" access to port 0. Use
index -1 to mark "normal" access.

Provide the fix for 5.15 and 6.6 to allow for easy version
comparison.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16391
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-16 10:33:28 +02:00
Markus Stockhausen
35e13244aa realtek: 5.15: backport VLAN fix
With commit a22d359fa5 VLAN handling was fixed for kernel 6.6.
This restored network connectivity of the devices. For easy testing
backport the fix for 5.15 too.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16391
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-16 10:33:28 +02:00
Markus Stockhausen
9272d99195 realtek: 6.6: Support XGMII attached PHYs
On the XGS1210-12 the RTL8218D is attached via XGMII. Add this to the
supported list in the DSA driver.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16391
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-16 10:33:28 +02:00
Andreas Böhler
3c152904c2 realtek: add fan controller support to D-Link DGS-1210-28MP
The DGS-1210-28MP has a LM63 fan controller connected via i2c of the
RTL8231. The clock line is always low if the property
i2c-gpio,scl-open-drain is not set; with this property, the GPIO pin is
force-drive and the clock works as expected.

The LM63 is not configured by U-Boot, thus only manual fan control is
possible by settings pwm1_enable to "1" and writing the desired values to
pwm1.

The OEM firmware drives the fan from user mode and sets it up like this:

// PWM LUT/value r/w, PWM Clock = 1.4kHz
0x4a 0x28
// Tachometer spinup disabled, spin-up cycles bypassed
0x4b 0x00
// PWM Frequency = default
0x4d 0x17
// PWM Value (28)
0x4c 0x1c
// If > 0 C, use
0x50 0x00
// PWM = 28
0x51 0x1c
// If > 51 C, use
0x52 0x33
// PWM = 44
0x53 0x2e
// Set hysteresis to 100 = default
0x4f 0x03
// Turn on automatic mode and w/p the LUT values
0x4a 0x08

A thread in the OEM firmware polls the ALERT status register for fan
failures.

Unfortunately, the lm63 kernel driver does not perform any initialization
of the chip and it does not support changing some config registers (like
PWM frequency or LUT). Hence, we are stuck with the defaults and need to do
fan control in software.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
Link: https://github.com/openwrt/openwrt/pull/15616
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2024-09-15 16:40:54 +02:00
Andreas Böhler
257a356b20 realtek: add full SFP support to D-Link DGS-1210-28 series
The DGS-1210-28 series was lacking full SFP support due to missing GPIOs.
Fortunately, the existing GPIO definitions of DGS-1210-52 match, this adds
the required i2c-gpio nodes to the DTS and allows hotplug SFP support.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
Link: https://github.com/openwrt/openwrt/pull/15616
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2024-09-15 16:40:40 +02:00
Markus Stockhausen
2ff67f297d realtek: 6.6: enable testing kernel
Allow to build the new kernel.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:21:44 +02:00
Markus Stockhausen
a22d359fa5 realtek: 6.6: fix VLAN handling
The CPU port of realtek switches needs some proper PVID set to handle
untagged packets. Because the ethernet driver does no special VLAN
handling (see CPU tag RVID/RVID_SEL) as of now we can only steer
untagged packets by setting PVID for the CPU port. VLAN handling has
never been perfect but 3 events made things worse.

- Commit a376508216 ("rtl83xx: dsa: Do nothing when vid 0")
- Commit e691e2b302 ("rtl83xx: dsa: reset PVID to 1 instead of 0")
- Upgrade to kernel 6.6

Reasons are:

- Rejecting VID 0 disabled Linux initialization routines
- Initialization for PVID forgot to set priv->ports[port].pvid
- Kernel 6.6 does no longer clarify CPU port as untagged

To fix this prepare the VID 0 setup inside the driver. Join all ports
to VID 0 and let no one from outsinde interfere with this setup.
Especially ignore PVID settings for the CPU port for all further
VLAN commands.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Suggested-by: Bjørn Mork <bjorn@mork.no>
2024-09-14 20:14:47 +02:00
Markus Stockhausen
cd958d945b realtek: 6.6: refactor mac config and link up for RTL83xx
Since kernel commit c5714f68a76bcad3d ("net: phylink: explicitly invalidate
link_state members in mac_config") it should be clear that link data can
only be used in mac_link_up(). Refactor that for the RTL83xx targets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:08:57 +02:00
Markus Stockhausen
dc9fca1fd1 realtek: 6.6: harden fw_init_cmdline()
Some devices (e.g. HP JG924A) hand over other than expected kernel boot
arguments. Looking at these one can see:

fw_init_cmdline: fw_arg0=00020000
fw_init_cmdline: fw_arg1=00060000
fw_init_cmdline: fw_arg2=fffdffff
fw_init_cmdline: fw_arg3=0000416c

Especially fw_arg2 should be the pointer to the environment and it looks
very suspicous. It is not aligned and the address is outside KSEG0 and
KSEG1. Booting the device will result in a hang. Do better at verifying
the address.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Suggested-by: Bjørn Mork <bjorn@mork.no>
2024-09-14 20:08:57 +02:00
Markus Stockhausen
9f8570b0dd realtek: 6.6: set phylink supported_interfaces
The supported_interfaces bitmap cannot be empty since mainline kernel
commit de5c9bf40c45 ("net: phylink: require supported_interfaces to
be filled"). Fix the dsa and ethernet driver accordingly.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:08:41 +02:00
Markus Stockhausen
3772cc7ebe realtek: 6.6: adapt message to 64 bit variable
used_keys has been changed from 32 to 64 bits.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:08:41 +02:00
Markus Stockhausen
86deef6158 realtek: 6.6: change to current dsa structures
The DSA framework has changed a bit since 6.1, lets adapt to match.
Currently there is no one-patch-fits-all solution to directly fix
all errors up to 6.6. So cover the final differences with this
second patch.

Most notable upstream changes are:
  - a88dd7538461 ("net: dsa: remove legacy_pre_march2020 detection")
  - 53d04b981110 ("net: dsa: remove phylink_validate() method")

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
[Minor checkpatch.pl cleanups]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2024-09-14 20:08:24 +02:00
Markus Stockhausen
94f8eedfd9 realtek: 6.6: change to 6.1 dsa structures
The DSA framework has changed a bit since 5.15, lets adapt to match.
Currently there is no one-patch-fits-all solution to directly fix
all errors up to 6.6. So at least take all the already known changes
that cover differences between 5.15 and 6.1

Most notable upstream changes are:
  - d3eed0e57d5d ("net: dsa: keep the bridge_dev and bridge_num as part
    of the same structure")
    Update of port_bridge_{join,leave}: use same helper as upstream
  - c26933639b54 ("net: dsa: request drivers to perform FDB isolation")
    Update of port_fdb_{add,del}, port_mdb_{add,del}
  - dedd6a009f41 ("net: dsa: create a dsa_lag structure")
    Update of port_lag_{join,leave}

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
[align updates with upstream, add references to upstream commits]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
15c17e6f74 realtek: 6.6: refresh patch net-dsa-add-rtl838x-support-for-tag-trailer
No content changes. Only take over the new patch locations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
c5c1874327 realtek: 6.6: copy patch net-dsa-add-rtl838x-support-for-tag-trailer
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
0389a24a73 realtek: 6.6: refresh patch add-rtl-phy
No content changes. Only take over the new patch locations. All errors
that wil arise from compiling with the phy driver will be covered by
follow up patches.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
9eb5637c31 realtek: 6.6: copy patch add-rtl-phy.patch
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
2820657206 realtek: 6.6: refresh patch net-dsa-add-support-for-rtl838x-switch
No content changes. Only adapt the failing hooks and take over the
new patch locations. All errors that wil arise from compiling with
the dsa driver will be covered by follow up patches.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
4742c7dfef realtek: 6.6: copy patch net-dsa-add-support-for-rtl838x-switch
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
7435f2cd5a realtek: 6.6: convert ethernet driver to phylink_pcs_ops
A lot of stuff has been converted to the phylink_pcs_ops structure.
Adapt the ethernet driver to make use of it.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:02:52 +02:00
Markus Stockhausen
211925d054 realtek: 6.6: drop netif_napi_add weight
We no longer are required to pass the weight to netif_napi_add.

See commit b48b89f9c189 ("net: drop the weight argument from netif_napi_add").

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 20:00:22 +02:00
Markus Stockhausen
a5420c22b7 realtek: 6.6: rework mdio bus driver
This is not a surprise. Before upgrade to 6.6 we refactored the mdio part of
the ethernet driver and knew that changes will come. Drop all unnecessary
stuff from the old world and adapt to the new kernel.

- remove legacy functions
- directly link new functions
- adapt to new shared base address
- remove references to old MDIO bus capabilities

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:59:48 +02:00
Markus Stockhausen
3f04b8d5d5 realtek: 6.6: refresh patch net-ethernet-add-support-for-rtl838x-ethernet
No content changes. Only take over the new patch locations. All errors
that will arise from compiling with the ethernet driver will be covered
by follow up patches.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
10ff92a315 realtek: 6.6: copy patch net-ethernet-add-support-for-rtl838x-ethernet
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
b34d048a62 realtek: 6.6: rework patch net-phy-sfp-add-support-for-SMBus
With the new kernel the MDIO bus gets created after the smbus
read/write functions are used. Make use of native functions.
Relocate bus initialization into a separate function to make
patch easier to read.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
acfa72afef realtek: 6.6: copy patch net-phy-sfp-add-support-for-SMBus
Copy the patch file to 6.6. Reorder it in th 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
b13c0b57b2 realtek: 6.6: refresh patch net-phy-add-an-MDIO-SMBus-library
No content changes. Two hooks had to be adapted to take over the
new patch locations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
850d64da96 realtek: 6.6: copy patch net-phy-add-an-MDIO-SMBus-library
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
cbffb2ddfb realtek: 6.6: refresh patch net-phy-sfp-re-probe-modules-on-DEV_UP-event
No content changes. Only take over the new patch locations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
ff151636d2 realtek: 6.6: copy patch net-phy-sfp-re-probe-modules-on-DEV_UP-event
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
ca61a28d48 realtek: 6.6: refresh patch drivers-net-phy-eee-support-for-rtl838x
No content changes. One hook had to be adapted.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
a8bf6c25bf realtek: 6.6: copy patch drivers-net-phy-eee-support-for-rtl838x
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
f86c166e0f realtek: 6.6: refresh patch include-linux-add-phy-ops-for-rtl838x
No content changes. Hook failed and had to be adapted.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
cf07d43f66 realtek: 6.6: copy patch include-linux-add-phy-ops-for-rtl838x
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
1a92cdc091 realtek: 6.6: refresh patch include-linux-phy-increase-phy-address-number-for-rtl839x
No content changes. Only take over the new patch locations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
51c85f4874 realtek: 6.6: copy patch include-linux-phy-increase-phy-address-number-for-rtl839x
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
6a340ded82 realtek: 6.6: rework patch include-linux-add-phy-hsgmii-mode
Take over the new patch locations and add references to the link mode into
phylink_sfp_interface_preference[] and phylink_get_capabilities().

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
15f7ee463e realtek: 6.6: copy patch include-linux-add-phy-hsgmii-mode
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
068d6f01c1 realtek: 6.6 copy patch net-dsa-increase-dsa-max-ports-for-rtl838x
No content changes. As the order of the 7xx patch files seems very
strange reorder all of them according to the realtek 6.6 kernel upgrade
effort.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
1bbd5fdab6 realtek: 6.6: refresh patch 318-add-rtl83xx-clk-support
No content changes. Only take over the new patch locations.

With this patch all platform specific changes for kernel 6.6 are in place.
Realtek devices are bootable from serial console. VPE is fully functional
on devices that support it. The switch functions (ethernet and DSA) are
not enabled yet.

Boot tested on RTL8380 (Linksys LGS310C) and RTL8393 (Zyxel GS1920-24).

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
4e5ea8fcc4 realtek: 6.6: copy patch 318-add-rtl83xx-clk-support
Copy the patch file to 6.6

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
1eac02b60d realtek: 6.6: rework VPE patches
VPE in mainline kernel has changed a lot. This patch wraps up the 5.15
patch files and rebases them in one single patch on top of kernel 6.6.
Former patches are

315-irqchip-irq-realtek-rtl-add-VPE-support.patch
319-irqchip-irq-realtek-rtl-fix-VPE-affinity.patch

Submitted-by: Birger Koblitz <git@birger-koblitz.de>
Submitted-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
943638d5cc realtek: 6.6: copy VPE patches 315/319
Copy the patch files to 6.6. Both target drivers/irqchip/irq-realtek-rtl.c
and are additions and fixes for IRQ VPE handling.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
0066d75eb6 realtek: 6.6: copy patch 311-add-i2c-mux-rtl9300-support
Copy the patch file to 6.6. No further processing required as
it applies cleanly to the new kernel

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
7735190395 realtek: 6.6: refresh patch 310-add-i2c-rtl9300-support
No content changes. Due to kernel changes the patch hooks totally failed
and had to be fixed manually.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
d999a02fd8 realtek: 6.6: copy patch 310-add-i2c-rtl9300-support
Copy the patch file to 6.6

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00
Markus Stockhausen
564161463b realtek: 6.6: refresh patch 307-wdt-update-dependency-for-realtek-otto-wdt
No content changes. Only take over the new patch locations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2024-09-14 19:58:55 +02:00