• V1.1.6 78a8f641c9

    etwen released this 2026-09-02 21:44:12 +08:00 | 17 commits to main since this release

    🐛 Bug fixes

    Every PDB reading was NA, and the cause was a page number written in the wrong base

    • The four ADPM12200 bricks put each measurement on its own PMBus PAGE, and the page has to be written before every read. The bring-up spreadsheet listed those page numbers in decimal but with an 0x prefix, so four of the five selected the wrong page:

      Reading Datasheet PAGE Should send Spreadsheet said
      Vin 9 0x09 0x00
      Iin 10 0x0A 0x10
      Vout 2 0x02 0x02
      Iout 14 0x0E 0x14
      Temp 18 0x12 0x18
    • Only Vout worked — because 2 reads the same in either base. That is why Iin and Iout answered 0xFFFF and the temperature answered 0x0000, and why a Vin scaling had to be invented to make 50 V appear.

    • blanton_pwr_data.sh sends no page at all (its PDB table has page "-"), which is the reason it reports the whole PDB section as NA.

    New features

    pwr_brick.sh — the five power bricks, read properly

    • show prints Vin / Iin / Vout / Iout / Temp for all five: SWB0.PU207 (0x62), SWB0.PU13 (0x63), SWB1.PU332 (0x60), SWB1.PU85 (0x61) and CPB.PU37 (0x26). -r adds the raw words.
    • Conversions come from the datasheet's DIRECT equation, X = (1/m)(Y × 10⁻ᴿ − b), with Table 3's coefficients: voltage Y × 8 mV, current Y × 0.04 A, temperature Y × 0.01 °C.
    • Cross-checked, not assumed: READ_VOUT returns 0x05D4 → 1492 × 8 = 11936 mV, which is exactly the figure show platform voltage reports for that rail from a completely separate sensor path.
    • CPB.PU37 is a different part — no page writes and its own scaling — and is handled separately.
    • The datasheet is now in the repo (docs/ADPM12200CMLZxx_DS_*.pdf) so the pages and coefficients can be checked without hunting for it.

    Every value is validated before it is printed

    • This bus corrupts the high byte only. That turns 11.98 V into 32.00 V — positive, plausible in magnitude, and invisible to any "reject 0xFFFF" filter. Each value is re-read (up to PB_TRIES, default 8) until it is not 0xFFFF, not 0x0000, and lands inside a plausibility window.
    • 0x0000 is rejected as a raw word for the same reason: on the temperature register it decodes to a perfectly believable 0 °C.

    Complementary margin profiles per board

    • comboA / comboB for CB and each SWB CONN. comboB is comboA with every direction flipped, so running both covers each rail high and low while its neighbours sit the other way.
    • NC channels stay at nominal in both — there is nothing to margin on an unused rail (CONN14 CH10/11/13, CONN15 CH10).

    The BMC USB service log is captured again — to a file

    • Script C's journalctl dump had been commented out, so that service log reached nothing at all. It now runs with -o short-iso into log/bmc_usb_net.log and is copied into the job directory for the USB archive. The ISO timestamps line up with the other monitor logs, and rm -f first keeps the file to one run.
    • It is no longer printed to the console, so the USB copy is the only copy. If that cp fails — and nothing checks it — the service log is gone. Check the job directory before packing up.

    📦 Downloads

    File Contents
    Script_ABC_Blanton_V1.1.6.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

    • READ_VIN and READ_IIN are not in the datasheet's coefficient table. They are decoded here with the voltage and current coefficients — consistent with a ~50 V input, but not stated by the datasheet. Anything quoting brick Vin should have that confirmed first. PB_VIN_M / PB_IIN_M are where to change it.
    • The BMC USB service log only exists on the USB stick. It is not in the master console log any more.
    • NA has two meanings: nothing readable, or read but outside its plausibility window. Use PB_TRIES=1 ./Blanton_Script/pwr_brick.sh show -r to see the unretried raw words and tell them apart.
    • Margin profiles are positional. comboA_SWB_CONN13 applied to a CONN16 board margins the wrong rails and nothing detects it.
    • blanton_multiphase_margin.sh save is permanent, and it must not be mixed with margin.sh — same rails, two access paths, no interlock.
    • A soak longer than 24 hours needs the stress runtimes raised--runtime 86400 is a ceiling.
    • 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.
    • 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

    Full changelog: V1.1.5...V1.1.6

    Downloads