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 device;
std::string cable;
std::string ftdi_serial;
std::string usb_serial_num;
int ftdi_channel;
int status_pin;
uint32_t freq;
@ -264,13 +264,6 @@ int main(int argc, char **argv)
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 (cable.type != MODE_FTDI_SERIAL){
printError("Error: FTDI status pin is for FTDI MPSSE cables.");
@ -389,7 +382,7 @@ int main(int argc, char **argv)
Jtag *jtag;
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.invert_read_edge, args.probe_firmware,
args.user_misc_devs);
@ -667,7 +660,7 @@ int run_xvc_server(const struct arguments &args, const cable_t &cable,
try {
XVC_server *xvc = NULL;
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);
/* create connection */
xvc->open_connection();
@ -889,6 +882,7 @@ int parse_opt(int argc, char **argv, struct arguments *args,
jtag_pins_conf_t *pins_config)
{
std::string freqo;
std::string ftdi_serial;
std::vector<std::string> pins, bus_dev_num;
bool verbose = false, quiet = false;
int8_t verbose_level = -2;
@ -927,8 +921,10 @@ int parse_opt(int argc, char **argv, struct arguments *args,
("busdev-num",
"select a probe by it bus and device number (bus_num:device_addr)",
cxxopts::value<std::vector<std::string>>(bus_dev_num))
("ftdi-serial", "FTDI chip serial number",
cxxopts::value<std::string>(args->ftdi_serial))
("usb-serial-num", "USB iSerial (FTDI chip serial number)",
cxxopts::value<std::string>(args->usb_serial_num))
("ftdi-serial", "FTDI chip serial number (Deprecated)",
cxxopts::value<std::string>(ftdi_serial))
("ftdi-channel",
"FTDI chip channel number (channels 0-3 map to A-D)",
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 (bus_dev_num.size() != 2) {
printError("Error: busdev-num must be xx:yy");