Files
etwenandClaude Opus 5 dd558a7b0f feat(dsc): Add the 100G link down/up cycle test
bcm_100g_dsc_cycle.sh tunes once - gbsyncd paused, serdes-tx-set on
sys 0..7, tx_taps per lane - then repeats: port 268 en=0, wait, en=1,
wait, phydiag 268 dsc on both units, and the retimer read back with
serdes-tx-get / serdes-rx-get for sys 0..7. One log per run under
~/dsc_log, split by "### TEST CYCLE n/N", ending in
"### DSC_CYCLE_DONE rc=<n>" for a TTL wait to key on.

Waiting for a link state polls "bcmcmd ps <port>" rather than reading
"show interfaces status". "port en=" changes the SDK, and the SONiC
table only follows once gbsyncd and orchagent have synced it - and this
test pauses gbsyncd, so the SONiC table was the wrong thing to wait on.
The state is read from the row whose first field ends in "(<port>)", and
"down" is tested as "not up" so !ena counts.

All output is ASCII English on purpose: the DUT serial console mangles
UTF-8, and a Chinese error message came back as "ERROR: -c ? 1" - an
error you cannot read is worse than none. -d echoes every command as a
grey [CMD] line, CMD_DELAY paces them, and -n is a dry run that touches
nothing and sleeps not at all. The cycle count may be given as a bare
argument, which is what people type first.

Not verified on hardware. gbsyncd is unpaused again on exit, Ctrl-C
included.

tools/100G_dsc_cycle.txt is the hand-typed bench version of the same
commands, kept the way BER_Test.txt and TR518.txt are, so the script can
be checked against what a person would actually run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
2026-09-15 21:27:25 +08:00

90 lines
4.4 KiB
Plaintext

cd /usr/sbin
sudo docker pause gbsyncd1
sudo docker pause gbsyncd0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 0
//Tuning
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 0 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 1 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 2 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 3 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 4 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 5 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 6 pre=-10 main=87 post=0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-set sys 7 pre=-10 main=87 post=0
bcmcmd -n 0 -c " dsh -c 'phydiag 268 tx_taps set lane=0 main=31 pre1=4 post1=13' "
bcmcmd -n 0 -c " dsh -c 'phydiag 268 tx_taps set lane=1 main=31 pre1=4 post1=13' "
bcmcmd -n 0 -c " dsh -c 'phydiag 268 tx_taps set lane=2 main=27 pre1=4 post1=13' "
bcmcmd -n 0 -c " dsh -c 'phydiag 268 tx_taps set lane=3 main=29 pre1=4 post1=13' "
bcmcmd -n 1 -c " dsh -c 'phydiag 268 tx_taps set lane=0 main=29 pre1=4 post1=13' "
bcmcmd -n 1 -c " dsh -c 'phydiag 268 tx_taps set lane=1 main=30 pre1=4 post1=13' "
bcmcmd -n 1 -c " dsh -c 'phydiag 268 tx_taps set lane=2 main=31 pre1=4 post1=13' "
bcmcmd -n 1 -c " dsh -c 'phydiag 268 tx_taps set lane=3 main=30 pre1=4 post1=13' "
以下Test Cycle 目標200次
//Disable Port
bcmcmd -n 0 -c "port 268 en=0"
bcmcmd -n 1 -c "port 268 en=0"
//Wait Link Down
bcmcmd -n 0 -c "ps 268"
bcmcmd -n 1 -c "ps 268"
root@sonic:~# bcmcmd -n 0 -c "ps 268"
ps 268
ena/ speed/ link auto STP lrn max cut loop
port link Lns duplex scan neg? state pause discrd ops medium frame thru FEC back
ce0(268) !ena 4 100G FD SW No Forward Untag FA Backplane 9122 No RS528
drivshell>
root@sonic:~# bcmcmd -n 1 -c "ps 268"
ps 268
ena/ speed/ link auto STP lrn max cut loop
port link Lns duplex scan neg? state pause discrd ops medium frame thru FEC back
ce0(268) !ena 4 100G FD SW No Forward Untag FA Backplane 9122 No RS528
drivshell>
root@sonic:~#
//Enable Port
bcmcmd -n 0 -c "port 268 en=1"
bcmcmd -n 1 -c "port 268 en=1"
//Wait Link Up
bcmcmd -n 0 -c "ps 268"
bcmcmd -n 1 -c "ps 268"
root@sonic:~# bcmcmd -n 0 -c "ps 268"
ps 268
ena/ speed/ link auto STP lrn max cut loop
port link Lns duplex scan neg? state pause discrd ops medium frame thru FEC back
ce0(268) up 4 100G FD SW No Forward Untag FA Backplane 9122 No RS528
drivshell>
root@sonic:~# bcmcmd -n 1 -c "ps 268"
ps 268
ena/ speed/ link auto STP lrn max cut loop
port link Lns duplex scan neg? state pause discrd ops medium frame thru FEC back
ce0(268) up 4 100G FD SW No Forward Untag FA Backplane 9122 No RS528
drivshell>
root@sonic:~#
//Collect DSC Data
bcmcmd -n 0 -c "dsh -c 'phydiag 268 dsc'"
bcmcmd -n 1 -c "dsh -c 'phydiag 268 dsc'"
//讀Retimer TX/RX
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 0
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 1
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 2
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 3
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 4
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 5
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 6
sudo /usr/sbin/blanton_barchetta_tool --serdes-tx-get sys 7
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 0
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 1
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 2
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 3
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 4
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 5
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 6
sudo /usr/sbin/blanton_barchetta_tool --serdes-rx-get sys 7