-
released this
2026-10-01 13:32:24 +08:00 | 12 commits to main since this release✨ New features
tray_id_stress.sh— Tray ID I2C write / read-back stress- Buses
34/35/38/39, device0x70, register0x02. Each bus gets0xA5written and read back, then0x5Awritten and read back — the two patterns put every bit in both states. - One line per step (
PASS/FAIL/ERROR), then a per-bus Summary table and a singleTray ID stress RESULT: PASS|FAILline. Exit0= all PASS,1= any FAIL or I2C error,2= bad arguments. FAIL(the read worked but returned the wrong value) andERROR(i2cset/i2cgetitself failed) are counted separately, because they point at different faults.- The original register value is read first and written back at the end, verified by a read.
-Rskips that;-n Nrepeats the whole sequence N times. Buses, address, register and patterns are editable at the top of the file.
Script A and Script B run it
- Script A runs one pass after
show_dmesgas the baseline. - Script B runs one pass in every soak round, before
sleep 60— 12 writes per round, registers restored each time.
6_Blanton_Script_BER_Cycle.ttl— Diag ↔ SONiC BER cycle (standalone)- Each cycle measures PRBS BER on unit 0 in the Diag OS, cold-boots into SONiC, measures again, and cold-boots back to Diag.
while 1, no end. The boot target is picked in the BIOS Boot Manager (USB Device= Diag,Hard Drive= SONiC). - Log:
Logs\Blanton_BER_Cycle_<ts>.log, timestamps always on.
🐛 Bug fixes
prbsstat Berwas read before the first interval had been published — BER read 40–60× low- The BER cycle originally read
prbsstat Ber10 s afterprbsstat STArt Interval=30. Checked against the error counts thatprbs getreports in the same cycle, that read Diag ~60× low and SONiC ~40× low. - Moving to
sleep 30(equal to the interval) fixed SONiC but not Diag: itsBergoes out 30.15 s afterSTArt, just before the first interval is published. SONiC'sbcmcmdadds ~0.3 s and just makes it. - The macro now uses
Interval=30+sleep 40. Over 73 cycles both sides agree with theprbs getestimate to within 0.1 decade. The rule: the sleep must be longer than the interval.
📦 Downloads
File Contents Script_ABC_Blanton_V1.2.4.zipThe full Tera Term working directory, including Blanton_Script/to copy onto the DUTchmod +x ~/Blanton_Script/*.sh grep -rlU $'\r' ~/Blanton_Script # expect no output⚠️ Before you run
chmod +xafter deploying. Script A and B calltray_id_stress.shby path; without the exec bit every call isPermission deniedand the round carries on without the check.- Any BER log taken before 2026-09-30 14:13 reads 40–60× low (BER cycle with
sleep ≤ Interval). Relative Diag-vs-SONiC trends are usable; absolute values are not. - Script A / C's BER is the same edge case:
blanton_ber.sh start(Interval=30) →sleep 30→report, on SONiC. Whether it catches the first interval has not been verified. Lengthening that sleep to 40 is the safe change. - The BER cycle's SONiC → Diag boot writes a hard-coded BDF (
pcimem /sys/bus/pci/devices/0000:05:00.0/resource0 0x480). Check the CB FPGA BDF on every unit before running it. - The BER cycle expects the hostname
sonic. A unit with another hostname (e.g.Margin02) needsprompt_sonic/prompt_sonic_rootedited, or the macro waits forever. - The BER cycle sets the fan to 30 % on the SONiC side only — SONiC runs ~11 °C hotter than Diag, a variable in any Diag-vs-SONiC comparison.
- Its SONiC password is the
YourPaSsWoRdplaceholder, and it does not readconfig.ttlorsecret/. - Script 4 has no teardown: finish it with
blanton_tr518.sh stopandsystemctl stop mlucas-amm. FAN_SPEEDis 100.
🔗 Links
- ARCHITECTURE.md — test flow, data models, constraints
- CLAUDE.md — commands and the bench gotchas
Full changelog: V1.2.3...V1.2.4
Downloads
- Buses