summaryrefslogtreecommitdiff
path: root/experiments/length-CPU360-fine.csv
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-08-26 12:40:24 -0300
committerGabriel Schneider <[email protected]>2026-08-26 12:40:24 -0300
commit38bb891dd6bd0074894cbfedbf9185e303cc549e (patch)
tree3362ea366be103c26ae78cee7467766fa697cae7 /experiments/length-CPU360-fine.csv
parent85cf1a7dd912db4a5fc3ac2cb9d8550050ffbdb0 (diff)
downloadesp32p4-38bb891dd6bd0074894cbfedbf9185e303cc549e.tar.gz
esp32p4-38bb891dd6bd0074894cbfedbf9185e303cc549e.zip
Offer the editor the board's pads, and check one flips on the die
## The board half of Gpio `pardes_p4_init` gained a `GpioFn` and the ABI version went to 2, which is what turns a mixed pair of builds into a refusal to boot rather than five arguments read as six. `gpioToggle` is four lines over `hal.gpio`: configure the pad as a readable output, read the level it is driving, drive the other one, read it again. It is deliberately here and not in the editor. A toggle is not a write to GPIO_OUT - `configureOutput` sets the IO MUX function, the GPIO matrix route, the drive strength, the input buffer and the pulls, then the output enable, indexed by a per-pin table - and that code is already in this repo, already the call `src/main.zig` blinks with, and already checked against ESP-IDF's headers by `zig build diff`. The editor object gets a function pointer instead of a second copy nobody tests. `getDrivenLevel`, not `getLevel`: the answer is the level the board is driving, which is defined for every pin. The pad's own level is what the outside world says, and on an unconnected header pin that is noise. The input buffer is enabled anyway so `Peek` of GPIO_IN_REG can be compared to it. ## A fifth hardware check `p4-bench --check` runs `Gpio 33` three times and requires 0->1, 1->0, 0->1. The alternation is the oracle, not either answer. `0->1` alone is what a firmware printing a hardcoded string would also say; two runs that disagree can only come from a level that was stored and read again. Three, so the third rules out an ordering coincidence. GPIO33 because `src/oracle/ledc_cases.zig` already documents it as a free pin on this board's JP1 header - pin 21 on the diagram the editor now draws. GPIO20 is the blink demo's pin and may have a wire on it. This is the only check here that crosses the whole seam: editor word, C ABI, HAL, pad, and the level back out through the message row. Nothing smaller exercises the ABI at all. ## -Dtheme-animation forwarded Same path as the geometry, for the same reason: baked into the object, wanted from here. All five checks pass on the die; host tests green; the board is flashed with md5 932898f34ca1dc31.
Diffstat (limited to 'experiments/length-CPU360-fine.csv')
0 files changed, 0 insertions, 0 deletions