SecureBoot and Encryption Issues - Unable to set efuses



  • I can successfully build new firmware images and upload them onto a connected Pycom using either the expansion board V3 or a Pysense (unencrypted). And I'm able to build encrypted firmware. However, I'm unable to set the efuses to upload pre-generated keys and enable the secureboot and flash encryption.

    When I run the following command,

    python $IDF_PATH/components/esptool_py/esptool/espefuse.py --port /dev/ttyUSB0 burn_key flash_encryption flash_encryption_key.bin

    I get stuck with the following,

    Connecting......................................_____

    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

    I'm using a FyPi with Pycom MicroPython 1.20.2.r4

    I note the FiPy resets with each attempted connection (I've also tried a LoPy and LoPy4)

    I don't know what I'm missing here, hopefully something really obvious :-)

    Any help very much appreciated.



  • @peterp many thanks, this has solved the problem with both options working. Would it be possible to update the docs (https://docs.pycom.io/advance/encryption/) with this update?


  • Global Moderator

    esp32 must be in download mode for this, so

    • either ./tools/fw_updater/pypic.py -p /dev/ttyACM0 --enter
    • or connect P2 to GND and press reset

    after (removing the jumper and) pressing reset you come out of download mode again



  • I've also tried this on a different system under Windows 10 WSL, Debian, with no luck either...



  • @neil-jepsen Thanks. I've just tried this, along with other baud rates and no luck. I've also tried combinations of the --before option

    I've tried doing a simple fuse dump with

    python $IDF_PATH/components/esptool_py/esptool/espefuse.py --port /dev/ttyACM0 -- baud <tried all options> dump

    And face the same connection issues.

    I should have mentioned, I'm running this on an Ubuntu VM, but I guess this isn't a factor as everything else is working.



  • I solved this using 115200 speed.


Log in to reply
 

Pycom on Twitter