esptool 5.3.dev1__tar.gz → 5.3.dev3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. {esptool-5.3.dev1/esptool.egg-info → esptool-5.3.dev3}/PKG-INFO +1 -1
  2. {esptool-5.3.dev1 → esptool-5.3.dev3}/esp_rfc2217_server/__init__.py +1 -0
  3. {esptool-5.3.dev1 → esptool-5.3.dev3}/esp_rfc2217_server/esp_port_manager.py +8 -7
  4. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/__init__.py +6 -7
  5. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/cli_util.py +4 -5
  6. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/base_fields.py +4 -8
  7. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/base_operations.py +8 -7
  8. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/emulate_efuse_controller_base.py +2 -4
  9. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32/fields.py +2 -3
  10. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c2/emulate_efuse_controller.py +3 -5
  11. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c2/fields.py +2 -3
  12. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c2/operations.py +3 -2
  13. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c3/fields.py +2 -3
  14. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c5/fields.py +2 -3
  15. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c5/operations.py +3 -2
  16. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c6/operations.py +4 -3
  17. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c61/fields.py +3 -4
  18. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c61/operations.py +4 -3
  19. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32e22/fields.py +2 -3
  20. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h2/fields.py +3 -4
  21. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h2/operations.py +4 -3
  22. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h21/fields.py +3 -4
  23. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h21/operations.py +4 -3
  24. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h4/fields.py +11 -9
  25. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h4/operations.py +4 -3
  26. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32p4/fields.py +3 -4
  27. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32p4/operations.py +4 -3
  28. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s2/fields.py +3 -4
  29. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s3/fields.py +3 -4
  30. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s31/emulate_efuse_controller.py +4 -7
  31. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s31/fields.py +29 -23
  32. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s31/operations.py +4 -3
  33. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/mem_definition_base.py +2 -1
  34. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/util.py +19 -0
  35. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32c5.yaml +35 -34
  36. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32h4.yaml +53 -12
  37. esptool-5.3.dev3/espefuse/efuse_defs/esp32s31.yaml +138 -0
  38. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_interface.py +5 -6
  39. {esptool-5.3.dev1 → esptool-5.3.dev3}/espsecure/__init__.py +4 -6
  40. {esptool-5.3.dev1 → esptool-5.3.dev3}/espsecure/esp_hsm_sign/__init__.py +3 -1
  41. {esptool-5.3.dev1 → esptool-5.3.dev3}/espsecure/esp_hsm_sign/exceptions.py +1 -2
  42. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/__init__.py +199 -41
  43. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/bin_image.py +3 -2
  44. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/cli_util.py +5 -5
  45. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/cmds.py +563 -23
  46. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/loader.py +246 -35
  47. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/logger.py +29 -27
  48. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/__init__.py +1 -2
  49. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32.py +7 -7
  50. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32c3.py +1 -21
  51. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32c5.py +2 -4
  52. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32c6.py +1 -4
  53. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32c61.py +1 -14
  54. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32e22.py +1 -12
  55. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32h2.py +1 -4
  56. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32h4.py +28 -13
  57. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32p4.py +1 -33
  58. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32s2.py +1 -12
  59. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32s3.py +1 -21
  60. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32s31.py +46 -28
  61. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/2/README.md +1 -1
  62. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32.json +8 -0
  63. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32c2.json +8 -0
  64. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32c3.json +8 -0
  65. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32c5.json +8 -0
  66. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32c6.json +8 -0
  67. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32c61.json +8 -0
  68. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32h2.json +8 -0
  69. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32h4.json +8 -0
  70. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32p4-rev1.json +8 -0
  71. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32p4.json +8 -0
  72. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32s2.json +8 -0
  73. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32s3.json +30 -0
  74. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp32s31.json +8 -0
  75. esptool-5.3.dev3/esptool/targets/stub_flasher/2/esp8266.json +8 -0
  76. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/util.py +30 -1
  77. {esptool-5.3.dev1 → esptool-5.3.dev3/esptool.egg-info}/PKG-INFO +1 -1
  78. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool.egg-info/SOURCES.txt +1 -0
  79. {esptool-5.3.dev1 → esptool-5.3.dev3}/pyproject.toml +1 -1
  80. {esptool-5.3.dev1 → esptool-5.3.dev3}/setup.py +1 -0
  81. esptool-5.3.dev1/espefuse/efuse_defs/esp32s31.yaml +0 -122
  82. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32.json +0 -8
  83. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32c2.json +0 -8
  84. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32c3.json +0 -8
  85. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32c5.json +0 -8
  86. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32c6.json +0 -8
  87. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32c61.json +0 -8
  88. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32h2.json +0 -8
  89. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32h4.json +0 -8
  90. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32p4-rev1.json +0 -8
  91. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32p4.json +0 -8
  92. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32s2.json +0 -8
  93. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp32s3.json +0 -29
  94. esptool-5.3.dev1/esptool/targets/stub_flasher/2/esp8266.json +0 -8
  95. {esptool-5.3.dev1 → esptool-5.3.dev3}/LICENSE +0 -0
  96. {esptool-5.3.dev1 → esptool-5.3.dev3}/MANIFEST.in +0 -0
  97. {esptool-5.3.dev1 → esptool-5.3.dev3}/README.md +0 -0
  98. {esptool-5.3.dev1 → esptool-5.3.dev3}/esp_rfc2217_server/__main__.py +0 -0
  99. {esptool-5.3.dev1 → esptool-5.3.dev3}/esp_rfc2217_server/redirector.py +1 -1
  100. {esptool-5.3.dev1 → esptool-5.3.dev3}/esp_rfc2217_server.py +0 -0
  101. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/__main__.py +0 -0
  102. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/__init__.py +0 -0
  103. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/csv_table_parser.py +0 -0
  104. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32/__init__.py +0 -0
  105. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32/emulate_efuse_controller.py +3 -3
  106. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32/mem_definition.py +1 -1
  107. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32/operations.py +3 -3
  108. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c2/__init__.py +0 -0
  109. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c2/mem_definition.py +1 -1
  110. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c3/__init__.py +0 -0
  111. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c3/emulate_efuse_controller.py +3 -3
  112. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c3/mem_definition.py +1 -1
  113. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c3/operations.py +3 -3
  114. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c5/__init__.py +0 -0
  115. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c5/emulate_efuse_controller.py +3 -3
  116. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c5/mem_definition.py +1 -1
  117. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c6/__init__.py +0 -0
  118. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c6/emulate_efuse_controller.py +3 -3
  119. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c6/fields.py +4 -4
  120. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c6/mem_definition.py +1 -1
  121. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c61/__init__.py +0 -0
  122. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c61/emulate_efuse_controller.py +3 -3
  123. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32c61/mem_definition.py +1 -1
  124. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32e22/__init__.py +0 -0
  125. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32e22/emulate_efuse_controller.py +3 -3
  126. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32e22/mem_definition.py +1 -1
  127. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32e22/operations.py +3 -3
  128. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h2/__init__.py +0 -0
  129. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h2/emulate_efuse_controller.py +3 -3
  130. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h2/mem_definition.py +1 -1
  131. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h21/__init__.py +0 -0
  132. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h21/emulate_efuse_controller.py +3 -3
  133. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h21/mem_definition.py +1 -1
  134. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h4/__init__.py +0 -0
  135. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h4/emulate_efuse_controller.py +3 -3
  136. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32h4/mem_definition.py +1 -1
  137. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32p4/__init__.py +0 -0
  138. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32p4/emulate_efuse_controller.py +3 -3
  139. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32p4/mem_definition.py +1 -1
  140. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s2/__init__.py +0 -0
  141. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s2/emulate_efuse_controller.py +3 -3
  142. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s2/mem_definition.py +1 -1
  143. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s2/operations.py +3 -3
  144. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s3/__init__.py +0 -0
  145. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s3/emulate_efuse_controller.py +3 -3
  146. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s3/mem_definition.py +1 -1
  147. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s3/operations.py +4 -4
  148. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s31/__init__.py +0 -0
  149. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse/esp32s31/mem_definition.py +1 -1
  150. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32.yaml +0 -0
  151. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32c2.yaml +0 -0
  152. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32c3.yaml +0 -0
  153. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32c6.yaml +0 -0
  154. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32c61.yaml +0 -0
  155. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32e22.yaml +0 -0
  156. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32h2.yaml +0 -0
  157. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32h21.yaml +0 -0
  158. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32h2_v0.0_v1.1.yaml +0 -0
  159. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32p4.yaml +0 -0
  160. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32p4_v3.0.yaml +0 -0
  161. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32s2.yaml +0 -0
  162. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse/efuse_defs/esp32s3.yaml +0 -0
  163. {esptool-5.3.dev1 → esptool-5.3.dev3}/espefuse.py +0 -0
  164. {esptool-5.3.dev1 → esptool-5.3.dev3}/espsecure/__main__.py +0 -0
  165. {esptool-5.3.dev1 → esptool-5.3.dev3}/espsecure.py +0 -0
  166. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/__main__.py +0 -0
  167. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/config.py +0 -0
  168. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/reset.py +0 -0
  169. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32c2.py +1 -1
  170. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp32h21.py +1 -1
  171. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/esp8266.py +0 -0
  172. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/README.md +0 -0
  173. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32.json +0 -0
  174. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32c2.json +0 -0
  175. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32c3.json +0 -0
  176. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32c5.json +0 -0
  177. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32c6.json +0 -0
  178. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32h2.json +0 -0
  179. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32p4-rev1.json +0 -0
  180. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32s2.json +0 -0
  181. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp32s3.json +0 -0
  182. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/1/esp8266.json +0 -0
  183. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/2/LICENSE-APACHE +0 -0
  184. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/targets/stub_flasher/2/LICENSE-MIT +0 -0
  185. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool/uf2_writer.py +0 -0
  186. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool.egg-info/dependency_links.txt +0 -0
  187. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool.egg-info/entry_points.txt +0 -0
  188. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool.egg-info/requires.txt +0 -0
  189. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool.egg-info/top_level.txt +0 -0
  190. {esptool-5.3.dev1 → esptool-5.3.dev3}/esptool.py +0 -0
  191. {esptool-5.3.dev1 → esptool-5.3.dev3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: esptool
3
- Version: 5.3.dev1
3
+ Version: 5.3.dev3
4
4
  Summary: A serial utility for flashing, provisioning, and interacting with Espressif SoCs.
5
5
  Author: Fredrik Ahlberg (themadinventor), Angus Gratton (projectgus), Espressif Systems
6
6
  License: GPLv2+
@@ -15,6 +15,7 @@
15
15
  import logging
16
16
  import socket
17
17
  import sys
18
+
18
19
  import serial
19
20
 
20
21
  from esp_rfc2217_server.redirector import Redirector
@@ -4,13 +4,7 @@
4
4
  # SPDX-License-Identifier: BSD-3-Clause
5
5
  import os
6
6
  import threading
7
- from esptool.reset import (
8
- ClassicReset,
9
- CustomReset,
10
- DEFAULT_RESET_DELAY,
11
- HardReset,
12
- UnixTightReset,
13
- )
7
+
14
8
  import serial
15
9
  import serial.rfc2217
16
10
  from serial.rfc2217 import (
@@ -23,6 +17,13 @@ from serial.rfc2217 import (
23
17
  )
24
18
 
25
19
  from esptool.config import load_config_file
20
+ from esptool.reset import (
21
+ DEFAULT_RESET_DELAY,
22
+ ClassicReset,
23
+ CustomReset,
24
+ HardReset,
25
+ UnixTightReset,
26
+ )
26
27
 
27
28
  cfg, _ = load_config_file(verbose=True)
28
29
  cfg = cfg["esptool"]
@@ -7,20 +7,19 @@ import sys
7
7
  import rich_click as click
8
8
 
9
9
  import esptool
10
- from esptool.cli_util import BaudRateType, ChipType, ResetModeType, SerialPortType
11
- from esptool.logger import log
12
-
13
10
  from espefuse.cli_util import Group
14
11
  from espefuse.efuse.base_operations import BaseCommands
15
12
  from espefuse.efuse_interface import (
16
13
  DEPRECATED_COMMANDS,
17
- get_esp,
18
- init_commands,
19
- SUPPORTED_COMMANDS,
20
14
  SUPPORTED_BURN_COMMANDS,
21
- SUPPORTED_READ_COMMANDS,
22
15
  SUPPORTED_CHIPS,
16
+ SUPPORTED_COMMANDS,
17
+ SUPPORTED_READ_COMMANDS,
18
+ get_esp,
19
+ init_commands,
23
20
  )
21
+ from esptool.cli_util import BaudRateType, ChipType, ResetModeType, SerialPortType
22
+ from esptool.logger import log
24
23
  from esptool.util import check_deprecated_py_suffix
25
24
 
26
25
  __all__ = [
@@ -6,17 +6,16 @@ from typing import Any
6
6
 
7
7
  import rich_click as click
8
8
  from click.parser import OptionParser, ParsingState, _unpack_args
9
- from esptool.cli_util import Group as EsptoolGroup
10
- from esptool.logger import log
11
9
 
12
10
  from espefuse.efuse_interface import (
13
11
  DEPRECATED_COMMANDS,
14
- init_commands,
15
12
  SUPPORTED_BURN_COMMANDS,
16
- SUPPORTED_READ_COMMANDS,
17
13
  SUPPORTED_COMMANDS,
14
+ SUPPORTED_READ_COMMANDS,
15
+ init_commands,
18
16
  )
19
-
17
+ from esptool.cli_util import Group as EsptoolGroup
18
+ from esptool.logger import log
20
19
 
21
20
  click.rich_click.USE_CLICK_SHORT_HELP = True
22
21
  click.rich_click.COMMAND_GROUPS = {
@@ -4,20 +4,20 @@
4
4
  #
5
5
  # SPDX-License-Identifier: GPL-2.0-or-later
6
6
 
7
- from abc import ABC, abstractmethod
8
7
  import binascii
9
8
  import sys
10
9
  import typing as t
10
+ from abc import ABC, abstractmethod
11
11
 
12
- from bitstring import BitArray, BitStream, Bits, CreationError
12
+ from bitstring import BitArray, Bits, BitStream, CreationError
13
13
 
14
+ import esptool
14
15
  from espefuse.efuse.mem_definition_base import (
15
16
  BlockDefinition,
16
17
  EfuseBlocksBase,
17
18
  EfuseRegistersBase,
18
19
  Field,
19
20
  )
20
- import esptool
21
21
  from esptool.logger import log
22
22
 
23
23
  from . import util
@@ -582,11 +582,7 @@ class EspEfusesBase(ABC):
582
582
  log.print("Re-connecting...")
583
583
  baudrate = esp._port.baudrate
584
584
  port = esp._port.port
585
- connect_mode = (
586
- "usb-reset"
587
- if esp._get_pid() == esp.USB_JTAG_SERIAL_PID
588
- else "default-reset"
589
- )
585
+ connect_mode = "usb-reset" if esp.uses_usb_jtag_serial() else "default-reset"
590
586
  log.print(f"Port: {port}, Baudrate: {baudrate}, Connect mode: {connect_mode}")
591
587
  esp._port.close()
592
588
  return esptool.detect_chip(port, baudrate, connect_mode)
@@ -4,24 +4,22 @@
4
4
  #
5
5
  # SPDX-License-Identifier: GPL-2.0-or-later
6
6
 
7
- from abc import ABC, abstractmethod
8
7
  import io
9
- import os
10
8
  import json
9
+ import os
11
10
  import sys
12
- from typing import Any, BinaryIO, TextIO, cast
11
+ from abc import ABC, abstractmethod
13
12
  from collections.abc import Callable
13
+ from typing import Any, BinaryIO, TextIO, cast
14
14
 
15
- import espsecure
16
15
  import rich_click as click
17
-
18
16
  from bitstring import BitStream
19
17
 
18
+ import espsecure
20
19
  import esptool
21
20
  from esptool.logger import log
22
21
 
23
- from . import base_fields
24
- from . import util
22
+ from . import base_fields, util
25
23
  from .emulate_efuse_controller_base import EmulateEfuseControllerBase
26
24
 
27
25
 
@@ -760,6 +758,9 @@ class BaseCommands(ABC):
760
758
  json_efuse[e.name] = {
761
759
  "name": e.name,
762
760
  "value": base_value if readable else value,
761
+ "raw_value": util.json_raw_value_hex(
762
+ e.efuse_type, e.get_bitstring()
763
+ ),
763
764
  "readable": readable,
764
765
  "writeable": writeable,
765
766
  "description": e.description,
@@ -4,11 +4,12 @@
4
4
  #
5
5
  # SPDX-License-Identifier: GPL-2.0-or-later
6
6
 
7
- from abc import ABC, abstractmethod
8
7
  import re
8
+ from abc import ABC, abstractmethod
9
9
  from typing import Any
10
10
 
11
11
  from bitstring import BitStream
12
+
12
13
  from espefuse.efuse.mem_definition_base import (
13
14
  BlockDefinition,
14
15
  EfuseBlocksBase,
@@ -101,9 +102,6 @@ class EmulateEfuseControllerBase(ABC):
101
102
  blk = self.Blocks.get(self.Blocks.BLOCKS[block])
102
103
  self.write_reg(blk.wr_addr + (4 * n), value)
103
104
 
104
- def _get_pid(self) -> int:
105
- return -1
106
-
107
105
  """ << esptool method end """
108
106
 
109
107
  def handle_writing_event(self, addr: int, value: int) -> None:
@@ -10,10 +10,9 @@ import time
10
10
  import esptool
11
11
  from esptool import log
12
12
 
13
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
14
- from .. import base_fields
15
- from .. import util
13
+ from .. import base_fields, util
16
14
  from ..mem_definition_base import Field
15
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
17
16
 
18
17
 
19
18
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -4,16 +4,14 @@
4
4
  #
5
5
  # SPDX-License-Identifier: GPL-2.0-or-later
6
6
 
7
- from bitstring import BitStream
8
-
9
7
  import reedsolo
8
+ from bitstring import BitStream
10
9
 
11
10
  from espefuse.efuse.mem_definition_base import BlockDefinition
11
+ from esptool import FatalError
12
12
 
13
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
14
13
  from ..emulate_efuse_controller_base import EmulateEfuseControllerBase
15
-
16
- from esptool import FatalError
14
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
17
15
 
18
16
 
19
17
  class EmulateEfuseController(EmulateEfuseControllerBase):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
13
 
13
14
  import esptool
14
15
  from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -6,14 +6,13 @@
6
6
 
7
7
  from io import IOBase
8
8
  from typing import BinaryIO
9
+
9
10
  import rich_click as click
10
11
 
11
12
  import espsecure
12
13
  import esptool
13
14
  from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32C2Commands(BaseCommands):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
13
 
13
14
  import esptool
14
15
  from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
13
 
13
14
  import esptool
14
15
  from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -6,14 +6,13 @@
6
6
 
7
7
  from io import IOBase
8
8
  from typing import BinaryIO
9
+
9
10
  import rich_click as click
10
11
 
11
12
  import espsecure
12
13
  import esptool
13
14
  from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32C5Commands(BaseCommands):
@@ -6,14 +6,13 @@
6
6
 
7
7
  from io import IOBase
8
8
  from typing import BinaryIO
9
- from esptool.logger import log
9
+
10
10
  import rich_click as click
11
11
 
12
12
  import espsecure
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32C6Commands(BaseCommands):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
- from esptool.logger import log
13
13
 
14
14
  import esptool
15
+ from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -6,14 +6,13 @@
6
6
 
7
7
  import io
8
8
  from typing import BinaryIO
9
- from esptool.logger import log
9
+
10
10
  import rich_click as click
11
11
 
12
12
  import espsecure
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32C61Commands(BaseCommands):
@@ -8,15 +8,14 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
13
 
13
14
  import esptool
14
15
  from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
18
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
20
19
 
21
20
 
22
21
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
- from esptool.logger import log
13
13
 
14
14
  import esptool
15
+ from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -6,14 +6,13 @@
6
6
 
7
7
  from io import IOBase
8
8
  from typing import BinaryIO
9
- from esptool.logger import log
9
+
10
10
  import rich_click as click
11
11
 
12
12
  import espsecure
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32H2Commands(BaseCommands):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
- from esptool.logger import log
13
13
 
14
14
  import esptool
15
+ from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -6,14 +6,13 @@
6
6
 
7
7
  from io import IOBase
8
8
  from typing import BinaryIO
9
- from esptool.logger import log
9
+
10
10
  import rich_click as click
11
11
 
12
12
  import espsecure
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32H21Commands(BaseCommands):
@@ -7,16 +7,15 @@
7
7
  import struct
8
8
  import time
9
9
 
10
+ import reedsolo
10
11
  from bitstring import BitArray
11
- from esptool.logger import log
12
12
 
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- import reedsolo
16
-
17
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
18
16
  from .. import base_fields
19
17
  from ..mem_definition_base import Field
18
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
20
19
 
21
20
 
22
21
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -212,8 +211,6 @@ class EspEfuses(base_fields.EspEfusesBase):
212
211
  f"The eFuse supports only xtal=32M (xtal was {apb_freq}"
213
212
  )
214
213
 
215
- # TODO: [ESP32H4] IDF-12268
216
-
217
214
  def get_coding_scheme_warnings(self, silent=False):
218
215
  """Check if the coding scheme has detected any errors."""
219
216
  old_addr_reg = 0
@@ -281,9 +278,7 @@ class EfuseMacField(base_fields.EfuseMacFieldBase, EfuseField):
281
278
 
282
279
 
283
280
  class EfuseWafer(base_fields.EfuseWaferBase, EfuseField):
284
- def get(self, from_read=True):
285
- # TODO: [ESP32H4] IDF-12268
286
- return 0
281
+ pass
287
282
 
288
283
 
289
284
  class EfuseKeyPurposeField(base_fields.EfuseKeyPurposeFieldBase, EfuseField):
@@ -293,6 +288,8 @@ class EfuseKeyPurposeField(base_fields.EfuseKeyPurposeFieldBase, EfuseField):
293
288
  ("USER", 0, None, None, "no_need_rd_protect"), # User purposes (software-only use)
294
289
  ("ECDSA_KEY_P256", 1, None, "Reverse", "need_rd_protect"), # ECDSA key P256 (NIST P-256)
295
290
  ("ECDSA_KEY", 1, None, "Reverse", "need_rd_protect"), # ECDSA key (alias for P256)
291
+ ("XTS_AES_256_KEY_1", 2, None, "Reverse", "need_rd_protect"), # Flash encryption key (XTS-AES-256 low/first half)
292
+ ("XTS_AES_256_KEY_2", 3, None, "Reverse", "need_rd_protect"), # Flash encryption key (XTS-AES-256 high/second half)
296
293
  ("XTS_AES_128_KEY", 4, None, "Reverse", "need_rd_protect"), # XTS_AES_128_KEY (flash/PSRAM encryption)
297
294
  ("HMAC_DOWN_ALL", 5, None, None, "need_rd_protect"), # HMAC Downstream mode
298
295
  ("HMAC_DOWN_JTAG", 6, None, None, "need_rd_protect"), # JTAG soft enable key (uses HMAC Downstream mode)
@@ -302,9 +299,14 @@ class EfuseKeyPurposeField(base_fields.EfuseKeyPurposeFieldBase, EfuseField):
302
299
  ("SECURE_BOOT_DIGEST1", 10, "DIGEST", None, "no_need_rd_protect"), # SECURE_BOOT_DIGEST1 (Secure Boot key digest)
303
300
  ("SECURE_BOOT_DIGEST2", 11, "DIGEST", None, "no_need_rd_protect"), # SECURE_BOOT_DIGEST2 (Secure Boot key digest)
304
301
  ("KM_INIT_KEY", 12, None, None, "need_rd_protect"), # init key that is used for the generation of AES/ECDSA key
302
+ ("XTS_AES_256_PSRAM_KEY_1", 13, None, "Reverse", "need_rd_protect"), # PSRAM encryption key (XTS-AES-256 low/first half)
303
+ ("XTS_AES_256_PSRAM_KEY_2", 14, None, "Reverse", "need_rd_protect"), # PSRAM encryption key (XTS-AES-256 high/second half)
304
+ ("XTS_AES_128_PSRAM_KEY", 15, None, "Reverse", "need_rd_protect"), # PSRAM encryption key (XTS-AES-128)
305
305
  ("ECDSA_KEY_P192", 16, None, "Reverse", "need_rd_protect"), # ECDSA key P192 (NIST P-192)
306
306
  ("ECDSA_KEY_P384_L", 17, None, "Reverse", "need_rd_protect"), # ECDSA key P384 low half
307
307
  ("ECDSA_KEY_P384_H", 18, None, "Reverse", "need_rd_protect"), # ECDSA key P384 high half
308
+ ("XTS_AES_256_KEY", -1, "VIRTUAL", None, "no_need_rd_protect"), # Virtual purpose splits to XTS_AES_256_KEY_1 and XTS_AES_256_KEY_2
309
+ ("XTS_AES_256_PSRAM_KEY", -2, "VIRTUAL", None, "no_need_rd_protect"), # Virtual purpose splits to XTS_AES_256_PSRAM_KEY_1 and XTS_AES_256_PSRAM_KEY_2
308
310
  ("ECDSA_KEY_P384", -3, "VIRTUAL", None, "need_rd_protect"), # Virtual: one key file -> ECDSA_KEY_P384_L + ECDSA_KEY_P384_H
309
311
  ]
310
312
  # fmt: on
@@ -6,14 +6,13 @@
6
6
 
7
7
  from io import IOBase
8
8
  from typing import BinaryIO
9
- from esptool.logger import log
9
+
10
10
  import rich_click as click
11
11
 
12
12
  import espsecure
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32H4Commands(BaseCommands):
@@ -8,16 +8,15 @@ import struct
8
8
  import sys
9
9
  import time
10
10
 
11
+ import reedsolo
11
12
  from bitstring import BitArray
12
- from esptool.logger import log
13
13
 
14
14
  import esptool
15
+ from esptool.logger import log
15
16
 
16
- import reedsolo
17
-
18
- from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
19
17
  from .. import base_fields
20
18
  from ..mem_definition_base import Field
19
+ from .mem_definition import EfuseDefineBlocks, EfuseDefineFields, EfuseDefineRegisters
21
20
 
22
21
 
23
22
  class EfuseBlock(base_fields.EfuseBlockBase):
@@ -6,14 +6,13 @@
6
6
 
7
7
  import io
8
8
  from typing import BinaryIO
9
- from esptool.logger import log
9
+
10
10
  import rich_click as click
11
11
 
12
12
  import espsecure
13
13
  import esptool
14
+ from esptool.logger import log
14
15
 
15
- from . import fields
16
- from .mem_definition import EfuseDefineBlocks
17
16
  from .. import util
18
17
  from ..base_operations import (
19
18
  BaseCommands,
@@ -23,6 +22,8 @@ from ..base_operations import (
23
22
  add_show_sensitive_info_option,
24
23
  protect_options,
25
24
  )
25
+ from . import fields
26
+ from .mem_definition import EfuseDefineBlocks
26
27
 
27
28
 
28
29
  class ESP32P4Commands(BaseCommands):