feat(thermal): Add a standalone thermal/safety run, and move margin out of the soak loop
4_Blanton_Script_thermal_safety.ttl brings the DUT up the way Script A does, then loads it - mlucas-avx2 -cpu 0:15 in the background plus blanton_tr518.sh start - and samples platform data and both switch boards' rail power every minute. Power per rail under sustained full load, over hours, is the whole point of it. It is standalone: nothing starts it, it starts nothing, and it must not share a DUT with Script B because both take over the cd ports. It also has no teardown. When you interrupt it the unit is still in port cd lb=mac / l2 learn off / test mode nr=yes and mlucas is still running, and show interfaces status does not reveal any of that. Called out in the version history, the release notes, CLAUDE.md gotchas and the ARCHITECTURE future-work list, because whoever uses the box next will not find out on their own. Script B's per-round loop drops the margin scan. The loop is meant to be a quick minute-by-minute sample and margin_status_all.sh walks nine LTC2980s over I2C, which dominated the round. Script C takes it instead, once, before show uptime. The trade-off is real: margin drift DURING the soak is no longer visible, only a start and an end reading. Documented rather than glossed over, with a suggestion (scan every N rounds) if it needs to come back. Script C also sends exit and waits for "Script done" before hw-test-session finish, so finish runs in the login shell rather than inside the session it is closing. Adds docs/Blanton_Test_Flow.drawio: all four scripts side by side, with the config flags that change each step marked, Script B's one real goto drawn, and the A->B->C handoffs shown as the manual steps they are. The new script arrived LF-only while every other .ttl is CRLF and .gitattributes marks *.ttl as -text, so what is committed is exactly what Tera Term reads. Converted. Script A -> V1.1.4. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
; =============================================================================
|
||||
; Script A for Blanton
|
||||
; Version : V1.1.3
|
||||
; Date : 2026-08-30
|
||||
; Version : V1.1.4
|
||||
; Date : 2026-08-31
|
||||
; Author : ETWen
|
||||
; =============================================================================
|
||||
; Version History:
|
||||
@@ -178,6 +178,29 @@
|
||||
; board at comboA, which this change deleted - all 9
|
||||
; boards would have failed with "Profile not found"
|
||||
; docs/LTC2980_channel_map.csv Regenerated (tools/gen_channel_map.sh) - it is output
|
||||
; V1.1.4 2026-08-31 4_Blanton_Script_thermal_safety.ttl Add the thermal / safety run - a STANDALONE script,
|
||||
; not part of the A -> B -> C chain
|
||||
; Script A style setup (login, session, fan, wait_init,
|
||||
; DUT info, BMC, PCIe clear, pcie_bus, pmon, dmesg)
|
||||
; then FULL LOAD: mlucas-avx2 -cpu 0:15 in the
|
||||
; background + blanton_tr518.sh start
|
||||
; then while 1: setup_pmon + TH6_SWB0/SWB1 power
|
||||
; readback + bgctl list + jobs, pause 60
|
||||
; !! no teardown section: after you interrupt it the
|
||||
; unit is still on port cd lb=mac / l2 learn off /
|
||||
; test mode nr=yes - run blanton_tr518.sh stop
|
||||
; !! it drives the same ports as traffic and BER, so it
|
||||
; cannot share a DUT with Script B
|
||||
; ScriptB Drop the margin scan from the soak loop
|
||||
; The loop is a fast per-minute sample; margin_status
|
||||
; walks 9 LTC2980 over I2C and dominated the round
|
||||
; ScriptC Take the margin scan instead, once, before uptime
|
||||
; Trade-off: no margin drift DURING the soak any more,
|
||||
; only a start (Script A) and end (Script C) reading
|
||||
; ScriptC exit + wait "Script done" before hw-test-session
|
||||
; finish - leaves the session shell first, so finish
|
||||
; runs in the login shell that opened it
|
||||
; docs/Blanton_Test_Flow.drawio Add the A/B/C + thermal flow diagram
|
||||
; =============================================================================
|
||||
include "config.ttl"
|
||||
|
||||
|
||||
@@ -174,9 +174,5 @@ while 1
|
||||
sendln "bgctl list"
|
||||
wait prompt_sonic_root
|
||||
sendln "jobs"
|
||||
; ========== Check Margin ==========
|
||||
if EN_Margin = 1 then
|
||||
include "utils/show_margin_status.ttl"
|
||||
endif
|
||||
pause 60
|
||||
endwhile
|
||||
|
||||
@@ -184,6 +184,11 @@ sendln "/usr/sbin/smartctl -x /dev/nvme0"
|
||||
wait prompt_sonic_root
|
||||
sendln "show reboot-cause"
|
||||
|
||||
; ========== Check Margin ==========
|
||||
if EN_Margin = 1 then
|
||||
include "utils/show_margin_status.ttl"
|
||||
endif
|
||||
|
||||
; ========== Show Power on uptime ==========
|
||||
wait prompt_sonic_root
|
||||
sendln "show uptime"
|
||||
@@ -219,6 +224,9 @@ sendln cmd
|
||||
|
||||
; ========== HW Test Session ==========
|
||||
wait prompt_sonic_root
|
||||
sendln "exit"
|
||||
wait "Script done"
|
||||
wait prompt_sonic_root
|
||||
sendln "hw-test-session finish"
|
||||
wait prompt_sonic_root
|
||||
sendln "bgctl reset --yes"
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
include "config.ttl"
|
||||
|
||||
flushrecv
|
||||
;================================================================
|
||||
; Log File Creation
|
||||
;================================================================
|
||||
gettime str_starttime "%Y%m%d-%H%M%S"
|
||||
getdir mdir
|
||||
|
||||
if EN_log = 1 then
|
||||
sprintf2 filename '%s\Logs\%s_%s_%s.log' mdir project_name strTestcase str_starttime
|
||||
logopen filename 0 1 1 1
|
||||
endif
|
||||
|
||||
; ========== Root Login ==========
|
||||
wait prompt_login
|
||||
sendln "admin"
|
||||
wait "Password:"
|
||||
sendln "YourPaSsWoRd"
|
||||
wait prompt_sonic
|
||||
sendln "sudo -i"
|
||||
|
||||
; ========== Pre Setting ==========
|
||||
; Make log directory
|
||||
wait prompt_sonic_root
|
||||
sendln "mkdir ./logs"
|
||||
|
||||
; Setting System Time
|
||||
getdate datestr
|
||||
gettime timestr
|
||||
sprintf2 cmd 'sudo date -s "%s %s"' datestr timestr
|
||||
sendln cmd
|
||||
|
||||
;Stress log clear
|
||||
wait prompt_sonic_root
|
||||
sendln "rm /host/hw-eval/jobs/*"
|
||||
|
||||
; ========== HW Test Session ==========
|
||||
; Clear session
|
||||
wait prompt_sonic_root
|
||||
sendln "hw-test-session finish"
|
||||
wait prompt_sonic_root
|
||||
sendln "bgctl reset --yes"
|
||||
wait prompt_sonic_root
|
||||
sendln "bgctl stop --all"
|
||||
wait prompt_sonic_root
|
||||
sendln "bgctl list"
|
||||
|
||||
wait prompt_sonic_root
|
||||
sendln "hw-test-session start"
|
||||
wait prompt_sonic_root
|
||||
sendln "hw-test-session log"
|
||||
wait prompt_sonic_root
|
||||
sendln "hw-test-session status"
|
||||
|
||||
; ========== FAN SPEED ==========
|
||||
wait prompt_sonic_root
|
||||
sendln "echo 18-0020 > /sys/bus/i2c/drivers/max31790/unbind"
|
||||
wait prompt_sonic_root
|
||||
sendln "sleep .5"
|
||||
wait prompt_sonic_root
|
||||
sendln "echo 18-0020 > /sys/bus/i2c/drivers/max31790/bind"
|
||||
wait prompt_sonic_root
|
||||
sendln "echo 25-0020 > /sys/bus/i2c/drivers/max31790/unbind"
|
||||
wait prompt_sonic_root
|
||||
sendln "sleep .5"
|
||||
wait prompt_sonic_root
|
||||
sendln "echo 25-0020 > /sys/bus/i2c/drivers/max31790/bind"
|
||||
|
||||
wait prompt_sonic_root
|
||||
sprintf2 fan_ctrl_cmd 'fan-speed-control.sh %d' FAN_SPEED
|
||||
sendln fan_ctrl_cmd
|
||||
|
||||
wait "Set all configured fan channels to"
|
||||
sendln "y"
|
||||
|
||||
; ========== Wait DUT Init ==========
|
||||
include "utils/wait_init.ttl"
|
||||
|
||||
; ========== DUT Info ==========
|
||||
wait prompt_sonic_root
|
||||
sendln "show boot"
|
||||
wait prompt_sonic_root
|
||||
sendln "show version"
|
||||
wait prompt_sonic_root
|
||||
sendln "fwutil show status"
|
||||
wait prompt_sonic_root
|
||||
sendln "show system-memory"
|
||||
wait prompt_sonic_root
|
||||
sendln "show service"
|
||||
wait prompt_sonic_root
|
||||
sendln "show platform syseeprom"
|
||||
wait prompt_sonic_root
|
||||
sendln "show platform ssdhealth"
|
||||
wait prompt_sonic_root
|
||||
sendln "qfx5252-tpm-version"
|
||||
wait prompt_sonic_root
|
||||
sendln "/usr/sbin/nvme smart-log -H /dev/nvme0"
|
||||
wait prompt_sonic_root
|
||||
sendln "/usr/sbin/smartctl -x /dev/nvme0"
|
||||
|
||||
; ========== BMC version ==========
|
||||
;wait prompt_sonic_root
|
||||
;sendln "bmc-manager run 'cat /etc/issue'"
|
||||
wait prompt_sonic_root
|
||||
sendln "bmc-first-enroll"
|
||||
wait prompt_sonic_root
|
||||
sendln "bmc-manager version"
|
||||
wait prompt_sonic_root
|
||||
sendln "bmc-manager status"
|
||||
|
||||
; ========== CLEAR PCIE Error ==========
|
||||
include "utils/show_pcie_error_reg_TH6_SWB0.ttl"
|
||||
include "utils/show_pcie_error_reg_TH6_SWB1.ttl"
|
||||
include "utils/show_pcie_error_reg_FPGA.ttl"
|
||||
include "utils/show_pcie_error_reg_BMC.ttl"
|
||||
include "utils/show_pcie_error_reg_DDR.ttl"
|
||||
include "utils/show_pcie_error_reg_I210.ttl"
|
||||
include "utils/show_pcie_error_reg_SSD.ttl"
|
||||
|
||||
wait prompt_sonic_root
|
||||
sendln "/usr/sbin/ras-mc-ctl --summary"
|
||||
|
||||
; ========== Check PCIE tree + PCIE link status + GET PCIE bandwidth Test ==========
|
||||
include "utils/pcie_bus.ttl"
|
||||
|
||||
; ========== TAKE DATA ==========
|
||||
include "utils/setup_pmon.ttl"
|
||||
include "utils/show_dmesg.ttl"
|
||||
|
||||
; ========== Full Load ==========
|
||||
; AMD CPU STRESS TEST
|
||||
wait prompt_sonic_root
|
||||
sendln 'chmod +x ~/hammer/tools/amd/mlucas-avx2'
|
||||
wait prompt_sonic_root
|
||||
sendln "~/hammer/tools/amd/mlucas-avx2 -s l -cpu 0:15 > ~/hammer/tools/amd/mlucas_amm_log 2>&1 &"
|
||||
|
||||
; TR518 TEST
|
||||
wait prompt_sonic_root
|
||||
sendln "~/Blanton_Script/blanton_tr518.sh start"
|
||||
|
||||
while 1
|
||||
; Base info polling
|
||||
include "utils/setup_pmon.ttl"
|
||||
|
||||
; TH6 Power Polling
|
||||
wait prompt_sonic_root
|
||||
sendln "~/Blanton_Script/TH6_SWB0_power_readback.sh"
|
||||
wait prompt_sonic_root
|
||||
sendln "~/Blanton_Script/TH6_SWB1_power_readback.sh"
|
||||
|
||||
; Background jobs Check
|
||||
wait prompt_sonic_root
|
||||
sendln "bgctl list"
|
||||
wait prompt_sonic_root
|
||||
sendln "jobs"
|
||||
pause 60
|
||||
endwhile
|
||||
Reference in New Issue
Block a user