Files
Blanton_TTL_Script/docs/release-notes/v1.1.7.md
T
etwenandClaude Opus 5 1a06367ade docs: Record V1.1.7 in Script A's history, and update CLAUDE / ARCHITECTURE
Script A's Version History gains the reboot-cycle macro, the Script B timeout
fix, the tmp/ rule and the stress knobs.

CLAUDE.md: current status to V1.1.7, a Script 5 paragraph, tmp/ in the folder
list, and two gotchas rewritten - the timeout one now covers both restore
positions, and --runtime is described as the job's overall limit rather than
"a 24 hour ceiling". Dropped the stale "TR518 not scripted yet" line.

ARCHITECTURE.md: Script 5 in the tree and in Key Features, tmp/ in the tree,
constraint 14 extended with "copy the :label along with the goto", and two
known issues added for the parts not yet run on hardware.

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

5.9 KiB
Raw Blame History

v1.1.7 — A way back from a margin, and a reboot cycle that runs itself

New features

blanton_multiphase_margin.sh normal — put the rails back without a power cycle

  • normal returns all 38 multiphase rails to their nominal set point, with the same per-rail reporting as the margin profiles (SWB0_0V9_ANLG0 - 0.930V Configure Done). -u 0|1|all as usual.
  • Until now the only way out of a margin was to power-cycle the DUT. That mattered more than it sounds: save run while the board was still margined would have written the offsets into NVM, where a power cycle does not help either.
  • The commands it sends are in tools/Multiphase_Normal.txt for anyone driving the bench by hand.

⚠️ TH6_CORE is 0.8 V nominal but settles near 0.8591 V once the load line is active. Reading back 0.859 after normal is the load line doing its job, not a failed write.

5_Blanton_Script_Reboot_Cycle.ttl — an unattended reboot-cycle run

  • A standalone macro, like Script 4: it does not chain to A → B → C and does not use hw-test-session. Every cycle is a fresh boot, so there is nothing to carry over and nothing to tear down.

  • Each round: login → sudo -idate -s → fan speed → wait_initCheck Pt1 … Pt13show uptimereboot → wait for the next boot. The cycle number is printed in the banner of every round.

    Pt1 DUT info Pt2 BMC info + tools Pt3 mgmt ping Pt4 NFC poll
    Pt5 SSD stress Pt6 USB stress Pt7 BMC USB net Pt8 port status + 15 s traffic
    Pt9 BER sweep Pt10 NVMe errors Pt11 platform data Pt12 dmesg i2c
    Pt13 PCIe error counters
  • The USB step takes its device node from usb_target.sh, not a hard-coded /dev/sda1.

The SSD and USB stress durations are declared in config.ttl

  • SSD_RUNTIME / SSD_COUNT and USB_RUNTIME / USB_COUNT replace the values that were hard-coded in Script B, so a site changes them in one place. COUNT is passed straight through as --passes.

🐛 Bug fixes

Script B left the global timeout at 15 s for the rest of the cdc_ncm section

  • The NCM probe sets timeout = 15 and restored it only at :skip_ping — which the success path reaches several waits later. Until then every wait gave up after 15 s instead of blocking, and a wait that returns without eating the prompt puts the whole macro a beat ahead of the DUT. It is now restored on the success path too.

goto skip_ping in the reboot-cycle macro had no label to jump to

  • The probe was copied out of Script B without its :skip_ping label. Tera Term does not check labels when it loads a macro — it raises the error only when it actually jumps, which here means only when the NCM interface is missing. The failure mode was an error dialog stopping the whole cycle, on the one run where something was already wrong. The label is there now, and the timeout is restored before the branch so one line covers both paths.

Two check points both numbered 12

  • Dmesg_i2c and PCIE Error Counters both announced themselves as Check Pt12. The second is now Pt13; Pt1 … Pt13 are unique.

📦 Downloads

File Contents
Script_ABC_Blanton_V1.1.7.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, pwr_brick.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

  • --runtime is the job's overall limit, not a per-pass one. qfx5252-stress-* stops after RUNTIME seconds whatever --passes says, so SSD_RUNTIME=600 is a 10 minute stress, not 600 × SSD_COUNT. For a 24 hour soak set RUNTIME to 86400. The shipped defaults are 600.
  • Script 5 has not been run on hardware yet. Two things to confirm on the bench: that wait "Booting in blind mode" really appears in this build's boot output — it has no timeout guard, so a changed string waits forever — and that re-running bmc-first-enroll every cycle is safe.
  • Script 5 has no exit condition. while 1 with a reboot at the end of each round; stop it by closing the Tera Term macro.
  • blanton_multiphase_margin.sh save is permanent, and must not be mixed with margin.sh — same rails, two access paths, no interlock. Never run it while the board is margined.
  • READ_VIN and READ_IIN are still not in the ADPM12200 coefficient tablepwr_brick.sh decodes them with the voltage and current coefficients. Confirm before quoting brick Vin.
  • The BMC USB service log only exists on the USB stick.
  • 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.
  • FAN_SPEED is 100.
  • Still unverified from v1.1.0: the ce0 ingress mirror, the 120 s settle in blanton_tr518.sh, and test mode nr=no on stop.

Full changelog: V1.1.6...V1.1.7