mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Add support for K0501W boards
This board appears for example in the Davuaz Da-K6501W switch, and is designed similarly to Hi-K0402WS. However, it only has one SFP port and another 2.5G copper port using RTL8221B 2.5G PHY instead. Also, some components on the board, like additional LEDs, mode switch, and second flash chip are not populated. Like earlier revisions of the K0402W(S) board, there is no UART, so debugging is limited. As this is an unmanaged switch, installation needs a flash programmer.
This commit is contained in:
@@ -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 |
@@ -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
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user