4_Blanton_Script_thermal_safety.ttl brings the DUT up the way Script A does, then loads it - mlucas-avx2 -cpu 0:15 in the background plus blanton_tr518.sh start - and samples platform data and both switch boards' rail power every minute. Power per rail under sustained full load, over hours, is the whole point of it. It is standalone: nothing starts it, it starts nothing, and it must not share a DUT with Script B because both take over the cd ports. It also has no teardown. When you interrupt it the unit is still in port cd lb=mac / l2 learn off / test mode nr=yes and mlucas is still running, and show interfaces status does not reveal any of that. Called out in the version history, the release notes, CLAUDE.md gotchas and the ARCHITECTURE future-work list, because whoever uses the box next will not find out on their own. Script B's per-round loop drops the margin scan. The loop is meant to be a quick minute-by-minute sample and margin_status_all.sh walks nine LTC2980s over I2C, which dominated the round. Script C takes it instead, once, before show uptime. The trade-off is real: margin drift DURING the soak is no longer visible, only a start and an end reading. Documented rather than glossed over, with a suggestion (scan every N rounds) if it needs to come back. Script C also sends exit and waits for "Script done" before hw-test-session finish, so finish runs in the login shell rather than inside the session it is closing. Adds docs/Blanton_Test_Flow.drawio: all four scripts side by side, with the config flags that change each step marked, Script B's one real goto drawn, and the A->B->C handoffs shown as the manual steps they are. The new script arrived LF-only while every other .ttl is CRLF and .gitattributes marks *.ttl as -text, so what is committed is exactly what Tera Term reads. Converted. Script A -> V1.1.4. 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.4 — A thermal and safety run that loads the box and watches the rails
✨ New features
4_Blanton_Script_thermal_safety.ttl
- A standalone script — it is not part of the A → B → C chain and is not started by any of them. Run it on its own when the question is thermal or safety rather than functional.
- Brings the DUT up the same way Script A does (login, session reset, fan speed,
wait_init, DUT inventory, BMC, PCIe error clear,pcie_bus, PMON, dmesg), then loads it:mlucas-avx2 -cpu 0:15in the background andblanton_tr518.sh starton the data plane. - Then loops every minute: platform data, both switch boards' rail power via
TH6_SWB0/1_power_readback.sh, andbgctl list/jobs. That is the point of the script — power per rail under sustained full load, sampled over hours. - It has no teardown. When you interrupt it the DUT is still in
port cd lb=mac,l2 learn offandtest mode nr=yes, andmlucas-avx2is still running. Runblanton_tr518.sh stopandkill $(jobs -p)before anything else uses the box — nothing inshow interfaces statusreveals the leftover state. - It cannot share a DUT with Script B. Both take over the
cdports.
Test flow diagram
docs/Blanton_Test_Flow.drawiodraws all four scripts side by side, with the config flags that change each step marked, the one realgotoin Script B drawn, and the manual handoffs between A → B → C shown as such.
🐛 Bug fixes
The soak loop spent most of its minute reading margin
- Script B's per-round loop is meant to be a quick sample.
margin_status_all.shwalks nine LTC2980s over I2C and dominated the round. The scan moved to Script C, which takes it once beforeshow uptime. - The trade-off is real and worth knowing: margin is now only measured at the start (Script A) and the end (Script C). Drift that happens during the soak is no longer visible.
hw-test-session finish ran from inside the session's own shell
- Script C now sends
exitand waits forScript donefirst, sofinishruns in the login shell that opened the session.
The new script arrived with LF line endings
- Every other
.ttlin the repo is CRLF, and.gitattributesmarks*.ttlas-text— whatever is committed is exactly what Tera Term gets. Converted to CRLF to match.
📦 Downloads
| File | Contents |
|---|---|
Script_ABC_Blanton_V1.1.4.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, nfc_polling.sh, blanton_tr518.sh and the two TH6_SWB*_power_readback.sh are invoked 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
- Script 4 leaves the switch loaded and looped back. Always finish with
blanton_tr518.sh stop. If the next test starts without it, traffic and BER results are meaningless and nothing warns you. - Do not run Script 4 and Script B on the same DUT. Same ports, same L2 settings.
- Margin is no longer sampled during the soak — only Script A (start) and Script C (end).
- Re-baseline your margin limits if you have not already:
VNOMbecame the measured median in v1.1.3, which moved both the deviation % and the margin window. - These three cannot share the switch:
blanton_ber.sh,blanton_tr518.sh,blanton_traffic_linespeed. - PRBS takes the links down while
blanton_ber.shis armed. ce0keeps circulating until you stop it.- Two numbers must stay in step: Script C's
sleep 30andblanton_ber.sh'sBER_INTERVAL. FAN_SPEEDis 100 — relevant here more than anywhere: a thermal run at full fan is not the same test as one at 30%.- 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. The settle matters most for this release — Script 4 depends ontr 518still driving traffic minutes after it was started.
🔗 Links
- Blanton_Test_Flow.drawio — the four scripts side by side
- ARCHITECTURE.md — test flow, data models, constraints
- CLAUDE.md — commands and the bench gotchas
Full changelog: V1.1.3...V1.1.4