This commit is contained in:
George Hotz
2025-03-10 17:09:55 +08:00
parent c5662de956
commit 1d00354c16

View File

@@ -17,7 +17,7 @@ class USBConnector:
ret = libusb.libusb_detach_kernel_driver(self.handle, 0)
print("detach kernel driver")
if ret != 0: raise Exception(f"Failed to detach kernel driver: {ret}")
libusb.libusb_reset_device(self.handle)
libusb.libusb_reset_device(self.handle)
# Claim interface (gives -3 if we reset)
ret = libusb.libusb_claim_interface(self.handle, 0)
@@ -112,9 +112,6 @@ class USBConnector:
assert size > 0 and size <= 4
if DEBUG >= 1: print("pcie_request", fmt_type, hex(address), value, size, cnt)
# TODO: why is this needed?
time.sleep(0.005)
#print(self.read(0xB296, 1)[0])
masked_address = address & 0xfffffffc
@@ -122,8 +119,6 @@ class USBConnector:
assert size + offset <= 4
#byte_enable = ((1 << size) - 1) << offset
if value is not None:
assert value >> (8 * size) == 0, f"{value}"
shifted_value = value << (8 * offset)
@@ -134,15 +129,12 @@ class USBConnector:
# setup address and length
self.write(0xB218, struct.pack('>I', masked_address))
self.write(0xB217, bytes([0x01]))
self.write(0xB217, bytes([0x01])) # this is the length
# go
self.write(0xB210, bytes([fmt_type])) # set operation type
self.write(0xB213, bytes([0x01])) # trigger operation
#print(byte_enable)
#self.write(0xB210, struct.pack('>III', 0x00000001 | (fmt_type << 24), 1, masked_address))
# Clear PCIe completion timeout status in PCIE_STATUS_REGISTER (0xB296)
self.write(0xB296, bytes([0x07]))