# HG changeset patch # User Mychaela Falconia # Date 1584081704 0 # Node ID 37b5f94de8024c6e703eaeb7b2943b3ffb0f25be # Parent 21d38dce4d15aba23fd20800dd853c19c55d365c fluid-mnf: sensible target tty specification diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/fluid.c --- a/fluid-mnf/fluid.c Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/fluid.c Fri Mar 13 06:41:44 2020 +0000 @@ -68,7 +68,7 @@ int arg_device_id0 = -1; int arg_device_id1 = -1; -int arg_uart_port = 1; +char *arg_uart_ttyport = (char *) 0; int arg_uart_baudrate = 115200; char arg_uart_flowcontrol[] = "pn"; char arg_uart_level_convert = 0; @@ -523,9 +523,7 @@ arg_file_list[arg_file_list_size] = NULL; break; case 'p': - arg_uart_port = arg_long_get(); - if (arg_uart_port < 1 || 24 < arg_uart_port) - main_error(E_BADARG); + arg_uart_ttyport = optarg; break; case 'b': arg_uart_baudrate = arg_long_get(); @@ -748,7 +746,8 @@ printf("Command line option values:\n"); printf("argv[0] = '%s'\n", argv[0]); printf("\n"); - printf("port = %d\n", arg_uart_port); + printf("port = %s\n", + arg_uart_ttyport ? arg_uart_ttyport : "FLUID_PORT"); printf("baudrate = %d\n", arg_uart_baudrate); printf("target_trace_enable = %d\n", arg_target_trace_enable); diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/fluid.h --- a/fluid-mnf/fluid.h Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/fluid.h Fri Mar 13 06:41:44 2020 +0000 @@ -139,7 +139,7 @@ extern int arg_device_id0; extern int arg_device_id1; -extern int arg_uart_port; +extern char *arg_uart_ttyport; extern int arg_uart_baudrate; extern char arg_uart_flowcontrol[2]; extern char arg_uart_level_convert; diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/machine.c --- a/fluid-mnf/machine.c Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/machine.c Fri Mar 13 06:41:44 2020 +0000 @@ -204,8 +204,7 @@ image_map_show(); } - if ((error = target_driver_init(arg_uart_port, 115200, - arg_uart_flowcontrol)) < 0) + if ((error = target_driver_init(arg_uart_ttyport, 115200)) < 0) main_fatal(error); if (target_type_set(arg_target_type) != 0) diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/serial.c --- a/fluid-mnf/serial.c Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/serial.c Fri Mar 13 06:41:44 2020 +0000 @@ -45,8 +45,6 @@ static int target_fd; static struct termios2 target_termios; -static const char port_name_prefix[] = "/dev/ttyUSB"; - static void fill_termios(int bps) { int termios_baud_code; @@ -89,12 +87,19 @@ target_termios.c_ospeed = bps; } -int serial_init(int uart, int bps, char *flowcontrol) +int serial_init(char *ttyport, int bps) { - char ttyport[32]; static int zero = 0; - sprintf(ttyport, "%s%d", port_name_prefix, uart); + if (!ttyport) { + ttyport = getenv("FLUID_PORT"); + if (!ttyport) { + fprintf(stderr, +"fluid-mnf error: target tty port must be specified with -p or FLUID_PORT=\n"); + exit(-E_BADARG); + } + } + target_fd = open(ttyport, O_RDWR|O_NONBLOCK); if (target_fd < 0) return E_OS + E_UART_INIT; diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/serial.h --- a/fluid-mnf/serial.h Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/serial.h Fri Mar 13 06:41:44 2020 +0000 @@ -13,7 +13,7 @@ * ******************************************************************************/ -int serial_init(int uart, int baudrate, char *flowcontrol); +int serial_init(char *ttyport, int baudrate); int serial_is_baudrate(int bps); int serial_baudrate_set(int baudrate); int serial_baudrate_get(void); diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/target.c --- a/fluid-mnf/target.c Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/target.c Fri Mar 13 06:41:44 2020 +0000 @@ -90,11 +90,11 @@ serial_recv_reset(); } -int target_driver_init(int uart, int baudrate, char *flowcontrol) +int target_driver_init(char *ttyport, int baudrate) { int rc; - rc = serial_init(uart, baudrate, flowcontrol); + rc = serial_init(ttyport, baudrate); if (rc < 0) return rc; diff -r 21d38dce4d15 -r 37b5f94de802 fluid-mnf/target.h --- a/fluid-mnf/target.h Fri Mar 13 06:27:15 2020 +0000 +++ b/fluid-mnf/target.h Fri Mar 13 06:41:44 2020 +0000 @@ -13,7 +13,7 @@ int target_uart_baudrate_divider_get(int clk, int bps); -int target_driver_init(int uart, int baudrate, char *flowcontrol); +int target_driver_init(char *ttyport, int baudrate); int target_driver_baudrate(int baudrate); int target_send(char *buf, int size);