Flash Mutex check & Firmware OTA update
In last week, bearSSL server in CORS thread and bearSSL client in OTA thread can already run simultaneously except the bitstream download & firmware download part as both of them write to flash memory at different addresses (the board gets rebooted). Therefore, a mutex (mutual exclusion) check is needed to Read more
Known-key mode of BearSSL
Continue from last week’s progress, I was feeding in hard-coded time data that is valid into bearSSL engine to pass the certificate date verification so that an SSL connection can start. This is definitely not a proper way to obtain the time, I did that just to make sure the Read more
Starting on OTA
In our HID module, MD5 hash function was used for a number of reasons. Previously we were using wolfSSL API to compute the MD5 hash, now I have replaced these function with bearSSL substitutes. Although Harmony has a crypto library providing MD5 hash, but that in fact is just merely Read more
Finally download bitstream via SSL connection is done
Continue from last week problem, curl client shows “Empty reply from server” just because I did not send a proper HTTP response which starts with the message status line (something like “HTTP/1.1 200 OK”) thus the client just ignores the packages. Simply br_sslio_write() the status line at the start of Read more
OS needed to run TCPIP stack
Since the only reference I have is an example code of bearSSL that is working in PC environment, in order to sort out the problem I am facing that the bearSSL server does not reply to client hello, I’ll have to look inside the source code of bearSSL. After some study, Read more
Working on BearSSL
In order to apply bearSSL in the project, the first thing I need to do is to include the bearSSL library object. The source code is available as a git repository, simply type “git clone https://www.bearssl.org/git/BearSSL” in a terminal to download the newest version of bearSSL. Apart from this, the Read more
Switch to BearSSL
Continue with last week problem of PUT request failure after implementing SSL, I look through every line of the code again and again and search through every keyword I could think of on the web but did not find much useful information. Without a clue on how to proceed, I asked for Read more
Redo of Flashing and SSL
In my fourth week, after Dr. Shawn saw my code of writing on flash memory which is playing with the pointer, he was like “why did you do that!?”. It was too complicated. Dr. Shawn said “Writing a complicated code is easy, the hardest part is how do you establish the Read more
Writing to Flash and FPGA
As I am collecting the statistic of how the TCP receiver buffer size affects the speed of downloading, I found that the time it takes to download the firmware topped at around 11.6 seconds with 512byte of receiver buffer size, which is in fact very slow, further increase of receiver Read more