firestarter 3.2.3__tar.gz → 3.2.4__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 (211) hide show
  1. {firestarter-3.2.3/firestarter.egg-info → firestarter-3.2.4}/PKG-INFO +1 -1
  2. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/_version.py +3 -3
  3. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/chip_resolver.py +10 -0
  4. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/data/chip_database.json +876 -38
  5. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/data/pinouts.json +13 -12
  6. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/database.py +45 -14
  7. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/eprom_info.py +3 -1
  8. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/ic_layout.py +2 -1
  9. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/jumper_table.py +3 -3
  10. {firestarter-3.2.3 → firestarter-3.2.4/firestarter.egg-info}/PKG-INFO +1 -1
  11. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/scm_file_list.json +3 -0
  12. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/scm_version.json +2 -2
  13. {firestarter-3.2.3 → firestarter-3.2.4}/tests/__snapshots__/test_characterization.ambr +5 -3
  14. {firestarter-3.2.3 → firestarter-3.2.4}/tests/golden/chip_database_field_inventory.json +27 -25
  15. {firestarter-3.2.3 → firestarter-3.2.4}/tests/golden/wire_dict.json +472 -806
  16. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_build_db_inclusion.py +10 -10
  17. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_build_db_pinout_fork.py +82 -0
  18. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_characterization.py +4 -4
  19. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_database_field_inventory.py +4 -3
  20. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_resolver.py +11 -0
  21. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_test.py +1 -1
  22. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_datasheet_overrides.py +1 -1
  23. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_eprom_database.py +46 -0
  24. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_extra_chips_supplement.py +44 -2
  25. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_ic_layout.py +24 -0
  26. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_info_vpp_and_erase.py +3 -3
  27. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_jp5_gate.py +3 -3
  28. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_jumper_table.py +4 -4
  29. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_lock_status_class_partition.py +71 -62
  30. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_programming_vcc_census.py +98 -69
  31. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_vpp_rail_classification.py +184 -105
  32. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_blank_guard_pinning.py +5 -0
  33. {firestarter-3.2.3 → firestarter-3.2.4}/LICENSE +0 -0
  34. {firestarter-3.2.3 → firestarter-3.2.4}/MANIFEST.in +0 -0
  35. {firestarter-3.2.3 → firestarter-3.2.4}/README.md +0 -0
  36. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/__init__.py +0 -0
  37. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/address_parser.py +0 -0
  38. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/avr_tool.py +0 -0
  39. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/channel.py +0 -0
  40. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/chip_test.py +0 -0
  41. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/cli_handlers.py +0 -0
  42. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/codec.py +0 -0
  43. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/compare.py +0 -0
  44. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/config.py +0 -0
  45. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/constants.py +0 -0
  46. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/diagnostic_report.py +0 -0
  47. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/dip24_2816_erase_gate.py +0 -0
  48. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/eprom_operations.py +0 -0
  49. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/erase_support.py +0 -0
  50. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/exceptions.py +0 -0
  51. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/firmware.py +0 -0
  52. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/flash4_erase_gate.py +0 -0
  53. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/frame_parser.py +0 -0
  54. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/fw_release_gate.py +0 -0
  55. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/hardware.py +0 -0
  56. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/jp5_gate.py +0 -0
  57. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/lock_status.py +0 -0
  58. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/log_capture.py +0 -0
  59. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/logging_utils.py +0 -0
  60. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/main.py +0 -0
  61. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/messages.py +0 -0
  62. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/page_size_gate.py +0 -0
  63. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/protection_readability.py +0 -0
  64. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/py32_dfu.py +0 -0
  65. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/sdp_capability.py +0 -0
  66. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/sdp_honesty.py +0 -0
  67. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/serial_comm.py +0 -0
  68. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/submit.py +0 -0
  69. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/timestamps.py +0 -0
  70. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/transport_counters.py +0 -0
  71. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/utils.py +0 -0
  72. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/vpp_display.py +0 -0
  73. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter/write_blank_guard.py +0 -0
  74. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/SOURCES.txt +0 -0
  75. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/dependency_links.txt +0 -0
  76. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/entry_points.txt +0 -0
  77. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/requires.txt +0 -0
  78. {firestarter-3.2.3 → firestarter-3.2.4}/firestarter.egg-info/top_level.txt +0 -0
  79. {firestarter-3.2.3 → firestarter-3.2.4}/pyproject.toml +0 -0
  80. {firestarter-3.2.3 → firestarter-3.2.4}/setup.cfg +0 -0
  81. {firestarter-3.2.3 → firestarter-3.2.4}/tests/__init__.py +0 -0
  82. {firestarter-3.2.3 → firestarter-3.2.4}/tests/conftest.py +0 -0
  83. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fake_chip.py +0 -0
  84. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/part_number_delta.json +0 -0
  85. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/report_shapes.py +0 -0
  86. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/at28c256-full-all-ok-sdp.json +0 -0
  87. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/attr01-status-axis-transport-fault.json +0 -0
  88. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/gh20-at28c256-fail.json +0 -0
  89. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/gh23-w27e257-fail.json +0 -0
  90. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/gh28-m27c512-fail.json +0 -0
  91. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/gh47-sst27sf512-pass.json +0 -0
  92. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/m27c512-full-all-ok.json +0 -0
  93. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/m27c512-full-blank-check-bad.json +0 -0
  94. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/m27c512-full-canonical-name.json +0 -0
  95. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/m27c512-full-comma-joined-name.json +0 -0
  96. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/m27c512-full-runs-1.json +0 -0
  97. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/prune03-synthesized-fingerprint-match.json +0 -0
  98. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/sst27sf512-full-all-ok.json +0 -0
  99. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/sst27sf512-six-step-readback-gated.json +0 -0
  100. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/sst27sf512-six-step.json +0 -0
  101. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/synthetic-arm4-empty-results.json +0 -0
  102. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/synthetic-arm4-no-ok.json +0 -0
  103. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/uv-slot-write-pass.json +0 -0
  104. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/reports/w27e257-full-all-ok.json +0 -0
  105. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/shape_ids.json +0 -0
  106. {firestarter-3.2.3 → firestarter-3.2.4}/tests/fixtures/synthetic_nonzero_chip_id.py +0 -0
  107. {firestarter-3.2.3 → firestarter-3.2.4}/tests/golden/build_db_part_specific_constants.json +0 -0
  108. {firestarter-3.2.3 → firestarter-3.2.4}/tests/plan_corpus.py +0 -0
  109. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_address_parser.py +0 -0
  110. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_b15_page_size_corroboration.py +0 -0
  111. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_blast_radius_invariance.py +0 -0
  112. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_boot_block_hint.py +0 -0
  113. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_budget_failure_render.py +0 -0
  114. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_bug_characterization.py +0 -0
  115. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_build_db_constant_census.py +0 -0
  116. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_build_db_interpret_timing.py +0 -0
  117. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_canonical_part_number.py +0 -0
  118. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_name_resolution.py +0 -0
  119. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_test_blank_check_order.py +0 -0
  120. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_test_cycle.py +0 -0
  121. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_test_sdp_leg.py +0 -0
  122. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_test_timing.py +0 -0
  123. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_chip_test_uv_slot_write.py +0 -0
  124. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_cli_handlers.py +0 -0
  125. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_click_group_gate_hook.py +0 -0
  126. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_cobs.py +0 -0
  127. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_codec.py +0 -0
  128. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_codec_format_message.py +0 -0
  129. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_compare.py +0 -0
  130. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_config.py +0 -0
  131. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_config_band_refusal.py +0 -0
  132. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_connect_cost_harness.py +0 -0
  133. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_consistency_check.py +0 -0
  134. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_coverage_floor_v18.py +0 -0
  135. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_database_conversion.py +0 -0
  136. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_decoder.py +0 -0
  137. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_derive_plan_no_drop_sweep.py +0 -0
  138. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_derive_plan_structural_sentinel.py +0 -0
  139. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_dev_group_channel_gating.py +0 -0
  140. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_dev_test_cmd.py +0 -0
  141. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_dev_tools_channel_gate.py +0 -0
  142. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_devtest_firmware_error_propagation.py +0 -0
  143. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_dfu_opcode_anchors.py +0 -0
  144. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_diagnostic_report.py +0 -0
  145. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_dip24_2816_erase_gate.py +0 -0
  146. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_endpoint_constants.py +0 -0
  147. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_eprom_info.py +0 -0
  148. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_eprom_operations.py +0 -0
  149. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_erase_blank_step_nonregression.py +0 -0
  150. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_erase_flag_invariants.py +0 -0
  151. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_error_code_seam.py +0 -0
  152. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_even_block.py +0 -0
  153. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_firmware_install.py +0 -0
  154. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_flash4_erase_gate.py +0 -0
  155. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fw_list_failure_vs_empty.py +0 -0
  156. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fw_port_targeting_and_blind_install.py +0 -0
  157. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fw_release_gate.py +0 -0
  158. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fw_update_dead_endpoint.py +0 -0
  159. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fw_update_path_gate.py +0 -0
  160. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fw_version_guard.py +0 -0
  161. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_fwguard.py +0 -0
  162. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_hardware.py +0 -0
  163. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_hw_revision_gate.py +0 -0
  164. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_lock_status_cli.py +0 -0
  165. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_lock_status_wire.py +0 -0
  166. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_log_capture.py +0 -0
  167. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_logging_utils.py +0 -0
  168. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_matrix_artifact.py +0 -0
  169. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_page_size_alignment_refusal.py +0 -0
  170. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_page_size_invariants.py +0 -0
  171. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_page_size_write_refusal.py +0 -0
  172. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_parse_devtest_issue.py +0 -0
  173. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_probe_spurious_setup_ack.py +0 -0
  174. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_protect_flags_doc_measurements.py +0 -0
  175. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_protection_resolution.py +0 -0
  176. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_protection_status_catalog.py +0 -0
  177. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_protection_table_citations.py +0 -0
  178. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_protocol_not_implemented.py +0 -0
  179. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_protocol_not_implemented_production_path.py +0 -0
  180. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_provenance.py +0 -0
  181. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_pulse_us_override.py +0 -0
  182. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_py32_channel_gating.py +0 -0
  183. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_py32_dfu.py +0 -0
  184. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_py32_flash_map_host.py +0 -0
  185. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_py32_pyusb_absent.py +0 -0
  186. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_pyusb_api_surface.py +0 -0
  187. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_sdp_capability.py +0 -0
  188. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_sdp_db_invariant.py +0 -0
  189. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_sdp_honesty.py +0 -0
  190. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_serial_characterization.py +0 -0
  191. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_serial_comm.py +0 -0
  192. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_session_lease.py +0 -0
  193. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_setup_refusals.py +0 -0
  194. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_submit.py +0 -0
  195. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_timestamps.py +0 -0
  196. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_transport_counters.py +0 -0
  197. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_utils.py +0 -0
  198. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_uv_mask.py +0 -0
  199. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_validate_family_cmd.py +0 -0
  200. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_validate_oracle.py +0 -0
  201. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_validated_parts_regression_surface.py +0 -0
  202. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_vcc_margin_rail.py +0 -0
  203. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_vpp_decode_table.py +0 -0
  204. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_wire_dict_equivalence.py +0 -0
  205. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_blank_guard.py +0 -0
  206. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_guard_port_pinning.py +0 -0
  207. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_progress.py +0 -0
  208. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_response_budget.py +0 -0
  209. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_skip_erase_0x0d.py +0 -0
  210. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_skip_sdp_unlock.py +0 -0
  211. {firestarter-3.2.3 → firestarter-3.2.4}/tests/test_write_verify.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: firestarter
