NicGiga S100-0800S-M
model : S100-0800S-M brand : NicGiga availability : 2026 supportedcurrentrel : SNAPSHOT target : realtek/rtl930x subtarget : rtl930x cpu : Realtek RTL9303 cpucores : 1 flashmb : 32 flash_chip_type : SPI-NOR rammb : 512 ram_chip_type : DDR3 switch : RTL9303 (integrated) ethernet_gbit_ports_ : 0 sfpplus_ports_ : 8 serial : Yes serial_cons : Yes serial_volt : 3.3 serial_baud : 115200 serial_pinout : RJ45 front-panel console, Cisco-style pinout bootloader : U-Boot oemdevicehomepage : https://www.nicgiga.com/products/s100-0800s-m installationmethod : tftp, sysupgrade
The NicGiga S100-0800S-M is an 8-port 10G SFP+ managed switch built on the
Realtek RTL9303 reference design (vendor U-Boot board model RTL9303_8XGE).
It is closely related to the TP-Link TL-ST1008F v2
and the DTS is derived from it. Support was added in OpenWrt main on 2026-06-17.
Discussion, flashing help and reports: OpenWrt forum thread.
Notes
- Unlike the TL-ST1008F v2, this board exposes no software-readable MOD_ABS
GPIO for the SFP cages; module presence and hot-plug are detected by polling
the SFP EEPROM over I2C. This relies on kernel commit ''8ac44d24c3a1''
("net: phy: sfp: detect presence via I2C when no MOD_DEF0 GPIO"), present in
OpenWrt snapshots via the rtl930x SFP backport.
* One green LED per SFP cage, lit on link + activity at any speed.
* MAC addresses are read from the vendor U-Boot ''ethaddr'' env variable
(base on the SoC ethernet controller, incrementing per-port offset per cage).
Installation
32 MiB NOR flash. A serial console (front-panel RJ45, 115200 8N1) is required. RAM-boot the initramfs image via TFTP from U-Boot as a non-destructive trial, back up the OEM firmware, validate operation, then sysupgrade to flash permanently.
Placeholders below — substitute your own: <TFTP_SERVER> (TFTP server IP),
<DEVICE_IP> (switch IP during flashing), <BACKUP_HOST> (where OEM backups
are copied), <LOAD_ADDR> (RAM load address your U-Boot uses for TFTP),
<MGMT_IP> / <GATEWAY> / <DNS> (post-flash management settings).
1. Back up the OEM firmware (flashback safety)
RAM-boot the OpenWrt initramfs (step 2 — writes nothing to flash), then dump each MTD partition and copy it off the device:
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
Place 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 or
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). Either
set your computer to the 192.168.1.0/24 subnet and SSH to root@192.168.1.1
(or use LuCI), or — handy if you're remote — stay on the serial console you used
for flashing, log in as root, and set the switch onto 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
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.
Flash layout
| Name | Offset | Size | Notes |
|---|---|---|---|
| u-boot | 0x000000 | 0xe0000 | read-only |
| u-boot-env | 0x0e0000 | 0x10000 | ethaddr (nvmem) |
| u-boot-env2 | 0x0f0000 | 0x10000 | read-only |
| jffs2-cfg | 0x100000 | 0x100000 | |
| jffs2-log | 0x200000 | 0x100000 | |
| firmware | 0x300000 | 0x1d00000 | kernel + rootfs |