software/libliteeth/tftp: switch to progress bar.
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 10 Jun 2020 08:00:05 +0000 (10:00 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 10 Jun 2020 08:00:05 +0000 (10:00 +0200)
litex/soc/software/libliteeth/tftp.c

index c5ac5f389767c4c2d9f2fb39fbe6243f2e1db9ca..b976496d8228bd0f2d117d79654fc2d5ac2bc8b3 100644 (file)
@@ -10,6 +10,8 @@
 #include <stdint.h>
 #include <string.h>
 
+#include <progress.h>
+
 #include "udp.h"
 #include "tftp.h"
 
@@ -116,7 +118,6 @@ int tftp_get(uint32_t ip, uint16_t server_port, const char *filename,
        int tries;
        int i;
        int length_before;
-       int spin = 0;
 
        if(!udp_arp_resolve(ip))
                return -1;
@@ -146,14 +147,13 @@ int tftp_get(uint32_t ip, uint16_t server_port, const char *filename,
 
        i = 12000000;
        length_before = total_length;
+       init_progression_bar(0);
        while(!transfer_finished) {
                if(length_before != total_length) {
                        i = 12000000;
                        length_before = total_length;
-                       if ((total_length & 0x7fff) == 0) { // every 32K
-                               putchar("|/-\\"[spin++ % 4]);
-                               putchar('\b');
-                       }
+                       if ((total_length & (0x8000 - 1)) == 0)
+                               show_progress(-1);
                }
                if(i-- == 0) {
                        udp_set_callback(NULL);