From b0eab52a2ef216108bdb13590c9e659790898702 Mon Sep 17 00:00:00 2001 From: Andreas Erhard Date: Wed, 7 Oct 2026 01:18:08 +0200 Subject: [PATCH] applied feedback from review --- doc/devices/ONT-S207CW-62TS-SE.md | 96 +++++-------------------------- machine.c | 41 ++++++------- machine.h | 8 +-- 3 files changed, 30 insertions(+), 115 deletions(-) diff --git a/doc/devices/ONT-S207CW-62TS-SE.md b/doc/devices/ONT-S207CW-62TS-SE.md index 08342256..fd5558e2 100644 --- a/doc/devices/ONT-S207CW-62TS-SE.md +++ b/doc/devices/ONT-S207CW-62TS-SE.md @@ -58,19 +58,19 @@ ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), and Binardat 2G06-04210GS ### RJ45 Ports (Physical 1-4) -| LED Color | Speed | Physical LED Position | -|---|---|---| -| **Green** | 2.5G | Right LED | -| **Orange** | 1G / 100M / 10M | Left LED | -| **Off** | No link | - | +| LED Color | Speed | +|---|---| +| **Green** | 2.5G | +| **Orange** | 1G / 100M / 10M | +| **Off** | No link | ### SFP+ Ports (Physical 5-6) -| LED Color | Speed | Physical LED Position | -|---|---|---| -| **Green** | 10G | Right LED | -| **Orange** | 2.5G / 1G | Left LED | -| **Off** | No link / No SFP module | - | +| LED Color | Speed | +|---|---| +| **Green** | 10G | +| **Orange** | 2.5G / 1G | +| **Off** | No link / No SFP module | ## Port to Logical Mapping @@ -89,77 +89,7 @@ Custom mapping for ONT-S207CW-62TS-SE: ## Flashing Instructions -### Prerequisites -- **GD25Q128E** flash chip (16MB) -- **CH341A** SPI programmer (recommended) -- **flashrom** tool (Linux) or **Flashrom GUI** (Windows) - -### Via CH341A (Direct Flash) - -**Linux (flashrom):** -```bash -# Install flashrom first -sudo apt install flashrom - -# Flash the firmware (may need sudo) -flashrom -p ch341a_spi -c "GD25Q128E/GD25B128E/GD25R128E/GD25Q127C" -w firmware.bin --noverify-all -``` - -**Alternative command (if above fails):** -```bash -flashrom -p ch341a_spi -c "GD25Q128E" -w firmware.bin -``` - -### Via Loader Mode (Web UI Upgrade) - -The firmware can be flashed via the device's loader mode: - -1. **Enter Loader Mode:** - - Power off the switch - - Hold the reset button - - Power on while holding reset - - Release after ~5 seconds - - Switch should be accessible at `192.168.10.247` - -2. **Upload via HTTP:** - ```bash - curl -T firmware.bin http://192.168.10.247/firmware - ``` - -3. **Or via Web Browser:** - - Access `http://192.168.10.247` - - Use the firmware update function - - Upload the firmware file - - Wait for completion and reboot - -### Via RTLPlayground Web UI (After First Flash) - -Once RTLPlayground firmware is running: -1. Access web interface at `http://192.168.2.1` -2. Navigate to **System > Firmware Update** -3. Upload the firmware file -4. Wait for flash completion and reboot - -## Recovery - -If flashing fails and the switch does not boot: - -### Method 1: Loader Mode Recovery -- The loader mode always remains accessible -- Switch boots to `192.168.10.247` when in loader mode -- Flash via: `curl -T firmware.bin http://192.168.10.247/firmware` - -### Method 2: Serial Recovery (if loader mode fails) -- Connect UART: 115200 baud, 8N1 -- Use CH341A to flash directly: - ```bash - flashrom -p ch341a_spi -c "GD25Q128E" -w firmware.bin - ``` - -### Method 3: SOIC8 Clip -- Connect SOIC8 clip to CH341A -- Use flashrom as above -- Chip: GD25Q128E (16MB) +See the [README.md](../../README.md) for general flashing instructions. ## Stock Firmware Information @@ -173,11 +103,11 @@ If flashing fails and the switch does not boot: ## Configuration Details -- **CPU:** RTL8372N (`.isRTL8373 = 0`) +- **CPU:** RTL8372N - **SFP:** SDS0 on logical port 3 (GPIO37), SDS1 on logical port 8 (GPIO38) - **Port Mapping:** Physical 1-4 → Logical 7-4, Physical 5-6 → Logical 3,8 - **LED Wiring:** RJ45 Ports 1-2 and SFP Port 6 have reversed LED pins (orange/green swapped) -- **LED Sets:** 4 sets total - Set 0/1 unused, Set 2 for RJ45 1-2, Set 3 for SFP 5-6 +- **LED Sets:** Set 0 for RJ45 Ports 3-4, Set 1 unused, Set 2 for RJ45 Ports 1-2, Set 3 for SFP Ports 5-6 ## Notes diff --git a/machine.c b/machine.c index db2c9827..133ca3ba 100644 --- a/machine.c +++ b/machine.c @@ -936,13 +936,6 @@ __code const struct machine machine = { }; #elif defined MACHINE_ONT_S207CW_62TS_SE -// ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), Binardat 2G06-04210GS (unmanaged) -// RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB) -// LAN ports mounted upside-down on PCB -// Custom configuration with correct port order and LED colors -// Physical ports: 1-4 = RJ45, 5 = SFP (SDS0), 6 = SFP (SDS1) -// Logical ports: 3 = SFP (SDS0), 4-7 = RJ45, 8 = SFP (SDS1) -// Port mapping: Phys 1->Log 7, 2->Log 6, 3->Log 5, 4->Log 4, 5->Log 3, 6->Log 8 __code const struct machine machine = { .machine_name = "ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM / Binardat 2G06-04210GS", @@ -954,14 +947,12 @@ __code const struct machine machine = { .phys_to_log_port = {7, 6, 5, 4, 3, 8, 0, 0, 0}, .is_sfp = {0, 0, 0, 1, 0, 0, 0, 0, 2}, - // SFP port on SDS0 / logical port 3 .sfp_port[0].pin_detect = GPIO37, .sfp_port[0].pin_los = GPIO_NA, .sfp_port[0].pin_tx_disable = GPIO_NA, .sfp_port[0].sds = 0, .sfp_port[0].i2c = I2CBUS( GPIO41_I2C_SDA3_MDIO1, GPIO40_I2C_SCL3_MDC1 ), - // SFP port on SDS1 / logical port 8 .sfp_port[1].pin_detect = GPIO38, .sfp_port[1].pin_los = GPIO_NA, .sfp_port[1].pin_tx_disable = GPIO_NA, @@ -974,28 +965,28 @@ __code const struct machine machine = { .mac_flash_offset = 0x1FC000, .led_sets = { { - LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // LED 0 (orange): 1G/100M/10M - LEDS_2G5 | LEDS_LINK | LEDS_ACT, // LED 1 (green): 2.5G - LEDS_DUPLEX, // LED 2 - 0 // LED 3 + LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, + LEDS_2G5 | LEDS_LINK | LEDS_ACT, + 0, + 0 }, { - LEDS_2G5 | LEDS_1G | LEDS_LINK | LEDS_ACT, // LED 0 (orange): 2.5G/1G - LEDS_10G | LEDS_LINK | LEDS_ACT, // LED 1 (green): 10G - LEDS_2G5 | LEDS_LINK, // LED 2 - LEDS_COL | LEDS_DUPLEX // LED 3 + 0, + 0, + 0, + 0 }, { - LEDS_2G5 | LEDS_LINK | LEDS_ACT, // LED 0 (orange): 2.5G - LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // LED 1 (green): 1G/100M/10M - LEDS_DUPLEX, // LED 2 - 0 // LED 3 + LEDS_2G5 | LEDS_LINK | LEDS_ACT, + LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, + 0, + 0 }, { - LEDS_10G | LEDS_LINK | LEDS_ACT, // LED 0 (green): 10G (SFP Port 6 swapped) - LEDS_2G5 | LEDS_1G | LEDS_LINK | LEDS_ACT, // LED 1 (orange): 2.5G/1G (SFP Port 6 swapped) - LEDS_2G5 | LEDS_LINK, // LED 2 - LEDS_COL | LEDS_DUPLEX // LED 3 + LEDS_10G | LEDS_LINK | LEDS_ACT, + LEDS_2G5 | LEDS_1G | LEDS_LINK | LEDS_ACT, + 0, + 0 // LED 3 }, }, .led_mux_custom = 1, diff --git a/machine.h b/machine.h index de96006a..30575781 100644 --- a/machine.h +++ b/machine.h @@ -41,13 +41,7 @@ // #define MACHINE_HI_K0801WS // #define MACHINE_FNS1200P // #define MACHINE_PCB_SWTG024AS_A_2_0_1 -#define MACHINE_ONT_S207CW_62TS_SE -// ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), Binardat 2G06-04210GS (unmanaged) -// RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB) -// LAN ports mounted upside-down on PCB -// Physical ports: 1-4 = RJ45, 5-6 = SFP -// Custom configuration with correct port order and LED colors -// Logical ports: 3-8, Port 3 = SFP (SDS0), Ports 4-7 = RJ45, Port 8 = SFP (SDS1) +// #define MACHINE_ONT_S207CW_62TS_SE // #define MACHINE_SWTG024AS_A_2_0_1_5C_1SFP // #define MACHINE_SWTG024AS_V2_0 // #define MACHINE_FG_4GT_2SX_V2_0