]> git.ipfire.org Git - thirdparty/openwrt.git/commit
realtek: add support for Zyxel XGS1010-12 A1 20469/head
authorJan Hoffmann <jan@3e8.eu>
Thu, 27 Feb 2025 19:44:59 +0000 (20:44 +0100)
committerRobert Marko <robimarko@gmail.com>
Mon, 3 Nov 2025 10:07:20 +0000 (11:07 +0100)
commit10504e0c6b489d8f58a739d25c3fe0cff8eec628
treeab8280c30bc1cb43aef57f954fedb212d80499c4
parent67b687af918ed219f26d366b6640825ed0e697fd
realtek: add support for Zyxel XGS1010-12 A1

This device is very similar to the already supported XGS1210-12 A1. For
now, only revision A1 is supported (not marked on the label).

Hardware:
- RTL9302B SoC
- 16 MiB NOR flash
- 128 MiB DDR3 SDRAM
- 8x 1G RJ45 (RTL8218D)
- 2x 2.5G RJ45 (2x RTL8226)
- 2x SFP+ (supporting 1G/2.5G/10G)
- 3.3V UART serial (115200 baud 8N1) on the right side of the case
  (from bottom to top: GND, RX, TX, VCC)

It is originally an unmanaged switch, so there are a few differences:
- No reset button
- Different partition layout: There is some reserved space in the middle
  of the flash which might be used by the bootloader for flash testing.
  The remaining space in between is used for OpenWrt using mtd-concat.
  The largest contiguous area is at the beginning, allowing a maximum
  kernel size of 7 MiB.
- No individual MAC address: This device ships with an empty U-Boot
  environment. When an OpenWrt squashfs image is booted for the first
  time, a random MAC address will be written to the environment (but
  only if the environment has been initialized from the bootloader
  before and contains the default MAC address).

Steps to boot initramfs image via network:
- Configure a TFTP server to provide the OpenWrt initramfs image
- Connect to device using serial (see hardware information above)
- Power on the device and enter U-Boot using Esc when prompted
- Run the following commands (adjust as necessary):
  # rtk network on
  # tftpboot 0x84f00000 192.168.1.100:openwrt-xgs1010-initramfs.bin
  # bootm

Installation on flash:
- Boot initramfs image as described above
- Now is a good time to create a backup of all flash partitions! You'll
  need this if you want to revert to the unmanaged factory firmware at
  some point.
- Use sysupgrade to install OpenWrt
- After restart enter U-Boot again and set the boot command:
  # setenv bootcmd 'rtk network on; bootm 0xb4900000'
  # saveenv
  # run bootcmd
  Note: The command "rtk network on" is only needed because the drivers
  currently rely on some setup by the bootloader (without this the RJ45
  ports don't work). If the drivers improve in the future, it should be
  removed (i.e. change the boot command to "bootm 0xb4900000").

Reverting to factory firmware:
- Write back your backup of the firmware partition (or write just the
  fwconcat1 partition, and erase the other two fwconcat partitions)
- Change the boot command back to "boota" (or just erase the u-boot-env
  partition so the default gets used)

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/20469
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/base-files/etc/board.d/02_network
target/linux/realtek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr
target/linux/realtek/dts/rtl9302_zyxel_xgs1010-12-a1.dts [new file with mode: 0644]
target/linux/realtek/image/rtl930x.mk
target/linux/realtek/rtl930x/config-6.12