diff options
author | Robert Jarzmik <robert.jarzmik@free.fr> | 2012-11-08 22:16:40 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-11-12 09:35:53 +0100 |
commit | 2a38aa83f78d54e81f887bddc1eb77451628f830 (patch) | |
tree | b48be1c2bd2c01497f1b1a65d340260513b32ece /include | |
parent | 06bc2e706c8546bbcd98e0416e6d32a96a0f07ca (diff) | |
download | barebox-2a38aa83f78d54e81f887bddc1eb77451628f830.tar.gz barebox-2a38aa83f78d54e81f887bddc1eb77451628f830.tar.xz |
commands: change Y-Modem implementation
The current Y-Modem implementation has some limitations:
- Y-Modem/G protocol is not supported
- Multiple files (aka. batch) transfers are not supported
- Transfer speed over fast lines (USB console) is slow
- Code is not trivial to maintain (personnal opinion)
This implementation tries to address all these points by
introducing loady2 command.
The effects are :
- transfer speed for Y-Modem over USB jumps from 2kBytes/s
to 180kBytes/s
- transfer speed for Y-Modem/G jumps to 200kBytes/s
- multiple file transfers are possible
This command was tested on a USB console and UART 9600bps
serial line :
- NAKs (and retransmissions) were tested for faulty
serial lines
- multiple file transfers were tested
- Y-Modem, Y-Modem/G and X-Modem transfers were tested
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Tested-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/xymodem.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/xymodem.h b/include/xymodem.h new file mode 100644 index 0000000000..917cecc003 --- /dev/null +++ b/include/xymodem.h @@ -0,0 +1,25 @@ +/* + * Handles the X-Modem, Y-Modem and Y-Modem/G protocols + * + * Copyright (C) 2008 Robert Jarzmik + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _XYMODEM_ +#define _XYMODEM_ +struct xyz_ctxt; +struct console_device; + +int do_load_serial_xmodem(struct console_device *cdev, int fd); +int do_load_serial_ymodem(struct console_device *cdev); +int do_load_serial_ymodemg(struct console_device *cdev); +#endif |