openwrt/target/linux/realtek/dts
Hal Martin 741ac49396 realtek: add support for Datto L8
Add support for Datto L8 with 8 copper ports.
POE+ support with 55W power budget.

Specifications:
---------------

    * SoC: Realtek RTL8380M
    * Flash: 32MiB Flash
    * RAM: 256MiB
    * Ethernet: 8x 10/100/1000 Mbps
    * PoE: 8x
    * Serial: UART 3.3V TTL logic, 115200 8N1
        * pinout: G(ND) R(x) T(x) V(cc)
    * Buttons: 1x Reset, 1x LED Mode (noop in OpenWrt)

Note: OpenWrt combines the stock dual firmware partitions
for more overlay capacity, however the OpenWrt image cannot
exceed 13504k

Installation:
-------------

> When connected to CloudTrax, the local management login will be disabled to prevent settings conflicts.

Ensure the switch does not have a working internet connection or the local
web management interface is disabled.

Go to the web management page of the switch (may require factory reset).
By default the switch will use DHCP to obtain an IP address.

The default login user is `admin` with password `0p3nm3$h!`

On the left menu, click "Management" and then "Dual Image" and ensure that
"Partition 0" is selected as the active partition. If it is not, select
"Partition 0" and click "Apply" to save changes.

Click on "Upgrade" in the top right of the web interface. Select the
Active boot partition to update. Select the OpenWrt file ending
in `-initramfs-kernel.bin` as the update file to upload.

Upload the file and follow the prompts to upgrade the firmware.

Reboot the switch from the web UI after the firmware update is completed.
Wait for OpenWrt to finish booting (~2 minutes)

Use SSH or the Luci UI (if available) to perform the sysupgrade.

Copy the sysupgrade file ending in `-squashfs-sysupgrade.bin` to the switch:
```
scp -O openwrt-realtek-rtl838x-datto_l8-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
```

SSH to the switch and run `sysupgrade`:
```
ssh root@192.168.1.1
$ sysupgrade -n /tmp/openwrt-realtek-rtl838x-datto_l8-squashfs-sysupgrade.bin
```

OpenWrt will be installed. Note that first boot after installing requires ~3
minutes for the JFFS2 overlay to be formatted. When the Power LED stops blinking
in the first boot after `sysupgrade`, JFFS2 formatting is completed.

----

Revert back to stock firmware:

You will need a tftp server and the original Datto firmware.

Download the firmware for the S8-L/L8 from Datto:
https://networkinghelp.datto.com/help/Content/kb/Networking/Switches/KB360023113291.html

Rename `s8-l_fw_01.03.24_180823-1639.bix` to `vmlinux.bix`,
put `vmlinux.bix` in the root directory of your tftp server.

Connect a serial console to the UART header and power on the switch.

Interrupt U-Boot by typing `pac` when you see
`Enter correct key to stop autoboot:`

Run the following commands:
```
setenv serverip <tftp_server_ip>
setenv ipaddr <ip_on_same_subnet>
setenv netmask 255.255.255.0
run rtkon
run update_linux
run update_linux2
reset
```

The switch will boot the Datto firmware.

