flamingcow
|
06fa759b1a
|
Restructure stats into delta, mask, and aggregate layers
|
2026-08-31 09:35:32 -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
|
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
|
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
|
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
|
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
|
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 |
|
flamingcow
|
5588ebec6f
|
Resolve X520 open questions on hardware: ETQF raw-L2 steering and single-hold compound I2C proven; 82599 has no all-packet exact-timestamp path so it is disqualified as product NIC (diagnostics-only), counter route rejected for a cable tester
|
2026-08-12 20:36:31 -07:00 |
|
flamingcow
|
910379e614
|
Correct Wiitek danger analysis: whole 3.0x8000+/31.0xF000+ window is lethal, not just *.??64 -- 88Q2220 recipe is IN the danger zone; record live baseline and no-safe-VCT-path finding
|
2026-08-12 19:50:15 -07:00 |
|
flamingcow
|
ad9bc9fae4
|
BCM ECD recovered from OpenBCM SDK and proven: 1E.4006 start, 1.A896 verdicts, 1.A897-9A per-pair meters -- meter-accurate on a 45m cable, healthy pairs report length
|
2026-08-12 19:37:54 -07:00 |
|
flamingcow
|
c57816345f
|
Restructure docs: per-device directories under modules/ and nics/ with co-located datasheets, state centralized in state.md, prose tightened into lists and tables
|
2026-08-12 19:23:02 -07:00 |
|
flamingcow
|
dc1fa6538d
|
Record FS probe sweep: AutogrEEEn found and forced off (defensive at bringup), identity pair map, FR count as metric, firmware DATA1 reliability caveat
|
2026-08-12 18:41:32 -07:00 |
|
flamingcow
|
ff64b59fe0
|
Transcribe BCM PDFs to markdown visually (tables intact); catalog probe candidates: EEE advertised in reference bringup, EMI cmds are fast-retrain enables, 1588/loopback/ECD chapters missing
|
2026-08-12 18:33:10 -07:00 |
|
flamingcow
|
4023d7ccf0
|
Add FS/BCM capability inventory; drop SNR/power-backoff length proxies -- length is PHY features or NIC timestamps only
|
2026-08-12 18:23:28 -07:00 |
|
flamingcow
|
01e00dfffe
|
BCM path proven on X520: fix multi-byte i2c read (SDA release), GET_SNR is 0x8030 invoked bare, IEEE SNR regs dead on BCM, module pause forced off
|
2026-08-12 17:50:14 -07:00 |
|
flamingcow
|
6f787c0873
|
Record X520 install: FS+Wiitek seated and linked, FS's honest EEPROM is what trips ixgbe qualification, uplink moved to enp88s0
|
2026-08-12 17:35:25 -07:00 |
|
flamingcow
|
5f4a8ceb57
|
Vendor AQR datasheet, correct timestamp model (hw rx stamps are a hard requirement), order ConnectX-5, map 82599 bucket-timestamp routes
|
2026-08-10 12:50:57 -07:00 |
|
flamingcow
|
73074040e0
|
Answer open questions from desk analysis: ETQF steering, E820 is post-FEC, compound I2C op, forced co-location
|
2026-08-10 11:51:39 -07:00 |
|
flamingcow
|
8c8e0c7d32
|
Add open-questions doc for pre-hardware deep-dive
|
2026-08-10 11:31:19 -07:00 |
|
flamingcow
|
44e010caa9
|
Note Wiitek ixgbe RollBall client and flag ixgbe RX-steering as open investigation
|
2026-08-10 11:29:05 -07:00 |
|
flamingcow
|
3f1bb03e52
|
Record X520 ixgbe raw-i2c patch and BCM client prep in state doc
|
2026-08-10 11:21:49 -07:00 |
|
flamingcow
|
6597a11c33
|
Add in-repo project docs: goals, state, hardware, module-PHY transports, module diagnostics, and measurement lessons
|
2026-08-10 10:34:26 -07:00 |
|