3
- Version: 3.2.3
3
+ Version: 3.2.4
4
4
  Summary: EPROM programmer software for the Relatively Universal ROM Programmer
5
5
  Author-email: Henrik Olsson <henols@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/henols/firestarter_app
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '3.2.3'
22
- __version_tuple__ = version_tuple = (3, 2, 3)
21
+ __version__ = version = '3.2.4'
22
+ __version_tuple__ = version_tuple = (3, 2, 4)
23
23
 
24
- __commit_id__ = commit_id = 'g660e8c4'
24
+ __commit_id__ = commit_id = 'g3023daa'
@@ -129,4 +129,14 @@ def resolve_chip(name: str, db: EpromDatabase | None = None) -> dict[str, Any]:
129
129
  f"{name}: the chip entry gives 0 for {', '.join(zero_fields)}. "
130
130
  "The programmer cannot use a value of 0 there."
131
131
  )
132
+
133
+ # A pin map with fewer address lines than the chip's size needs would
134
+ # repeat one window of the chip across the whole operation, silently.
135
+ bus = data.get("bus-config", {}).get("bus")
136
+ if bus and data["memory-size"] > 1 << len(bus):
137
+ raise ChipNotImplementedError(
138
+ f"{name}: its pin map has {len(bus)} address lines, which reach "
139
+ f"{1 << len(bus)} of its {data['memory-size']} bytes. The programmer "
140
+ "cannot address the rest of the chip."
141
+ )
132
142
  return data