flamingcow
|
2cdeccc84d
|
Default harness runs to unbounded and make the stream page reconnect itself
|
2026-08-30 19:15:25 -07:00 |
|
flamingcow
|
5a74fe0c76
|
Add an auto-measure toggle with a cable length range, and console keys through the harness
|
2026-08-30 19:10:00 -07:00 |
|
flamingcow
|
36c2ff34fe
|
Paint timeline slots spent in a cable measure blue
|
2026-08-30 16:50:06 -07:00 |
|
flamingcow
|
75fb915150
|
Bump the go directive to 1.27.0
|
2026-08-30 16:46:01 -07:00 |
|
flamingcow
|
45a531066c
|
Stream the panel as masked png deltas and seqlock the scanout reads
|
2026-08-30 16:45:19 -07:00 |
|
flamingcow
|
dddff4d7e8
|
Sweep the superseded x/image and x/text hashes from go.sum
|
2026-08-28 22:17:37 -07:00 |
|
flamingcow
|
274b650ac7
|
Bump golang.org/x/image to 0.45.0 and x/text to 0.41.0
|
2026-08-28 22:16:38 -07:00 |
|
flamingcow
|
6115565dac
|
Turn off the x86 instruction decoder selftest so mkimage skips posttest
|
2026-08-28 22:14:19 -07:00 |
|
flamingcow
|
b97893407e
|
Drop goals and open-questions docs, cut PTP from the appliance kernel
|
2026-08-28 21:59:41 -07:00 |
|
flamingcow
|
2166a456a3
|
Swap in the Riverdi RVT70 panel, flip the rotation, and stop ^C orphaning harness runs
|
2026-08-28 21:04:55 -07:00 |
|
flamingcow
|
e3de27a251
|
Nothing lives outside the repo: the bench ixgbe driver source moves in tracked at kernel/ixgbe-sff/ (build artifacts gitignored, load-ixgbe repointed, module build verified from the new home — the reg_ops/ts_bench bench extras are finally versioned), the ice sff_i2c patch is vendored at docs/nics/e810/ice-sff-i2c.patch with its out-of-tree build recipe (TRACE_INCLUDE_PATH fixup, version-matched Makefile), the e810 NVM flash logistics land in the e810 README (exact package name, rollback -m B49691D578EC into the inactive bank, post-flash inventory failing until power cycle is the expected tell), and every ~/work/phydiag-work pointer becomes an inline statement; phydiag-work, ice-sff, e810nvm and the wiitekphy CLI (a duplicate of documented transport+protocol) are deleted
|
2026-08-19 16:27:48 -07:00 |
|
flamingcow
|
c3569b5625
|
Kernel build workspace moves into the repo at kernel/build/ (gitignored; mkimage anchors to its own path, the pre-mkimage 7.1.4 tarball era swept) and the image's firmware inputs are vendored and tracked at kernel/firmware/ — EDID folded in from kernel/edid keeping its cmdline-relative path, i915 blobs pinned copies from linux-firmware — so EXTRA_FIRMWARE_DIR points at the repo, the assembly step and the linux-firmware host dependency are gone, and a kernel wanting a different blob fails the build loudly
|
2026-08-19 14:51:04 -07:00 |
|
flamingcow
|
2d3369af85
|
All three stashes distilled into docs and dropped: xdp.md carries the AF_XDP record (ixgbe's 3 KB single-buffer XDP cap excludes the locked jumbo mix; XSK need_wakeup TX as the spin-free flow control, zero-copy-or-die, the stray-RX fill-ring trap, BTF-resolved stamp kfunc, wire-weighted size schedule as an unadopted option); connectx-5 README gains the PCICONF/ICMD/MCIA gateway constants so a rebuild needs no mstflint re-mine; e810 keeps the read-side transport map (cage-cache, bus=port, bus-5 phantom, 16-bit-addr hazard, latency as wire-truth) and NVM rollback pointers; x710 the >=30 ms EEPROM write pacing; fibergaga the empirical vendor-space finds; fs the inert-I2C-surface map; state.md stash section now empty
|
2026-08-19 14:42:13 -07:00 |
|
flamingcow
|
4c6de3b618
|
Power: 2 streams and a 2.0 GHz clock pinned by a new checkMaxFreq SETTINGS check (performance governor + scaling_max_freq = fixed clock) take line rate from 80 W to 29.7 W package, qualified 96 s zero-loss; measured on the bench: streams buy scheduling headroom not watts (C1-parked threads, lonelier spinners boost harder), relaxed cpu_dma_latency never reaches deep idle (scheduler spreads wakeups, ~2% residency), offlining E-cores saves 1.7 W and is wire-invisible mid-run, the cliff is TX starvation below 1.6 GHz (1.2 GHz sags to ~18 G, zero errors)
|
2026-08-19 14:11:19 -07:00 |
|
flamingcow
|
222749fbde
|
Liveness spinner: a 30-degree gap punched through the status ring band orbits on the wall clock (one turn per 2 s, all states including link-dead and MEASURING), so a static GOOD panel can never be mistaken for a hung app; one bg-colour stroke capsule at the byte-counter-free clock phase, no new primitives
|
2026-08-18 19:45:04 -07:00 |
|
flamingcow
|
321c3c5525
|
Footer SI prefix joins the unit segment (30.04 bright, M pkts muted; 50.66 + GB) so GB is never split across colours; the 90s ago/now axis line removed as a duplicate of the RESET | LAST 90 S | NOW column headers, rows stretching into the freed space
|
2026-08-18 09:56:40 -07:00 |
|
flamingcow
|
d5ed4bfbd9
|
Appliance image builds and boots for the locked-in hardware: kernel/ixgbe-sff.patch carries the product driver subset (raw I2C + sff_i2c, ETQF steering with rule round-trip, FCoE slot guard — bench-only reg_ops/ts_bench excluded), ported to v7.2 and compile-verified; mkimage applies it or dies, builds IXGBE=y (ICE/I40E out with the ice.pkg blob) and puts ixgbe.allow_unsupported_sfp=1 on the cmdline; load-ixgbe joins the repo anchored to its own path; module bringup ordered after the host checks because a down port's TX_DISABLE powers the PHY core down while the mailbox keeps answering (proven by flipping admin state: down reads 0xffff everywhere, core wakes 0.07-0.24s after the raise) with identify settling 3s bounded; cold-boot condition reproduced on the bench (ports downed first) and passing, confirmed on the appliance
|
2026-08-18 09:41:38 -07:00 |
|
flamingcow
|
bb99695b47
|
Panel columns reordered RESET | LAST 90 S | NOW so time flows one direction: horizons narrow left to right and the NOW column sits at the timeline's own now end
|
2026-08-17 21:54:53 -07:00 |
|
flamingcow
|
8eab224472
|
Header verdict is status only (LOST/CORRUPT/LINK/INTERNAL, no count — counts live in the rows); drawHeader drops the view param
|
2026-08-17 21:50:43 -07:00 |
|
flamingcow
|
4df30912b1
|
Ghost SNR check removed as asked: no bounds, no panic, no latch re-read — a raw 0x0000 in 1.133-136 decodes as no-margin-this-poll (the untrained resting value, which appears before 1.1 reports a drop, so no read ordering could prove a ghost); panel value columns bounded by scalePanelCount (4 chars forever) with RESET narrowed to 5 chars so counts can never reach the timeline; rows and heat cells stretch proportionally to fill the band between header and footer instead of leaving the bottom half dead
|
2026-08-17 21:48:29 -07:00 |
|
flamingcow
|
66ff49f9d2
|
Noise ripped out after the bench verdict (tightly-wrapped unshielded cables move victim SNR only 0.2-0.3 dB, recorded in measurement.md dead ends): noise.go deleted with the noiser, phase clock and panel lane; configureNoise/checkPrivFlag gone so the X710 pair is untouched; console noise column, NOISE links rows and lane colors removed; driverPair rehomed to system.go, carrierUp to phy.go; history anchors to run start (frame-rate sampling and draw-clock roll kept — they fix display latency for every lane); goals/hardware/state/nics docs updated; verified on hardware (20.00G, zero errors, ECD 41m, SNR +7.6)
|
2026-08-17 21:37:18 -07:00 |
|
flamingcow
|
be2bf56fa7
|
Unplugged-cable behavior fixed end to end: heat grid rolls on the slot boundary (view computes the newest slot from the draw clock; history sampled every frame so slots color within a frame; noise phase displayed as commanded straight from the shared clock — radiating and the per-slot vote deleted), SNR ghost panic disambiguated via the PMA 1.1 latch (link dropped mid-read discards the batch, ghost on a proven-up link still dies), measure skips the 25s relink wait when the ECD verdict says faulted and the header says MEASURING instead of GOOD while a diag runs, RollBall mailbox deadline resized to 10s from bench measurement (<25ms linked, ~220ms no-link, >3s during a live plug's training; docs/modules/wiitek updated)
|
2026-08-17 21:29:02 -07:00 |
|
flamingcow
|
916c0150ef
|
Bugs-evident cleanup: cable-measure failure is fatal with its reason (failed/fail pretend-path and dead relinked plumbing deleted), bcm.command refuses partial SETs (0 or 5 params, stale-DATA trap made structural), BOOT gains a patched-ixgbe check naming stock-driver boots, panel fault rows matched by label and console rows strict on column count, phy.go split into sff/bcm/rollball and main.go's direction machinery into direction.go (pure moves), input events decoded via encoding/binary, gofmt; verified on hardware (20.00G, zero errors, ECD 41m)
|
2026-08-17 18:56:55 -07:00 |
|
flamingcow
|
38c2cc4da2
|
Hardware lock-in cleanup: ice RX counter set and by-driver map collapsed to the single ixgbe nicRxFields list (newNICPoller drops its redundant driver gate), checkCoalesce loses the try-tx-then-EINVAL fallback and sets rx-usecs shared with tx as the one path, ice-attributed comments neutralized, dead errs.total removed with its redundant test assertion; ice counter reference set recorded in docs/nics/e810; verified on hardware (20.00G, zero errors, ECD 41m)
|
2026-08-17 12:45:41 -07:00 |
|
flamingcow
|
d9249f345c
|
Docs cleanup: stale-claim conflicts fixed (e810 stamps/probe.go, CX-5 candidate title, committed-path perf table now the X520 20G result with E810-era rows marked historical, ice-pair ring note), irdma/ice notes moved to e810, state.md halved (done-checklist, RX-steering and standing-goals duplication out; ECD suppression fact into modules/fs), changelog framing flattened to present tense
|
2026-08-17 12:32:36 -07:00 |
|
flamingcow
|
fb4b4596e9
|
Panel rebuilt as the heat matrix: verdict header (ring + newest fault named with its age, cable cell top right), one row per check with NOW / last-90s-at-5s-a-cell / since-reset columns, noise as a blue context lane; history.go keeps the 18-slot wall-time ring (per-class fault deltas, SNR minima, rate verdicts, measuring gray) plus since-reset aggregates and fault ages that clear on reset; noise cycle grid-locked to the shared slot clock so cells never straddle a phase and flicker, presence granted at boot until the first up-phase verdict; check/cross stroked as capsule marks (font has neither), line rate is a pure verdict everywhere, footer is a three-line stat stack beside hold-to-reset; old panel/chip/stat-grid machinery deleted; mockups/ gitignored
|
2026-08-17 12:22:55 -07:00 |
|
flamingcow
|
e3c3f945c5
|
Cable verdict folded into one console cell (length green, fault name red, xover amber, fail; diag rule lines and counters-reset line gone), reset fires at the press not diag completion, and the measure's blip is suppressed at every counter source instead of counted-hidden-reverted: worker error adds, loss-window write-offs (quiet slides state without charging; leaving the quiet era presumes in-window holes delivered so the gap's tail is never charged late), NIC poller tracks raw without accumulating, socket drops discarded, modules un-primed by the measure itself; display hold deleted so pre-existing errors no longer blink out during a measure
|
2026-08-17 11:25:31 -07:00 |
|
flamingcow
|
3d7105073e
|
X520 live as the product NIC: rate buckets re-keyed to read time (one shared clock, one commit per drained batch) with the backward smear as a settled window — each completed bucket enters once, donates excess to the nearest earlier deficits once, locks for display when nothing later can refill it (per-sample recompute double-counted excess and read >20G on a 20G wire); timestamp machinery deleted (ts.go, SO_TIMESTAMPING, rx_filter=ALL check) after the audit confirmed the buckets were its sole consumer; testDriver ixgbe; RollBall mailbox hardened against orphaned-command completions (never sample status before a poll gap, value from the same block read, devad/reg echo required — a killed session's 7.60 read answered a PHY ID as 0x0006); full hardware pass: 20.00G flat both directions, zero errors, ECD 42m, SNR +7.4dB
|
2026-08-17 09:35:58 -07:00 |
|
flamingcow
|
06de095d1c
|
X520 returns as product NIC: smoothed-bucket rate plan (read-time buckets, backward excess-fill, rate as headline not verdict) dissolves the per-frame RX timestamp requirement; CX-5 retired with full record (MCIA via VSC/ICMD proven, fwctl write-block, card-global module index, ~150ms mailbox quantum unexplained, FS link deadlock); E810 below-AQ bit-bang idea recorded and retired; FS+Wiitek pair and length return as goals
|
2026-08-16 22:02:04 -07:00 |
|
flamingcow
|
6a1a860548
|
Panel cleanup: chip padding up a step and a tighter chip line gap, corrected/SNR numbers neutral until amber or red, dB margin casing, compound elapsed units (1m39s) ending the minutes/metres m collision, noise chip shows presence only
|
2026-08-14 23:47:45 -07:00 |
|
flamingcow
|
9f2b074c4a
|
Mixed FS+Wiitek test pair: modules dispatched by EEPROM PN to a BCM or Go RollBall client (whitelist panics outside the wiitek proven-safe set), SNR now solely the wiitek's IEEE margins (BCM handler SNR dropped as unactionable), ECD-clears-AN-enable trap found and fixed (7.0 |= 0x1200 on every restart, explicit restart after each diag), mixed roles FS-slave/wiitek-auto-master, window re-arms at taken edge so the one CMD write per window sits far from the poll; X710 rejects the honest FS EEPROM so the noise pair runs Fibergaga+Wiitek
|
2026-08-14 23:35:19 -07:00 |
|
flamingcow
|
c0f3d0d61a
|
Wiitek vendor doc converted to English markdown: A2 Table 3 I2C-to-MDIO mailbox spec (official RollBall protocol confirmation) plus A2.250 part number and A2.120 link rate; embedded Visio register-map figure transcribed via libvisio
|
2026-08-14 08:51:34 -07:00 |
|
flamingcow
|
9301348850
|
Re-lock the mailbox window on lost phase instead of anchoring blind: one loop goroutine per module owns all transport, windows edge-locked from first touch, bringup verifies both modules before either AN restart; corrected charges and link-down reads print raw registers; harness -fuzz repeats lifecycles judging by exit status (30/30 module-clean)
|
2026-08-13 16:32:14 -07:00 |
|
flamingcow
|
fef6b52b74
|
Force master/slave roles at bringup (A master / B slave, IEEE 7.32): the AN role lottery plus per-training DSP convergence moves per-pair SNR up to ~3.6 dB, so sessions are pinned to identical conditions; launch power documented firmware-pinned (1.130), single-training SNR documented as a weak qualification number
|
2026-08-13 14:23:57 -07:00 |
|
flamingcow
|
a9f10d3055
|
Windowed module protocol: every op admitted inside a 3.4s window after the firmware's observed temp poll (cadence 3.5-4.2s measured, stuck-at-last-fetch stale mechanism proven and avoided), acquire/window with panic on dead heartbeat; noise column shows green on/off cycle phase, cable-missing state unchanged
|
2026-08-13 14:04:16 -07:00 |
|
flamingcow
|
d81594ffbf
|
Temp-warning disable proven not to silence the firmware's internal temp poll; corrected-error channel stays untrustworthy, register-docs ask is the remaining path (open-questions §5)
|
2026-08-13 11:03:47 -07:00 |
|
flamingcow
|
a3de66f746
|
Document the stale-read poisoning of the corrected-error channel: every burst decodes as a neighbor register, channel untrustworthy until stale reads are solved
|
2026-08-13 10:57:54 -07:00 |
|
flamingcow
|
f9140ff8d9
|
Bringup waits for nothing (no sleeps, no link waits, SETs fire cable-or-not with advert readback), errors held off the display while a measure is in flight, status poll is a deadline not a retry count, ghost signals (implausible SNR, undefined ECD verdict) panic outright; persistent stale-pipeline bridge fact documented
|
2026-08-13 10:49:01 -07:00 |
|
flamingcow
|
f2891886f3
|
Strip canaries, double-reads, retries and floors from the module protocol; every bcm method holds the per-module lock for its whole operation; facts stay in docs with internal-client contention marked unresolved
|
2026-08-13 10:32:24 -07:00 |
|
flamingcow
|
9d1f15045f
|
Shared-mailbox reality: module firmware is its own handler client (internal GET_CURRENT_TEMP ~3.5s, proven idle-watch), handler writes wedge the uC in busy windows; quiet-window writes, bare GETs double-read with CMD-readback tripwire, SNR floor, SETs verified externally; sentinel handshake and wire-probe jumbo check removed
|
2026-08-13 10:19:32 -07:00 |
|
flamingcow
|
e99c7121e7
|
Bridged MDIO reads verify freshness: a late async fetch serves the previous response as the wrong register (observed STATUS 0x0004 as 0.4dB SNR); unchanged-or-zero results re-read bare without re-arming until stable, first read always verified, identify retries against the constant PHY ID
|
2026-08-13 08:26:22 -07:00 |
|
flamingcow
|
bba1fa5e02
|
Jumbo in the size mix (MTU 9000 + module jumbo pinned), check-first module config trusting GET reads, cable diag async at startup through the reset path, MODULES table dissolved into SETTINGS/LINKS, per-driver NIC counter sets, comment cleanup
|
2026-08-13 08:04:26 -07:00 |
|
flamingcow
|
979dc7a772
|
BCM module diagnostics replace timestamp probes: bringup forces EEE off and runs ECD (re-run on every reset, re-baselining past its blip), 1 Hz SNR margin + corrected counters on panel and console; X520 bench divergences bypassed and tracked in open-questions
|
2026-08-13 07:10:39 -07:00 |
|
flamingcow
|
a00f2216b7
|
BCM bridge tolerates MCIA offset-write-then-read framing, proven on hardware via bcm_mcia_emu.py; MCIA question narrows to firmware acceptance of 0x56 and offset/framing details
|
2026-08-12 21:39:46 -07:00 |
|
flamingcow
|
4e5ba0bccf
|
Sharpen MCIA open question from mlx5_ifc.h register format; drop offline-rig and instrumentation-flow framing
|
2026-08-12 21:37:02 -07:00 |
|
flamingcow
|
65b1e18004
|
Dissolve resolved analyses into standalone device docs; open-questions.md keeps only the four live problems; discard NIC-timestamp length path (BCM ECD is proven) and Aquantia length trivia (30m part, oracle-only)
|
2026-08-12 21:30:16 -07:00 |
|
flamingcow
|
8b021d186b
|
Add full transcription of Marvell Alaska 88E151x public datasheet (168pp, 89 register tables) as CUX3610 family reference
|
2026-08-12 21:15:05 -07:00 |
|
flamingcow
|
1afe36a3c8
|
Remove WX1820: never had the hardware, evaluation was paper-only
|
2026-08-12 21:10:38 -07:00 |
|
flamingcow
|
b6e0fe8978
|
Add NIC datasheets: 82599 rev3.5, 710-series v4.1, E810 full datasheet, ConnectX-5 user manual + mlx5 PRM
|
2026-08-12 21:09:08 -07:00 |
|
flamingcow
|
9cb82ca3fa
|
Re-transcribe BCM84891L MDIO command and SFP register excerpts in full (all 45 commands, complete serial-ID table); scrub doc-provenance attribution and label all our interjections as field notes
|
2026-08-12 21:02:30 -07:00 |
|