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
68 lines
4.7 KiB
Markdown
68 lines
4.7 KiB
Markdown
# 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 1` → `64M`) 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:**
|
|
|
|
```bash
|
|
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.
|
|
|
|
## 🔗 Links
|
|
|
|
* [Blanton_Test_Flow.drawio](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/src/branch/main/docs/Blanton_Test_Flow.drawio) — the four scripts side by side
|
|
* [ARCHITECTURE.md](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/src/branch/main/ARCHITECTURE.md) — test flow, data models, constraints
|
|
* [CLAUDE.md](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/src/branch/main/CLAUDE.md) — commands and the bench gotchas
|
|
|
|
**Full changelog:** [V1.1.4...V1.1.5](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/compare/V1.1.4...V1.1.5)
|