From b84188322d7868bfedba092d04f8d59190597a78 Mon Sep 17 00:00:00 2001 From: ETWen Date: Sun, 6 Sep 2026 23:22:59 +0800 Subject: [PATCH] feat(ttl): Take a SerDes DSC dump in Script A and Script C Script A scans just before 'show uptime', Script C just before the NVMe error info, so the pair brackets the soak: ./Blanton_Script/bcm_dsc_scan.sh -f blanton_dsc_ScriptA.log -F ./Blanton_Script/bcm_dsc_scan.sh -f blanton_dsc_ScriptC.log -F Neither name carries %u, so the scan inserts _u0 / _u1 itself and unit 1 cannot overwrite unit 0 - that is where the four file names Script C copies to /host/hw-eval/jobs come from. The scan already copies its own output there; the explicit cp lines are a second pass, so a copy that fails inside the scan still leaves the data on the USB stick. Also removed the commented-out 100G PRBS call sites from all three macros, along with a duplicated commented 100G port status block in Script A and the stale bmc_monitor_ddr.sh block in Script C. They had been dead since bring-up. port_prbs_monitor.sh still ships and still runs by hand. Script A's header goes to V1.1.9 and its Version History covers all of the above, including the note that both new scripts are recorded 100644 and need chmod +x on the DUT. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM --- src/Script_ABC_Blanton/1_Blanton_Script_A.ttl | 103 ++++++++++++------ src/Script_ABC_Blanton/2_Blanton_Script_B.ttl | 6 - src/Script_ABC_Blanton/3_Blanton_Script_C.ttl | 43 ++------ 3 files changed, 83 insertions(+), 69 deletions(-) diff --git a/src/Script_ABC_Blanton/1_Blanton_Script_A.ttl b/src/Script_ABC_Blanton/1_Blanton_Script_A.ttl index 996cada..2bc121a 100644 --- a/src/Script_ABC_Blanton/1_Blanton_Script_A.ttl +++ b/src/Script_ABC_Blanton/1_Blanton_Script_A.ttl @@ -1,7 +1,7 @@ ; ============================================================================= ; Script A for Blanton -; Version : V1.1.8 -; Date : 2026-09-06 +; Version : V1.1.9 +; Date : 2026-09-07 ; Author : ETWen ; ============================================================================= ; Version History: @@ -419,6 +419,71 @@ ; happened to have the binaries locally would have shipped ; a 100 MB zip while a clone shipped 200 KB. The bundle is ; now the same either way +; V1.1.9 2026-09-07 +; Blanton_Script/bcm_dsc_scan.sh Created V1.2.0 - batch SerDes DSC dump +; Runs bcmcmd -n -c "dsh -c 'phydiag dsc'" +; over the whole port list (1 x 100G + 445 x 200G ranges), +; both units, and leaves the raw log in /log +; before copying it to /host/hw-eval/jobs +; -f names the log (%u -> u0/u1, %t -> timestamp), -F +; overwrites, -u picks one unit, -n dry runs, -C skips the +; copy. -f takes a filename only; the directory comes from +; -o +; bcmcmd exits 0 even when the diag shell rejects a +; command, so success is judged by counting 'SERDES DISPLAY +; DIAG DATA END' markers, not by the exit code - the same +; trap blanton_traffic_linespeed.sh hit +; Paths come from $0, not $HOME, because Script A runs it +; after sudo -i and a literal ~ would depend on the +; environment. Ends with '### DSC_SCAN_DONE rc=' for a +; TTL wait to key on +; Non-tty output is one line per port instead of a progress +; bar, so it does not flood the Tera Term log +; !! phydiag dsc is read-only and does not change any +; SerDes setting, but a full scan is ~10 min per run. +; ScriptA and ScriptC each do one, so the test is ~20 +; min longer than before. Do not set DELAY to 0 +; Blanton_Script/bcm_dsc_parse.sh Created V1.0.0 - offline DSC log to CSV +; Host side. -i -o produces +; _lane.csv (one row per lane: TXEQ / RXFFE / DFE / +; EYE / SNR) and _pm.csv (one row per pm_id: +; temperature / PLL / lane count / SNR-EYE stats) +; POSIX sh + awk, mawk compatible, no Python. Lane rows are +; read by the order of their bracket groups rather than +; fixed columns, so re-spacing by the SDK does not break +; it; a row whose group count is not 9 is marked UNPARSED +; on stderr instead of being parsed wrongly +; SD / LCK sticky '*' flags are kept as separate columns +; and not interpreted; a BER field of '!chk_en' means the +; checker was off and is passed through unchanged +; ScriptA Collect the SerDes DSC baseline before 'show uptime' +; ./Blanton_Script/bcm_dsc_scan.sh -f +; blanton_dsc_ScriptA.log -F +; The name has no %u, so the script inserts _u0 / _u1 +; itself and unit 1 cannot overwrite unit 0 - that is where +; the file names ScriptC copies come from +; ScriptA / ScriptB / ScriptC Remove the commented-out 100G PRBS blocks +; The port_prbs_monitor.sh calls had been commented out in +; all three since bring-up, together with a second copy of +; the 100G port status block in ScriptA and the stale +; bmc_monitor_ddr.sh block in ScriptC +; port_prbs_monitor.sh still ships and still runs by hand; +; only the dead call sites are gone +; ScriptC Collect the closing DSC dump and carry the four logs out +; ./Blanton_Script/bcm_dsc_scan.sh -f +; blanton_dsc_ScriptC.log -F, then cp of +; blanton_dsc_Script{A,C}_u{0,1}.log into +; /host/hw-eval/jobs/ +; The scan already copies its own output there; these four +; are a second pass so a failed copy inside the scan still +; leaves the data on the USB stick +; Blanton_Script Both new scripts need the execute bit on the DUT +; !! git records them 100644 like every other .sh here, and +; ScriptA / ScriptC invoke them as +; ./Blanton_Script/bcm_dsc_scan.sh, so they join +; bmc_monitor.sh and friends in the chmod +x line after +; deployment. Without it both scans fail with Permission +; denied and the macro walks straight past it ; ============================================================================= include "config.ttl" @@ -619,36 +684,6 @@ sendln "config save -y" wait prompt_sonic_root sendln "show interfaces status Ethernet513,Ethernet514" -;============================================================================================================= -; ========== 100G PRBS ========== -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh start" -;wait prompt_sonic_root -;sendln "sleep 10" -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh status" -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh stop" -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh report" -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh clear" - -; ========== 100G Port Status ========== -;wait prompt_sonic_root -;sendln "sudo sfputil lpmode off Ethernet513" -;wait prompt_sonic_root -;sendln "sudo sfputil lpmode off Ethernet514" -;wait prompt_sonic_root -;sendln "config interface -n asic0 startup Ethernet513" -;wait prompt_sonic_root -;sendln "config interface -n asic1 startup Ethernet514" -;wait prompt_sonic_root -;sendln "config save -y" - -;wait prompt_sonic_root -;sendln "show interfaces status Ethernet513,Ethernet514" -;============================================================================================================= ; ========== First Traffic Test ========== ; Silent MAC @@ -712,6 +747,10 @@ else endif +; ========== Collect bcm dsc data ========== +wait prompt_sonic_root +sendln "./Blanton_Script/bcm_dsc_scan.sh -f blanton_dsc_ScriptA.log -F" + ; ========== Show Power on uptime ========== wait prompt_sonic_root sendln "show uptime" diff --git a/src/Script_ABC_Blanton/2_Blanton_Script_B.ttl b/src/Script_ABC_Blanton/2_Blanton_Script_B.ttl index 6fb2535..38897af 100644 --- a/src/Script_ABC_Blanton/2_Blanton_Script_B.ttl +++ b/src/Script_ABC_Blanton/2_Blanton_Script_B.ttl @@ -123,12 +123,6 @@ sendln "~/Blanton_Script/nfc_polling.sh status" wait prompt_sonic_root sendln "show interfaces status Ethernet513,Ethernet514" -;============================================================================================================= -; ========== 100G PRBS ========== -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh start" -;============================================================================================================= - ; ========== Traffic START ========== ; Silent MAC diff --git a/src/Script_ABC_Blanton/3_Blanton_Script_C.ttl b/src/Script_ABC_Blanton/3_Blanton_Script_C.ttl index 3483e6f..4fa3cd6 100644 --- a/src/Script_ABC_Blanton/3_Blanton_Script_C.ttl +++ b/src/Script_ABC_Blanton/3_Blanton_Script_C.ttl @@ -33,23 +33,6 @@ sendln "~/Blanton_Script/mgmt_ping_monitor.sh stop" wait prompt_sonic_root sendln "~/Blanton_Script/nfc_polling.sh stop" -;============================================================================================================= -; 100G PRBS STOP -;wait prompt_sonic_root -;sendln "~/Blanton_Script/port_prbs_monitor.sh stop" -;wait prompt_sonic_root -;sendln "sudo sfputil lpmode off Ethernet513" -;wait prompt_sonic_root -;sendln "sudo sfputil lpmode off Ethernet514" -;wait prompt_sonic_root -;sendln "config interface -n asic0 startup Ethernet513" -;wait prompt_sonic_root -;sendln "config interface -n asic1 startup Ethernet514" -;============================================================================================================= - - - - ; ========== TAKE DATA ========== include "utils/setup_pmon.ttl" include "utils/show_dmesg.ttl" @@ -66,15 +49,6 @@ include "utils/show_pcie_error_reg_SSD.ttl" wait prompt_sonic_root sendln "/usr/sbin/ras-mc-ctl --summary" -; ========== BMC DDR TAKE DATA ========== -;wait prompt_sonic_root -;sendln "./Blanton_Script/bmc_monitor_ddr.sh stop" -;wait prompt_sonic_root -;sendln "./Blanton_Script/bmc_monitor.sh stop" -;wait prompt_sonic_root -;sendln "cat ./Blanton_Script/log/bmc_poll.log" -;wait prompt_sonic_root -;sendln "cat ./Blanton_Script/log/bmc_ddr.log" ; ========== BMC Monitor TAKE DATA ========== wait prompt_sonic_root @@ -108,10 +82,6 @@ sendln "~/Blanton_Script/nfc_polling.sh report" ; ========== 100G Port ========== wait prompt_sonic_root sendln "show interfaces status Ethernet513,Ethernet514" -;============================================================================================================= -;wait prompt_sonic_root -;sendln "cat ~/Blanton_Script/log/port_prbs.log " -;============================================================================================================= ; ========== CHECK Traffic counters ========== if SWB_UNIT0 = 1 && SWB_UNIT1 = 1 then @@ -180,6 +150,10 @@ else endif +; ========== Collect bcm dsc data ========== +wait prompt_sonic_root +sendln "./Blanton_Script/bcm_dsc_scan.sh -f blanton_dsc_ScriptC.log -F" + ; ========== NVME Err Info ========== wait prompt_sonic_root @@ -225,7 +199,14 @@ wait prompt_sonic_root sendln "cp ./Blanton_Script/log/mgmt_ping.log /host/hw-eval/jobs/" wait prompt_sonic_root sendln "cp ./Blanton_Script/log/nfc_poll.log /host/hw-eval/jobs/" - +wait prompt_sonic_root +sendln "cp ./Blanton_Script/log/blanton_dsc_ScriptA_u0.log /host/hw-eval/jobs/" +wait prompt_sonic_root +sendln "cp ./Blanton_Script/log/blanton_dsc_ScriptA_u1.log /host/hw-eval/jobs/" +wait prompt_sonic_root +sendln "cp ./Blanton_Script/log/blanton_dsc_ScriptC_u0.log /host/hw-eval/jobs/" +wait prompt_sonic_root +sendln "cp ./Blanton_Script/log/blanton_dsc_ScriptC_u1.log /host/hw-eval/jobs/" wait prompt_sonic_root getdate ts_date "%Y%m%d"