86 of the 144 margin channels moved up +0.8% .. +2.5% to the measured
median for this platform (3.3 -> 3.38, 0.9 -> 0.915, 0.8 -> 0.82, ...).
That is not a display change. VNOM is the denominator of margin_status'
deviation %, and it is also the basis margin_set derives high/low/OV/UV
from - so both the number you read and the voltage you apply move with
it. A rail steady at 0.756 V used to read +0.80% against a nominal 0.75
and now reads 0.00%. Margin logs from before and after cannot be
compared: the reference moved, the hardware did not.
comboA/comboB are replaced by combo_SWB_CONN13..16_{high,low}. The
per-channel percentages are positional, so they follow the rails of one
specific board - applying a CONN13 profile to a CONN16 margins the wrong
rails and nothing detects it. SWB0 and SWB1 share a profile per CONN
because their rails are identical.
Fixes two things the deletion broke:
- margin_apply_profile_all.sh still named comboA for all nine boards,
which would now stop at "Profile not found" nine times over. It names
the matching per-CONN profile instead, with CB on the generic
combo_high3, and a note that the low pass is _high -> _low.
- docs/LTC2980_channel_map.csv is generated from settings/*.conf, so
all 86 changed rails were stale in it. Regenerated.
The eight new profiles also still carried comboA's header comment
("alternating high/low"), which describes neither what they contain nor
what they are for.
Script A -> V1.1.3.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
4.7 KiB
4.7 KiB
v1.1.3 — Margin now measures against what this platform actually runs at
✨ New features
Per-CONN margin profiles for the switch boards
combo_SWB_CONN13_high/_lowthroughcombo_SWB_CONN16_high/_lowreplace the oldcomboA/comboBpair. Each file's per-channel percentages follow the rails on that board, so a CONN13 profile is no longer a rough fit for CONN16.- SWB0 and SWB1 share a profile per CONN — the two boards carry identical rails and differ only by I2C bus.
- A high pass and a low pass are now the same run with
_highswapped for_low. - A profile applied to the wrong CONN margins the wrong rails and says nothing. The percentages are positional, so nothing detects the mismatch.
margin_apply_profile_all.shnow names the right profile per board instead of one name for all nine.
🐛 Bug fixes
VNOM was the spec value, not what the rails actually sit at
- 86 of the 144 channels moved up between +0.8% and +2.5% to the measured median for this platform —
PVDD3_3V_SYNTH_LDO_*3.3 → 3.38,P0V9_AVDD_*0.9 → 0.915,PVDD0_8V_T30.8 → 0.82, and so on. - This is not a display change.
VNOMis the denominator ofmargin_status's deviation %, and the basismargin_setderives high / low / OV / UV from. A rail sitting steady at 0.756 V used to read+0.80%against a nominal 0.75 and now reads0.00%; and asking for+3%now lands on a different absolute voltage than it did last week. - Margin logs from before and after this build cannot be compared directly. The numbers moved because the reference moved, not because the hardware did.
The batch profile script pointed at files that no longer exist
margin_apply_profile_all.shstill namedcomboAfor all nine boards. WithcomboA.confremoved, every board would have stopped atProfile not found— a nine-line wall of errors on a script that is normally left to run.
The channel map CSV was stale
docs/LTC2980_channel_map.csvis generated fromsettings/*.conf, so all 86 changed rails were wrong in it. Regenerated withtools/gen_channel_map.sh. It is output, not source — regenerate it, never hand-edit it.
📦 Downloads
| File | Contents |
|---|---|
Script_ABC_Blanton_V1.1.3.zip |
The full Tera Term working directory, including Blanton_Script/ to copy onto the DUT |
After copying to the DUT:
chmod +x ~/Blanton_Script/*.sh # see below
grep -rlU $'\r' ~/Blanton_Script # expect no output
blanton_ber.sh and nfc_polling.sh are invoked by the macros through ./ or ~/, so they need the execute bit along with bmc_monitor.sh and usb_target.sh — neither git nor a Windows/USB copy carries it reliably.
⚠️ Before you run
- Re-baseline your margin expectations. Any pass/fail limits or golden logs derived from the old
VNOMvalues need redoing against this build. margin_savein any form writes NVM permanently and now writes margin windows derived from the new reference. Runmargin_status_all.shfirst and never call it during a test.- SWB profiles are per-CONN. Applying
combo_SWB_CONN13_highto a CONN16 board is silently wrong. - These three tests cannot share the switch:
blanton_ber.sh,blanton_tr518.shandblanton_traffic_linespeed. - PRBS takes the links down while
blanton_ber.shis armed. ce0keeps running until you stop it.- Two numbers must stay in step: Script C's
sleep 30andblanton_ber.sh'sBER_INTERVAL. FAN_SPEEDis 100 — the fans run flat out unless you changeconfig.ttl.nfc_polling.sh startclears the log, so Script B wipes Script A's NFC baseline file (the numbers are already in the console log).- The NFC tool is written for the customer's tag. It polls Type A / B / F only and parses Type A strictly; a tag of another technology is never discovered and fails as
no RF interface activation notification received. Without--expected-idit does not check identity, so a different tag of the same type still passes. - The three items listed as unverified in v1.1.0 are still unverified: the
ce0ingress mirror, the 120s settle inblanton_tr518.sh, andtest mode nr=noon stop.
🔗 Links
- ARCHITECTURE.md — test flow, data models, constraints
- CLAUDE.md — commands and the bench gotchas
- LTC2980_channel_map.csv — all 144 margin channels with the new
VNOM
Full changelog: V1.1.2...V1.1.3