diff --git a/doc/devices/STEAMEMO_IG204_V1.md b/doc/devices/STEAMEMO_IG204_V1.md new file mode 100644 index 0000000..81b0012 --- /dev/null +++ b/doc/devices/STEAMEMO_IG204_V1.md @@ -0,0 +1,43 @@ +# Steamemo IG204-V1 + +Following is documentation for unmanaged switch marked as `IG204-V1`. + +Using SPI clamp in-board is the only method for initial installation. + +### Label specifications + +- **Name**: 2.5G Ethernet Switch +- **Model**: IG204 V1 +- **Ports**: + - 4 × RJ45: 10/100/1000/2500 Mbps + - 2 × SFP: 1000 / 2500 / 10000 Mbps + +### What works (expected from label + similar devices) + +- Four 2.5GBASE-T RJ45 ports at 10/100/1000/2500 Mbps +- Two SFP ports supporting 1G, 2.5G and 10G modules +- LEDs + +### PCB overview + +**Board markings** +- Top silkscreen: PB-2131 + + +Top side + + + +### Connectors +### T7, serial console + +| `T7` pin | Signal | +| -------- | ----------- | +| 1 | TX (Output) | +| 2 | GND | +| 3 | RX (Input) | +| 4 | 3V3 | + +### Power supply + +Input power is delivered via barell plug, `12V 1A` adapter was provided. diff --git a/doc/devices/photos/STEAMEMO_IG204_V1/PCB-top.jpg b/doc/devices/photos/STEAMEMO_IG204_V1/PCB-top.jpg new file mode 100644 index 0000000..a466a1a Binary files /dev/null and b/doc/devices/photos/STEAMEMO_IG204_V1/PCB-top.jpg differ diff --git a/machine.c b/machine.c index 7d9f59c..04db39a 100644 --- a/machine.c +++ b/machine.c @@ -676,6 +676,58 @@ __code const struct machine machine = { void machine_custom_init(void) { } +#elif defined MACHINE_STEAMEMO_IG204_V1 +__code const struct machine machine = { + .machine_name = "Steamemo IG204 V1", + .isRTL8373 = 0, + .min_port = 3, + .max_port = 8, + .n_sfp = 2, + .log_to_phys_port = {0, 0, 0, 6, 1, 2, 3, 4, 5}, + .phys_to_log_port = {4, 5, 6, 7, 8, 3, 0, 0, 0}, + .is_sfp = {0, 0, 0, 2, 0, 0, 0, 0, 1}, + // Left SFP port (5) + // LED pin 9 + .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 = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 }, + // Right SFP port (6) + // LED pin 24 + .sfp_port[1].pin_detect = GPIO50_I2C_SCL2_UART1_TX, + .sfp_port[1].pin_los = GPIO51_I2C_SDA2_UART1_RX, + .sfp_port[1].pin_tx_disable = GPIO_NA, + .sfp_port[1].sds = 0, + .sfp_port[1].i2c = { .sda = GPIO41_I2C_SDA3_MDIO1, .scl = GPIO40_I2C_SCL3_MDC1 }, + .reset_pin = GPIO_NA, + .high_leds = { .mux = LED_27 | LED_28_SYS | LED_29, .enable = LED_28_SYS | LED_29 }, + .port_led_set = { 0, 0, 0, 1, 0, 0, 0, 0, 1}, + .led_sets = { + { + // RJ45 Amber LED (left) + LEDS_2G5 | LEDS_LINK, + // RJ45 Green LED (Right) + LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, + 0, + 0, + }, + { + // SFP LED + LEDS_10G | LEDS_5G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_LINK | LEDS_ACT, + 0, // unused + 0, // unused + 0 + }, + }, + .led_mux_custom = 1, + .led_mux = { + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x0f, 0x20, 0x0d, 0x0e, 0x10, 0x11, 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x0c, 0x21, 0x22, 0x23 + }, +}; + +void machine_custom_init(void) { } + #elif defined MACHINE_HI_K0801WS __code const struct machine machine = { .machine_name = "Hi-Source HI-k0801WS", diff --git a/machine.h b/machine.h index 584c488..931a17e 100644 --- a/machine.h +++ b/machine.h @@ -23,6 +23,7 @@ // #define MACHINE_LIANGUO_ZX_SWTGW215AS // #define MACHINE_ZX310S_4T2XH // #define MACHINE_ZX310S_4T2XT +// #define MACHINE_STEAMEMO_IG204_V1 // #define MACHINE_DEFAULT_8C_1SFP // #define MACHINE_HI_K0801WS // #define MACHINE_FNS1200P