import time from tinygrad.runtime.support.usb import USB3 devs = USB3.list_devices(0xADD1,0x0001) + USB3.list_devices(0x3801,0x0001) dev,bus = devs[0]; usb = USB3(dev) lt = lambda: usb.control_read(0xE4,1,value=0xB450)[0] for attempt in range(3): print(f"--- attempt {attempt+1}: LTSSM={hex(lt())}") usb.control_write(0xF3, value=0, timeout=10000) time.sleep(5.0) usb.control_write(0xF3, value=1, timeout=10000) seen=set() for i in range(80): time.sleep(0.25); v=lt(); seen.add(v) if v==0x78: print(f" LINK UP at t={0.25*(i+1):.2f}s"); break print(f" final={hex(lt())} states seen: {sorted(hex(x) for x in seen)}") if lt()==0x78: break