openwrt/target/linux/realtek/dts
Damien Dejean 94607d6285 realtek: add support for Zyxel XMG1915-10E
The XMG1915-10E is a switch with 8 copper ports and 2 SFP+ cages.

Specifications:
---------------
  * SoC: RTL9302C
  * Flash: 32 MiB SPI NOR flash
  * RAM: 256 MiB
  * Ethernet: 8x 10/100/1000/2500 Mbps (RTL8224)
  * SFP: 2x SFP+ cages
  * UART: 1x 4 pins serial header, 115200 bauds, 8n1, 3.3v logic levels,
          pinout: unused (top), TX, RX, GND (bottom)
  * Buttons: 1x "Reset" button

Works:
------
  - 2 SFP+ cages either 1G/10G or 2.5G
  - 8*2.5G Ethernet ports
  - Switch function
  - LEDs
  - Boot from flash
  - Assigning MAC addresses from flash

Ethernet ports:
---------------
The 8x 2.5Gbps ethernet ports are provided by two RTL8224 chips. The
ports are supported by the upstream realtek PHY driver plus a local
initialization patch for the 10g-qxgmii mode.

Installation:
-------------
This device uses ZyNOS instead of Linux which makes the installation a
bit cumbersome. OpenWRT will be installed on the slot of the second
firmware image, thus the switch original firmware can be booted with a
little change. The serial console is required.

1. Set the switch to boot from the first image. This is required to
   be sure not to be blocked in the middle of the installation
   procedure.

2. Connect to the switch using the serial adapter and interrupt the boot
   process by pressing "Enter" repeatedly.

3. Load the OpenWRT initramfs image using xmodem. From bootext console
   (use ATHE to get the list of commands):

   > ATUP 81800000,file_length
   > ATGO 81800000

4. Wait for OpenWRT to boot, once this is done transfer the loader
   binary and the sysupgrade image to /tmp using scp.

5. Install OpenWRT permanently by writing the images on the flash:

  > mtd write /tmp/loader.bin loader
  > mtd write /tmp/sysupgrade.bin firmware

6. Reboot the switch and from the stock firmware set the configuration
   to boot from the second image (Maintenance > Firmware upgrade > Boot
   image).

7. Reboot again and enjoy OpenWRT.

Recovery/Return to stock:
-------------------------
1. Connect the switch using the serial adapter and interrupt the boot
   process during the "DRAM POST: Testing:" sequence by pressing '$'
   until the "XMG1915$" prompt appears.

2. Start an ymodem upgrade using the following command and use an xmodem
   upload tool to send the .bin file provided in an OEM upgrade package.

   XMG1915$ upgradeY image2 81000000 115200
   ## Ready for binary (ymodem) download to 0x081000000 at 115200 bps...

3. Wait for the upgrade process to finish and reboot the switch.

Signed-off-by: Damien Dejean <dam.dejean@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21341
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 14:26:03 +02:00
..
macros.dtsi realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl83xx_d-link_dgs-1210_common.dtsi
rtl83xx_d-link_dgs-1210_gpio_sfp.dtsi
rtl83xx_d-link_dgs-1210_gpio.dtsi
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: fix pinmux comment in rtl931x.dtsi 2026-04-12 18:23:08 +02:00
rtl8380_d-link_dgs-1210-10mp-f.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8380_datto_l8.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8380_engenius_ews2910p-v1.dts
rtl8380_engenius_ews2910p-v3.dts realtek: support EnGenius EWS2910P v3 2025-05-31 23:19:01 +02:00
rtl8380_engenius_ews2910p.dtsi realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02: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: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8380_linksys_lgs310c.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8380_netgear_gigabit.dtsi realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02: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: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8380_tplink_sg2xxx.dtsi realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02: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: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_allnet_all-sg8208m.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_apresia_aplgs120gtss.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_d-link_dgs-1210-10p.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_d-link_dgs-1210-16.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_d-link_dgs-1210-20.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_d-link_dgs-1210-26.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_d-link_dgs-1210-28_common.dtsi realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +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: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_inaba_aml2-17gp.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_iodata_bsh-g24mb.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_panasonic_m16eg-pn28160k.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_panasonic_m24eg-pn28240k.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +02:00
rtl8382_tplink_t1600g-28ts-v3.dts realtek: drop INTERNAL_PHY() macro 2026-04-13 18:42:33 +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: fix TP-Link SG2452P mdio bus 2026-04-12 18:32:35 +02:00
rtl8393_zyxel_gs1900-48-a1.dts realtek: extract shared GS1900-48 dtsi 2026-04-11 19:32:57 +02:00
rtl8393_zyxel_gs1900-48.dtsi realtek: gs1900-48: add RTL8231 resets 2026-04-11 19:36:17 +02:00
rtl8393_zyxel_gs1900-48hp-a1.dts realtek: add Zyxel GS1900-48HP A1 support 2026-04-11 19:35:53 +02:00
rtl9301_d-link_dgs-1250-28x.dts realtek: dts: convert DGS-1250-28X to SWITCH_PORT_SFP() 2026-04-16 11:28:04 +02:00
rtl9301_linksys_lgs328c.dts treewide: strip trailing whitespace 2026-04-08 10:05:53 +02:00
rtl9302_plasmacloud_common.dtsi realtek: Fix pair-order for rtl930x based plasmacloud devices 2026-04-11 12:17:30 +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: XikeStor SKS8300-12E2T2X: fix GPIO assignments 2026-04-13 11:02:35 +02:00
rtl9302_zyxel_xgs1x10-12-common.dtsi treewide: strip trailing whitespace 2026-04-08 10:05:53 +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 treewide: strip trailing whitespace 2026-04-08 10:05:53 +02:00
rtl9302_zyxel_xmg1915-10e.dts realtek: add support for Zyxel XMG1915-10E 2026-04-16 14:26:03 +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: psx28: specify POE MCU reset GPIO 2026-04-14 10:38:28 +02:00
rtl9313_xikestor_sks8300-12x-v1.dts treewide: strip trailing whitespace 2026-04-08 10:05:53 +02:00