updated docs and corrected led mapping

This commit is contained in:
Andreas Erhard committed 2026-10-05 00:43:25 +02:00
1 parent 177fb76e1b
commit fa632cdc6e
3 files changed
+80 -79

No files matched your search

+66 -71
View File
@@ -1,14 +1,17 @@
# ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM # ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM / Binardat 2G06-04210GS
## Overview ## Overview
ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM are **managed switches with identical hardware**: ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), and Binardat 2G06-04210GS (unmanaged) are **switches with identical hardware**:
- **CPU:** RTL8372N (confirmed via serial: "Detecting CPU: RTL8372N") - **CPU:** RTL8372N (confirmed via serial: "Detecting CPU: RTL8372N")
- **Flash:** GD25Q128E (16MB) - **Flash:** GD25Q128E (16MB)
- **Ports:** 4x 2.5G RJ45 + 2x 10G SFP+ - **Ports:** 4x 2.5G RJ45 + 2x 10G SFP+
- **Console:** 115200 baud (RTLPlayground firmware) / 9600 baud (stock firmware) - **Console:** 115200 baud (RTLPlayground firmware) / 9600 baud (stock firmware)
**Note:** These devices use **PCB-SWTG024AS-A-2.0.1** hardware. The `MACHINE_ONT_S207CW_62TS_SE` definition uses the same port mapping and LED configuration as `MACHINE_PCB_SWTG024AS_A_2_0_1` (which was tested and confirmed working with all ports reliable). **Note:** These devices use **PCB-SWTG024AS-A-2.0.1** hardware. The `MACHINE_ONT_S207CW_62TS_SE` definition uses a **custom configuration** with:
- Corrected port mapping (physical ports 1-4 = RJ45, 5-6 = SFP)
- Optimized LED sets for different port wiring (RJ45 Ports 1-2 have reversed LED wiring)
- Custom LED mux configuration from PCB-SWTG024AS-A-2.0.1
## Device Photos ## Device Photos
@@ -53,7 +56,7 @@ ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM are **managed switches with identi
## LED Behavior ## LED Behavior
### RJ45 Ports (Physical 1-4, Logical 0-3) ### RJ45 Ports (Physical 1-4)
| LED Color | Speed | Physical LED Position | | LED Color | Speed | Physical LED Position |
|---|---|---| |---|---|---|
@@ -61,7 +64,7 @@ ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM are **managed switches with identi
| **Orange** | 1G / 100M / 10M | Left LED | | **Orange** | 1G / 100M / 10M | Left LED |
| **Off** | No link | - | | **Off** | No link | - |
### SFP+ Ports (Physical 5-6, Logical 4-5) ### SFP+ Ports (Physical 5-6)
| LED Color | Speed | Physical LED Position | | LED Color | Speed | Physical LED Position |
|---|---|---| |---|---|---|
@@ -74,54 +77,74 @@ ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM are **managed switches with identi
### machine.h ### machine.h
```c ```c
// #define MACHINE_PCB_SWTG024AS_A_2_0_1 // Same config, confirmed working
#define MACHINE_ONT_S207CW_62TS_SE #define MACHINE_ONT_S207CW_62TS_SE
// ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM // ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM
// RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB) // RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB)
// Using PCB_SWTG024AS_A_2_0_1 config (all ports reliable, order was wrong) // Custom configuration with corrected port mapping and LED behavior
// Physical ports: 1-4 = RJ45, 5 = SFP (SDS0), 6 = SFP (SDS1) // Physical ports: 1-4 = RJ45, 5 = SFP (SDS0), 6 = SFP (SDS1)
// Logical ports: 3 = SFP (SDS0), 4-7 = RJ45, 8 = SFP (SDS1) // Logical ports: 3 = SFP (SDS0), 4-7 = RJ45, 8 = SFP (SDS1)
``` ```
### machine.c Configuration ### machine.c Configuration
Uses the same configuration as `MACHINE_PCB_SWTG024AS_A_2_0_1`: Custom configuration for ONT-S207CW-62TS-SE:
```c ```c
#elif defined MACHINE_PCB_SWTG024AS_A_2_0_1 #elif defined MACHINE_ONT_S207CW_62TS_SE
__code const struct machine machine = { __code const struct machine machine = {
.machine_name = "PCB-SWTG024AS-A-2.0.1", .machine_name = "ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM",
.isRTL8373 = 0, .isRTL8373 = 0,
.mac_flash_offset = 0x1FC000,
.min_port = 3, .min_port = 3,
.max_port = 8, .max_port = 8,
.n_sfp = 2, .n_sfp = 2,
.log_to_phys_port = {0, 0, 0, 5, 1, 2, 3, 4, 6}, .log_to_phys_port = {0, 0, 0, 5, 4, 3, 2, 1, 6},
.phys_to_log_port = {4, 5, 6, 7, 3, 8, 0, 0, 0}, .phys_to_log_port = {7, 6, 5, 4, 3, 8, 0, 0, 0},
.is_sfp = {0, 0, 0, 1, 0, 0, 0, 0, 2}, .is_sfp = {0, 0, 0, 1, 0, 0, 0, 0, 2},
// SFP port on SDS0 / logical port 3 // SFP port on SDS0 / logical port 3
.sfp_port[0].pin_detect = GPIO37, .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].sds = 0,
.sfp_port[0].i2c = { .sda = GPIO41_I2C_SDA3_MDIO1, .scl = GPIO40_I2C_SCL3_MDC1 }, .sfp_port[0].i2c = I2CBUS( GPIO41_I2C_SDA3_MDIO1, GPIO40_I2C_SCL3_MDC1 ),
// SFP port on SDS1 / logical port 8 // SFP port on SDS1 / logical port 8
.sfp_port[1].pin_detect = GPIO38, .sfp_port[1].pin_detect = GPIO38,
.sfp_port[1].pin_los = GPIO_NA,
.sfp_port[1].pin_tx_disable = GPIO_NA,
.sfp_port[1].sds = 1, .sfp_port[1].sds = 1,
.sfp_port[1].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 }, .sfp_port[1].i2c = I2CBUS( GPIO39_I2C_SDA4, GPIO40_I2C_SCL3_MDC1 ),
.reset_pin = GPIO_NA, .reset_pin = GPIO_NA,
.high_leds = { .mux = LED_28_SYS | LED_29, .enable = LED_27 | LED_28_SYS | LED_29 }, .high_leds = { .mux = LED_28_SYS | LED_29, .enable = LED_27 | LED_28_SYS | LED_29 },
.port_led_set = { 0, 0, 0, 1, 0, 0, 0, 0, 1}, .port_led_set = { 0, 0, 0, 3, 0, 0, 2, 2, 3},
.led_sets = { .led_sets = {
{ {
// Set 0: RJ45 Ports 3-4 (normal wiring)
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
LEDS_2G5 | LEDS_LINK | LEDS_ACT,
LEDS_DUPLEX,
0
},
{
// Set 1: Unused
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_LINK | LEDS_ACT,
LEDS_10G | LEDS_LINK | LEDS_ACT,
LEDS_2G5 | LEDS_LINK,
LEDS_COL | LEDS_DUPLEX
},
{
// Set 2: RJ45 Ports 1-2 (reversed wiring)
LEDS_2G5 | LEDS_LINK | LEDS_ACT, LEDS_2G5 | LEDS_LINK | LEDS_ACT,
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
LEDS_DUPLEX, LEDS_DUPLEX,
LEDS_2G5 | LEDS_LINK | LEDS_ACT 0
}, },
{ {
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_LINK | LEDS_ACT, // Set 3: SFP Ports 5-6 (reversed wiring for Port 6)
LEDS_10G | LEDS_LINK | LEDS_ACT, LEDS_10G | LEDS_LINK | LEDS_ACT,
LEDS_2G5 | LEDS_1G | LEDS_LINK | LEDS_ACT,
LEDS_2G5 | LEDS_LINK, LEDS_2G5 | LEDS_LINK,
LEDS_COL | LEDS_DUPLEX LEDS_COL | LEDS_DUPLEX
}, },
@@ -133,34 +156,33 @@ __code const struct machine machine = {
}, },
}; };
``` ```
```
## Port to Logical Mapping ## Port to Logical Mapping
Using `PCB_SWTG024AS_A_2_0_1` mapping (logical ports 3-8): Custom mapping for ONT-S207CW-62TS-SE:
| Physical Port | Logical Port | Type | LED Set | | Physical Port | Logical Port | Type | LED Set |
|---|---|---|---| |---|---|---|---|
| 1 | 4 | RJ45 | 0 | | 1 | 7 | RJ45 | 2 |
| 2 | 5 | RJ45 | 0 | | 2 | 6 | RJ45 | 2 |
| 3 | 6 | RJ45 | 0 | | 3 | 5 | RJ45 | 0 |
| 4 | 7 | RJ45 | 0 | | 4 | 4 | RJ45 | 0 |
| 5 | 3 | SFP+ (SDS0) | 1 | | 5 | 3 | SFP+ (SDS0) | 3 |
| 6 | 8 | SFP+ (SDS1) | 1 | | 6 | 8 | SFP+ (SDS1) | 3 |
**Note:** The web UI will show ports in a different order due to this mapping. Ports will appear as 4321 for RJ45, but all ports will be functional and reliable. This is the same behavior as the original v10 build that worked correctly. **Note:** Ports 1-2 (RJ45) have reversed LED wiring and use LED-Set 2. SFP Ports 5-6 use LED-Set 3 to account for wiring differences.
## Firmware Files ## Firmware Files
| File | Size | Purpose | | File | Size | Purpose |
|---|---|---| |---|---|---|
| `rtlplayground-ONT_S207CW_62TS_SE-v11.bin` | 524288 bytes | Direct flash via CH341A/SPI programmer | | `ONT_S207CW_62TS_SE-v22.bin` | 524288 bytes | Direct flash via CH341A/SPI programmer |
| `rtlplayground_oem_upgrade-ONT_S207CW_62TS_SE-v11.bin` | 540710 bytes | OEM upgrade via web UI (Loader Mode) | | `rtlplayground_oem_upgrade-ONT_S207CW_62TS_SE-v22.bin` | 540710 bytes | OEM upgrade via web UI (Loader Mode) |
### Firmware Size Check ### Firmware Size Check
- **Flash chip:** GD25Q128E = 16MB = 16777216 bytes - **Flash chip:** GD25Q128E = 16MB = 16777216 bytes
- **Firmware size:** ~512KB-528KB - **Firmware size:** 524288 bytes (512KB)
- **Status:** ✅ **Plenty of space available** - No size issues with either old or new web UI - **Status:** ✅ **Plenty of space available** - No size issues with old or new web UI
## Flashing Instructions ## Flashing Instructions
@@ -177,12 +199,12 @@ Using `PCB_SWTG024AS_A_2_0_1` mapping (logical ports 3-8):
sudo apt install flashrom sudo apt install flashrom
# Flash the firmware (may need sudo) # Flash the firmware (may need sudo)
flashrom -p ch341a_spi -c "GD25Q128E/GD25B128E/GD25R128E/GD25Q127C" -w rtlplayground-ONT_S207CW_62TS_SE-v11.bin --noverify-all flashrom -p ch341a_spi -c "GD25Q128E/GD25B128E/GD25R128E/GD25Q127C" -w ONT_S207CW_62TS_SE-v22.bin --noverify-all
``` ```
**Alternative command (if above fails):** **Alternative command (if above fails):**
```bash ```bash
flashrom -p ch341a_spi -c "GD25Q128E" -w rtlplayground-ONT_S207CW_62TS_SE-v11.bin flashrom -p ch341a_spi -c "GD25Q128E" -w ONT_S207CW_62TS_SE-v22.bin
``` ```
### Via Loader Mode (Web UI Upgrade) ### Via Loader Mode (Web UI Upgrade)
@@ -198,13 +220,13 @@ The OEM upgrade file can be flashed via the device's loader mode:
2. **Upload via HTTP:** 2. **Upload via HTTP:**
```bash ```bash
curl -T rtlplayground_oem_upgrade-ONT_S207CW_62TS_SE-v11.bin http://192.168.10.247/firmware curl -T rtlplayground_oem_upgrade-ONT_S207CW_62TS_SE-v22.bin http://192.168.10.247/firmware
``` ```
3. **Or via Web Browser:** 3. **Or via Web Browser:**
- Access `http://192.168.10.247` - Access `http://192.168.10.247`
- Use the firmware update function - Use the firmware update function
- Upload `rtlplayground_oem_upgrade-ONT_S207CW_62TS_SE-v11.bin` - Upload `rtlplayground_oem_upgrade-ONT_S207CW_62TS_SE-v22.bin`
- Wait for completion and reboot - Wait for completion and reboot
### Via RTLPlayground Web UI (After First Flash) ### Via RTLPlayground Web UI (After First Flash)
@@ -246,47 +268,20 @@ If flashing fails and the switch does not boot:
| **CPU String** | "RTL8372N" | | **CPU String** | "RTL8372N" |
| **Loader Mode IP** | 192.168.10.247 | | **Loader Mode IP** | 192.168.10.247 |
## Known Issues & Fixes ## Configuration Details
### ✅ Issue: LEDs showing wrong colors (FIXED in v11) - **CPU:** RTL8372N (`.isRTL8373 = 0`)
**Symptom:** All RJ45 ports show green at all speeds, SFP LEDs incorrect - **SFP:** SDS0 on logical port 3 (GPIO37), SDS1 on logical port 8 (GPIO38)
**Root Cause:** Wrong LED mux configuration and LED set assignments - **Port Mapping:** Physical 1-4 → Logical 7-4, Physical 5-6 → Logical 3,8
**Fix:** Use v11 firmware with: - **LED Wiring:** RJ45 Ports 1-2 and SFP Port 6 have reversed LED pins (orange/green swapped)
- Original firmware LED mux values (extracted from stock firmware) - **LED Sets:** 4 sets total - Set 0/1 unused, Set 2 for RJ45 1-2, Set 3 for SFP 5-6
- Correct LED set to physical port mapping
- Proper LED color logic (Green=2.5G/10G, Orange=1G/2.5G/100M/10M)
### ✅ Issue: Port order reversed in web UI (FIXED in v11)
**Symptom:** Web UI shows ports as 4321 instead of 1234
**Root Cause:** Incorrect log_to_phys_port and phys_to_log_port mapping
**Fix:** Corrected mapping to preserve physical port order
### ✅ Issue: No network connectivity after flash (FIXED)
**Symptom:** Switch boots but no ping response
**Root Cause:** Wrong CPU type configuration
**Fix:** Ensure `.isRTL8373 = 0` (this is RTL8372N, not RTL8373)
### ✅ Issue: SFP modules not detected (FIXED)
**Symptom:** SFP ports not working
**Root Cause:** Wrong SFP port SDS assignments
**Fix:** Correct SDS0/SDS1 assignments and GPIO pins
## Version History
| Version | Date | Changes | Status |
|---|---|---|---|
| v3 | 2026-09-14 | Initial PCB_SWTG024AS_A_2_0_1 config | ⚠️ Port order wrong, but all ports worked |
| v10 | 2026-09-17 | Various LED configs tested | ❌ Various issues |
| v17+ | 2026-09-20 | **Returned to PCB_SWTG024AS_A_2_0_1 config** | ✅ All ports reliable (order wrong but functional) |
## Notes ## Notes
- **ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM use identical PCB-SWTG024AS-A-2.0.1 hardware** - ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), and Binardat 2G06-04210GS (unmanaged) use **identical PCB-SWTG024AS-A-2.0.1 hardware**
- The `MACHINE_ONT_S207CW_62TS_SE` definition uses the **same configuration as `MACHINE_PCB_SWTG024AS_A_2_0_1`** which was confirmed working with all ports reliable - Web UI shows correct physical port order (1-2-3-4 for RJ45, 5-6 for SFP)
- Port numbering in web UI will show as 4321 for RJ45 ports (order reversed) but all ports will function correctly - Loader Mode always remains accessible at `192.168.10.247` for recovery
- LED colors use the PCB_SWTG024AS_A_2_0_1 configuration - Serial console: 9600 baud (stock) → 115200 baud (RTLPlayground)
- The **Loader Mode** always remains accessible at 192.168.10.247 for recovery
- Serial console baud rate changes from 9600 (stock) to 115200 (RTLPlayground)
## References ## References
+12 -6
View File
@@ -936,15 +936,15 @@ __code const struct machine machine = {
}; };
#elif defined MACHINE_ONT_S207CW_62TS_SE #elif defined MACHINE_ONT_S207CW_62TS_SE
// ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM // ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), Binardat 2G06-04210GS (unmanaged)
// RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB) // RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB)
// Port mapping: reversed RJ45 ports // Custom configuration with correct port order and LED colors
// Physical ports: 1-4 = RJ45, 5 = SFP (SDS0), 6 = SFP (SDS1) // Physical ports: 1-4 = RJ45, 5 = SFP (SDS0), 6 = SFP (SDS1)
// Logical ports: 3 = SFP (SDS0), 8 = SFP (SDS1) // Logical ports: 3 = SFP (SDS0), 4-7 = RJ45, 8 = SFP (SDS1)
// RJ45 ports: logical 4->phys 4, 5->phys 3, 6->phys 2, 7->phys 1 // 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 = { __code const struct machine machine = {
.machine_name = "ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM", .machine_name = "ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM / Binardat 2G06-04210GS",
.isRTL8373 = 0, .isRTL8373 = 0,
.min_port = 3, .min_port = 3,
.max_port = 8, .max_port = 8,
@@ -969,7 +969,7 @@ __code const struct machine machine = {
.reset_pin = GPIO_NA, .reset_pin = GPIO_NA,
.high_leds = { .mux = LED_28_SYS | LED_29, .enable = LED_27 | LED_28_SYS | LED_29 }, .high_leds = { .mux = LED_28_SYS | LED_29, .enable = LED_27 | LED_28_SYS | LED_29 },
.port_led_set = { 0, 0, 0, 1, 0, 0, 2, 2, 1}, .port_led_set = { 0, 0, 0, 3, 0, 0, 2, 2, 3},
.mac_flash_offset = 0x1FC000, .mac_flash_offset = 0x1FC000,
.led_sets = { .led_sets = {
{ {
@@ -990,6 +990,12 @@ __code const struct machine machine = {
LEDS_DUPLEX, // LED 2 LEDS_DUPLEX, // LED 2
0 // LED 3 0 // LED 3
}, },
{
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
},
}, },
.led_mux_custom = 1, .led_mux_custom = 1,
.led_mux = { .led_mux = {
+2 -2
View File
@@ -42,10 +42,10 @@
// #define MACHINE_FNS1200P // #define MACHINE_FNS1200P
// #define MACHINE_PCB_SWTG024AS_A_2_0_1 // #define MACHINE_PCB_SWTG024AS_A_2_0_1
#define MACHINE_ONT_S207CW_62TS_SE #define MACHINE_ONT_S207CW_62TS_SE
// ONT-S207CW-62TS-SE and Binardat 2G06-04210GSM // ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), Binardat 2G06-04210GS (unmanaged)
// RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB) // RTL8372N, 4x2.5G RJ45 + 2x10G SFP+, GD25Q128E (16MB)
// Physical ports: 1-4 = RJ45, 5-6 = SFP // Physical ports: 1-4 = RJ45, 5-6 = SFP
// Using PCB_SWTG024AS_A_2_0_1 config (all ports reliable, order was wrong) // 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) // Logical ports: 3-8, Port 3 = SFP (SDS0), Ports 4-7 = RJ45, Port 8 = SFP (SDS1)
// #define MACHINE_SWTG024AS_A_2_0_1_5C_1SFP // #define MACHINE_SWTG024AS_A_2_0_1_5C_1SFP
// #define MACHINE_SWTG024AS_V2_0 // #define MACHINE_SWTG024AS_V2_0