Script A: header to V1.2.3 / 2026-09-23; five entries under V1.2.3 for setup_pmon.ttl, ddr5_temp.sh, hsc_temp_readback.sh, avt_pmpower.sh and Script 4, with notes on the ~4 s per snapshot, the exec bit, the CRLF in hsc_temp_readback.sh v1.0.0 and AVT not being shipped. CLAUDE.md: status to V1.2.3; the PMON temperatures and Script 4's CPU power in the overview; a commands block for the three new scripts; fix the stale Script 5 file name and the "last release V1.1.5" line. ARCHITECTURE.md: Script A ref to V1.2.3; the three scripts in the tree and in setup_pmon's comment; avt_pmpower.sh in Script 4's row; the git tag checkbox to V1.2.3. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UniUXkxgCG2Ty74advL8Pd
54 lines
4.2 KiB
Markdown
54 lines
4.2 KiB
Markdown
# v1.2.3 — DIMM and hot-swap temperatures in every snapshot, and CPU power next to the switch rails
|
|
|
|
## ✨ New features
|
|
|
|
**Every PMON snapshot now reads DDR5 DIMM and hot-swap controller temperatures**
|
|
* `utils/setup_pmon.ttl` runs `ddr5_temp.sh` and `hsc_temp_readback.sh` right after `show platform temperature`. Because `setup_pmon` is shared, this lands everywhere a snapshot is taken: Script A's baseline, each Script B soak round, Script C, the Script 4 loop and every Script 5 check point.
|
|
* `ddr5_temp.sh` reads the SPD5118 hub on each DIMM: i2c bus 5, `0x50` / `0x51`, register `0x31` (`bit[12:2]`, sign bit 12, 0.25 °C/LSB). A read that fails prints `read fail` — never a number it did not read. Bus and addresses can be passed: `ddr5_temp.sh [bus] [addr ...]`.
|
|
* `hsc_temp_readback.sh` reads both LTC4287 hot-swap controllers on i2c bus 28 — `HSC_MAIN @ 0x40` (PU11 internal / PQ1 external) and `HSC_STBY @ 0x45` (PU46 internal / PQ53 external). The source is selected through `0xF3`, then `READ_TEMPERATURE` `0x8D` is read in Kelvin and converted.
|
|
|
|
**Script 4 logs AMD CPU package power every round**
|
|
* `avt_pmpower.sh` runs `AVTCMD -module pmm "get_pmdata()"` and summarizes `SktPwr`, `PPT Fast` / `PPT Slow` against their limits, and `MemPwr`.
|
|
* It runs after the two `TH6_SWB` power readbacks, so each sample now puts the switch rails and the CPU package side by side.
|
|
* `-q` prints the summary only. Exit `2` = AVTCMD not found, `3` = AVTCMD failed, `4` = the PM table parsed to nothing (format changed).
|
|
|
|
## 🐛 Bug fixes
|
|
|
|
**`hsc_temp_readback.sh` was saved with CRLF line endings**
|
|
* Copied to the DUT as-is, bash on SONiC fails on the first line (`$'\r': command not found`). The shipped file is LF.
|
|
* Its comments said the delay between I2C transactions was 100 ms; `DELAY=0.5` is what actually runs. Comments corrected and a Version History header added.
|
|
|
|
## 📦 Downloads
|
|
|
|
| File | Contents |
|
|
|---|---|
|
|
| `Script_ABC_Blanton_V1.2.3.zip` | The full Tera Term working directory, including `Blanton_Script/` to copy onto the DUT |
|
|
|
|
```bash
|
|
chmod +x ~/Blanton_Script/*.sh
|
|
grep -rlU $'\r' ~/Blanton_Script # expect no output
|
|
ls ~/AVT_Linux_NDA_2.8.37/AVTCMD # Script 4 only - must already be there
|
|
```
|
|
|
|
## ⚠️ Before you run
|
|
|
|
* **Redeploy `Blanton_Script/`.** If an earlier copy of `hsc_temp_readback.sh` reached the DUT, it is CRLF and will not run.
|
|
* **`chmod +x` after deploying.** `setup_pmon` calls both new scripts by path. Without the exec bit each call is `Permission denied` and the snapshot carries on without those rows — nothing stops, nothing warns.
|
|
* **Each PMON snapshot is ~4 s longer.** `hsc_temp_readback.sh` sleeps 0.5 s twice for each of its four readings. It adds up in Script 5, which snapshots at every check point.
|
|
* **AVT is not in this package (NDA).** Unpack it on the DUT at exactly `~/AVT_Linux_NDA_2.8.37/` before Script 4. Missing, the call exits `2` every round and the loop runs on without a CPU power reading.
|
|
* **Script 4 logs the full PM table once a minute**, because the call is made without `-q`.
|
|
* **CPU power is SMU telemetry, not a measurement.** Its absolute accuracy is whatever the BIOS SVI calibration gives — cross-check against the VR's PMBus `READ_POUT` when the number matters.
|
|
* **None of the three new scripts has been checked against the Script A/B/C flow on hardware yet.**
|
|
* **Do not run the boot cycle with `EN_Cold_Warm_boot = 0`**, and check the hard-coded BDF on every board before the cold path (see v1.2.2).
|
|
* **BER, the DSC cycle, `blanton_traffic_linespeed` and `blanton_tr518.sh` cannot overlap.** They all take the same ports.
|
|
* **Script 4 has no teardown**: finish it with `blanton_tr518.sh stop` **and** `systemctl stop mlucas-amm`.
|
|
* **`blanton_multiphase_margin.sh save` is permanent**, and must not be mixed with `margin.sh`.
|
|
* **`FAN_SPEED` is 100.**
|
|
|
|
## 🔗 Links
|
|
|
|
* [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.2.2...V1.2.3](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/compare/V1.2.2...V1.2.3)
|