[gbsyncd] Enable debug shell for BRCM broncos PHY (#12622)

* Build docker-gbsyncd-broncos image
* Correct typo in LIBSAI_BRONCOS_URL_PREFIX
* Update docker-gbsyncd-broncos/Dockerfile.j2
* Enable debug shell support on docker-gbsyncd-broncos
* Include bcmsh in docker-gbsyncd-broncos

Why I did it
In docker-gbsyncd-broncos image, enable debug shell support for BRCM broncos PHY.

How I did it
How to verify it
Note: need enable attr SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE support in BCM PAI library

# bcmsh 
Press Enter to show prompt.
Press Ctrl+C to exit.
NOTICE: Only one bcmsh or bcmcmd can connect to the shell at same time.


BRCM:> help
help
List of available commands
- h or help => Print command menu
- l => Print list of active ports on the PHY
- ps <port_id> <options> =>  Print port status
  <options> =>  1 -> Link status
            =>  2 -> Link training failure status
            =>  3 -> Link training RX status
            =>  4 -> PRBS lock status
            =>  5 -> PRBS lock loss status
- rd <port_id> <addr> <no of registers to read> => Read register contents
- wr <port_id> <addr> <data> => Write register data
- rrd <lanemap> <if_side> <addr> <no of registers to read> => Raw read register contents using lanemap and if_side (line = 0, system = 1)
- rwr <lanemap> <if_side> <addr> <data> => Raw write register data using lanemap and if_side (line = 0, system = 1)
- fw or firmware => Print firmware version of the PHY
- pd or port_dump <port_id> <flags> => Dump port status
- eyescan <port_id> => Display eye scan 
- fec_status <port_id> => Get fec status of the port
- polarity <lanemap> <if_side> <TX polarity> <RX Polarity> => Set TX and RX polarity
    <lanemap> => 0xF, 0xFF, or 0xFFFF based on number of lanes
    <if_side > => Line = 0, System = 1
    <TX/RX Polarity> =>_TX/RX Polarity bitmap of all lanes
        Each bit represents a lane number.
        E.g. Lane 0's polarity value (0 or 1) is populated in Bit 0.
- polarity <lanemap> <if_side> => Print TX and RX polarity
- lb <port_id> <lb_value> => Enable loopback on the port
  lb_value = 0 -> Disable, 1 -> PHY, 2 -> MAC
- lb <port_id> => Print loopback configuration of the port
- prbs <port_id> <options> <val> => Set/Get PRBS configuration
  <options> => 1 -> Get PRBS state and polynomial
               2 -> Set PRBS Polynomial, <val> - PRBS Polynomial
                    Please refer to phy/chip documentation for valid values
               3 -> Enable PRBS
                    <val> => 0 Disable PRBS
                             1 Enable both PRBS Transmitter and Receiver
                             2 Enable PRBS Receiver
                             3 Enable PRBS Transmitter
  exit or q => Exit the diagnostic shell
This commit is contained in:
Junhua Zhai 2022-11-09 09:58:25 +08:00 committed by Ying Xie
parent ce45f23a57
commit bef2f3e6f6
4 changed files with 45 additions and 1 deletions

View File

@ -27,11 +27,14 @@ debs/{{ deb }}{{' '}}
COPY ["docker-init.sh", "/usr/bin/"]
COPY ["start.sh", "/usr/bin/"]
COPY ["bcmsh", "/usr/bin/"]
COPY ["critical_processes.j2", "/usr/share/sonic/templates"]
COPY ["supervisord.conf.j2", "/usr/share/sonic/templates"]
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
COPY ["files/dsserve", "/usr/bin/"]
RUN chmod +x /usr/bin/dsserve
## Clean up
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y

View File

@ -0,0 +1,40 @@
#!/bin/bash
usage="$(basename "$0") [-h] [-q] [-t timeout] -- interactive shell for bcm service
where:
-h show this help text
-t inactivity timeout in seconds (default 300 seconds, 0 for no timeout)
-q quite, no banner (default: verbose)"
banner="Press Enter to show prompt.
Press Ctrl+C to exit.
NOTICE: Only one bcmsh or bcmcmd can connect to the shell at same time.
"
# Default verbose
quiet=false
timeout=300
while getopts 'hqt:' option; do
case "$option" in
h) echo "$usage"
exit
;;
q) quiet=true
;;
t) timeout=$OPTARG
;;
\?) printf "illegal option: -%s\n" "$OPTARG" >&2
echo "$usage" >&2
exit 1
;;
esac
done
shift $((OPTIND - 1))
if [ "$quiet" = false ]; then
echo "$banner"
fi
/usr/bin/socat -T$timeout readline UNIX-CONNECT:/var/run/sswsyncd/sswgbsyncd.socket

View File

@ -1 +1,2 @@
program:dsserve
program:syncd

View File

@ -33,7 +33,7 @@ dependent_startup_wait_for=rsyslogd:running
[program:syncd]
environment=BRONCOS_DEVICE_PATH=/usr/lib
command=/usr/bin/syncd -s -p /etc/sai.d/psai.profile -x /usr/share/sonic/hwsku/context_config.json -g 1
command=/usr/bin/dsserve -f /var/run/sswsyncd/sswgbsyncd.socket /usr/bin/syncd --diag -s -p /etc/sai.d/psai.profile -x /usr/share/sonic/hwsku/context_config.json -g 1
priority=3
autostart=false
autorestart=false