Files
Blanton_TTL_Script/docs/release-notes/v1.1.5.md
T
etwenandClaude Opus 5 215fed6e95 fix(stress): Keep the SSD and USB jobs alive for the whole soak
qfx5252-stress-usb was started with --runtime 60. It finished a minute
into an overnight run and the USB path sat idle for the rest of the
night - nothing failed, nothing said so, and the log looked complete.
SSD had the same shape at --runtime 3600. Both are now 86400, and the
BMC DDR memtester drops its loop count so it runs until stopped.

86400 is 24h, not forever. Past that SSD and USB die quietly and the
only clue is the shorter bgctl list Script B already prints each round.
Said so in the version history, the release notes and ARCHITECTURE.

Adds blanton_multiphase_margin.sh: the multiphase controllers on both
switch boards over the native i2c buses (SWB0 on i2c-13/15, SWB1 on
-14/-16), 19 rails each. high3/low3/comboA/comboB set voltages and print
one line per rail; save commits them and prints Multiphase Save All,
because that list has no per-rail mapping to report against.

Two hazards it carries: save is STORE_USER_ALL and permanent, and these
are NOT the LTC2980s margin.sh drives - the two tools reach the same
rails from opposite sides with no interlock between them.

The emitted commands were diffed against tools/Multiphase_*.txt: argv
identical for all five. The rail-to-netname mapping was cross-checked
against the bus numbers rather than trusted by line position - blocks
1..19 are all bus 13/15 and 20..38 all 14/16, matching the SWB0/SWB1
split of Multiphase_Netname.

blanton_traffic_linespeed v0.7.0 appends PatternRandom=yes to every tx
including ce0, and the defaults become tx 200 length=324. A fixed
pattern can sit on a benign bit sequence for a whole run; a changing one
is what exposes a weak lane. -r no forces fixed, -r "" omits the
argument for an SDK that will not take it. Bytes per burst went 51200 ->
64800, so absolute counter totals do not carry across this build - the
pair cross-check that decides PASS/FAIL does.

Script A -> V1.1.5.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
2026-09-01 11:04:45 +08:00

4.7 KiB

v1.1.5 — The stress jobs now last the whole soak

🐛 Bug fixes

USB stress ran for sixty seconds of an overnight soak

  • qfx5252-stress-usb was started with --runtime 60. It finished a minute in and the USB path sat idle for the rest of the night. Nothing failed, nothing said so, and the run looked complete.
  • SSD stress had the same shape at --runtime 3600 — one hour of a soak that usually runs far longer.
  • Both are now --runtime 86400, and the BMC DDR memtester lost its loop count (64M 164M) so it runs until it is stopped rather than finishing one pass.
  • 86400 is 24 hours, not "forever". A soak longer than a day leaves SSD and USB dead for the remainder. Script B prints bgctl list every round (since v1.0.10), so the shorter list is visible there — but nothing raises an alarm.

New features

Multiphase VRM margin

  • New blanton_multiphase_margin.sh drives the multiphase controllers on both switch boards over the native i2c buses — SWB0 on /dev/i2c-13 and -15, SWB1 on -14 and -16. 19 rails per board, 38 in all.

  • high3 / low3 / comboA / comboB set the voltages and report one line per rail:

    SWB0_0V9_ANLG0 - 0.930V Configure Done
    SWB0_0V75_ANLG0 - 0.775V Configure Done
    ...
    [ OK ] high3: 38 rail(s) configured
    
  • save commits them. It has no per-rail mapping, so it reports as one operation: Multiphase Save All.

  • -u 0 / -u 1 for a single board; rails belonging to the other board are skipped and counted separately, not failed.

  • save writes NVM permanently (PMBus STORE_USER_ALL, and 0x17 on the TH6 core rail). A power cycle does not undo it.

  • These are not the LTC2980s that margin.sh drives. The two tools reach the same rails from different sides and each assumes it is the only writer. There is no interlock — do not run both.

Traffic bursts carry a random pattern

  • blanton_traffic_linespeed v0.7.0 appends PatternRandom=yes to every tx, ce0 included. A fixed pattern can sit on a benign bit sequence for an entire run; a changing one is what makes a weak lane show itself.
  • -r no forces the fixed pattern; -r "" leaves the argument off entirely, which is the pre-v0.7.0 wire format if a future SDK rejects it.
  • Defaults change from tx 100 length=512 to tx 200 length=324.
  • Counter totals are not comparable across this build: 64800 bytes per burst instead of 51200, about 27% more. The PASS/FAIL cross-check compares a pair against each other and is unaffected — only absolute figures moved.

📦 Downloads

File Contents
Script_ABC_Blanton_V1.1.5.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, blanton_multiphase_margin.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

  • A soak longer than 24 hours needs the runtimes raised. --runtime 86400 is a ceiling; past it, SSD and USB are idle and only a shorter bgctl list hints at it.
  • blanton_multiphase_margin.sh save is permanent. Read the rails back before committing, and never run it during a test.
  • Do not mix blanton_multiphase_margin.sh and margin.sh — same rails, two different access paths, no interlock.
  • Traffic counters changed scale. Any absolute thresholds taken from earlier logs need redoing.
  • Script 4 (thermal/safety) has no teardown — finish with blanton_tr518.sh stop and kill $(jobs -p).
  • These three cannot share the switch: blanton_ber.sh, blanton_tr518.sh, blanton_traffic_linespeed.
  • Margin is only sampled at the start and end of a soak (since v1.1.4), not during it.
  • FAN_SPEED is 100 — the fans run flat out unless you change config.ttl.
  • The three items listed as unverified in v1.1.0 are still unverified: the ce0 ingress mirror, the 120s settle in blanton_tr518.sh, and test mode nr=no on stop.

Full changelog: V1.1.4...V1.1.5