summaryrefslogtreecommitdiff
path: root/libthor
AgeCommit message (Collapse)AuthorFilesLines
2019-01-16net: add include for signal.hSeung-Woo Kim1-0/+1
To use aio_sigevent in Ubuntu 18.04, add explict include for signal.h. Change-Id: Icbf15f411aa1466879dc017c13311d408ab18a96 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2019-01-16transport: remove implicit-function-declaration build warningsSeung-Woo Kim1-1/+6
Remove implicit-function-declaration build warnings by adding function declarations to transport header. Change-Id: Id258ab568c3eba49b1e443734443f9b207b86268 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-12-19Fix segmentation fault during network tranferDongwoo Lee1-0/+2
Since 'chunk' which is unit of transfer is not initialized, aio_read() is failed with invalid argument error. Moreover, in this case, chunk.nh is even NULL, so chunk->nh->sock_fd cause segmentation fault. Thus, this patch fixes to initialize chunk properly, and make chunk.nh have network handler pointer. Change-Id: I322a01ca99829eb928f26488a341cdaee1c4d9e2 Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
2018-05-31Add support for asynchronous transfer on network transportDongwoo Lee1-43/+224
To improve performance of network transfer, add asynchronous transfer with AIO APIs to network transport. Change-Id: I91dbf1161aeebc03af2bccdbe4ed0e20a322949d Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-31Add network transport for image transferDongwoo Lee4-0/+255
This patch adds network transport which can transfer image via tcp layer. If the option "--net=<ip[:port]>" is passed, lthor tries to connect the target with given ip and port, or else, it just try to connect via usb. When the port nubmer is not provided for network option, it uses default port. Change-Id: I14bea3523d01e3a4f547e41d40d353790a870460 Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-31Re-structure lthor to extend its transfer methodsDongwoo Lee7-636/+835
Currently, thor has very specific code structure for considering only usb transfer, thus it is too hard to add other transfer methods. This patch makes lthor to be extendable by just implementing few operations: open, close, send, recv, and send_data. Change-Id: If455a9d7a5c7fd86cf6e8808f29c643456e80166 Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-31Add packed attribute to message protocol structSeung-Woo Kim1-3/+3
The structures for message should be packed for communication. Add explict packed attribute to the message struct. Change-Id: I33ec2986a5caedf0dfa248b2e04c51ee75ae1520 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-18Fix to check protocol version before refusing large fileSeung-Woo Kim2-0/+16
From protocol version 5.0, it will be supported large file size with 64bit value. Fix to check protocol version before resuing large file. Change-Id: Ie2b76d5e857c143289332e543bb65254ac522081 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-18Update for THOR 5.0 supportSeung-Woo Kim2-4/+10
Until THOR 4.0, it uses only 32bit to send file size. From THOR 5.0, it starts to use two 32bit variables for the file size. Update for the THOR 5.0 protocol support. Change-Id: I3569d51179bb75b034a62f902e8640a1232d6ed3 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-18Fix overflow of filenameSeung-Woo Kim2-2/+24
In thor protocol, only filename with 32 characters is allowed to send but there was overflow of filename more than 32 and it is crashed with 193 or longer length filename. Fix the overflow of filename. Note: ARTIK530 and ARTIK710 already misuse overflowed 33 length dtb filename, and exact modification as thor protocol breaks flashing on the boards. So fix with extention for the ARTIK borads by appending more 32 bytes in rqt_pkt.str_data[1] as artik u-boot expects. Change-Id: I4081024cafa276617497091e00cbb6fbc21348b7 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-18Fix wrong close for negative file descriptorDongwoo Lee1-1/+2
There is an issue which negative file descriptor can be attempt to close in static analysis tool result. This patch fixes to skip close on that case. Change-Id: Ic68803bc96ab6e3737d1bcc4779b8e3c58c7ef71 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
2018-05-18Fix uninitialized data in error ret valueSeung-Woo Kim1-1/+3
There is uninitialized data issue in static analysis tool result. Fix the uninitialized data in error ret value. Change-Id: I7e5e0f6fa372c125c5ce6eb8df321cb08919b9cf Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2018-05-18Fix use of deprecated libarchive function callsDongwoo Lee1-5/+5
To get rid of build warning about deprecated funcations of libarchive, this patch replaces those function calls with alternative ones. Change-Id: I164c60243e20fcbbdad2185a14534fe7a4daf9d8 Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
2017-04-10Fix progress report for larger than 2GB fileSeung-Woo Kim1-2/+2
Currently, progress report function has 32bit signed value for its send and left parameters, so it causes negative value progress. This fixes the parameters as unsigned 32bit type to report properly. Change-Id: I1d291c1507170c57b025d4fbd91098b48a97cdd0 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2016-09-05Fix busid param parsingKrzysztof Opasiak1-0/+2
Change-Id: Ia3e6047ccd9f07d1a834c4eb58408d0afca1c8c3 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-09-02Fix memleak of entry nameKrzysztof Opasiak1-0/+1
Change-Id: I57fe94546759888697871fa716e865771801b00b Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-09-02Fix file testingKrzysztof Opasiak1-0/+3
Change-Id: Ide8250910005c37a6ecadcb81d4d3b8e1e646bda Reported-by: Tomasz Wozniak <t.wozniak@samsung.com> Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-09-02Fix double free on error conditionKrzysztof Opasiak1-1/+4
Change-Id: I41224563de4d6176e60a5f4c893560e3dcf96b86 Reported-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com> Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-09-02Fix memleak of entries arrayKrzysztof Opasiak1-0/+1
Change-Id: I39259e1bdd48fc2a75cdb6652e918cef2775774c Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Allow to print also content of tar fileKrzysztof Opasiak3-2/+88
Old implementation of lthor was printing not only name of tar file and it's size but also name of each entry and it's size. This patch allows also new implementation to do this. Change-Id: I05c12fb5368bcaaaeeb93a3116d9322ecc4349b1 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add support for large filesKrzysztof Opasiak6-33/+33
Currently session size is send over USB as integer 32b. So max size of all files is 2GB. Some fixed uboot versions treat this value as unsigned integer 32b. So there max size of all files is 4GB. Let's provide initial support for large files in lthor by counting all size using off_t which thanks to define is 64b on all platforms. This patch also add a suitable warning if image is larger than 2GB and reports an error if image is larger than 4GB. Change-Id: I402b3684fa96c7531edb580e38f109ecc8a5ebd0 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Use asynchronous API to improve performanceKrzysztof Opasiak3-47/+381
Change-Id: I18f0aa14778d06751e7005e4b555c6c68f2839d4 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add core file with thor communication protocolKrzysztof Opasiak1-0/+340
Add main file of libthor with implementation of API and thor communication protocol. Change-Id: Ic6e4c13ad89eef8080f955af5a71c11cd201ad78 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add cdc-acm related implementation of thor protocolKrzysztof Opasiak2-0/+115
Thor protocol "emulates" cdc-acm class. This commit adds some helper functions which are required to properly setup communication on cdc-acm protocol level. Change-Id: Iffb79c813f97bc3f3c4260f6fd713d0ea4d99353 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add libusb backend for thor protocolKrzysztof Opasiak2-0/+590
Add implementation of functions used for communication with tharget on USB level via libusb. Change-Id: I59603b3bb05570e8f13c8ca3e4f48fabf2fc03c0 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add code for accessing tar archivesKrzysztof Opasiak2-0/+204
Add implementation of data source for accessing tar files. This is needed to flash tar.gz file using lthor. Change-Id: Id5abbf258d41f37c569c65753bb8866bb9a84b6a Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add code for accessing raw file by liblthorKrzysztof Opasiak2-0/+131
Implement a data source for accessing standard file. This type of access is used for reading PIT file. Change-Id: Icc9de3718e1234e0758c27f4721f3072d3d538f9 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2016-07-25Add headers with API for new implementation of thor protocolKrzysztof Opasiak3-0/+227
Add new headers with: - API for accessing new implementation of thor protocol - Internal data structure which will be used by libthor Copy also header with definitions of messages used by thor protocol. Change-Id: I0e6901a45737e3711f9328f757f76de96b88bdd3 Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>