remote: usb: fix multi-word reads and writes

This commit is contained in:
Marcus Comstedt 2022-07-07 22:50:04 +02:00
parent 358b669ba9
commit 553236e042
1 changed files with 3 additions and 3 deletions

View File

@ -100,14 +100,14 @@ class CommUSB(CSRBuilder):
data = [] data = []
length_int = 1 if length is None else length length_int = 1 if length is None else length
for i in range(length_int): for i in range(length_int):
value = self.usb_read(addr) value = self.usb_read(addr + 4*i)
# Note that sometimes, the value ends up as None when the device # Note that sometimes, the value ends up as None when the device
# disconnects during a transaction. Paper over this fact by # disconnects during a transaction. Paper over this fact by
# replacing it with a sentinal. # replacing it with a sentinal.
if value is None: if value is None:
value = 0xffffffff value = 0xffffffff
if self.debug: if self.debug:
print("read 0x{:08x} @ 0x{:08x}".format(value, addr)) print("read 0x{:08x} @ 0x{:08x}".format(value, addr + 4*i))
if length is None: if length is None:
return value return value
data.append(value) data.append(value)
@ -140,7 +140,7 @@ class CommUSB(CSRBuilder):
data = data if isinstance(data, list) else [data] data = data if isinstance(data, list) else [data]
length = len(data) length = len(data)
for i, value in enumerate(data): for i, value in enumerate(data):
self.usb_write(addr, value) self.usb_write(addr + 4*i, value)
if self.debug: if self.debug:
print("write 0x{:08x} @ 0x{:08x}".format(value, addr + 4*i)) print("write 0x{:08x} @ 0x{:08x}".format(value, addr + 4*i))