newaetech / chipwhisperer

ChipWhisperer - the complete open-source toolchain for side-channel power analysis and glitching attacks
http://chipwhisperer.com
Other
1.09k stars 280 forks source link

Bulk transfer broken on macos #467

Closed hsorbo closed 10 months ago

hsorbo commented 10 months ago

Seems like #466 regressed macos/husky x86/arm.

Stack

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/__init__.py", line 388, in scope
    rtn.con(**kwargs)
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/capture/scopes/OpenADC.py", line 650, in con
    self.scopetype.con(sn, idProduct, bitstream, force, prog_speed, **kwargs)
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/capture/scopes/openadc_interface/naeusbchip.py", line 79, in con
    self.fpga.FPGAProgram(self.getFWConfig().loader.fpga_bitstream(), prog_speed=prog_speed)
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/hardware/naeusb/fpga.py", line 111, in FPGAProgram
    self._FPGADownloadBitstream(bitstream, starting_offset=starting_offset, bitorder=prog_mode)
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/hardware/naeusb/fpga.py", line 186, in _FPGADownloadBitstream
    self._usb.writeBulkEP(inputStream[cur_byte:end_byte])
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/hardware/naeusb/naeusb.py", line 877, in writeBulkEP
    return self.usbserializer.writeBulk(data, timeout=timeout)
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/hardware/naeusb/naeusb.py", line 654, in cmdWriteBulk
    self._bulk_write(data, timeout)
  File "/Users/hsorbo/Desktop/chipwhisperer/software/chipwhisperer/hardware/naeusb/naeusb.py", line 562, in _bulk_write
    self.handle.bulkWrite(self.wep, data, timeout)
  File "/Users/hsorbo/.pyenv/versions/3.9.5/lib/python3.9/site-packages/usb1/__init__.py", line 1389, in bulkWrite
    return self._bulkTransfer(endpoint, data, sizeof(data), timeout)
  File "/Users/hsorbo/.pyenv/versions/3.9.5/lib/python3.9/site-packages/usb1/__init__.py", line 1358, in _bulkTransfer
    mayRaiseUSBError(libusb1.libusb_bulk_transfer(
  File "/Users/hsorbo/.pyenv/versions/3.9.5/lib/python3.9/site-packages/usb1/__init__.py", line 127, in mayRaiseUSBError
    __raiseUSBError(value)
  File "/Users/hsorbo/.pyenv/versions/3.9.5/lib/python3.9/site-packages/usb1/__init__.py", line 119, in raiseUSBError
    raise __STATUS_TO_EXCEPTION_DICT.get(value, __USBError)(value)
usb1.USBErrorNotFound: LIBUSB_ERROR_NOT_FOUND [-5]

Steps to reproduce:

cd chipwhisperer
git checkout develop
git bisect start
git bisect bad
git bisect good 5.7.0

Repeat

#unplug/replug husky
pushd software; python -c 'import chipwhisperer as cw; cw.scope()'; popd

if failes

git bisect bad

else

git bisect good