main: ftdi-serial is deprecated. Added --usb-serial-num argument

This commit is contained in:
Gwenhael Goavec-Merou 2026-05-14 17:38:02 +02:00
parent be5de3c596
commit 4000496abc
1 changed files with 16 additions and 12 deletions

View File

@ -79,7 +79,7 @@ struct arguments {
std::string secondary_bit_file; std::string secondary_bit_file;
std::string device; std::string device;
std::string cable; std::string cable;
std::string ftdi_serial; std::string usb_serial_num;
int ftdi_channel; int ftdi_channel;
int status_pin; int status_pin;
uint32_t freq; uint32_t freq;
@ -264,13 +264,6 @@ int main(int argc, char **argv)
cable.config.interface = mapping[args.ftdi_channel]; cable.config.interface = mapping[args.ftdi_channel];
} }
if (!args.ftdi_serial.empty()) {
if (cable.type != MODE_FTDI_SERIAL && cable.type != MODE_FTDI_BITBANG){
printError("Error: FTDI serial param is for FTDI cables.");
return EXIT_FAILURE;
}
}
if (args.status_pin != -1) { if (args.status_pin != -1) {
if (cable.type != MODE_FTDI_SERIAL){ if (cable.type != MODE_FTDI_SERIAL){
printError("Error: FTDI status pin is for FTDI MPSSE cables."); printError("Error: FTDI status pin is for FTDI MPSSE cables.");
@ -389,7 +382,7 @@ int main(int argc, char **argv)
Jtag *jtag; Jtag *jtag;
try { try {
jtag = new Jtag(cable, &pins_config, args.device, args.ftdi_serial, jtag = new Jtag(cable, &pins_config, args.device, args.usb_serial_num,
args.freq, args.verbose, args.ip_adr, args.port, args.freq, args.verbose, args.ip_adr, args.port,
args.invert_read_edge, args.probe_firmware, args.invert_read_edge, args.probe_firmware,
args.user_misc_devs); args.user_misc_devs);
@ -667,7 +660,7 @@ int run_xvc_server(const struct arguments &args, const cable_t &cable,
try { try {
XVC_server *xvc = NULL; XVC_server *xvc = NULL;
xvc = new XVC_server(args.port, cable, pins_config, args.device, xvc = new XVC_server(args.port, cable, pins_config, args.device,
args.ftdi_serial, args.freq, args.verbose, args.ip_adr, args.usb_serial_num, args.freq, args.verbose, args.ip_adr,
args.invert_read_edge, args.probe_firmware); args.invert_read_edge, args.probe_firmware);
/* create connection */ /* create connection */
xvc->open_connection(); xvc->open_connection();
@ -889,6 +882,7 @@ int parse_opt(int argc, char **argv, struct arguments *args,
jtag_pins_conf_t *pins_config) jtag_pins_conf_t *pins_config)
{ {
std::string freqo; std::string freqo;
std::string ftdi_serial;
std::vector<std::string> pins, bus_dev_num; std::vector<std::string> pins, bus_dev_num;
bool verbose = false, quiet = false; bool verbose = false, quiet = false;
int8_t verbose_level = -2; int8_t verbose_level = -2;
@ -927,8 +921,10 @@ int parse_opt(int argc, char **argv, struct arguments *args,
("busdev-num", ("busdev-num",
"select a probe by it bus and device number (bus_num:device_addr)", "select a probe by it bus and device number (bus_num:device_addr)",
cxxopts::value<std::vector<std::string>>(bus_dev_num)) cxxopts::value<std::vector<std::string>>(bus_dev_num))
("ftdi-serial", "FTDI chip serial number", ("usb-serial-num", "USB iSerial (FTDI chip serial number)",
cxxopts::value<std::string>(args->ftdi_serial)) cxxopts::value<std::string>(args->usb_serial_num))
("ftdi-serial", "FTDI chip serial number (Deprecated)",
cxxopts::value<std::string>(ftdi_serial))
("ftdi-channel", ("ftdi-channel",
"FTDI chip channel number (channels 0-3 map to A-D)", "FTDI chip channel number (channels 0-3 map to A-D)",
cxxopts::value<int>(args->ftdi_channel)) cxxopts::value<int>(args->ftdi_channel))
@ -1134,6 +1130,14 @@ int parse_opt(int argc, char **argv, struct arguments *args,
} }
} }
if (result.count("ftdi-serial")) {
if (result.count("usb_serial_num")) {
printError("Error: ftdi_serial and usb_serial_num can't be used at the same time.");
return -1;
}
args->usb_serial_num = ftdi_serial;
}
if (result.count("busdev-num")) { if (result.count("busdev-num")) {
if (bus_dev_num.size() != 2) { if (bus_dev_num.size() != 2) {
printError("Error: busdev-num must be xx:yy"); printError("Error: busdev-num must be xx:yy");