{
  "basis": "Core 0 P partition measured at 16,384 words (P:0x000000-0x003FFF): the 8-word common DSP boot program (uploaded to both cores before the main program) executes move omr,x0 / bset #7 (MS) / bset #22 (MSW1) / bclr #21 (MSW0) / move x0,omr / jmp $fffffe, selecting the 16K-P/24K-X/16K-Y Core 0 map of DSP56724RM Table 3-1/3-3. Corroborated by the stock startup zeroing exactly 0x6000 X words (the 24K-X map) and the 10,846-word stock program requiring P >= 16K among 24K-X maps.",
  "core0_pointer": "0x0805d000",
  "core0_program_sha256": "a0e4b3439de78c660bb00f3866a8c1050a5fc813d93461437420ebbc42dd2e6b",
  "core0_word_count": 14691,
  "fits_measured_partition": true,
  "format": "circuit-tracks-dsp-boot-acceptance-v2",
  "hardware_cold_boot_proven": false,
  "honest_caveat": "Fitting the measured partition is NECESSARY but NOT SUFFICIENT for boot. RESOLVED 2026-08-18: the ~15.5K-word builds 4530/4540/4541/4544 were never rejected by the DSP at all -- the running app refused them at update-validate for exceeding the update-image SIZE ceiling (proven bracket: 349,464 B accepted, 362,081 B rejected) and rolled back before flashing. The gate now enforces that ceiling separately. Hardware cold boot of a MODIFIED Core 0 program remains unproven until the owner's flash; the self-test rolls back automatically on failure and the DSP payload is volatile.",
  "image_sha256": "202800c654d203051401201afaf76e9310e5ec3d1deacc8f8ae6271519e1d5ce",
  "method": "offline: uploaded Core 0 word count re-derived from the image and compared against the measured Core 0 P partition; all structural gate checks pass",
  "partition_ceiling_words": 16384
}
