Merge pull request #177 from janh/k0501w

Add support for K0501W boards
This commit is contained in:
TylerDurden-23
2026-03-26 10:12:32 +01:00
committed by GitHub
5 changed files with 62 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
# K0501W
This board appears for example in the Davuaz Da-K6501W switch.
It is designed similarly to Hi-K0402WS. However, there are a few differences:
- One SFP port is replaced by a RTL8221B 2.5G PHY
- Only one LED is populated for the SFP port
- No mode switch and only one flash chip
- Like earlier revisions of the K0402W(S) board, there is no UART
Even though board looks very similar to K0402W(S), the actual GPIO and LED configuration is quite different.
All ports and LEDs are supported.
Installation is possible using a flash programmer.
The BoyaMicro 25Q16BSSIG flash chip is supported by flashprog with chip name "B.25D16AS/BY25Q16BS/BY25Q16ES".
## PCB pictures
The board is marked `PCB-K0501W-V2.0 DIP-K0501WS-V2.0`.
<img src="photos/K0501W/pcb-top.jpg" width="300" />
<img src="photos/K0501W/pcb-bottom.jpg" width="300" />
Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

+38
View File
@@ -408,6 +408,44 @@ __code const struct machine machine = {
void machine_custom_init(void) { void machine_custom_init(void) {
reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6); reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6);
} }
#elif defined MACHINE_K0501W
__code const struct machine machine = {
.machine_name = "K0501W",
.isRTL8373 = 0,
.min_port = 3,
.max_port = 8,
.n_sfp = 1,
.log_to_phys_port = {0, 0, 0, 5, 1, 2, 3, 4, 6},
.phys_to_log_port = {4, 5, 6, 7, 3, 8, 0, 0, 0},
.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 = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
.reset_pin = GPIO_NA,
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 1},
.led_sets = {
{
LEDS_2G5 | LEDS_LINK | LEDS_ACT,
0,
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
0
},
{
LEDS_10G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
0,
0,
0
},
},
};
void machine_custom_init(void) { }
#else #else
#error "Please select a machine type in machine.h" #error "Please select a machine type in machine.h"
#endif #endif
+1
View File
@@ -17,6 +17,7 @@
// #define MACHINE_SWTG018AS_A_V_2_0 // #define MACHINE_SWTG018AS_A_V_2_0
// #define MACHINE_SWTGW218AS // #define MACHINE_SWTGW218AS
// #define MACHINE_HI_K0402WS // #define MACHINE_HI_K0402WS
// #define MACHINE_K0501W
// #define MACHINE_DEFAULT_8C_1SFP // #define MACHINE_DEFAULT_8C_1SFP
typedef struct { typedef struct {