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 |
|
flamingcow
|
6d73221123
|
Hold a fatal error on the framebuffer and reboot in five minutes rather than exiting, since init's death drops the kernel's panic screen over the cause
|
2026-08-05 21:46:15 -07:00 |
|
flamingcow
|
cd259556d4
|
Build i40e into the appliance kernel, whose forbidden list predated the noise pair that needs it
|
2026-08-05 21:46:15 -07:00 |
|
flamingcow
|
e7c73ca0a9
|
Reveal the build's commit hash in place of the reset label while a finger holds the top-right corner, and dev where go run left no stamp
|
2026-08-05 16:13:20 -07:00 |
|
flamingcow
|
2fcab83756
|
Drive a noise cable on the i40e pair, cycling its link down and up since the module PHYs ignore everything softer, and flag its absence beside the error columns
|
2026-08-05 10:49:23 -07:00 |
|
flamingcow
|
88f4f7da80
|
Poll the nic on the sampler's cadence, and reboot rather than exit when a clean return reaches PID 1
|
2026-08-05 08:18:44 -07:00 |
|
flamingcow
|
ab60cc1cfc
|
Cap cpu idle exit latency for the life of the run, deep enough to keep C1 and shallow enough to block the rest
|
2026-08-04 22:50:22 -07:00 |
|
flamingcow
|
49eaa8a8a8
|
Take the rate epoch from the slowest stream's frontier, since reading a bucket claims every stream has delivered through it
|
2026-08-04 22:38:10 -07:00 |
|
flamingcow
|
7b2601a02e
|
Fail loudly on a touch read, stop the workers before their sockets close, and file down the small edges
|
2026-08-04 22:26:07 -07:00 |
|
flamingcow
|
12cef6a89b
|
Fold the shutdown flags into one, take the smallest frame to the wire minimum, drop the speed column
|
2026-08-04 22:12:07 -07:00 |
|
flamingcow
|
19b0f1d2ea
|
Refuse a filter location something else holds, and the driver's word on how many it wrote
|
2026-08-04 22:12:03 -07:00 |
|
flamingcow
|
f5d05d1fc5
|
Fail loudly on a drm read instead of leaving the panel frozen on its last frame
|
2026-08-04 22:11:58 -07:00 |
|
flamingcow
|
dd94f4cab5
|
Set the socket buffers through the force options alone instead of falling back to the capped ones
|
2026-08-04 22:01:10 -07:00 |
|
flamingcow
|
4c7062d600
|
Take the line rate as a constant so nothing has to be plugged in, and drop the config box
|
2026-08-04 21:58:52 -07:00 |
|
flamingcow
|
01d673dc83
|
Check the header version on arrival and say what the error window actually spans
|
2026-08-04 21:29:03 -07:00 |
|
flamingcow
|
49de171ad0
|
Commit the receive counters once per batch instead of once per frame
|
2026-08-04 21:25:04 -07:00 |
|
flamingcow
|
21788fdd4f
|
Judge a frame against the stream its socket receives rather than the one its header claims
|
2026-08-04 21:19:08 -07:00 |
|
flamingcow
|
51467231ee
|
Fill what a rounded rectangle contains outright as spans instead of pixel by pixel
|
2026-08-04 21:09:12 -07:00 |
|
flamingcow
|
ce44fe9866
|
Walk the control buffer by hand instead of allocating a message list per frame
|
2026-08-04 20:48:17 -07:00 |
|
flamingcow
|
1d54a1a1f6
|
Checksum the header and refuse sequence numbers the sender never sent
|
2026-08-04 20:41:16 -07:00 |
|
flamingcow
|
703039587b
|
Bucket received frames by their mac receive stamp and read one bucket back
|
2026-08-04 20:04:30 -07:00 |
|
flamingcow
|
8db5c29882
|
Cover the loss window, rate window, error taxonomy and formatters with tests
|
2026-08-04 15:46:12 -07:00 |
|
flamingcow
|
63196eb691
|
Mirror the panel in the console table as one summed row in two sections
|
2026-08-04 14:02:53 -07:00 |
|
flamingcow
|
fbfcabda7e
|
Draw every panel figure from the latest sample instead of holding the totals
|
2026-08-04 13:49:21 -07:00 |
|
flamingcow
|
4e60757937
|
Rate from the newest bucket, stamped when the counters are actually read
|
2026-08-04 13:45:16 -07:00 |
|
flamingcow
|
2035d42734
|
Fold the leftover formatters into the SI ones and stop reallocating the draw scratch
|
2026-08-04 13:37:19 -07:00 |
|
flamingcow
|
f5a6420cfa
|
Drop the fatal flag now that every failed check is fatal
|
2026-08-04 13:33:08 -07:00 |
|
flamingcow
|
39c27166dc
|
Hardcode the settled sizes, streams and batch instead of carrying flags for them
|
2026-08-04 13:31:14 -07:00 |
|
flamingcow
|
05e1958710
|
Cut the drm package comments back to what is not evident from the code
|
2026-08-04 13:23:41 -07:00 |
|
flamingcow
|
4fd3abaf25
|
Move the shared drm ioctl abi into internal/drm
|
2026-08-04 13:21:50 -07:00 |
|
flamingcow
|
66bfb88dd7
|
Make every failed check and unreadable counter fatal instead of degrading
|
2026-08-04 13:03:07 -07:00 |
|
flamingcow
|
fb6a0d2c1b
|
Push the new origin into the sample ring so a reset cannot underflow the totals
|
2026-08-04 12:59:50 -07:00 |
|
flamingcow
|
a285b8999c
|
Drop the counter padding that was never buying a cache line
|
2026-08-04 12:53:53 -07:00 |
|
flamingcow
|
06592cbc81
|
Stop counting a partly filled send vector as a failure
|
2026-08-04 12:45:12 -07:00 |
|
flamingcow
|
1f9b5ea62e
|
Look the expected checksum up instead of carrying it in the frame
|
2026-08-04 12:45:04 -07:00 |
|
flamingcow
|
03b7ff4954
|
Drop the write-only direction fields and the unused pattern names
|
2026-08-04 12:26:10 -07:00 |
|
flamingcow
|
21b20d0071
|
Scale integer counts on the panel like every other figure
|
2026-08-04 11:27:35 -07:00 |
|
flamingcow
|
49a1a2f829
|
Read rx errors from the driver stats array and add the pcs counters
|
2026-08-04 11:27:30 -07:00 |
|
flamingcow
|
5eea6856fb
|
Cut the comments back to the genuinely subtle ones
|
2026-08-01 16:14:12 -07:00 |
|
flamingcow
|
726c4c2445
|
Rework the panel onto SI figures, labelled chips and one spacing scale
|
2026-08-01 16:07:44 -07:00 |
|
flamingcow
|
de2ff13eb6
|
Collapse errors into lost, corrupt, link and internal
|
2026-07-31 17:10:25 -07:00 |
|
flamingcow
|
3c8637f931
|
Show recent errors as labelled chips and rebuild the reset button to match
|
2026-07-31 17:05:31 -07:00 |
|
flamingcow
|
f512391ee4
|
Capture the panel by reading the displayed drm buffer instead of fbdev
|
2026-07-31 16:46:11 -07:00 |
|
flamingcow
|
1c5bda37bf
|
Drive the panel through drm and page flip between four scanout buffers
|
2026-07-31 16:46:11 -07:00 |
|
flamingcow
|
57d7c91df1
|
Sample the rate buckets on their own clock instead of the display refresh
|
2026-07-31 16:15:16 -07:00 |
|
flamingcow
|
5d2dbffb4a
|
Add a harness that runs cabletest on a timer and captures the panel to png
|
2026-07-31 16:15:16 -07:00 |
|
flamingcow
|
c94b7ae33d
|
Show median bucket rates, slide the error window, and poll sysfs off the draw loop
|
2026-07-31 15:45:03 -07:00 |
|
flamingcow
|
cf204f5a23
|
Add mkimage to build and install the image from the latest signed kernel tag
|
2026-07-26 17:07:09 -07:00 |
|
flamingcow
|
ab0a8c8759
|
Take ns/m to 4.85, measured against a 6m cable
|
2026-07-26 15:51:52 -07:00 |
|
flamingcow
|
5676b2b581
|
Detect mounts by mount root, wait for the touchscreen, and default to eth0/eth1
|
2026-07-26 15:51:34 -07:00 |
|
flamingcow
|
832a2b42d6
|
Mount the filesystems we need so this can run as PID 1
|
2026-07-26 10:54:19 -07:00 |
|
flamingcow
|
5e2b36bdaa
|
Clear staticcheck, gopls and go.mod warnings
|
2026-07-26 10:33:38 -07:00 |
|
flamingcow
|
102d53fb9b
|
Turn the display portrait and split it into live and since-reset panels
|
2026-07-26 10:27:41 -07:00 |
|
flamingcow
|
4d102f377e
|
Take the cable zero from the shortest delay seen rather than a flag
|
2026-07-26 09:43:03 -07:00 |
|
flamingcow
|
e77574712d
|
Cycle every payload pattern per packet and always run both directions
|
2026-07-25 23:03:31 -07:00 |
|
flamingcow
|
0f16edfe61
|
Count link and syscall failures instead of printing them
|
2026-07-25 22:54:04 -07:00 |
|
flamingcow
|
1b322bb32b
|
Measure cable length from hardware transmit and receive timestamps
|
2026-07-25 22:38:52 -07:00 |
|
flamingcow
|
09411aebdf
|
Reset everything from a held on-screen button or space
|
2026-07-25 21:41:21 -07:00 |
|
flamingcow
|
b2441ba64a
|
Redraw at 60Hz with adaptive rate smoothing, console output at 1Hz
|
2026-07-25 21:30:37 -07:00 |
|
flamingcow
|
12958ced56
|
Take the console into graphics mode while drawing
|
2026-07-25 21:30:37 -07:00 |
|
flamingcow
|
892e855207
|
Group the display into instant and cumulative sections on a shared grid
|
2026-07-25 19:48:15 -07:00 |
|
flamingcow
|
7a9567da55
|
Clear the framebuffer on exit
|
2026-07-25 19:42:45 -07:00 |
|
flamingcow
|
419bdc4bb7
|
Render the live status to the framebuffer in Atkinson Hyperlegible Mono
|
2026-07-25 19:41:53 -07:00 |
|
flamingcow
|
16416bc1b0
|
Draw the counter reset as a labelled rule across the table
|
2026-07-25 19:31:03 -07:00 |
|
flamingcow
|
269199366d
|
Reset cumulative error counts on space
|
2026-07-25 19:29:00 -07:00 |
|
flamingcow
|
abb8b81919
|
Remove CPU pinning flags that measured slower than the scheduler
|
2026-07-25 19:24:10 -07:00 |
|
flamingcow
|
32c49ccc4b
|
Widen rate thresholds so interval jitter is not flagged
|
2026-07-25 19:17:25 -07:00 |
|
flamingcow
|
ed0f1d11e6
|
Default to seven steered streams across the full frame size range
|
2026-07-25 19:15:20 -07:00 |
|
flamingcow
|
7e77d22f36
|
Give each stream its own ethertype steered to its own rx queue
|
2026-07-25 19:08:11 -07:00 |
|
flamingcow
|
0af94219a7
|
Show cumulative error counts in the streaming rows
|
2026-07-25 18:45:47 -07:00 |
|
flamingcow
|
e0781b3334
|
Default to worker counts and frame sizes that measure the cable, not the host
|
2026-07-25 18:40:37 -07:00 |
|
flamingcow
|
7c09c34564
|
Stream forever with eviction-based per-stream loss detection
|
2026-07-25 18:33:36 -07:00 |
|
flamingcow
|
2516d908b9
|
Remove unmanaged check; nothing else will own these interfaces
|
2026-07-25 18:23:01 -07:00 |
|
flamingcow
|
36711522a2
|
Drop binary gitignore now that go run is the only entry point
|
2026-07-25 18:21:53 -07:00 |
|
flamingcow
|
3ba68952bb
|
Always color output and fold settled values into constants
|
2026-07-25 18:20:34 -07:00 |
|
flamingcow
|
29c6ce0b56
|
Drop drift detection; host tuning is one-shot system startup
|
2026-07-25 18:18:00 -07:00 |
|
flamingcow
|
773724368e
|
Always correct host settings instead of gating fixes behind flags
|
2026-07-25 18:16:34 -07:00 |
|
flamingcow
|
27f89d9916
|
Render output as colored tables with pass/fail verdict
|
2026-07-25 18:13:58 -07:00 |
|
flamingcow
|
7f671a262e
|
Check and correct host tuning at startup and on drift
|
2026-07-25 18:07:25 -07:00 |
|
flamingcow
|
befd732406
|
Add full-duplex raw-Ethernet 10G cable stress tester
|
2026-07-25 17:58:54 -07:00 |
|