docs: Record V1.2.4 in Script A's history and add the release note
Script A: header to V1.2.4 / 2026-10-01; entries for tray_id_stress.sh, the Script A and Script B hooks, and 6_Blanton_Script_BER_Cycle.ttl, with notes on the exec bit, the sleep-vs-Interval rule, the hard-coded BDF, the hostname, the SONiC-only fan setting and the placeholder password. CLAUDE.md: status and last release to V1.2.4; the Tray ID stress and the BER cycle in the overview; a commands block for tray_id_stress.sh; a gotcha that prbsstat Ber must be read after the first interval is published, and that Script A / C's own BER (Interval=30, sleep 30) sits on that edge and has not been verified. ARCHITECTURE.md: Script A ref and the tag checkbox to V1.2.4; Script 5's current file name and the new macro 6 in the tree; tray_id_stress.sh in the tree. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UniUXkxgCG2Ty74advL8Pd
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
; =============================================================================
|
||||
; Script A for Blanton
|
||||
; Version : V1.2.3
|
||||
; Date : 2026-09-23
|
||||
; Version : V1.2.4
|
||||
; Date : 2026-10-01
|
||||
; Author : ETWen
|
||||
; =============================================================================
|
||||
; Version History:
|
||||
@@ -740,6 +740,60 @@
|
||||
; !! without -q the full PM table is printed every round, and
|
||||
; Script 4 loops once a minute - the log grows by one full
|
||||
; table per minute
|
||||
; V1.2.4 2026-10-01 Blanton_Script/tray_id_stress.sh Created v1.0.0 - Tray ID I2C write / read-back stress
|
||||
; Buses 34 / 35 / 38 / 39, device 0x70, register 0x02. Each
|
||||
; bus: write 0xA5, read back, compare; write 0x5A, read back,
|
||||
; compare - the two patterns put every bit in both states
|
||||
; One line per step (PASS / FAIL / ERROR), then a per-bus
|
||||
; Summary table and 'Tray ID stress RESULT: PASS|FAIL'
|
||||
; Exit 0 = all PASS, 1 = any FAIL or I2C error, 2 = usage
|
||||
; -n N repeats the sequence N times; buses / addr / reg /
|
||||
; patterns are editable at the top of the file
|
||||
; The original value is read first and written back at the
|
||||
; end (verified by a read). -R leaves the register at 0x5A
|
||||
; !! FAIL = the read worked but returned the wrong value;
|
||||
; ERROR = i2cset / i2cget itself failed. They are counted
|
||||
; apart because they point at different faults
|
||||
; !! a bus whose original value cannot be read is NOT
|
||||
; restored (there is nothing to restore to) - the line
|
||||
; says so
|
||||
; !! called by path, so it needs the exec bit on the DUT:
|
||||
; chmod +x ~/Blanton_Script/*.sh
|
||||
; ScriptA Add Tray ID stress after show_dmesg (one pass, baseline)
|
||||
; ScriptB Add Tray ID stress to every soak round, before sleep 60
|
||||
; Each round now writes 0xA5 / 0x5A to four Tray ID
|
||||
; registers and restores them - 12 writes per round
|
||||
; 6_Blanton_Script_BER_Cycle.ttl Added - Diag / SONiC BER cycle, a STANDALONE macro (not A/B/C)
|
||||
; Each cycle: PRBS BER on unit 0 in the Diag OS, cold boot
|
||||
; into SONiC, the same PRBS BER again, cold boot back to
|
||||
; Diag; while 1, no end. Boot selection drives the BIOS
|
||||
; Boot Manager ('USB Device' = Diag, 'Hard Drive' = SONiC)
|
||||
; Log: Logs\Blanton_BER_Cycle_<ts>.log, timestamps always on
|
||||
; Report tools (not shipped): tmp/BER_Test_Cycle/
|
||||
; parse_multi.py, gen_multi_html.py, validate_prbsget.py
|
||||
; prbsstat STArt Interval=30, then sleep 40, then Ber
|
||||
; !! the sleep MUST be longer than the Interval. Checked
|
||||
; against the error counts that 'prbs get' reports in the
|
||||
; same cycle: with sleep 10 Diag read ~60x low and SONiC
|
||||
; ~40x low; with sleep 30 (= Interval) Diag was still
|
||||
; ~60x low - its Ber is sent 30.15 s after STArt, just
|
||||
; before the first interval is published. Interval=30 +
|
||||
; sleep 40 matched on both sides over 73 cycles. Every
|
||||
; BER log taken before 2026-09-30 14:13 is low by 40-60x
|
||||
; !! SONiC -> Diag cold boot writes pcimem
|
||||
; /sys/bus/pci/devices/0000:05:00.0/resource0 0x480 with a
|
||||
; hard-coded BDF (the Diag side uses fpga_switch.sh, which
|
||||
; finds the FPGA itself). Check the BDF on every unit
|
||||
; !! the SONiC password is the YourPaSsWoRd placeholder and
|
||||
; the macro does not include config.ttl or secret/
|
||||
; !! prompt_sonic_root is 'root@sonic:~#'. A unit whose
|
||||
; hostname is not 'sonic' (M02 = Margin02) needs the
|
||||
; prompts edited or the macro waits forever
|
||||
; !! fan-speed-control.sh 30 is set on the SONiC side only;
|
||||
; SONiC runs ~11 C hotter than Diag, a variable in any
|
||||
; Diag vs SONiC comparison
|
||||
; !! measures unit 0 only, port 268 not in the list, yet
|
||||
; wait_init still waits for BOTH units (SWB_UNIT0/1 = 1)
|
||||
; =============================================================================
|
||||
include "config.ttl"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user