# The SETUP packet looks like this:
#
# +----+----+----------+----+----+
-# | C0 | 00 | ADDRESS | 04 | 00 | read packet
+# | C3 | 00 | ADDRESS | 04 | 00 | read packet
# +----+----+----------+----+----+
# 1 1 4 1 1
#
# +----+----+----------+----+----+
-# | 40 | 00 | ADDRESS | 04 | 00 | write packet
+# | 43 | 00 | ADDRESS | 04 | 00 | write packet
# +----+----+----------+----+----+
# 1 1 4 1 1
#
# byte indicates what type of packet it is, and that it is a Wishbone Bridge
# packet. This is the value "0x40" (VENDOR type packet destined for DEVICE)
# with the "Data Phase Transfer" bit either set or cleared:
-# - Read: 0xc0
-# - Write: 0x40
+# - Read: 0xc3
+# - Write: 0x43
#
# The next byte is bRequest, which in the current implementation is unused.
# Set this value to 0.
def usb_read(self, addr, depth=0):
try:
- value = self.dev.ctrl_transfer(bmRequestType=0xc0,
+ value = self.dev.ctrl_transfer(bmRequestType=0xc3,
bRequest=0x00,
wValue=addr & 0xffff,
wIndex=(addr >> 16) & 0xffff,
def usb_write(self, addr, value, depth=0):
try:
- self.dev.ctrl_transfer(bmRequestType=0x40, bRequest=0x00,
+ self.dev.ctrl_transfer(bmRequestType=0x43, bRequest=0x00,
wValue=addr & 0xffff,
wIndex=(addr >> 16) & 0xffff,
data_or_wLength=bytes([(value >> 0) & 0xff,