mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Use changed signatures in parse_port for PHY speed setting
This commit is contained in:
+34
-23
@@ -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';
|
||||||
|
|||||||
Reference in New Issue
Block a user