Use changed signatures in parse_port for PHY speed setting

This commit is contained in:
logicog
2025-12-25 09:46:59 +01:00
parent 2a7bfdc119
commit 4878a36638
+34 -23
View File
@@ -17,6 +17,7 @@
#include "version.h" #include "version.h"
#include "machine.h" #include "machine.h"
#include "phy.h"
#pragma codeseg BANK1 #pragma codeseg BANK1
#pragma constseg BANK1 #pragma constseg BANK1
@@ -420,36 +421,47 @@ void parse_port(void)
print_string(" is SFP no PHY information available.\n"); print_string(" is SFP no PHY information available.\n");
return; return;
} }
if (cmd_words_b[2] > 0 && cmd_compare(2, "10m")) { if (cmd_words_b[2] <= 0) {
print_string("\nport <port> [show|on|off|10m|100m|1g|2g5] [half|full]");
return;
}
if (cmd_compare(2, "10m")) {
print_string(" 10M\n"); print_string(" 10M\n");
phy_set_speed(p, PHY_SPEED_10M); if (cmd_words_b[3] > 0 && cmd_compare(3, "half"))
} phy_set_speed(p, PHY_SPEED_10M, PHY_DUPLEX_HALF);
if (cmd_words_b[2] > 0 && cmd_compare(2, "100m")) { else if (cmd_words_b[3] > 0 && cmd_compare(3, "full"))
phy_set_speed(p, PHY_SPEED_10M, PHY_DUPLEX_FULL);
else
phy_set_speed(p, PHY_SPEED_10M, PHY_DUPLEX_BOTH);
} else if (cmd_compare(2, "100m")) {
print_string(" 100M\n"); print_string(" 100M\n");
phy_set_speed(p, PHY_SPEED_100M); if (cmd_words_b[3] > 0 && cmd_compare(3, "half"))
} phy_set_speed(p, PHY_SPEED_100M, PHY_DUPLEX_HALF);
if (cmd_words_b[2] > 0 && cmd_compare(2, "2g5")) { else if (cmd_words_b[3] > 0 && cmd_compare(3, "full"))
phy_set_speed(p, PHY_SPEED_100M, PHY_DUPLEX_FULL);
else
phy_set_speed(p, PHY_SPEED_100M, PHY_DUPLEX_BOTH);
} else if (cmd_compare(2, "2g5")) {
print_string(" 2.5G\n"); print_string(" 2.5G\n");
phy_set_speed(p, PHY_SPEED_2G5); phy_set_speed(p, PHY_SPEED_2G5, PHY_DUPLEX_BOTH);
} } else if (cmd_compare(2, "1g")) {
if (cmd_words_b[2] > 0 && cmd_compare(2, "1g")) {
print_string(" 1G\n"); print_string(" 1G\n");
phy_set_speed(p, PHY_SPEED_1G); phy_set_speed(p, PHY_SPEED_1G, PHY_DUPLEX_BOTH);
} } else if (cmd_compare(2, "auto")) {
if (cmd_words_b[2] > 0 && cmd_compare(2, "auto")) {
print_string(" AUTO\n"); print_string(" AUTO\n");
phy_set_speed(p, PHY_SPEED_AUTO); phy_set_speed(p, PHY_SPEED_AUTO, PHY_DUPLEX_BOTH);
} } else if (cmd_compare(2, "off")) {
if (cmd_words_b[2] > 0 && cmd_compare(2, "off")) {
print_string(" OFF\n"); print_string(" OFF\n");
phy_set_speed(p, PHY_OFF); phy_set_speed(p, PHY_OFF, PHY_DUPLEX_BOTH);
} } else if (cmd_compare(2, "on")) {
if (cmd_words_b[2] > 0 && cmd_compare(2, "duplex")) { print_string(" ON\n");
phy_set_speed(p, PHY_SPEED_AUTO, PHY_DUPLEX_BOTH);
} else if (cmd_compare(2, "duplex")) {
print_string(" DUPLEX\n"); print_string(" DUPLEX\n");
if (cmd_words_b[3] > 0 && cmd_compare(3, "full")) if (cmd_words_b[3] > 0 && cmd_compare(3, "full"))
phy_set_duplex(p, 1); phy_set_duplex(p, PHY_DUPLEX_FULL);
else else
phy_set_duplex(p, 0); phy_set_duplex(p, PHY_DUPLEX_HALF);
} }
if (cmd_words_b[2] > 0 && cmd_compare(2, "show")) { if (cmd_words_b[2] > 0 && cmd_compare(2, "show")) {
phy_show(p); phy_show(p);
@@ -462,13 +474,12 @@ void parse_mtu(void)
__xdata uint16_t mtu; __xdata uint16_t mtu;
uint8_t p; uint8_t p;
print_string("\nMTU ");
if (cmd_words_b[1] > 0 && cmd_compare(1, "show")) { if (cmd_words_b[1] > 0 && cmd_compare(1, "show")) {
for (p = machine.min_port; p <= machine.max_port; p++) { for (p = machine.min_port; p <= machine.max_port; p++) {
reg_read_m(RTL8373_REG_MAC_L2_PORT_MAX_LEN + ((uint16_t) p << 8)); reg_read_m(RTL8373_REG_MAC_L2_PORT_MAX_LEN + ((uint16_t) p << 8));
mtu = SFR_DATA_U16 & 0x3fff; mtu = SFR_DATA_U16 & 0x3fff;
print_string("Port "); print_byte(machine.log_to_phys_port[p]); print_string("Port "); print_byte(machine.log_to_phys_port[p]);
print_string(" MTU: 0x"); print_short(mtu); write_char('\n'); write_char(' '); print_short(mtu); write_char('\n');
} }
} }
p = cmd_buffer[cmd_words_b[1]] - '1'; p = cmd_buffer[cmd_words_b[1]] - '1';