Signed-off-by: Hal Martin <hal.martin@gmail.com>
Tested-By: Raylynn Knight <rayknight@me.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2026-04-02 22:25:37 +02:00
..
macros.dtsi realtek: dts: add PHY_C45() macro 2026-04-01 14:12:14 +02:00
rtl83xx_d-link_dgs-1210_common.dtsi realtek: Drop unused property on DGS-1210 gpio0 2025-01-28 07:30:32 +01:00
rtl83xx_d-link_dgs-1210_gpio_sfp.dtsi
rtl83xx_d-link_dgs-1210_gpio.dtsi realtek: switch RTL8231 driver for D-Link DGS-1210 2025-01-28 07:30:33 +01:00
rtl83xx_hpe_1920.dtsi realtek: switch HPE 1920 series to NVMEM 2026-02-13 12:06:20 +01:00
rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi
rtl93xx_linksys_lgs3xxc_nand_common.dtsi realtek: dts: convert LGS3xxC to NVMEM 2026-03-14 10:50:47 +01:00
rtl838x.dtsi realtek: dts: relocate/retype switch node 2026-03-21 22:26:02 +01:00
rtl839x_zyxel_gs1920-24hp-common.dtsi realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl839x.dtsi realtek: rtl839x: add port LED peripheral disable 2026-03-30 19:18:56 +02:00
rtl930x.dtsi realtek: dts: fix ethernet-switch node 2026-03-22 11:31:21 +01:00
rtl931x.dtsi realtek: dts: fix ethernet-switch node 2026-03-22 11:31:21 +01:00
rtl8380_d-link_dgs-1210-10mp-f.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_datto_l8.dts realtek: add support for Datto L8 2026-04-02 22:25:37 +02:00
rtl8380_engenius_ews2910p-v1.dts realtek: engenius_ews2910p: support multiple hardware versions 2025-05-31 23:19:01 +02:00
rtl8380_engenius_ews2910p-v3.dts realtek: support EnGenius EWS2910P v3 2025-05-31 23:19:01 +02:00
rtl8380_engenius_ews2910p.dtsi realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_hpe_1920-8g-poe-65w.dts
rtl8380_hpe_1920-8g-poe-180w.dts
rtl8380_hpe_1920-8g.dts
rtl8380_hpe_1920-8g.dtsi realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_linksys_lgs310c.dts realtek: dts: convert LGS3xxC to NVMEM 2026-03-14 10:50:47 +01:00
rtl8380_netgear_gigabit.dtsi realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_netgear_gs108t-v3.dts
rtl8380_netgear_gs110tpp-v1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8380_netgear_gs110tup-v1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8380_netgear_gs308t-v1.dts
rtl8380_netgear_gs310tp-v1.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_panasonic_m8eg-pn28080k.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_tplink_sg2xxx.dtsi realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_tplink_sg2008p-v1.dts realtek: rtl838x: drop SFP pseudo-PHYs and phy-handle 2025-12-09 00:28:41 +01:00
rtl8380_tplink_sg2210p-v3.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_zyxel_gs1900_gpio_emulated.dtsi realtek: rtl838x: drop GS1900 MDIO reset GPIO 2026-02-24 21:29:26 +01:00
rtl8380_zyxel_gs1900_gpio.dtsi realtek: rtl838x: drop GS1900 MDIO reset GPIO 2026-02-24 21:29:26 +01:00
rtl8380_zyxel_gs1900-8-a1.dts realtek: rtl838x: rename GS1900 series v1/v2 to A1/B1 2025-09-24 13:41:04 +02:00
rtl8380_zyxel_gs1900-8-b1.dts realtek: rtl838x: rename GS1900 series v1/v2 to A1/B1 2025-09-24 13:41:04 +02:00
rtl8380_zyxel_gs1900-8hp-a1.dts realtek: rtl838x: rename GS1900 series v1/v2 to A1/B1 2025-09-24 13:41:04 +02:00
rtl8380_zyxel_gs1900-8hp-b1.dts realtek: rtl838x: rename GS1900 series v1/v2 to A1/B1 2025-09-24 13:41:04 +02:00
rtl8380_zyxel_gs1900-10hp-a1.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8380_zyxel_gs1900.dtsi realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8382_allnet_all-sg8208m.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8382_apresia_aplgs120gtss.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_d-link_dgs-1210-10p.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8382_d-link_dgs-1210-16.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_d-link_dgs-1210-20.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_d-link_dgs-1210-26.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_d-link_dgs-1210-28_common.dtsi realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_d-link_dgs-1210-28.dts
rtl8382_d-link_dgs-1210-28mp-f.dts
rtl8382_d-link_dgs-1210-28p_common.dtsi
rtl8382_d-link_dgs-1210-28p-f.dts
rtl8382_hpe_1920-16g.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8382_hpe_1920-24g-poe-180w.dts
rtl8382_hpe_1920-24g-poe-370w.dts
rtl8382_hpe_1920-24g.dts
rtl8382_hpe_1920-24g.dtsi realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_hpe_1920.dtsi realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_inaba_aml2-17gp.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_iodata_bsh-g24mb.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_panasonic_m16eg-pn28160k.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_panasonic_m24eg-pn28240k.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_tplink_t1600g-28ts-v3.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_zyxel_gs1900-16-a1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_zyxel_gs1900-24-a1.dts realtek: use common dtsi for Zyxel GS1900-24 2026-01-27 01:34:21 +01:00
rtl8382_zyxel_gs1900-24-b1.dts realtek: add Zyxel GS1900-24 B1 device definition 2026-01-27 01:34:21 +01:00
rtl8382_zyxel_gs1900-24.dtsi realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_zyxel_gs1900-24e-a1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_zyxel_gs1900-24ep-a1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_zyxel_gs1900-24hp-a1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8382_zyxel_gs1900-24hp-b1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8391_zyxel_gs1920-24hp-v2.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8392_zyxel_gs1920-24hp-v1.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8393_d-link_dgs-1210-52.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8393_edgecore_ecs4100-12ph.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8393_hpe_1920-48g-poe.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8393_hpe_1920-48g.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl8393_hpe_1920.dtsi realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8393_netgear_gs750e.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8393_panasonic_m48eg-pn28480k.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8393_tplink_sg2452p-v4.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl8393_zyxel_gs1900-48-a1.dts realtek: dts: convert EXTERNAL_PHY() to PHY_C22() 2026-03-31 12:56:24 +02:00
rtl9301_d-link_dgs-1250-28x.dts realtek: add support for D-Link DGS-1250-28X 2026-03-30 19:10:46 +02:00
rtl9301_linksys_lgs328c.dts realtek: dts: convert nand targets to PHY_C22() macro 2026-03-31 12:56:24 +02:00
rtl9302_plasmacloud_common.dtsi realtek: dts: convert devices to PHY_C45() 2026-04-01 14:12:14 +02:00
rtl9302_plasmacloud_mcx3.dts realtek: dts: convert devices to PHY_C45() 2026-04-01 14:12:14 +02:00
rtl9302_plasmacloud_psx8.dts realtek: rtl930x: Add support for Plasma Cloud PSX8 Switch 2025-08-28 21:07:57 +02:00
rtl9302_plasmacloud_psx10.dts realtek: dts: replace ports by ethernet-ports 2026-03-01 14:19:36 +01:00
rtl9302_xikestor_sks8300-12e2t2x.dts realtek: dts: convert devices to PHY_C45() 2026-04-01 14:12:14 +02:00
rtl9302_zyxel_xgs1x10-12-common.dtsi realtek: dts: cleanup of ethernet link speed 2026-03-30 15:00:31 +02:00
rtl9302_zyxel_xgs1010-12-a1.dts realtek: mdio: drop realtek,smi-address property 2026-03-21 22:26:02 +01:00
rtl9302_zyxel_xgs1210-12-a1.dts realtek: mdio: drop realtek,smi-address property 2026-03-21 22:26:02 +01:00
rtl9302_zyxel_xgs1210-12-b1.dts realtek: mdio: drop realtek,smi-address property 2026-03-21 22:26:02 +01:00
rtl9302_zyxel_xgs1210-12-common.dtsi realtek: switch Zyxel XGS1210 to NVMEM 2026-02-15 12:02:38 +01:00
rtl9302_zyxel_xgs1250-12-a1.dts realtek: force in-band autoneg on XGS1250-12 A1 10G PHYs 2026-03-31 12:54:57 +02:00
rtl9302_zyxel_xgs1250-12-b1.dts realtek: mdio: drop realtek,smi-address property 2026-03-21 22:26:02 +01:00
rtl9302_zyxel_xgs1250-12-common.dtsi realtek: dts: use SWITCH_PORT_LED for XGS1250-12 2026-03-31 12:54:57 +02:00
rtl9303_hasivo_s1100w-8xgt-se.dts realtek: dts: convert devices to PHY_C45() 2026-04-01 14:12:14 +02:00
rtl9303_hasivo_s1100wp-8gt-se.dts realtek: dts: convert devices to PHY_C45() 2026-04-01 14:12:14 +02:00
rtl9303_tplink_tl-st1008f-v2.dts realtek: dts: cleanup of ethernet link speed 2026-03-30 15:00:31 +02:00
rtl9303_vimin_vm-s100-0800ms.dts realtek: dts: cleanup of ethernet link speed 2026-03-30 15:00:31 +02:00
rtl9303_xikestor_sks8300-8t.dts realtek: dts: add PHY_C45() macro 2026-04-01 14:12:14 +02:00
rtl9303_xikestor_sks8300-8x.dts realtek: dts: cleanup of ethernet link speed 2026-03-30 15:00:31 +02:00
rtl9303_xikestor_sks8310-8x.dts realtek: dts: cleanup of ethernet link speed 2026-03-30 15:00:31 +02:00
rtl9311_linksys_lgs352c.dts realtek: dts: convert nand targets to PHY_C22() macro 2026-03-31 12:56:24 +02:00
rtl9312_plasmacloud_common.dtsi realtek: dts: convert devices to PHY_C45() 2026-04-01 14:12:14 +02:00
rtl9312_plasmacloud_esx28.dts realtek: rtl931x: Add support for Plasma Cloud ESX28 Switch 2025-10-04 16:16:22 +02:00
rtl9312_plasmacloud_psx28.dts realtek: rtl931x: Add support for Plasma Cloud PSX28 Switch 2025-10-04 16:16:22 +02:00
rtl9313_xikestor_sks8300-12x-v1.dts realtek: dts: cleanup of ethernet link speed 2026-03-30 15:00:31 +02:00