I was running loadtools on Ubuntu with FTDI USB to UART interface and noticed that increasing baudrate was giving just marginal load speed improvement. Quick analysis revealed that select() in the S-record echo was signaled by the kernel with 10ms delay. I tried multiple baudrates and confirmed that that was pretty much constant.
xram-800k.PNG <https://drive.google.com/a/tvman.us/file/d/0B-LGWaryBRksQzRuaXJqM0o4RXlNQzFRQUFtQTZ6S3NYbEY4/view?usp=drive_web> xram-400k.PNG <https://drive.google.com/a/tvman.us/file/d/0B-LGWaryBRkscWJ5eTc2ZGpnLThvSldTRXJlek9FMUdRZnZj/view?usp=drive_web> xram-19200.PNG <https://drive.google.com/a/tvman.us/file/d/0B-LGWaryBRksN1puYWFLQUJvUXIxRlEtZlRUSld3SXdNcVVj/view?usp=drive_web> xram-115200.PNG <https://drive.google.com/a/tvman.us/file/d/0B-LGWaryBRksN0NyVVFJcE1fMnltQnhLVnJNcVlkM0Q3aDh3/view?usp=drive_web> xram-38400.PNG <https://drive.google.com/a/tvman.us/file/d/0B-LGWaryBRksS3h4bUEySmJselY0UDhlLUJkQThzejZ2VVZV/view?usp=drive_web> Since we use Linux specific libserial now, I added one more kernel tweak, which may be not reproducible on other platforms. Maybe there is a better place where we can set this flag, so here is a proof of concept. openport.c /* * This module implements the basic serial port opening operation. */ #include <sys/types.h> #include <sys/file.h> #include <sys/ioctl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <linux/serial.h> int target_fd; open_serial_port(ttyport) char *ttyport; { target_fd = open(ttyport, O_RDWR|O_NONBLOCK); if (target_fd < 0) { perror(ttyport); exit(1); } ioctl(target_fd, TIOCEXCL); //Try Low latency settings struct serial_struct kernel_serial_settings; ioctl(target_fd, TIOCGSERIAL, &kernel_serial_settings); kernel_serial_settings.flags |= ASYNC_LOW_LATENCY; ioctl(target_fd, TIOCSSERIAL, &kernel_serial_settings); return 0; } This makes an image load lighting fast compared to what I was getting before. So far no major problems observed. image.png <https://drive.google.com/a/tvman.us/file/d/0B-LGWaryBRkseWpFSm81bmF6enFQaDlRRjN5ZGhhb1RUWnBj/view?usp=drive_web> I hope it helps to somebody else _______________________________________________ Community mailing list Community@freecalypso.org https://www.freecalypso.org/mailman/listinfo/community