firestarter 3.2.6__tar.gz → 3.2.7b2__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.
- {firestarter-3.2.6/firestarter.egg-info → firestarter-3.2.7b2}/PKG-INFO +1 -1
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/_version.py +3 -3
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/cli_handlers.py +36 -6
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/data/chip_database.json +76 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/database.py +4 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/eprom_operations.py +15 -1
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/exceptions.py +3 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/firmware.py +3 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/fw_release_gate.py +46 -4
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/ic_layout.py +5 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2/firestarter.egg-info}/PKG-INFO +1 -1
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter.egg-info/SOURCES.txt +1 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter.egg-info/scm_file_list.json +1 -0
- firestarter-3.2.7b2/firestarter.egg-info/scm_version.json +8 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/__snapshots__/test_characterization.ambr +5 -8
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/golden/chip_database_field_inventory.json +3 -1
- firestarter-3.2.7b2/tests/test_build_db_sram_non_volatile.py +100 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_characterization.py +33 -16
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_cli_handlers.py +8 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_eprom_operations.py +14 -1
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fw_port_targeting_and_blind_install.py +7 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fw_release_gate.py +111 -1
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fw_update_path_gate.py +7 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_ic_layout.py +27 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_py32_channel_gating.py +51 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_py32_dfu.py +7 -0
- firestarter-3.2.6/firestarter.egg-info/scm_version.json +0 -8
- {firestarter-3.2.6 → firestarter-3.2.7b2}/LICENSE +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/MANIFEST.in +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/README.md +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/__init__.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/address_parser.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/avr_tool.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/channel.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/chip_resolver.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/chip_test.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/codec.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/compare.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/config.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/constants.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/data/pinouts.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/diagnostic_report.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/dip24_2816_erase_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/eprom_info.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/erase_support.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/flash4_erase_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/frame_parser.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/hardware.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/jp5_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/jumper_table.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/lock_status.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/log_capture.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/logging_utils.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/main.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/messages.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/page_size_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/protection_readability.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/py32_dfu.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/sdp_capability.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/sdp_honesty.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/serial_comm.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/submit.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/timestamps.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/transport_counters.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/utils.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/vpp_display.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter/write_blank_guard.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter.egg-info/dependency_links.txt +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter.egg-info/entry_points.txt +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter.egg-info/requires.txt +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/firestarter.egg-info/top_level.txt +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/pyproject.toml +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/setup.cfg +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/__init__.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/conftest.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fake_chip.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/part_number_delta.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/report_shapes.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/at28c256-full-all-ok-sdp.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/attr01-status-axis-transport-fault.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/gh20-at28c256-fail.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/gh23-w27e257-fail.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/gh28-m27c512-fail.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/gh47-sst27sf512-pass.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/m27c512-full-all-ok.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/m27c512-full-blank-check-bad.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/m27c512-full-canonical-name.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/m27c512-full-comma-joined-name.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/m27c512-full-runs-1.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/prune03-synthesized-fingerprint-match.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/sst27sf512-full-all-ok.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/sst27sf512-six-step-readback-gated.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/sst27sf512-six-step.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/synthetic-arm4-empty-results.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/synthetic-arm4-no-ok.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/uv-slot-write-pass.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/reports/w27e257-full-all-ok.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/shape_ids.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/fixtures/synthetic_nonzero_chip_id.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/golden/build_db_part_specific_constants.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/golden/wire_dict.json +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/plan_corpus.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_address_parser.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_b15_page_size_corroboration.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_blast_radius_invariance.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_boot_block_hint.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_budget_failure_render.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_bug_characterization.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_build_db_constant_census.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_build_db_inclusion.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_build_db_interpret_timing.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_build_db_pinout_fork.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_canonical_part_number.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_database_field_inventory.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_name_resolution.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_resolver.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_test.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_test_blank_check_order.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_test_cycle.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_test_sdp_leg.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_test_timing.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_chip_test_uv_slot_write.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_click_group_gate_hook.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_cobs.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_codec.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_codec_format_message.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_compare.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_config.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_config_band_refusal.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_connect_cost_harness.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_consistency_check.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_coverage_floor_v18.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_database_conversion.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_datasheet_overrides.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_decoder.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_derive_plan_no_drop_sweep.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_derive_plan_structural_sentinel.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_dev_group_channel_gating.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_dev_test_cmd.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_dev_tools_channel_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_devtest_firmware_error_propagation.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_dfu_opcode_anchors.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_diagnostic_report.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_dip24_2816_erase_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_endpoint_constants.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_eprom_database.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_eprom_info.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_erase_blank_step_nonregression.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_erase_flag_invariants.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_error_code_seam.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_even_block.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_extra_chips_supplement.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_firmware_install.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_flash4_erase_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fw_list_failure_vs_empty.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fw_update_dead_endpoint.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fw_version_guard.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_fwguard.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_hardware.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_hw_revision_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_info_vpp_and_erase.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_jp5_gate.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_jumper_table.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_lock_status_class_partition.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_lock_status_cli.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_lock_status_wire.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_log_capture.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_logging_utils.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_matrix_artifact.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_page_size_alignment_refusal.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_page_size_invariants.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_page_size_write_refusal.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_parse_devtest_issue.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_probe_spurious_setup_ack.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_programming_vcc_census.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_protect_flags_doc_measurements.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_protection_resolution.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_protection_status_catalog.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_protection_table_citations.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_protocol_not_implemented.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_protocol_not_implemented_production_path.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_provenance.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_pulse_us_override.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_py32_flash_map_host.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_py32_pyusb_absent.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_pyusb_api_surface.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_sdp_capability.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_sdp_db_invariant.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_sdp_honesty.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_serial_characterization.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_serial_comm.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_session_lease.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_setup_refusals.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_submit.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_timestamps.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_transport_counters.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_utils.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_uv_mask.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_validate_family_cmd.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_validate_oracle.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_validated_parts_regression_surface.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_vcc_margin_rail.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_vpp_decode_table.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_vpp_rail_classification.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_wire_dict_equivalence.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_blank_guard.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_blank_guard_pinning.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_guard_port_pinning.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_progress.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_response_budget.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_skip_erase_0x0d.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/tests/test_write_skip_sdp_unlock.py +0 -0
- {firestarter-3.2.6 → firestarter-3.2.7b2}/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
|
+
Version: 3.2.7b2
|
|
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.
|
|
22
|
-
__version_tuple__ = version_tuple = (3, 2,
|
|
21
|
+
__version__ = version = '3.2.7b2'
|
|
22
|
+
__version_tuple__ = version_tuple = (3, 2, 7, 'b2')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g30e9def'
|
|
@@ -37,6 +37,7 @@ from firestarter.channel import (
|
|
|
37
37
|
available_boards,
|
|
38
38
|
dev_command_gate_message,
|
|
39
39
|
is_dev_tools_enabled,
|
|
40
|
+
is_prerelease_build,
|
|
40
41
|
)
|
|
41
42
|
from firestarter.chip_resolver import (
|
|
42
43
|
describe_ambiguity,
|
|
@@ -186,6 +187,27 @@ def _complete_eprom(
|
|
|
186
187
|
_ALL_BOARDS: tuple[str, ...] = ("uno", "uno328pb", "leonardo", "py32f071")
|
|
187
188
|
_BOARD_CHOICES: list[str] = available_boards(_ALL_BOARDS)
|
|
188
189
|
_PY32_ENABLED: bool = "py32f071" in _BOARD_CHOICES
|
|
190
|
+
# A stable build never offers pre-release firmware: `fw --pre` is refused and
|
|
191
|
+
# `fw --list` shows stable releases only. fw_release_gate refuses the install.
|
|
192
|
+
_PRE_CHANNEL_ENABLED: bool = is_prerelease_build()
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def _reject_gated_option(name: str, given: bool, enabled: bool) -> None:
|
|
196
|
+
"""The one refusal for a CLI option that this build's channel does not offer.
|
|
197
|
+
|
|
198
|
+
It reads like Click's own unknown-option error, because on this build the
|
|
199
|
+
option does not exist.
|
|
200
|
+
"""
|
|
201
|
+
if given and not enabled:
|
|
202
|
+
raise click.UsageError(f"no such option: {name}")
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def _reject_pre_only_option(name: str, given: bool) -> None:
|
|
206
|
+
"""Refuse a pre-release-only CLI option on a stable build.
|
|
207
|
+
|
|
208
|
+
Reads `_PRE_CHANNEL_ENABLED` at CALL time, like `_reject_py32_only_option`.
|
|
209
|
+
"""
|
|
210
|
+
_reject_gated_option(name, given, _PRE_CHANNEL_ENABLED)
|
|
189
211
|
|
|
190
212
|
|
|
191
213
|
def _reject_py32_only_option(name: str, given: bool) -> None:
|
|
@@ -204,8 +226,7 @@ def _reject_py32_only_option(name: str, given: bool) -> None:
|
|
|
204
226
|
default -- which is what makes it monkeypatchable while the Click surface
|
|
205
227
|
stays frozen at import time.
|
|
206
228
|
"""
|
|
207
|
-
|
|
208
|
-
raise click.UsageError(f"no such option: {name}")
|
|
229
|
+
_reject_gated_option(name, given, _PY32_ENABLED)
|
|
209
230
|
|
|
210
231
|
|
|
211
232
|
def map_typed_errors(f: Callable[..., Any]) -> Callable[..., Any]:
|
|
@@ -1764,6 +1785,7 @@ def _maybe_auto_route_to_pre_click(
|
|
|
1764
1785
|
@click.option(
|
|
1765
1786
|
"--pre",
|
|
1766
1787
|
is_flag=True,
|
|
1788
|
+
hidden=not _PRE_CHANNEL_ENABLED,
|
|
1767
1789
|
help="Fetch latest pre-release firmware (mirrors pip install --pre).",
|
|
1768
1790
|
)
|
|
1769
1791
|
@click.option(
|
|
@@ -1772,7 +1794,11 @@ def _maybe_auto_route_to_pre_click(
|
|
|
1772
1794
|
type=_FirmwareVersionType(),
|
|
1773
1795
|
default=None,
|
|
1774
1796
|
metavar="VERSION",
|
|
1775
|
-
help=
|
|
1797
|
+
help=(
|
|
1798
|
+
"Pin exact firmware version (e.g. 3.1.0, 3.1.0b2, 3.1.0rc1)."
|
|
1799
|
+
if _PRE_CHANNEL_ENABLED
|
|
1800
|
+
else "Pin exact firmware version (e.g. 3.1.0)."
|
|
1801
|
+
),
|
|
1776
1802
|
)
|
|
1777
1803
|
@click.option(
|
|
1778
1804
|
"--stable",
|
|
@@ -1861,11 +1887,15 @@ def fw(
|
|
|
1861
1887
|
) -> None:
|
|
1862
1888
|
"""Firmware version.
|
|
1863
1889
|
|
|
1864
|
-
|
|
1865
|
-
|
|
1890
|
+
The release channel options are mutually exclusive; passing more than one
|
|
1891
|
+
is refused before anything is installed.
|
|
1866
1892
|
"""
|
|
1867
1893
|
app: AppContext = ctx.obj
|
|
1868
1894
|
|
|
1895
|
+
# Before the mutex check, so a stable build never names --pre in an error
|
|
1896
|
+
# other than this one.
|
|
1897
|
+
_reject_pre_only_option("--pre", pre)
|
|
1898
|
+
|
|
1869
1899
|
# 3-way --pre / --firmware-version / --stable mutex enforced once,
|
|
1870
1900
|
# post-parse, with a deterministic error message that doesn't depend on
|
|
1871
1901
|
# the user's option ordering. Raises click.UsageError → exit-2, matching
|
|
@@ -1914,7 +1944,7 @@ def fw(
|
|
|
1914
1944
|
channel_filter: Literal["all", "pre", "stable"]
|
|
1915
1945
|
if pre:
|
|
1916
1946
|
channel_filter = "pre"
|
|
1917
|
-
elif stable:
|
|
1947
|
+
elif stable or not _PRE_CHANNEL_ENABLED:
|
|
1918
1948
|
channel_filter = "stable"
|
|
1919
1949
|
else:
|
|
1920
1950
|
channel_filter = "all"
|
|
@@ -4623,6 +4623,7 @@
|
|
|
4623
4623
|
"DALLAS": [
|
|
4624
4624
|
{
|
|
4625
4625
|
"electrical": {
|
|
4626
|
+
"non_volatile": true,
|
|
4626
4627
|
"pin_count": 24,
|
|
4627
4628
|
"size_bytes": 2048,
|
|
4628
4629
|
"type": "SRAM",
|
|
@@ -4645,6 +4646,7 @@
|
|
|
4645
4646
|
},
|
|
4646
4647
|
{
|
|
4647
4648
|
"electrical": {
|
|
4649
|
+
"non_volatile": true,
|
|
4648
4650
|
"pin_count": 24,
|
|
4649
4651
|
"size_bytes": 2048,
|
|
4650
4652
|
"type": "SRAM",
|
|
@@ -4667,6 +4669,7 @@
|
|
|
4667
4669
|
},
|
|
4668
4670
|
{
|
|
4669
4671
|
"electrical": {
|
|
4672
|
+
"non_volatile": true,
|
|
4670
4673
|
"pin_count": 28,
|
|
4671
4674
|
"size_bytes": 8192,
|
|
4672
4675
|
"type": "SRAM",
|
|
@@ -4689,6 +4692,7 @@
|
|
|
4689
4692
|
},
|
|
4690
4693
|
{
|
|
4691
4694
|
"electrical": {
|
|
4695
|
+
"non_volatile": true,
|
|
4692
4696
|
"pin_count": 28,
|
|
4693
4697
|
"size_bytes": 8192,
|
|
4694
4698
|
"type": "SRAM",
|
|
@@ -4711,6 +4715,7 @@
|
|
|
4711
4715
|
},
|
|
4712
4716
|
{
|
|
4713
4717
|
"electrical": {
|
|
4718
|
+
"non_volatile": true,
|
|
4714
4719
|
"pin_count": 28,
|
|
4715
4720
|
"size_bytes": 32768,
|
|
4716
4721
|
"type": "SRAM",
|
|
@@ -4733,6 +4738,7 @@
|
|
|
4733
4738
|
},
|
|
4734
4739
|
{
|
|
4735
4740
|
"electrical": {
|
|
4741
|
+
"non_volatile": true,
|
|
4736
4742
|
"pin_count": 28,
|
|
4737
4743
|
"size_bytes": 32768,
|
|
4738
4744
|
"type": "SRAM",
|
|
@@ -4755,6 +4761,7 @@
|
|
|
4755
4761
|
},
|
|
4756
4762
|
{
|
|
4757
4763
|
"electrical": {
|
|
4764
|
+
"non_volatile": true,
|
|
4758
4765
|
"pin_count": 28,
|
|
4759
4766
|
"size_bytes": 32768,
|
|
4760
4767
|
"type": "SRAM",
|
|
@@ -4777,6 +4784,7 @@
|
|
|
4777
4784
|
},
|
|
4778
4785
|
{
|
|
4779
4786
|
"electrical": {
|
|
4787
|
+
"non_volatile": true,
|
|
4780
4788
|
"pin_count": 28,
|
|
4781
4789
|
"size_bytes": 32768,
|
|
4782
4790
|
"type": "SRAM",
|
|
@@ -4799,6 +4807,7 @@
|
|
|
4799
4807
|
},
|
|
4800
4808
|
{
|
|
4801
4809
|
"electrical": {
|
|
4810
|
+
"non_volatile": true,
|
|
4802
4811
|
"pin_count": 32,
|
|
4803
4812
|
"size_bytes": 131072,
|
|
4804
4813
|
"type": "SRAM",
|
|
@@ -4821,6 +4830,7 @@
|
|
|
4821
4830
|
},
|
|
4822
4831
|
{
|
|
4823
4832
|
"electrical": {
|
|
4833
|
+
"non_volatile": true,
|
|
4824
4834
|
"pin_count": 32,
|
|
4825
4835
|
"size_bytes": 131072,
|
|
4826
4836
|
"type": "SRAM",
|
|
@@ -4843,6 +4853,7 @@
|
|
|
4843
4853
|
},
|
|
4844
4854
|
{
|
|
4845
4855
|
"electrical": {
|
|
4856
|
+
"non_volatile": true,
|
|
4846
4857
|
"pin_count": 32,
|
|
4847
4858
|
"size_bytes": 131072,
|
|
4848
4859
|
"type": "SRAM",
|
|
@@ -4865,6 +4876,7 @@
|
|
|
4865
4876
|
},
|
|
4866
4877
|
{
|
|
4867
4878
|
"electrical": {
|
|
4879
|
+
"non_volatile": true,
|
|
4868
4880
|
"pin_count": 32,
|
|
4869
4881
|
"size_bytes": 131072,
|
|
4870
4882
|
"type": "SRAM",
|
|
@@ -4887,6 +4899,7 @@
|
|
|
4887
4899
|
},
|
|
4888
4900
|
{
|
|
4889
4901
|
"electrical": {
|
|
4902
|
+
"non_volatile": true,
|
|
4890
4903
|
"pin_count": 32,
|
|
4891
4904
|
"size_bytes": 262144,
|
|
4892
4905
|
"type": "SRAM",
|
|
@@ -4909,6 +4922,7 @@
|
|
|
4909
4922
|
},
|
|
4910
4923
|
{
|
|
4911
4924
|
"electrical": {
|
|
4925
|
+
"non_volatile": true,
|
|
4912
4926
|
"pin_count": 32,
|
|
4913
4927
|
"size_bytes": 262144,
|
|
4914
4928
|
"type": "SRAM",
|
|
@@ -4931,6 +4945,7 @@
|
|
|
4931
4945
|
},
|
|
4932
4946
|
{
|
|
4933
4947
|
"electrical": {
|
|
4948
|
+
"non_volatile": true,
|
|
4934
4949
|
"pin_count": 32,
|
|
4935
4950
|
"size_bytes": 262144,
|
|
4936
4951
|
"type": "SRAM",
|
|
@@ -4953,6 +4968,7 @@
|
|
|
4953
4968
|
},
|
|
4954
4969
|
{
|
|
4955
4970
|
"electrical": {
|
|
4971
|
+
"non_volatile": true,
|
|
4956
4972
|
"pin_count": 32,
|
|
4957
4973
|
"size_bytes": 262144,
|
|
4958
4974
|
"type": "SRAM",
|
|
@@ -4975,6 +4991,7 @@
|
|
|
4975
4991
|
},
|
|
4976
4992
|
{
|
|
4977
4993
|
"electrical": {
|
|
4994
|
+
"non_volatile": true,
|
|
4978
4995
|
"pin_count": 32,
|
|
4979
4996
|
"size_bytes": 524288,
|
|
4980
4997
|
"type": "SRAM",
|
|
@@ -4997,6 +5014,7 @@
|
|
|
4997
5014
|
},
|
|
4998
5015
|
{
|
|
4999
5016
|
"electrical": {
|
|
5017
|
+
"non_volatile": true,
|
|
5000
5018
|
"pin_count": 32,
|
|
5001
5019
|
"size_bytes": 524288,
|
|
5002
5020
|
"type": "SRAM",
|
|
@@ -5019,6 +5037,7 @@
|
|
|
5019
5037
|
},
|
|
5020
5038
|
{
|
|
5021
5039
|
"electrical": {
|
|
5040
|
+
"non_volatile": true,
|
|
5022
5041
|
"pin_count": 32,
|
|
5023
5042
|
"size_bytes": 524288,
|
|
5024
5043
|
"type": "SRAM",
|
|
@@ -5041,6 +5060,7 @@
|
|
|
5041
5060
|
},
|
|
5042
5061
|
{
|
|
5043
5062
|
"electrical": {
|
|
5063
|
+
"non_volatile": true,
|
|
5044
5064
|
"pin_count": 32,
|
|
5045
5065
|
"size_bytes": 524288,
|
|
5046
5066
|
"type": "SRAM",
|
|
@@ -11584,6 +11604,7 @@
|
|
|
11584
11604
|
"RAMTRON": [
|
|
11585
11605
|
{
|
|
11586
11606
|
"electrical": {
|
|
11607
|
+
"non_volatile": true,
|
|
11587
11608
|
"pin_count": 24,
|
|
11588
11609
|
"size_bytes": 2048,
|
|
11589
11610
|
"type": "SRAM",
|
|
@@ -11606,6 +11627,7 @@
|
|
|
11606
11627
|
},
|
|
11607
11628
|
{
|
|
11608
11629
|
"electrical": {
|
|
11630
|
+
"non_volatile": true,
|
|
11609
11631
|
"pin_count": 28,
|
|
11610
11632
|
"size_bytes": 8192,
|
|
11611
11633
|
"type": "SRAM",
|
|
@@ -11628,6 +11650,7 @@
|
|
|
11628
11650
|
},
|
|
11629
11651
|
{
|
|
11630
11652
|
"electrical": {
|
|
11653
|
+
"non_volatile": true,
|
|
11631
11654
|
"pin_count": 28,
|
|
11632
11655
|
"size_bytes": 8192,
|
|
11633
11656
|
"type": "SRAM",
|
|
@@ -11650,6 +11673,7 @@
|
|
|
11650
11673
|
},
|
|
11651
11674
|
{
|
|
11652
11675
|
"electrical": {
|
|
11676
|
+
"non_volatile": true,
|
|
11653
11677
|
"pin_count": 28,
|
|
11654
11678
|
"size_bytes": 32768,
|
|
11655
11679
|
"type": "SRAM",
|
|
@@ -11672,6 +11696,7 @@
|
|
|
11672
11696
|
},
|
|
11673
11697
|
{
|
|
11674
11698
|
"electrical": {
|
|
11699
|
+
"non_volatile": true,
|
|
11675
11700
|
"pin_count": 28,
|
|
11676
11701
|
"size_bytes": 32768,
|
|
11677
11702
|
"type": "SRAM",
|
|
@@ -12639,6 +12664,7 @@
|
|
|
12639
12664
|
},
|
|
12640
12665
|
{
|
|
12641
12666
|
"electrical": {
|
|
12667
|
+
"non_volatile": true,
|
|
12642
12668
|
"pin_count": 24,
|
|
12643
12669
|
"size_bytes": 2048,
|
|
12644
12670
|
"type": "SRAM",
|
|
@@ -12661,6 +12687,7 @@
|
|
|
12661
12687
|
},
|
|
12662
12688
|
{
|
|
12663
12689
|
"electrical": {
|
|
12690
|
+
"non_volatile": true,
|
|
12664
12691
|
"pin_count": 28,
|
|
12665
12692
|
"size_bytes": 8192,
|
|
12666
12693
|
"type": "SRAM",
|
|
@@ -12683,6 +12710,7 @@
|
|
|
12683
12710
|
},
|
|
12684
12711
|
{
|
|
12685
12712
|
"electrical": {
|
|
12713
|
+
"non_volatile": true,
|
|
12686
12714
|
"pin_count": 28,
|
|
12687
12715
|
"size_bytes": 32768,
|
|
12688
12716
|
"type": "SRAM",
|
|
@@ -12705,6 +12733,7 @@
|
|
|
12705
12733
|
},
|
|
12706
12734
|
{
|
|
12707
12735
|
"electrical": {
|
|
12736
|
+
"non_volatile": true,
|
|
12708
12737
|
"pin_count": 28,
|
|
12709
12738
|
"size_bytes": 32768,
|
|
12710
12739
|
"type": "SRAM",
|
|
@@ -12727,6 +12756,7 @@
|
|
|
12727
12756
|
},
|
|
12728
12757
|
{
|
|
12729
12758
|
"electrical": {
|
|
12759
|
+
"non_volatile": true,
|
|
12730
12760
|
"pin_count": 28,
|
|
12731
12761
|
"size_bytes": 8192,
|
|
12732
12762
|
"type": "SRAM",
|
|
@@ -12749,6 +12779,7 @@
|
|
|
12749
12779
|
},
|
|
12750
12780
|
{
|
|
12751
12781
|
"electrical": {
|
|
12782
|
+
"non_volatile": true,
|
|
12752
12783
|
"pin_count": 28,
|
|
12753
12784
|
"size_bytes": 8192,
|
|
12754
12785
|
"type": "SRAM",
|
|
@@ -12771,6 +12802,7 @@
|
|
|
12771
12802
|
},
|
|
12772
12803
|
{
|
|
12773
12804
|
"electrical": {
|
|
12805
|
+
"non_volatile": true,
|
|
12774
12806
|
"pin_count": 32,
|
|
12775
12807
|
"size_bytes": 131072,
|
|
12776
12808
|
"type": "SRAM",
|
|
@@ -12793,6 +12825,7 @@
|
|
|
12793
12825
|
},
|
|
12794
12826
|
{
|
|
12795
12827
|
"electrical": {
|
|
12828
|
+
"non_volatile": true,
|
|
12796
12829
|
"pin_count": 32,
|
|
12797
12830
|
"size_bytes": 131072,
|
|
12798
12831
|
"type": "SRAM",
|
|
@@ -12815,6 +12848,7 @@
|
|
|
12815
12848
|
},
|
|
12816
12849
|
{
|
|
12817
12850
|
"electrical": {
|
|
12851
|
+
"non_volatile": true,
|
|
12818
12852
|
"pin_count": 32,
|
|
12819
12853
|
"size_bytes": 524288,
|
|
12820
12854
|
"type": "SRAM",
|
|
@@ -12837,6 +12871,7 @@
|
|
|
12837
12871
|
},
|
|
12838
12872
|
{
|
|
12839
12873
|
"electrical": {
|
|
12874
|
+
"non_volatile": true,
|
|
12840
12875
|
"pin_count": 32,
|
|
12841
12876
|
"size_bytes": 524288,
|
|
12842
12877
|
"type": "SRAM",
|
|
@@ -14871,6 +14906,7 @@
|
|
|
14871
14906
|
},
|
|
14872
14907
|
{
|
|
14873
14908
|
"electrical": {
|
|
14909
|
+
"non_volatile": true,
|
|
14874
14910
|
"pin_count": 24,
|
|
14875
14911
|
"size_bytes": 2048,
|
|
14876
14912
|
"type": "SRAM",
|
|
@@ -14893,6 +14929,7 @@
|
|
|
14893
14929
|
},
|
|
14894
14930
|
{
|
|
14895
14931
|
"electrical": {
|
|
14932
|
+
"non_volatile": true,
|
|
14896
14933
|
"pin_count": 28,
|
|
14897
14934
|
"size_bytes": 8192,
|
|
14898
14935
|
"type": "SRAM",
|
|
@@ -14915,6 +14952,7 @@
|
|
|
14915
14952
|
},
|
|
14916
14953
|
{
|
|
14917
14954
|
"electrical": {
|
|
14955
|
+
"non_volatile": true,
|
|
14918
14956
|
"pin_count": 28,
|
|
14919
14957
|
"size_bytes": 32768,
|
|
14920
14958
|
"type": "SRAM",
|
|
@@ -14937,6 +14975,7 @@
|
|
|
14937
14975
|
},
|
|
14938
14976
|
{
|
|
14939
14977
|
"electrical": {
|
|
14978
|
+
"non_volatile": true,
|
|
14940
14979
|
"pin_count": 28,
|
|
14941
14980
|
"size_bytes": 32768,
|
|
14942
14981
|
"type": "SRAM",
|
|
@@ -14959,6 +14998,7 @@
|
|
|
14959
14998
|
},
|
|
14960
14999
|
{
|
|
14961
15000
|
"electrical": {
|
|
15001
|
+
"non_volatile": true,
|
|
14962
15002
|
"pin_count": 28,
|
|
14963
15003
|
"size_bytes": 8192,
|
|
14964
15004
|
"type": "SRAM",
|
|
@@ -14981,6 +15021,7 @@
|
|
|
14981
15021
|
},
|
|
14982
15022
|
{
|
|
14983
15023
|
"electrical": {
|
|
15024
|
+
"non_volatile": true,
|
|
14984
15025
|
"pin_count": 28,
|
|
14985
15026
|
"size_bytes": 8192,
|
|
14986
15027
|
"type": "SRAM",
|
|
@@ -15003,6 +15044,7 @@
|
|
|
15003
15044
|
},
|
|
15004
15045
|
{
|
|
15005
15046
|
"electrical": {
|
|
15047
|
+
"non_volatile": true,
|
|
15006
15048
|
"pin_count": 32,
|
|
15007
15049
|
"size_bytes": 131072,
|
|
15008
15050
|
"type": "SRAM",
|
|
@@ -15025,6 +15067,7 @@
|
|
|
15025
15067
|
},
|
|
15026
15068
|
{
|
|
15027
15069
|
"electrical": {
|
|
15070
|
+
"non_volatile": true,
|
|
15028
15071
|
"pin_count": 32,
|
|
15029
15072
|
"size_bytes": 131072,
|
|
15030
15073
|
"type": "SRAM",
|
|
@@ -15047,6 +15090,7 @@
|
|
|
15047
15090
|
},
|
|
15048
15091
|
{
|
|
15049
15092
|
"electrical": {
|
|
15093
|
+
"non_volatile": true,
|
|
15050
15094
|
"pin_count": 32,
|
|
15051
15095
|
"size_bytes": 524288,
|
|
15052
15096
|
"type": "SRAM",
|
|
@@ -15069,6 +15113,7 @@
|
|
|
15069
15113
|
},
|
|
15070
15114
|
{
|
|
15071
15115
|
"electrical": {
|
|
15116
|
+
"non_volatile": true,
|
|
15072
15117
|
"pin_count": 32,
|
|
15073
15118
|
"size_bytes": 524288,
|
|
15074
15119
|
"type": "SRAM",
|
|
@@ -15465,6 +15510,7 @@
|
|
|
15465
15510
|
"Standard SRAM": [
|
|
15466
15511
|
{
|
|
15467
15512
|
"electrical": {
|
|
15513
|
+
"non_volatile": false,
|
|
15468
15514
|
"pin_count": 24,
|
|
15469
15515
|
"size_bytes": 2048,
|
|
15470
15516
|
"type": "SRAM",
|
|
@@ -15487,6 +15533,7 @@
|
|
|
15487
15533
|
},
|
|
15488
15534
|
{
|
|
15489
15535
|
"electrical": {
|
|
15536
|
+
"non_volatile": false,
|
|
15490
15537
|
"pin_count": 28,
|
|
15491
15538
|
"size_bytes": 8192,
|
|
15492
15539
|
"type": "SRAM",
|
|
@@ -15509,6 +15556,7 @@
|
|
|
15509
15556
|
},
|
|
15510
15557
|
{
|
|
15511
15558
|
"electrical": {
|
|
15559
|
+
"non_volatile": false,
|
|
15512
15560
|
"pin_count": 28,
|
|
15513
15561
|
"size_bytes": 32768,
|
|
15514
15562
|
"type": "SRAM",
|
|
@@ -15531,6 +15579,7 @@
|
|
|
15531
15579
|
},
|
|
15532
15580
|
{
|
|
15533
15581
|
"electrical": {
|
|
15582
|
+
"non_volatile": false,
|
|
15534
15583
|
"pin_count": 32,
|
|
15535
15584
|
"size_bytes": 65536,
|
|
15536
15585
|
"type": "SRAM",
|
|
@@ -15553,6 +15602,7 @@
|
|
|
15553
15602
|
},
|
|
15554
15603
|
{
|
|
15555
15604
|
"electrical": {
|
|
15605
|
+
"non_volatile": false,
|
|
15556
15606
|
"pin_count": 32,
|
|
15557
15607
|
"size_bytes": 131072,
|
|
15558
15608
|
"type": "SRAM",
|
|
@@ -15575,6 +15625,7 @@
|
|
|
15575
15625
|
},
|
|
15576
15626
|
{
|
|
15577
15627
|
"electrical": {
|
|
15628
|
+
"non_volatile": false,
|
|
15578
15629
|
"pin_count": 32,
|
|
15579
15630
|
"size_bytes": 262144,
|
|
15580
15631
|
"type": "SRAM",
|
|
@@ -15597,6 +15648,7 @@
|
|
|
15597
15648
|
},
|
|
15598
15649
|
{
|
|
15599
15650
|
"electrical": {
|
|
15651
|
+
"non_volatile": false,
|
|
15600
15652
|
"pin_count": 32,
|
|
15601
15653
|
"size_bytes": 524288,
|
|
15602
15654
|
"type": "SRAM",
|
|
@@ -15989,6 +16041,7 @@
|
|
|
15989
16041
|
},
|
|
15990
16042
|
{
|
|
15991
16043
|
"electrical": {
|
|
16044
|
+
"non_volatile": true,
|
|
15992
16045
|
"pin_count": 28,
|
|
15993
16046
|
"size_bytes": 8192,
|
|
15994
16047
|
"type": "SRAM",
|
|
@@ -16011,6 +16064,7 @@
|
|
|
16011
16064
|
},
|
|
16012
16065
|
{
|
|
16013
16066
|
"electrical": {
|
|
16067
|
+
"non_volatile": true,
|
|
16014
16068
|
"pin_count": 28,
|
|
16015
16069
|
"size_bytes": 8192,
|
|
16016
16070
|
"type": "SRAM",
|
|
@@ -16033,6 +16087,7 @@
|
|
|
16033
16087
|
},
|
|
16034
16088
|
{
|
|
16035
16089
|
"electrical": {
|
|
16090
|
+
"non_volatile": true,
|
|
16036
16091
|
"pin_count": 28,
|
|
16037
16092
|
"size_bytes": 32768,
|
|
16038
16093
|
"type": "SRAM",
|
|
@@ -16055,6 +16110,7 @@
|
|
|
16055
16110
|
},
|
|
16056
16111
|
{
|
|
16057
16112
|
"electrical": {
|
|
16113
|
+
"non_volatile": true,
|
|
16058
16114
|
"pin_count": 28,
|
|
16059
16115
|
"size_bytes": 32768,
|
|
16060
16116
|
"type": "SRAM",
|
|
@@ -16077,6 +16133,7 @@
|
|
|
16077
16133
|
},
|
|
16078
16134
|
{
|
|
16079
16135
|
"electrical": {
|
|
16136
|
+
"non_volatile": true,
|
|
16080
16137
|
"pin_count": 28,
|
|
16081
16138
|
"size_bytes": 32768,
|
|
16082
16139
|
"type": "SRAM",
|
|
@@ -16099,6 +16156,7 @@
|
|
|
16099
16156
|
},
|
|
16100
16157
|
{
|
|
16101
16158
|
"electrical": {
|
|
16159
|
+
"non_volatile": true,
|
|
16102
16160
|
"pin_count": 28,
|
|
16103
16161
|
"size_bytes": 32768,
|
|
16104
16162
|
"type": "SRAM",
|
|
@@ -16121,6 +16179,7 @@
|
|
|
16121
16179
|
},
|
|
16122
16180
|
{
|
|
16123
16181
|
"electrical": {
|
|
16182
|
+
"non_volatile": true,
|
|
16124
16183
|
"pin_count": 32,
|
|
16125
16184
|
"size_bytes": 131072,
|
|
16126
16185
|
"type": "SRAM",
|
|
@@ -16143,6 +16202,7 @@
|
|
|
16143
16202
|
},
|
|
16144
16203
|
{
|
|
16145
16204
|
"electrical": {
|
|
16205
|
+
"non_volatile": true,
|
|
16146
16206
|
"pin_count": 32,
|
|
16147
16207
|
"size_bytes": 131072,
|
|
16148
16208
|
"type": "SRAM",
|
|
@@ -16165,6 +16225,7 @@
|
|
|
16165
16225
|
},
|
|
16166
16226
|
{
|
|
16167
16227
|
"electrical": {
|
|
16228
|
+
"non_volatile": true,
|
|
16168
16229
|
"pin_count": 32,
|
|
16169
16230
|
"size_bytes": 131072,
|
|
16170
16231
|
"type": "SRAM",
|
|
@@ -16187,6 +16248,7 @@
|
|
|
16187
16248
|
},
|
|
16188
16249
|
{
|
|
16189
16250
|
"electrical": {
|
|
16251
|
+
"non_volatile": true,
|
|
16190
16252
|
"pin_count": 32,
|
|
16191
16253
|
"size_bytes": 131072,
|
|
16192
16254
|
"type": "SRAM",
|
|
@@ -16209,6 +16271,7 @@
|
|
|
16209
16271
|
},
|
|
16210
16272
|
{
|
|
16211
16273
|
"electrical": {
|
|
16274
|
+
"non_volatile": true,
|
|
16212
16275
|
"pin_count": 32,
|
|
16213
16276
|
"size_bytes": 262144,
|
|
16214
16277
|
"type": "SRAM",
|
|
@@ -16231,6 +16294,7 @@
|
|
|
16231
16294
|
},
|
|
16232
16295
|
{
|
|
16233
16296
|
"electrical": {
|
|
16297
|
+
"non_volatile": true,
|
|
16234
16298
|
"pin_count": 32,
|
|
16235
16299
|
"size_bytes": 262144,
|
|
16236
16300
|
"type": "SRAM",
|
|
@@ -16253,6 +16317,7 @@
|
|
|
16253
16317
|
},
|
|
16254
16318
|
{
|
|
16255
16319
|
"electrical": {
|
|
16320
|
+
"non_volatile": true,
|
|
16256
16321
|
"pin_count": 32,
|
|
16257
16322
|
"size_bytes": 262144,
|
|
16258
16323
|
"type": "SRAM",
|
|
@@ -16275,6 +16340,7 @@
|
|
|
16275
16340
|
},
|
|
16276
16341
|
{
|
|
16277
16342
|
"electrical": {
|
|
16343
|
+
"non_volatile": true,
|
|
16278
16344
|
"pin_count": 32,
|
|
16279
16345
|
"size_bytes": 262144,
|
|
16280
16346
|
"type": "SRAM",
|
|
@@ -16297,6 +16363,7 @@
|
|
|
16297
16363
|
},
|
|
16298
16364
|
{
|
|
16299
16365
|
"electrical": {
|
|
16366
|
+
"non_volatile": true,
|
|
16300
16367
|
"pin_count": 32,
|
|
16301
16368
|
"size_bytes": 524288,
|
|
16302
16369
|
"type": "SRAM",
|
|
@@ -16319,6 +16386,7 @@
|
|
|
16319
16386
|
},
|
|
16320
16387
|
{
|
|
16321
16388
|
"electrical": {
|
|
16389
|
+
"non_volatile": true,
|
|
16322
16390
|
"pin_count": 32,
|
|
16323
16391
|
"size_bytes": 524288,
|
|
16324
16392
|
"type": "SRAM",
|
|
@@ -16341,6 +16409,7 @@
|
|
|
16341
16409
|
},
|
|
16342
16410
|
{
|
|
16343
16411
|
"electrical": {
|
|
16412
|
+
"non_volatile": true,
|
|
16344
16413
|
"pin_count": 32,
|
|
16345
16414
|
"size_bytes": 524288,
|
|
16346
16415
|
"type": "SRAM",
|
|
@@ -16363,6 +16432,7 @@
|
|
|
16363
16432
|
},
|
|
16364
16433
|
{
|
|
16365
16434
|
"electrical": {
|
|
16435
|
+
"non_volatile": true,
|
|
16366
16436
|
"pin_count": 32,
|
|
16367
16437
|
"size_bytes": 524288,
|
|
16368
16438
|
"type": "SRAM",
|
|
@@ -16948,6 +17018,7 @@
|
|
|
16948
17018
|
},
|
|
16949
17019
|
{
|
|
16950
17020
|
"electrical": {
|
|
17021
|
+
"non_volatile": false,
|
|
16951
17022
|
"pin_count": 32,
|
|
16952
17023
|
"size_bytes": 131072,
|
|
16953
17024
|
"type": "SRAM",
|
|
@@ -16970,6 +17041,7 @@
|
|
|
16970
17041
|
},
|
|
16971
17042
|
{
|
|
16972
17043
|
"electrical": {
|
|
17044
|
+
"non_volatile": false,
|
|
16973
17045
|
"pin_count": 32,
|
|
16974
17046
|
"size_bytes": 262144,
|
|
16975
17047
|
"type": "SRAM",
|
|
@@ -16992,6 +17064,7 @@
|
|
|
16992
17064
|
},
|
|
16993
17065
|
{
|
|
16994
17066
|
"electrical": {
|
|
17067
|
+
"non_volatile": false,
|
|
16995
17068
|
"pin_count": 32,
|
|
16996
17069
|
"size_bytes": 524288,
|
|
16997
17070
|
"type": "SRAM",
|
|
@@ -17014,6 +17087,7 @@
|
|
|
17014
17087
|
},
|
|
17015
17088
|
{
|
|
17016
17089
|
"electrical": {
|
|
17090
|
+
"non_volatile": false,
|
|
17017
17091
|
"pin_count": 28,
|
|
17018
17092
|
"size_bytes": 32768,
|
|
17019
17093
|
"type": "SRAM",
|
|
@@ -17036,6 +17110,7 @@
|
|
|
17036
17110
|
},
|
|
17037
17111
|
{
|
|
17038
17112
|
"electrical": {
|
|
17113
|
+
"non_volatile": false,
|
|
17039
17114
|
"pin_count": 32,
|
|
17040
17115
|
"size_bytes": 65536,
|
|
17041
17116
|
"type": "SRAM",
|
|
@@ -17058,6 +17133,7 @@
|
|
|
17058
17133
|
},
|
|
17059
17134
|
{
|
|
17060
17135
|
"electrical": {
|
|
17136
|
+
"non_volatile": false,
|
|
17061
17137
|
"pin_count": 28,
|
|
17062
17138
|
"size_bytes": 8192,
|
|
17063
17139
|
"type": "SRAM",
|
|
@@ -445,6 +445,10 @@ class EpromDatabase:
|
|
|
445
445
|
"electrical-type": electrical.get("type", ""),
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
+
# SRAM-class rows only. info shows it on the Type line.
|
|
449
|
+
if "non_volatile" in electrical:
|
|
450
|
+
data["non-volatile"] = electrical["non_volatile"]
|
|
451
|
+
|
|
448
452
|
chip_id_val = programming.get("chip_id_value")
|
|
449
453
|
if chip_id_val:
|
|
450
454
|
data["chip-id"] = int(chip_id_val, 16)
|