tools/litex_term: use different payload_length/delay settings for USB-ACM.
This commit is contained in:
parent
b7c0922ec1
commit
bed072ef19
|
@ -58,7 +58,7 @@ sfl_prompt_ack = b"\x06"
|
||||||
sfl_magic_req = b"sL5DdSMmkekro\n"
|
sfl_magic_req = b"sL5DdSMmkekro\n"
|
||||||
sfl_magic_ack = b"z6IHG7cYDID6o\n"
|
sfl_magic_ack = b"z6IHG7cYDID6o\n"
|
||||||
|
|
||||||
sfl_payload_length = 64 # FIXME: Understand why 255 failing with USB-FIFO.
|
sfl_payload_length = 255
|
||||||
sfl_outstanding = 128
|
sfl_outstanding = 128
|
||||||
|
|
||||||
# General commands
|
# General commands
|
||||||
|
@ -165,6 +165,13 @@ class LiteXTerm:
|
||||||
def open(self, port, baudrate):
|
def open(self, port, baudrate):
|
||||||
if hasattr(self, "port"):
|
if hasattr(self, "port"):
|
||||||
return
|
return
|
||||||
|
# FIXME: https://github.com/enjoy-digital/litex/issues/720
|
||||||
|
if "ttyACM" in port:
|
||||||
|
self.payload_length = sfl_payload_length
|
||||||
|
self.delay = 1e-4
|
||||||
|
else:
|
||||||
|
self.payload_length = 64
|
||||||
|
self.delay = 1e-5
|
||||||
self.port = serial.serial_for_url(port, baudrate)
|
self.port = serial.serial_for_url(port, baudrate)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
|
@ -236,7 +243,7 @@ class LiteXTerm:
|
||||||
if outstanding <= sfl_outstanding:
|
if outstanding <= sfl_outstanding:
|
||||||
# Prepare frame.
|
# Prepare frame.
|
||||||
frame = SFLFrame()
|
frame = SFLFrame()
|
||||||
frame_data = f.read(min(remaining, sfl_payload_length-4))
|
frame_data = f.read(min(remaining, self.payload_length-4))
|
||||||
if self.flash:
|
if self.flash:
|
||||||
frame.cmd = sfl_cmd_flash
|
frame.cmd = sfl_cmd_flash
|
||||||
else:
|
else:
|
||||||
|
@ -253,11 +260,11 @@ class LiteXTerm:
|
||||||
remaining -= len(frame_data)
|
remaining -= len(frame_data)
|
||||||
outstanding += 1
|
outstanding += 1
|
||||||
|
|
||||||
# Inter-frame delay for fast UARTs (ex: FT245).
|
# Inter-frame delay.
|
||||||
time.sleep(1e-4)
|
time.sleep(self.delay)
|
||||||
|
|
||||||
# Read response if availables.
|
# Read response if availables.
|
||||||
if self.port.in_waiting:
|
while self.port.in_waiting:
|
||||||
self.receive_upload_response()
|
self.receive_upload_response()
|
||||||
outstanding -= 1
|
outstanding -= 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue