diff --git a/doc/devices/HASIVO_S1100WP_8GT_1SX_SE.md b/doc/devices/HASIVO_S1100WP_8GT_1SX_SE.md new file mode 100644 index 00000000..c3046c8d --- /dev/null +++ b/doc/devices/HASIVO_S1100WP_8GT_1SX_SE.md @@ -0,0 +1,70 @@ +# Hasivo S1100WP-8GT-1SX-SE + +RTL8373-based 8×2.5G PoE + 1×SFP switch. + +### Label specifications + +- **Manufacturer**: Hasivo +- **Model**: S1100WP-8GT-1SX-SE +- **Ports**: + - 8 × RJ45: 10/100/1000/2500 Mbps with PoE + - 1 × SFP: 1G / 2.5G / 10G +- **Power input**: DC 52V 2.5A +- **Stock firmware defaults**: IP 192.168.0.1, user/password `admin`/`admin` + +### What works + +- All eight 2.5GBASE-T RJ45 ports at 10/100/1000/2500 Mbps (PoE is not configurable via RTLPlayground) +- SFP port supporting 1G, 2.5G and 10G modules +- LEDs: green (2.5G) and amber (1G/100M/10M) per copper port; combined link/act on the SFP port + +### Photos + +Front panel: + + + +Label: + + + +### PCB overview + +Top side: + + + +Bottom side: + + + +### Port layout + +| Logical port | Physical port | Type | +|--------------|---------------|--------| +| 1-8 | 1-8 | Copper | +| 9 | 9 | SFP | + +### LED configuration + +Copper ports use LED SET0, the SFP port uses LED SET1. + +| SET | LED0 | LED2 | +|------|-----------------------------------------------|------------------------------------------------------| +| SET0 | Green — lights on 2.5G link with activity | Amber — lights on 1G / 100M / 10M link with activity | +| SET1 | All speeds — lights on any link with activity | — | + +### SFP GPIO assignments + +| SFP (logical 9) | pin_detect (ModAbs) | pin_los | pin_tx_disable | SerDes | I2C SDA | I2C SCL | +|-----------------|---------------------|---------|----------------|--------|-----------------|---------------------| +| SFP | GPIO30_ACL_BIT3_EN | GPIO37 | GPIO_NA | SDS1 | GPIO39_I2C_SDA4 | GPIO40_I2C_SCL3_MDC1 | + +### Machine configuration + +- `reset_pin`: GPIO54_ACL_BIT2_EN +- High LEDs (pads 27-29): mux = `LED_27 | LED_28_SYS | LED_29`, enable = `LED_28_SYS | LED_29` + +### PoE + +The 8 copper ports support PoE (power input DC 52V 2.5A). PoE is not configurable via RTLPlayground, and no `struct poe_port` telemetry is configured for this machine. diff --git a/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/front.jpg b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/front.jpg new file mode 100644 index 00000000..028b6382 Binary files /dev/null and b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/front.jpg differ diff --git a/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/label.jpg b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/label.jpg new file mode 100644 index 00000000..c5ab79ac Binary files /dev/null and b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/label.jpg differ diff --git a/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/pcb_bottom.jpg b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/pcb_bottom.jpg new file mode 100644 index 00000000..7d388598 Binary files /dev/null and b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/pcb_bottom.jpg differ diff --git a/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/pcb_top.jpg b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/pcb_top.jpg new file mode 100644 index 00000000..5065544a Binary files /dev/null and b/doc/devices/photos/HASIVO_S1100WP-8GT-1SX-SE/pcb_top.jpg differ diff --git a/machine.c b/machine.c index a2746fe2..e615300b 100644 --- a/machine.c +++ b/machine.c @@ -1325,6 +1325,37 @@ __code const struct machine machine = { }, }; +#elif defined MACHINE_HASIVO_S1100WP_8GT_1SX_SE +__code const struct machine machine = { + .machine_name = "Hasivo S1100WP-8GT-1SX-SE", + .isRTL8373 = 1, + .mac_flash_offset = 0x1FC000, + .min_port = 0, + .max_port = 8, + .n_sfp = 1, + .log_to_phys_port = {1, 2, 3, 4, 5, 6, 7, 8, 9}, + .phys_to_log_port = {0, 1, 2, 3, 4, 5, 6, 7, 8}, + .is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1}, + .sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN, + .sfp_port[0].pin_los = GPIO37, + .sfp_port[0].pin_tx_disable = GPIO_NA, + .sfp_port[0].sds = 1, + .sfp_port[0].i2c = I2CBUS( GPIO39_I2C_SDA4, GPIO40_I2C_SCL3_MDC1 ), + .reset_pin = GPIO54_ACL_BIT2_EN, + .high_leds = { .mux = LED_27 | LED_28_SYS | LED_29, .enable = LED_28_SYS | LED_29 }, + .port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 1}, + .led_sets = { { LEDS_2G5 | LEDS_LINK | LEDS_ACT, // Green LED (right) + 0, // unused + LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // Amber LED (left) + 0 + }, // unused + { LEDS_10G | LEDS_5G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_LINK | LEDS_ACT, // SFP LED + 0, // unused + 0, // unused + 0 + }, // unused }, + }, +}; #elif defined MACHINE_F7008_2_5 __code const struct machine machine = { .machine_name = "F7008-2.5 8+1 SFP Port Switch", diff --git a/machine.h b/machine.h index 4867b8a2..cd393073 100644 --- a/machine.h +++ b/machine.h @@ -48,6 +48,7 @@ // #define MACHINE_POE_2G080110GS // #define MACHINE_PB_2132 // #define MACHINE_HASIVO_S600W_4GT_2XGT_SE +// #define MACHINE_HASIVO_S1100WP_8GT_1SX_SE // #define MACHINE_F7008_2_5 #define LED_27 1