Repository navigation
[dev test] TMM27128AD — FAIL (ce5bfe529b0d) #73
Copy link
Copy link
Open
Labels
cause:rigOperator wiring, socket or voltage fault — not a software defectOperator wiring, socket or voltage fault — not a software defectdev-testCommunity `dev test` chip-validation reportCommunity `dev test` chip-validation report
Description
canonical part number: AM27128A
elapsed: 30.8s
| Step | Verdict | Runs | Took | Reason |
|---|---|---|---|---|
| id | BAD | 1 | 3.53s | chip-ID check did not return OK |
| read | BAD | 2 | 6.91s | - |
| blank-check | SKIPPED | 1 | - | Programmer error during init: Chip ID 0x303 does not match expected ID 0x189 |
| write-partial | SKIPPED | - | - | chip-ID mismatch — destructive steps gated (chip left pristine) |
| verify | SKIPPED | - | - | no write target available for verify |
| erase | NA | - | - | - |
| write-baseline-b | NA | - | - | - |
| write-baseline-a | NA | - | - | - |
| sdp-lock | NA | - | - | - |
| write-inhibited | NA | - | - | - |
| sdp-unlock | NA | - | - | - |
| write-restored | NA | - | - | - |
{
"schema_version": "2.0",
"generated": "2026-09-12T20:00:29Z",
"elapsed": 30.804,
"auto_capture": {
"host_version": "3.0.0b39",
"fw_board_identity": "3.0.0b27:uno",
"hw_revision": "Rev 2.0-class",
"chip": "AM27128A",
"protocol": "7",
"chip_id_expected": 393,
"chip_id_actual": 771,
"chip_id_mismatch_reason": null,
"canonical_part_number": "AM27128A"
},
"transport_health": {
"cobs_errors": "not measured",
"crc_failures": "not measured",
"decode_failures": 0,
"probe_timeouts": 0,
"resync_body_truncated": 0,
"resync_length_missing": 0,
"retries": "not measured",
"timeouts": 0,
"transport_suspect": false
},
"steps": [
{
"op": "id",
"verdict": "BAD",
"status": "COMPLETE",
"run_count": 1,
"reason": "chip-ID check did not return OK",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": 771,
"duration_s": 3.529,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "read",
"verdict": "BAD",
"status": "COMPLETE",
"run_count": 2,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": 6.913,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "blank-check",
"verdict": "SKIPPED",
"status": "COMPLETE",
"run_count": 1,
"reason": "Programmer error during init: Chip ID 0x303 does not match expected ID 0x189",
"error_code": 185,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "write-partial",
"verdict": "SKIPPED",
"status": "SKIP",
"run_count": 0,
"reason": "chip-ID mismatch \u2014 destructive steps gated (chip left pristine)",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": "chip-ID mismatch \u2014 destructive steps gated (chip left pristine)"
},
{
"op": "verify",
"verdict": "SKIPPED",
"status": "SKIP",
"run_count": 0,
"reason": "no write target available for verify",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "erase",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "write-baseline-b",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "write-baseline-a",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "sdp-lock",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "write-inhibited",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "sdp-unlock",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
},
{
"op": "write-restored",
"verdict": "NA",
"status": "SKIP",
"run_count": 0,
"reason": "",
"error_code": null,
"fingerprint": null,
"fingerprint_total": null,
"fingerprint_bad": null,
"fingerprint_bad_pct": null,
"fingerprint_evidence": null,
"divergence": null,
"chip_id_detected": null,
"duration_s": null,
"write_region_start": null,
"write_region_length": null,
"write_bits_cleared": null,
"write_bits_retained": null,
"write_current_source": null,
"write_coverage": null
}
],
"banner": {
"n_ran": 2,
"m_applicable": 5
},
"voltage": {
"vpp_before_mv": "not measured",
"vpp_after_mv": "not measured",
"vpe_before_mv": "not measured",
"vpe_after_mv": "not measured"
},
"is_submittable": true,
"dedup_fingerprint": "ce5bfe529b0d",
"db_diff": {
"current_support_status": "supported",
"proposed_disposition": "suggests: community-fail signal (advisory -- human triage required)",
"ladder_state": "community-fail"
},
"sdp_hold_state": "NOT-RUN",
"run_status": "COMPLETE",
"is_uv": true,
"rail_reading_disclosure": "vpp/vpe readings measure the regulator rail only -- they do not show whether the eprom socket is connected (advisory)"
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
cause:rigOperator wiring, socket or voltage fault — not a software defectOperator wiring, socket or voltage fault — not a software defectdev-testCommunity `dev test` chip-validation reportCommunity `dev test` chip-validation report
Activity
dim20 commentedon Sep 12, 2026
The physical chip tested here is a Toshiba TMM27128AD/TMM27128A (D stands for quartz window), which is not currently listed in the database.
I executed the dev test using the AM27128A profile as a close equivalent in order to generate this diagnostic report. The chip ID mismatch error is expected due to this substitution. As shown in the logs, the programmer successfully read the actual chip ID for the Toshiba part as 0x0303.
Please let me know if any further testing is needed to add the TMM27128A to the database.
henols commentedon Sep 16, 2026
Triage — this is not an AM27128A failure, and
0x0303is probably not an identityThanks for saying up front that the physical part is a Toshiba TMM27128AD and that the
AM27128A profile was a deliberate substitution, @dim20 — that saved a pointless datasheet pass
on the AMD part. Nothing here is evidence about the AM27128A entry, so no cross-check of it is
posted.
Two things to flag before this turns into a database row, though, because I think the reading
of
0x0303may not hold.1. The
readstep failed on its own, and that is the part that does not fit.A substituted profile explains the ID mismatch completely — different part, different
signature, mismatch expected. What it does not explain is this:
0x0303)Chip ID 0x303 does not match expected ID 0x189The three steps the ID gate stopped say so explicitly.
readdoes not: it ran to COMPLETE overtwo runs, carries no gating reason and no recorded divergence, and still came back BAD. A
TMM27128A and an AM27128A are both 16 KB 28-pin parts on the same JEDEC 2764/27128 map, so the
substituted profile drives the identical read path. A profile substitution should have read
that chip fine. It didn't.
2.
0x0303is the pattern this rig produces when an ID read gets nothing.A floating or poorly-seated socket returns a distinctive not-quite-random value on the ID read
alongside bad or all-
0xffdata, and0x0303is one that has turned up before in exactly thatsituation. Two further points push the same way:
infoic.xmldatabase with a chip ID of0x0303— I checked all of it. For a real signature that would be unusual.Toshiba's included, implement no electronic signature at all, in which case an ID read has
nothing to return.
Taken with the unexplained
readfailure, the likelier story is a seating or contactproblem, not a discovered identity. Worth re-seating the chip, checking for bent or oxidised
pins, and re-running — if
readcomes back OK and the ID still reads0x0303, that is real andthis changes. If the ID moves, or read starts passing, it was the socket.
3. On adding TMM27128A to the database.
Happy to, but it cannot go in the way it might look.
chip_database.jsonis generated fromupstream
infoic.xmland is never hand-edited — a hand-added row is overwritten by the nextregeneration. And upstream has nothing to generate from here: there is no Toshiba TMM27128
record in
infoic.xmlat all, and no Toshiba vendor section in the generated database either.So there are two honest routes, and neither is blocked by this issue staying open:
~/.firestarter/database.jsontakes a local entry and needs no upstreamchange. That is the right place for it today, and it would let you test immediately.
spirit as the existing correction tables that already override upstream values where upstream
is known to be wrong.
Either way, please do not let
0x0303become the entry'schip_iduntil point 1 is settled.Baking a floating-bus artefact into a database row is very hard to notice later and would make
every correctly-seated TMM27128A fail its ID check.
What would help most: the re-seat and re-run above, and — if you have it — the Toshiba
TMM27128AD datasheet, specifically whether it documents an electronic signature at all and what
VPP and program pulse width it specifies. With those, a properly sourced entry is
straightforward.
dim20 commentedon Sep 16, 2026
I found the actual PDF datasheet for the Toshiba TMM27128AD and as it turns out there is a twist!
You were totally right that the 0x0303 reading is a floating-bus artifact, and a quick hexdump confirmed it. The chip is completely dead and outputting nothing but 0x03 across the entire 16KB space.
However, the datasheet shows this chip does in fact have an Electronic Signature mode! I've attached it for reference.
Here are the true specs so we can add a mathematically correct row to the database for anyone else who has a working one:
Chip ID: 0x98D3 (Manufacturer 0x98, Device 0xD3).
VPP (Program): 12.5V (As is written on the chip itself).
VCC (Program): 6.0V ± 0.25V.
Pulse Width: 1.0 ms nominal (0.95 ms - 1.05 ms).
Sorry I didn't think of reading through a hexdump first! Thanks for catching the floating bus issue, this chip is going in the bin.
Toshiba TMM27128A.pdf
henols commentedon Sep 16, 2026
That hexdump settles it — thanks for going and checking, @dim20, and for saying
so directly rather than leaving it ambiguous.
No re-test is possible or wanted here. The physical part is dead:
0x03across the entire 16 KB is a floating bus, not data, which is also where the
0x0303"chip ID" came from. You have binned the chip, so there is nothing leftto run. I am removing
needs:report— this issue is not waiting on a reportfrom you, and leaving that label on would misrepresent it.
What this issue is actually worth keeping, though. Two things came out of it
that outlive the dead chip:
all. It was run under the
AM27128Aprofile, so the original FAIL was neveran AM27128A result.
0x98D3(manufacturer
0x98, device0xD3), VPP 12.5 V, VCC (program)6.0 V ± 0.25 V, pulse width 1.0 ms nominal (0.95–1.05 ms).
One thing to flag before anyone tries this part with a working sample. That
6.0 V programming VCC is the same wall the three Fujitsu reports hit (#66, #70,
#71) — the shield holds VCC at 5.0 V and nothing applies an elevated rail. So a
healthy TMM27128AD would very likely still fail to program, for that reason
rather than this one. Adding the database row is still worth doing; it just will
not be sufficient on its own.
Re-titling this away from
AM27128Awould be reasonable given the part wasnever that chip.
[-][dev test] AM27128A — FAIL (ce5bfe529b0d)[/-][+][dev test] TMM27128AD — FAIL (ce5bfe529b0d)[/+]dim20 commentedon Sep 16, 2026
Renamed the issue as suggested! I'll leave this open so the TMM27128AD specs can be added to the database.