esptool 4.9.dev6__tar.gz → 4.9.dev7__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 (179) hide show
  1. {esptool-4.9.dev6/esptool.egg-info → esptool-4.9.dev7}/PKG-INFO +3 -2
  2. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32p4.yaml +1 -1
  3. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/__init__.py +6 -3
  4. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c5.py +2 -0
  5. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/README.md +1 -1
  6. esptool-4.9.dev7/esptool/targets/stub_flasher/1/esp32p4.json +8 -0
  7. esptool-4.9.dev7/esptool/targets/stub_flasher/1/esp32s3.json +8 -0
  8. {esptool-4.9.dev6 → esptool-4.9.dev7/esptool.egg-info}/PKG-INFO +3 -2
  9. esptool-4.9.dev6/esptool/targets/stub_flasher/1/esp32p4.json +0 -8
  10. esptool-4.9.dev6/esptool/targets/stub_flasher/1/esp32s3.json +0 -8
  11. {esptool-4.9.dev6 → esptool-4.9.dev7}/LICENSE +0 -0
  12. {esptool-4.9.dev6 → esptool-4.9.dev7}/MANIFEST.in +0 -0
  13. {esptool-4.9.dev6 → esptool-4.9.dev7}/README.md +0 -0
  14. {esptool-4.9.dev6 → esptool-4.9.dev7}/esp_rfc2217_server/__init__.py +0 -0
  15. {esptool-4.9.dev6 → esptool-4.9.dev7}/esp_rfc2217_server/__main__.py +0 -0
  16. {esptool-4.9.dev6 → esptool-4.9.dev7}/esp_rfc2217_server/esp_port_manager.py +0 -0
  17. {esptool-4.9.dev6 → esptool-4.9.dev7}/esp_rfc2217_server/redirector.py +0 -0
  18. {esptool-4.9.dev6 → esptool-4.9.dev7}/esp_rfc2217_server.py +0 -0
  19. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/__init__.py +0 -0
  20. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/__main__.py +0 -0
  21. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/__init__.py +0 -0
  22. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/base_fields.py +0 -0
  23. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/base_operations.py +0 -0
  24. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/csv_table_parser.py +0 -0
  25. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/emulate_efuse_controller_base.py +0 -0
  26. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32/__init__.py +0 -0
  27. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32/emulate_efuse_controller.py +0 -0
  28. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32/fields.py +0 -0
  29. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32/mem_definition.py +0 -0
  30. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32/operations.py +0 -0
  31. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c2/__init__.py +0 -0
  32. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c2/emulate_efuse_controller.py +0 -0
  33. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c2/fields.py +0 -0
  34. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c2/mem_definition.py +0 -0
  35. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c2/operations.py +0 -0
  36. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c3/__init__.py +0 -0
  37. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c3/emulate_efuse_controller.py +0 -0
  38. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c3/fields.py +0 -0
  39. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c3/mem_definition.py +0 -0
  40. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c3/operations.py +0 -0
  41. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5/__init__.py +0 -0
  42. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5/emulate_efuse_controller.py +0 -0
  43. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5/fields.py +0 -0
  44. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5/mem_definition.py +0 -0
  45. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5/operations.py +0 -0
  46. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5beta3/__init__.py +0 -0
  47. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5beta3/emulate_efuse_controller.py +0 -0
  48. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5beta3/fields.py +0 -0
  49. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5beta3/mem_definition.py +0 -0
  50. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c5beta3/operations.py +0 -0
  51. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c6/__init__.py +0 -0
  52. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c6/emulate_efuse_controller.py +0 -0
  53. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c6/fields.py +0 -0
  54. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c6/mem_definition.py +0 -0
  55. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c6/operations.py +0 -0
  56. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c61/__init__.py +0 -0
  57. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c61/emulate_efuse_controller.py +0 -0
  58. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c61/fields.py +0 -0
  59. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c61/mem_definition.py +0 -0
  60. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32c61/operations.py +0 -0
  61. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2/__init__.py +0 -0
  62. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2/emulate_efuse_controller.py +0 -0
  63. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2/fields.py +0 -0
  64. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2/mem_definition.py +0 -0
  65. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2/operations.py +0 -0
  66. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h21/__init__.py +0 -0
  67. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h21/emulate_efuse_controller.py +0 -0
  68. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h21/fields.py +0 -0
  69. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h21/mem_definition.py +0 -0
  70. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h21/operations.py +0 -0
  71. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2beta1/__init__.py +0 -0
  72. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2beta1/emulate_efuse_controller.py +0 -0
  73. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2beta1/fields.py +0 -0
  74. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2beta1/mem_definition.py +0 -0
  75. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h2beta1/operations.py +0 -0
  76. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h4/__init__.py +0 -0
  77. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h4/emulate_efuse_controller.py +0 -0
  78. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h4/fields.py +0 -0
  79. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h4/mem_definition.py +0 -0
  80. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32h4/operations.py +0 -0
  81. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32p4/__init__.py +0 -0
  82. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32p4/emulate_efuse_controller.py +0 -0
  83. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32p4/fields.py +0 -0
  84. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32p4/mem_definition.py +0 -0
  85. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32p4/operations.py +0 -0
  86. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s2/__init__.py +0 -0
  87. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s2/emulate_efuse_controller.py +0 -0
  88. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s2/fields.py +0 -0
  89. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s2/mem_definition.py +0 -0
  90. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s2/operations.py +0 -0
  91. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3/__init__.py +0 -0
  92. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3/emulate_efuse_controller.py +0 -0
  93. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3/fields.py +0 -0
  94. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3/mem_definition.py +0 -0
  95. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3/operations.py +0 -0
  96. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3beta2/__init__.py +0 -0
  97. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3beta2/emulate_efuse_controller.py +0 -0
  98. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3beta2/fields.py +0 -0
  99. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3beta2/mem_definition.py +0 -0
  100. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/esp32s3beta2/operations.py +0 -0
  101. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/mem_definition_base.py +0 -0
  102. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse/util.py +0 -0
  103. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32.yaml +0 -0
  104. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32c2.yaml +0 -0
  105. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32c3.yaml +0 -0
  106. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32c5.yaml +0 -0
  107. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32c5beta3.yaml +0 -0
  108. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32c6.yaml +0 -0
  109. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32c61.yaml +0 -0
  110. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32h2.yaml +0 -0
  111. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32h21.yaml +0 -0
  112. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32h2_v0.0_v1.1.yaml +0 -0
  113. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32h4.yaml +0 -0
  114. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32s2.yaml +0 -0
  115. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse/efuse_defs/esp32s3.yaml +0 -0
  116. {esptool-4.9.dev6 → esptool-4.9.dev7}/espefuse.py +0 -0
  117. {esptool-4.9.dev6 → esptool-4.9.dev7}/espsecure/__init__.py +0 -0
  118. {esptool-4.9.dev6 → esptool-4.9.dev7}/espsecure/__main__.py +0 -0
  119. {esptool-4.9.dev6 → esptool-4.9.dev7}/espsecure/esp_hsm_sign/__init__.py +0 -0
  120. {esptool-4.9.dev6 → esptool-4.9.dev7}/espsecure/esp_hsm_sign/exceptions.py +0 -0
  121. {esptool-4.9.dev6 → esptool-4.9.dev7}/espsecure.py +0 -0
  122. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/__main__.py +0 -0
  123. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/bin_image.py +0 -0
  124. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/cmds.py +0 -0
  125. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/config.py +0 -0
  126. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/loader.py +0 -0
  127. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/reset.py +0 -0
  128. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/__init__.py +0 -0
  129. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32.py +0 -0
  130. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c2.py +0 -0
  131. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c3.py +0 -0
  132. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c5beta3.py +0 -0
  133. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c6.py +0 -0
  134. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c61.py +0 -0
  135. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32c6beta.py +0 -0
  136. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32h2.py +0 -0
  137. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32h21.py +0 -0
  138. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32h2beta1.py +0 -0
  139. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32h2beta2.py +0 -0
  140. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32h4.py +0 -0
  141. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32p4.py +0 -0
  142. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32s2.py +0 -0
  143. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32s3.py +0 -0
  144. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp32s3beta2.py +0 -0
  145. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/esp8266.py +0 -0
  146. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32.json +0 -0
  147. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c2.json +0 -0
  148. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c3.json +0 -0
  149. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c5.json +0 -0
  150. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c5beta3.json +0 -0
  151. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c6.json +0 -0
  152. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c61.json +0 -0
  153. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32c6beta.json +0 -0
  154. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32h2.json +0 -0
  155. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32h2beta1.json +0 -0
  156. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32h2beta2.json +0 -0
  157. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32s2.json +0 -0
  158. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp32s3beta2.json +0 -0
  159. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/1/esp8266.json +0 -0
  160. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/LICENSE-APACHE +0 -0
  161. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/LICENSE-MIT +0 -0
  162. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/README.md +0 -0
  163. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32.json +0 -0
  164. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32c2.json +0 -0
  165. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32c3.json +0 -0
  166. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32c6.json +0 -0
  167. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32h2.json +0 -0
  168. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32s2.json +0 -0
  169. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/targets/stub_flasher/2/esp32s3.json +0 -0
  170. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/uf2_writer.py +0 -0
  171. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool/util.py +0 -0
  172. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool.egg-info/SOURCES.txt +0 -0
  173. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool.egg-info/dependency_links.txt +0 -0
  174. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool.egg-info/requires.txt +0 -0
  175. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool.egg-info/top_level.txt +0 -0
  176. {esptool-4.9.dev6 → esptool-4.9.dev7}/esptool.py +0 -0
  177. {esptool-4.9.dev6 → esptool-4.9.dev7}/pyproject.toml +0 -0
  178. {esptool-4.9.dev6 → esptool-4.9.dev7}/setup.cfg +0 -0
  179. {esptool-4.9.dev6 → esptool-4.9.dev7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: esptool
3
- Version: 4.9.dev6
3
+ Version: 4.9.dev7
4
4
  Summary: A serial utility to communicate & flash code to Espressif chips.
5
5
  Author: Fredrik Ahlberg (themadinventor), Angus Gratton (projectgus), Espressif Systems
6
6
  License: GPLv2+
@@ -46,6 +46,7 @@ Requires-Dist: requests; extra == "dev"
46
46
  Requires-Dist: commitizen; extra == "dev"
47
47
  Provides-Extra: hsm
48
48
  Requires-Dist: python-pkcs11; extra == "hsm"
49
+ Dynamic: license-file
49
50
 
50
51
  # esptool.py
51
52
 
@@ -10,7 +10,7 @@ EFUSES:
10
10
  DIS_FORCE_DOWNLOAD : {show: y, blk : 0, word: 1, pos: 12, len : 1, start : 44, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: 'Represents whether the function that forces chip into download mode is disabled or enabled. 1: disabled. 0: enabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[12]', bloc: 'B5[4]'}
11
11
  SPI_DOWNLOAD_MSPI_DIS : {show: y, blk : 0, word: 1, pos: 13, len : 1, start : 45, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: Set this bit to disable accessing MSPI flash/MSPI ram by SYS AXI matrix during boot_mode_download, rloc: 'EFUSE_RD_REPEAT_DATA0_REG[13]', bloc: 'B5[5]'}
12
12
  DIS_TWAI : {show: y, blk : 0, word: 1, pos: 14, len : 1, start : 46, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: 'Represents whether TWAI function is disabled or enabled. 1: disabled. 0: enabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[14]', bloc: 'B5[6]'}
13
- JTAG_SEL_ENABLE : {show: y, blk : 0, word: 1, pos: 15, len : 1, start : 47, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: 'Represents whether the selection between usb_to_jtag and pad_to_jtag through strapping gpio15 when both EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are equal to 0 is enabled or disabled. 1: enabled. 0: disabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[15]', bloc: 'B5[7]'}
13
+ JTAG_SEL_ENABLE : {show: y, blk : 0, word: 1, pos: 15, len : 1, start : 47, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: 'Represents whether the selection between usb_to_jtag and pad_to_jtag through strapping gpio34 when both EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are equal to 0 is enabled or disabled. 1: enabled. 0: disabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[15]', bloc: 'B5[7]'}
14
14
  SOFT_DIS_JTAG : {show: y, blk : 0, word: 1, pos: 16, len : 3, start : 48, type : 'uint:3', wr_dis : 31, rd_dis: null, alt : '', dict : '', desc: 'Represents whether JTAG is disabled in soft way. Odd number: disabled. Even number: enabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[18:16]', bloc: 'B6[2:0]'}
15
15
  DIS_PAD_JTAG : {show: y, blk : 0, word: 1, pos: 19, len : 1, start : 51, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: 'Represents whether JTAG is disabled in the hard way(permanently). 1: disabled. 0: enabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[19]', bloc: 'B6[3]'}
16
16
  DIS_DOWNLOAD_MANUAL_ENCRYPT : {show: y, blk : 0, word: 1, pos: 20, len : 1, start : 52, type : bool, wr_dis : 2, rd_dis: null, alt : '', dict : '', desc: 'Represents whether flash encrypt function is disabled or enabled(except in SPI boot mode). 1: disabled. 0: enabled', rloc: 'EFUSE_RD_REPEAT_DATA0_REG[20]', bloc: 'B6[4]'}
@@ -29,7 +29,7 @@ __all__ = [
29
29
  "write_mem",
30
30
  ]
31
31
 
32
- __version__ = "4.9.dev6"
32
+ __version__ = "4.9.dev7"
33
33
 
34
34
  import argparse
35
35
  import inspect
@@ -1024,7 +1024,7 @@ def main(argv=None, esp=None):
1024
1024
  # Check if stub supports chosen flash size
1025
1025
  if (
1026
1026
  esp.IS_STUB
1027
- and esp.CHIP_NAME != "ESP32-S3"
1027
+ and esp.CHIP_NAME not in ["ESP32-S3", "ESP32-P4"]
1028
1028
  and flash_size_bytes(flash_size) > 16 * 1024 * 1024
1029
1029
  ):
1030
1030
  print(
@@ -1050,7 +1050,10 @@ def main(argv=None, esp=None):
1050
1050
  args.size = flash_size_bytes(size_str)
1051
1051
 
1052
1052
  if esp.IS_STUB and hasattr(args, "address") and hasattr(args, "size"):
1053
- if esp.CHIP_NAME != "ESP32-S3" and args.address + args.size > 0x1000000:
1053
+ if (
1054
+ esp.CHIP_NAME not in ["ESP32-S3", "ESP32-P4"]
1055
+ and args.address + args.size > 0x1000000
1056
+ ):
1054
1057
  print(
1055
1058
  "WARNING: Flasher stub doesn't fully support flash size larger "
1056
1059
  "than 16MB, in case of failure use --no-stub."
@@ -16,6 +16,8 @@ class ESP32C5ROM(ESP32C6ROM):
16
16
  CHIP_NAME = "ESP32-C5"
17
17
  IMAGE_CHIP_ID = 23
18
18
 
19
+ BOOTLOADER_FLASH_OFFSET = 0x2000
20
+
19
21
  EFUSE_BASE = 0x600B4800
20
22
  EFUSE_BLOCK1_ADDR = EFUSE_BASE + 0x044
21
23
  MAC_EFUSE_REG = EFUSE_BASE + 0x044
@@ -1,3 +1,3 @@
1
1
  # Licensing
2
2
 
3
- The binaries in JSON format distributed in this directory are released as Free Software under GNU General Public License Version 2 or later. They were released at https://github.com/espressif/esptool-legacy-flasher-stub/releases/tag/v1.4.0 from where the sources can be obtained.
3
+ The binaries in JSON format distributed in this directory are released as Free Software under GNU General Public License Version 2 or later. They were released at https://github.com/espressif/esptool-legacy-flasher-stub/releases/tag/v1.5.0 from where the sources can be obtained.
@@ -0,0 +1,8 @@
1
+ {
2
+ "entry": 1341196876,
3
+ "text": "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",
4
+ "text_start": 1341194240,
5
+ "data": "XAD1T8YP8U8IEPFPYBDxTzIR8U+aEfFPSBHxT9oN8U/mEPFPLhHxT3YQ8U+KDfFPnhDxT4oN8U+iD/FP4A/xTwgQ8U9gEPFPtA/xT1AO8U+CDvFPsA/xT1AV8U8IEPFPfhPxTxAV8U8aDPFPNBXxTxoM8U8aDPFPGgzxTxoM8U8aDPFPGgzxTxoM8U8aDPFPHBPxTxoM8U8qFPFPEBXxTw==",
6
+ "data_start": 1341533176,
7
+ "bss_start": 1341456384
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "entry": 1077381816,
3
+ "text": "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",
4
+ "text_start": 1077379072,
5
+ "data": "XADKP5aON0BrjzdA05U3QPKPN0CLjzdA8o83QFGQN0BvkTdA4JE3QIqRN0AhjjdAA5E3QGGRN0B0kDdABJI3QJyQN0AEkjdAWY83QLaPN0DyjzdAUZA3QHGPN0BijjdAwJI3QJOVN0A4jTdAt5U3QDiNN0A4jTdAOI03QDiNN0A4jTdAOI03QDiNN0A4jTdAX5I3QDiNN0CulDdAk5U3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",
6
+ "data_start": 1070279676,
7
+ "bss_start": 1070202880
8
+ }
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: esptool
3
- Version: 4.9.dev6
3
+ Version: 4.9.dev7
4
4
  Summary: A serial utility to communicate & flash code to Espressif chips.
5
5
  Author: Fredrik Ahlberg (themadinventor), Angus Gratton (projectgus), Espressif Systems
6
6
  License: GPLv2+
@@ -46,6 +46,7 @@ Requires-Dist: requests; extra == "dev"
46
46
  Requires-Dist: commitizen; extra == "dev"
47
47
  Provides-Extra: hsm
48
48
  Requires-Dist: python-pkcs11; extra == "hsm"
49
+ Dynamic: license-file
49
50
 
50
51
  # esptool.py
51
52
 
@@ -1,8 +0,0 @@
1
- {
2
- "entry": 1341196252,
3
- "text": "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",
4
- "text_start": 1341194240,
5
- "data": "XAD1T1QM8U+kDPFP/AzxT9IN8U8+DvFP7A3xTyAL8U+ODfFPzg3xTxAN8U/QCvFPRA3xT9AK8U8uDPFPdAzxT6QM8U/8DPFPQAzxT4QL8U+0C/FPPAzxT5YQ8U+kDPFPXg/xT1YQ8U9sCfFPehDxT2wJ8U9sCfFPbAnxT2wJ8U9sCfFPbAnxT2wJ8U9sCfFP8g7xT2wJ8U98D/FPVhDxTw==",
6
- "data_start": 1341533176,
7
- "bss_start": 1341456384
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "entry": 1077381760,
3
- "text": "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",
4
- "text_start": 1077379072,
5
- "data": "XADKP16ON0AzjzdAR5Q3QL2PN0BTjzdAvY83QB2QN0A6kTdArJE3QFWRN0DpjTdA0JA3QCyRN0BAkDdA0JE3QGiQN0DQkTdAIY83QH6PN0C9jzdAHZA3QDmPN0AqjjdAkJI3QA2UN0AAjTdALZQ3QACNN0AAjTdAAI03QACNN0AAjTdAAI03QACNN0AAjTdAKpI3QACNN0AlkzdADZQ3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",
6
- "data_start": 1070279676,
7
- "bss_start": 1070202880
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes