feat(ttl): Read the FDR counters in every Script B soak round
Script B runs blanton_fdr.sh rdcnt after the Tray ID stress in each round, so the FDR counters started before the loop are logged through the soak, not only at Script C. The call is not gated by SWB_UNIT0 / SWB_UNIT1. Recorded under V1.2.6 in Script A's history and the release note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0131orciRKrejchsuDk6UpXk
This commit is contained in:
@@ -44,7 +44,7 @@ NFC tag 讀取由 `nfc_polling.sh` 背景輪詢(A 做基線、B 起、C 停並
|
|||||||
`retimer_lanes.sh` / `unused_lanes.sh`(把沒接線的 retimer lane / TH6 port 關 TX),以及
|
`retimer_lanes.sh` / `unused_lanes.sh`(把沒接線的 retimer lane / TH6 port 關 TX),以及
|
||||||
`5_1_Blanton_Script_Boot_Cycle_Fast.ttl`(Script 5 拿掉流量那段,只留 `ps`)。
|
`5_1_Blanton_Script_Boot_Cycle_Fast.ttl`(Script 5 拿掉流量那段,只留 `ps`)。
|
||||||
**V1.2.6 起 FDR 統計(`blanton_fdr.sh`,`phydiag fdrstat`)接進流量**:A 包住流量基線(sleep 15→40)、
|
**V1.2.6 起 FDR 統計(`blanton_fdr.sh`,`phydiag fdrstat`)接進流量**:A 包住流量基線(sleep 15→40)、
|
||||||
B 在 soak 前 start、C 收尾 rdcnt + stop,**只在兩個 unit 都開時才跑**。Script A 另在 BER 前先 `unused_lanes.sh off`,
|
B 在 soak 前 start、每輪 rdcnt、C 收尾 rdcnt + stop,**只在兩個 unit 都開時才跑**。Script A 另在 BER 前先 `unused_lanes.sh off`,
|
||||||
⚠️ **沒有任何地方再 `on` 回來**。
|
⚠️ **沒有任何地方再 `on` 回來**。
|
||||||
以及 **`5_Blanton_Script_Boot_Cycle.ttl`**(重開機循環,**獨立跑不接 A→B→C**:登入 → 風扇 →
|
以及 **`5_Blanton_Script_Boot_Cycle.ttl`**(重開機循環,**獨立跑不接 A→B→C**:登入 → 風扇 →
|
||||||
Check Pt1~Pt13 → `reboot` → `wait "Booting in blind mode"`,`cnt_cycle` 每輪遞增,`while 1` 無止境,
|
Check Pt1~Pt13 → `reboot` → `wait "Booting in blind mode"`,`cnt_cycle` 每輪遞增,`while 1` 無止境,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
**FDR runs alongside the traffic test in Script A, B and C**
|
**FDR runs alongside the traffic test in Script A, B and C**
|
||||||
* **Script A** wraps its traffic baseline: `fdr start` after `init`, `fdr clear` after `clear`, `fdr rdcnt` after the run, `fdr stop` after the traffic stop. The traffic run is now **40 s instead of 15 s**, so the counters are read after the first 30 s interval has been published — the same rule as `prbsstat Ber`.
|
* **Script A** wraps its traffic baseline: `fdr start` after `init`, `fdr clear` after `clear`, `fdr rdcnt` after the run, `fdr stop` after the traffic stop. The traffic run is now **40 s instead of 15 s**, so the counters are read after the first 30 s interval has been published — the same rule as `prbsstat Ber`.
|
||||||
* **Script B** starts and clears FDR with the traffic setup, before the soak loop — the counters run for the whole soak.
|
* **Script B** starts and clears FDR with the traffic setup, before the soak loop — the counters run for the whole soak — and reads them (`rdcnt`) in every soak round, after the Tray ID stress.
|
||||||
* **Script C** reads them (`rdcnt`) before stopping the traffic and stops FDR after it — the closing read of the counters Script B started.
|
* **Script C** reads them (`rdcnt`) before stopping the traffic and stops FDR after it — the closing read of the counters Script B started.
|
||||||
|
|
||||||
**Script A turns off the unused lanes before the BER baseline**
|
**Script A turns off the unused lanes before the BER baseline**
|
||||||
@@ -32,6 +32,7 @@ grep -rlU $'\r' ~/Blanton_Script # expect no output
|
|||||||
* **`chmod +x` after deploying.** `blanton_fdr.sh`, `unused_lanes.sh` and `retimer_lanes.sh` are all called by path; `unused_lanes.sh` also refuses to start if `retimer_lanes.sh` is not executable.
|
* **`chmod +x` after deploying.** `blanton_fdr.sh`, `unused_lanes.sh` and `retimer_lanes.sh` are all called by path; `unused_lanes.sh` also refuses to start if `retimer_lanes.sh` is not executable.
|
||||||
* **`blanton_fdr.sh stop` sends `fdrstat STOp` — that keyword is inferred from `prbsstat STOp` and has not been checked on the bench.** `bcmcmd` exits 0 even when the BCM shell rejects a command, so if it is wrong, FDR keeps running and only the log shows it. Check the first run.
|
* **`blanton_fdr.sh stop` sends `fdrstat STOp` — that keyword is inferred from `prbsstat STOp` and has not been checked on the bench.** `bcmcmd` exits 0 even when the BCM shell rejects a command, so if it is wrong, FDR keeps running and only the log shows it. Check the first run.
|
||||||
* **FDR only runs when both switch units are enabled** (`SWB_UNIT0 = SWB_UNIT1 = 1`). The single-unit branches have no FDR, and Script A's single-unit traffic run is still 15 s.
|
* **FDR only runs when both switch units are enabled** (`SWB_UNIT0 = SWB_UNIT1 = 1`). The single-unit branches have no FDR, and Script A's single-unit traffic run is still 15 s.
|
||||||
|
* **Script B's per-round `fdr rdcnt` is not gated by the unit settings** — with one unit enabled, FDR was never started and each round just logs whatever `fdrstat Counters` returns.
|
||||||
* **Nothing turns the unused lanes back on.** Script C has no `unused_lanes.sh on`; run it by hand when the DUT is needed in its normal state. Whether a reboot clears it has not been checked.
|
* **Nothing turns the unused lanes back on.** Script C has no `unused_lanes.sh on`; run it by hand when the DUT is needed in its normal state. Whether a reboot clears it has not been checked.
|
||||||
* **`unused_lanes.sh off` is not gated by `SWB_UNIT0` / `SWB_UNIT1`** — it always acts on both boards.
|
* **`unused_lanes.sh off` is not gated by `SWB_UNIT0` / `SWB_UNIT1`** — it always acts on both boards.
|
||||||
* **`blanton_ber.sh` (Script A / C) still uses `p=3` and `sleep 30`**; see v1.2.5.
|
* **`blanton_ber.sh` (Script A / C) still uses `p=3` and `sleep 30`**; see v1.2.5.
|
||||||
|
|||||||
@@ -874,6 +874,10 @@
|
|||||||
; ScriptB fdr start + fdr clear with the traffic setup, before the loop
|
; ScriptB fdr start + fdr clear with the traffic setup, before the loop
|
||||||
; (SWB_UNIT0 = SWB_UNIT1 = 1 only) - the counters run for the
|
; (SWB_UNIT0 = SWB_UNIT1 = 1 only) - the counters run for the
|
||||||
; whole soak
|
; whole soak
|
||||||
|
; fdr rdcnt in every soak round, after the Tray ID stress
|
||||||
|
; !! not gated by SWB_UNIT0 / SWB_UNIT1, unlike the start -
|
||||||
|
; with one unit enabled FDR was never started, and the
|
||||||
|
; round just logs whatever fdrstat Counters returns
|
||||||
; ScriptC fdr rdcnt before traffic stop, fdr stop after it
|
; ScriptC fdr rdcnt before traffic stop, fdr stop after it
|
||||||
; (SWB_UNIT0 = SWB_UNIT1 = 1 only) - the closing read of the
|
; (SWB_UNIT0 = SWB_UNIT1 = 1 only) - the closing read of the
|
||||||
; counters Script B started, bracketing the soak
|
; counters Script B started, bracketing the soak
|
||||||
|
|||||||
@@ -195,6 +195,10 @@ while 1
|
|||||||
wait prompt_sonic_root
|
wait prompt_sonic_root
|
||||||
sendln "~/Blanton_Script/tray_id_stress.sh"
|
sendln "~/Blanton_Script/tray_id_stress.sh"
|
||||||
|
|
||||||
|
; ========== FDR Counter Read ==========
|
||||||
|
wait prompt_sonic_root
|
||||||
|
sendln "~/Blanton_Script/blanton_fdr.sh rdcnt"
|
||||||
|
|
||||||
wait prompt_sonic_root
|
wait prompt_sonic_root
|
||||||
sendln "sleep 60"
|
sendln "sleep 60"
|
||||||
endwhile
|
endwhile
|
||||||
|
|||||||
Reference in New Issue
Block a user