Device support: NicGiga S100-0800S-M (8× 10G SFP+, RTL9303) in snapshots

NicGiga S100-0800S-M support landed in OpenWrt main on 2026-06-17
(PR #23579) and is in snapshot builds now. Quick landing page for anyone with
this switch.

Specs

  • SoC: Realtek RTL9303 · RAM: 512 MiB DDR3 · Flash: 32 MiB SPI-NOR
  • Ports: 8× 10G SFP+ (SerDes 2–9)
  • Console: front-panel RJ45, 115200 8N1, Cisco-style pinout
  • Target/profile: realtek/rtl930xnicgiga_s100-0800s-m

Close cousin of the TP-Link TL-ST1008F v2 (DTS derived from it), vendor U-Boot
board model RTL9303_8XGE.

Note: SFP presence with no MOD_DEF0

This board routes no software-readable MOD_ABS GPIO for the cages, so presence —
including hot-insert/remove — is detected by polling the SFP EEPROM over I2C.
That needed a generic kernel change, now upstream as 8ac44d24c3a1
(net-next, Reviewed/Tested-by Maxime Chevallier) and backported to OpenWrt in
PR #23836. Hot-plug works on current snapshots.

Flashing

:warning: 32 MiB NOR. Attach a serial console (front RJ45, 115200 8N1) before
starting. RAM-boot the initramfs as a non-destructive trial, back up the OEM
firmware, validate, then sysupgrade.

Placeholders — substitute your own:

  • <TFTP_SERVER> — IP of your TFTP server
  • <DEVICE_IP> — an unused IP on the same subnet for the switch during flashing
  • <BACKUP_HOST> — where you copy the OEM backup off the device
  • <LOAD_ADDR> — the RAM load address your U-Boot uses for TFTP (see note)
  • <MGMT_IP> / <GATEWAY> / <DNS> — your post-flash management settings

1. Back up the OEM firmware first (flashback safety)
RAM-boot the OpenWrt initramfs (step 2 — writes nothing to flash), then from the
OpenWrt shell dump each MTD partition and copy it off:

cat /proc/mtd                       # confirm partition numbering first
for i in $(seq 0 5); do dd if=/dev/mtd$i of=/tmp/oem-mtd$i.bin; done
scp /tmp/oem-mtd*.bin user@<BACKUP_HOST>:/path/to/backups/

Keep the firmware partition (vendor OS) and u-boot especially — together they
let you restore stock later.

2. RAM-boot the initramfs over TFTP
Put openwrt-realtek-rtl930x-nicgiga_s100-0800s-m-initramfs-kernel.bin on your
TFTP server. Interrupt U-Boot on the console and load it into RAM:

setenv ipaddr <DEVICE_IP>
setenv serverip <TFTP_SERVER>
tftpboot <LOAD_ADDR> openwrt-realtek-rtl930x-nicgiga_s100-0800s-m-initramfs-kernel.bin
bootm <LOAD_ADDR>

<LOAD_ADDR> is a RAM address, not an IP — use the one your U-Boot uses for
TFTP loads (e.g. 0x84f00000 on Realtek rtl930x builds; check your boot log /
printenv if unsure). Env-var names may also vary between U-Boot builds.

Verify ports link, SFP modules detect, hot-plug works, MACs and LEDs are correct,
and dmesg shows no EIO spam on empty cages.

3. sysupgrade to flash permanently

cd /tmp
sysupgrade -n openwrt-realtek-rtl930x-nicgiga_s100-0800s-m-squashfs-sysupgrade.bin

The device reboots into OpenWrt on NOR.

4. First access after flashing
Default OpenWrt management is 192.168.1.1 (no password on first boot). Two
ways in:

  • Over the network: set your computer to the 192.168.1.0/24 subnet, then
    SSH (ssh root@192.168.1.1) or use LuCI if installed.

  • Over the serial console (handy if you're remote or don't want to renumber
    your machine):
    you're already on it from flashing — log in as root and set
    the switch to an address on your existing network directly:

    uci set network.lan.ipaddr='<MGMT_IP>'
    uci set network.lan.netmask='255.255.255.0'
    uci set network.lan.gateway='<GATEWAY>'
    uci set network.lan.dns='<DNS>'
    uci commit network
    service network restart
    

Either way, set a root password (passwd) and configure your VLANs from there —
the -n flash starts from defaults, so nothing from the initramfs trial carries
over.

Status

Snapshot-only (no stable release yet); tested on my unit. Reports from anyone
else with this switch are welcome. Thanks @jonasjelonek for the review and the
TL-ST1008F v2 work this was modeled on.

Wiki / ToH: https://openwrt.org/toh/nicgiga/s100-0800s-m

I'd be interested is testing your build on this hardware but I can find this particular model anywhere to purchase. Can you offer any pointers?

look for Xikestor SKS8300-8X instead, they appear to be almost identical.

@markc — I bought mine on Amazon (listing here (https://a.co/d/0b5ai7G6)), but it's been unavailable for a while and looks discontinued, so I wouldn't go hunting one down just to try this. If you're buying fresh you'd be better served by the XikeStor frollic mentioned, or something newer — this port is really aimed at folks who already have a NicGiga S100-0800S-M on the shelf and want it running OpenWrt.

@frollic — agreed, physically that's the closest match out there; of what's currently available the XikeStor most resembles this board. A couple of notes for anyone reading:

  • The SFP+ twin is specifically the SKS8300-8X — the -8T is the 10GBASE-T/RJ45 copper variant (different front-end), so it's not interchangeable with this.
  • The SKS8300-8X already has its own OpenWrt support, so if you go that route, use its device image rather than this one.

Even though the XikeStor is the nearest-looking sibling, the DTS here was actually derived from the TP-Link TL-ST1008F v2 — I hit issues trying to use the XikeStor as the base — so this build is really TP-Link-derived with NicGiga specifics on top.

Good catch, got tricked by Amazon, will change my post.

Btw, the -8T Openwrt is/was broken, all ports are down post boot.

There is a TP-Link Ethernet Switch Network 8 Port 10Gigabit 10000Mbps SFP+ Optical Ports 10G/2.5G/1G Switcher TL-ST1008F on Aliexpress for a reasonable price and a https://openwrt.org/inbox/toh/tp-link/tl-st1008f_1.0 page without any instructions so any opinions as to whether this combo would actually work?

v2 is supported, you need to know which version you'll be receiving.

Thanks for that hint. There is no info on the Aliexpress page to indicate whether it's a v1 or v2 so I will pass on it for now until I chase down a verified v2 model. I've got a 10G Hasivo switch and it's management software is okay but weird (ie; no ssh keys). I use Claude Code to manage my network and it has no problem with OpenWrt on my main GL-iNet router so I will keep an eye out on some GbE or SFP+ 10G router that is OpenWrt friendly so Claude can drive it for me. Thanks again.