diff --git a/doc/devices/Hasivo-S1100P-8GT-1SX-S.md b/doc/devices/Hasivo-S1100P-8GT-1SX-S.md new file mode 100644 index 00000000..9fc60186 --- /dev/null +++ b/doc/devices/Hasivo-S1100P-8GT-1SX-S.md @@ -0,0 +1,41 @@ +# Hasivo S1100P-8GT-1SX-S + +RTL8373N switch with 8 × 2.5G RJ45 ports and 1 × SFP port. GD25Q16 2 MiB flash. + +## Port mapping + +| Front port | ASIC MAC | Interface | +| --- | --- | --- | +| 1–8 | 0–7 | RJ45 | +| 9 | 8 | SFP (SDS1) | + +## Board signals + +| Function | GPIO | +| --- | --- | +| SFP detect | 38 | +| SFP LOS | 37 | +| SFP TX disable | Not connected (`GPIO_NA`) | +| SFP I2C SDA / SCL | 39 / 40 | +| Reset | 54 | + +PoE is managed by an RTL8238B and a separate STC8H8K64U controller, not directly by the RTL8373N. RTLPlayground does not control PoE on this board. + +## Build + +`make MACHINE=HASIVO_S1100P_8GT_1SX_S CI=1` + +## Photos + +Front panel: + +![Front panel](photos/Hasivo-S1100P-8GT-1SX-S/front.jpg) + +PCB top: + +![PCB top](photos/Hasivo-S1100P-8GT-1SX-S/pcb_top.jpg) + +PCB bottom: + +![PCB bottom](photos/Hasivo-S1100P-8GT-1SX-S/pcb_bottom.jpg) + diff --git a/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/front.jpg b/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/front.jpg new file mode 100644 index 00000000..e2836b96 Binary files /dev/null and b/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/front.jpg differ diff --git a/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/pcb_bottom.jpg b/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/pcb_bottom.jpg new file mode 100644 index 00000000..3d2a6f6c Binary files /dev/null and b/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/pcb_bottom.jpg differ diff --git a/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/pcb_top.jpg b/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/pcb_top.jpg new file mode 100644 index 00000000..06d972cd Binary files /dev/null and b/doc/devices/photos/Hasivo-S1100P-8GT-1SX-S/pcb_top.jpg differ diff --git a/machine/HASIVO_S1100P_8GT_1SX_S.c b/machine/HASIVO_S1100P_8GT_1SX_S.c new file mode 100644 index 00000000..4db8de17 --- /dev/null +++ b/machine/HASIVO_S1100P_8GT_1SX_S.c @@ -0,0 +1,40 @@ +#include "machine_defs.h" + +__code const struct machine machine = { + .machine_name = MACHINE_MODEL, + .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 = GPIO38, + .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_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // LED0: orange + 0, + LEDS_2G5 | LEDS_LINK | LEDS_ACT, // LED2: green + 0 + }, + { + LEDS_10G | LEDS_5G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_LINK | LEDS_ACT, // SFP LED0: green (both SFP LEDs are green) + 0, 0, 0 + } + }, + .led_mux_custom = 1, + .led_mux = { + 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x09, + 0x0e, 0x10, 0x12, 0x0e, 0x14, 0x11, 0x12, 0x16, + 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1a, 0x1d, 0x1e, + 0x1c, 0x1e, 0x20, 0x21 + }, +}; diff --git a/machine/HASIVO_S1100P_8GT_1SX_S.h b/machine/HASIVO_S1100P_8GT_1SX_S.h new file mode 100644 index 00000000..b34d03ef --- /dev/null +++ b/machine/HASIVO_S1100P_8GT_1SX_S.h @@ -0,0 +1,6 @@ +#ifndef _MACHINE_HASIVO_S1100P_8GT_1SX_S_H_ +#define _MACHINE_HASIVO_S1100P_8GT_1SX_S_H_ + +#define MACHINE_MODEL "Hasivo S1100P-8GT-1SX-S" + +#endif