mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
applied feedback from review
This commit is contained in:
1 parent
8ce062c349
commit
b0eab52a2e
3 files changed
+35
-120
No files matched your search
@@ -58,19 +58,19 @@ ONT-S207CW-62TS-SE, Binardat 2G06-04210GSM (managed), and Binardat 2G06-04210GS
|
|||||||
|
|
||||||
### RJ45 Ports (Physical 1-4)
|
### RJ45 Ports (Physical 1-4)
|
||||||
|
|
||||||
| LED Color | Speed | Physical LED Position |
|
| LED Color | Speed |
|
||||||
|---|---|---|
|
|---|---|
|
||||||
| **Green** | 2.5G | Right LED |
|
| **Green** | 2.5G |
|
||||||
| **Orange** | 1G / 100M / 10M | Left LED |
|
| **Orange** | 1G / 100M / 10M |
|
||||||
| **Off** | No link | - |
|
| **Off** | No link |
|
||||||
|
|
||||||
### SFP+ Ports (Physical 5-6)
|
### SFP+ Ports (Physical 5-6)
|
||||||
|
|
||||||
| LED Color | Speed | Physical LED Position |
|
| LED Color | Speed |
|
||||||
|---|---|---|
|
|---|---|
|
||||||
| **Green** | 10G | Right LED |
|
| **Green** | 10G |
|
||||||
| **Orange** | 2.5G / 1G | Left LED |
|
| **Orange** | 2.5G / 1G |
|
||||||
| **Off** | No link / No SFP module | - |
|
| **Off** | No link / No SFP module |
|
||||||
|
|
||||||
## Port to Logical Mapping
|
## Port to Logical Mapping
|
||||||
|
|
||||||
@@ -89,77 +89,7 @@ Custom mapping for ONT-S207CW-62TS-SE:
|
|||||||
|
|
||||||
## Flashing Instructions
|
## Flashing Instructions
|
||||||
|
|
||||||
### Prerequisites
|
See the [README.md](../../README.md) for general flashing instructions.
|
||||||
- **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)
|
|
||||||
|
|
||||||
## Stock Firmware Information
|
## Stock Firmware Information
|
||||||
|
|
||||||
@@ -173,11 +103,11 @@ If flashing fails and the switch does not boot:
|
|||||||
|
|
||||||
## Configuration Details
|
## Configuration Details
|
||||||
|
|
||||||
- **CPU:** RTL8372N (`.isRTL8373 = 0`)
|
- **CPU:** RTL8372N
|
||||||
- **SFP:** SDS0 on logical port 3 (GPIO37), SDS1 on logical port 8 (GPIO38)
|
- **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
|
- **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 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
|
## Notes
|
||||||
|
|
||||||
|
|||||||
@@ -936,13 +936,6 @@ __code const struct machine machine = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#elif defined MACHINE_ONT_S207CW_62TS_SE
|
#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 = {
|
__code const struct machine machine = {
|
||||||
.machine_name = "ONT-S207CW-62TS-SE / Binardat 2G06-04210GSM / Binardat 2G06-04210GS",
|
.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},
|
.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[0].pin_detect = GPIO37,
|
.sfp_port[0].pin_detect = GPIO37,
|
||||||
.sfp_port[0].pin_los = GPIO_NA,
|
.sfp_port[0].pin_los = GPIO_NA,
|
||||||
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
||||||
.sfp_port[0].sds = 0,
|
.sfp_port[0].sds = 0,
|
||||||
.sfp_port[0].i2c = I2CBUS( GPIO41_I2C_SDA3_MDIO1, 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[1].pin_detect = GPIO38,
|
.sfp_port[1].pin_detect = GPIO38,
|
||||||
.sfp_port[1].pin_los = GPIO_NA,
|
.sfp_port[1].pin_los = GPIO_NA,
|
||||||
.sfp_port[1].pin_tx_disable = GPIO_NA,
|
.sfp_port[1].pin_tx_disable = GPIO_NA,
|
||||||
@@ -974,29 +965,29 @@ __code const struct machine machine = {
|
|||||||
.mac_flash_offset = 0x1FC000,
|
.mac_flash_offset = 0x1FC000,
|
||||||
.led_sets = {
|
.led_sets = {
|
||||||
{
|
{
|
||||||
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // LED 0 (orange): 1G/100M/10M
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
|
||||||
LEDS_2G5 | LEDS_LINK | LEDS_ACT, // LED 1 (green): 2.5G
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT,
|
||||||
LEDS_DUPLEX, // LED 2
|
0,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT,
|
||||||
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
LEDS_10G | LEDS_LINK | LEDS_ACT,
|
||||||
|
LEDS_2G5 | LEDS_1G | LEDS_LINK | LEDS_ACT,
|
||||||
|
0,
|
||||||
0 // LED 3
|
0 // LED 3
|
||||||
},
|
},
|
||||||
{
|
|
||||||
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
|
|
||||||
},
|
|
||||||
{
|
|
||||||
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_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 = {
|
||||||
|
|||||||
@@ -41,13 +41,7 @@
|
|||||||
// #define MACHINE_HI_K0801WS
|
// #define MACHINE_HI_K0801WS
|
||||||
// #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, 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_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
|
||||||
// #define MACHINE_FG_4GT_2SX_V2_0
|
// #define MACHINE_FG_4GT_2SX_V2_0
|
||||||
|
|||||||
Reference in new issue
Block a user