Initial commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
|
||||
declare -a PORT_NUM_MAP=(10 3 2 1 7 6 5)
|
||||
declare -a PORT_NAME_MAP=(BMC SLED1 SLED2 SLED3 SLED4 SLED5 SLED6)
|
||||
SWITCH_MDIO_BUS="1e650000.mdio-1"
|
||||
|
||||
INNER_PORT_DEV_ID="4"
|
||||
OUTER_PORT_DEV_ID="3"
|
||||
RETIMER_MDIO_BUS="1e650018.mdio-1"
|
||||
|
||||
get_switch_port_link_st()
|
||||
{
|
||||
local port_phy_id=$1
|
||||
|
||||
if PORT_ST_VAL="$(mdio "$SWITCH_MDIO_BUS" phy "$port_phy_id" 0x00)"; then
|
||||
PORT_ST_VAL="${PORT_ST_VAL:2}"
|
||||
if [ "$((16#$PORT_ST_VAL & 16#0800))" -eq "0" ]; then
|
||||
PORT_ST="down"
|
||||
else
|
||||
PORT_ST="up"
|
||||
fi
|
||||
else
|
||||
PORT_ST="mdio failed"
|
||||
fi
|
||||
echo "${PORT_ST}"
|
||||
}
|
||||
|
||||
get_retimer_port_link_st()
|
||||
{
|
||||
local port_dev_id=$1
|
||||
|
||||
if PORT_ST_VAL="$(mdio "$RETIMER_MDIO_BUS" mmd 0:"$port_dev_id" 0x9002)"; then
|
||||
PORT_ST_VAL="${PORT_ST_VAL:2}"
|
||||
if [ "$((16#$PORT_ST_VAL & 16#0004))" -eq "0" ]; then
|
||||
PORT_ST="down"
|
||||
else
|
||||
PORT_ST="up"
|
||||
fi
|
||||
else
|
||||
PORT_ST="mdio failed"
|
||||
fi
|
||||
echo "${PORT_ST}"
|
||||
}
|
||||
|
||||
get_port_link_st()
|
||||
{
|
||||
printf "========================================\n"
|
||||
printf "Link Status\n"
|
||||
printf "========================================\n"
|
||||
printf "Switch:\n"
|
||||
for port_phy in {0..6}
|
||||
do
|
||||
printf " Port %d (%s): %s\n" "${PORT_NUM_MAP[port_phy]}" "${PORT_NAME_MAP[port_phy]}" "$(get_switch_port_link_st "${PORT_NUM_MAP[port_phy]}")"
|
||||
done
|
||||
printf "\n"
|
||||
printf "Retimer:\n"
|
||||
printf " Inner Port (XFI): %s\n" "$(get_retimer_port_link_st "${INNER_PORT_DEV_ID}")"
|
||||
printf " Outer Port (SFI): %s\n" "$(get_retimer_port_link_st "${OUTER_PORT_DEV_ID}")"
|
||||
printf "========================================\n\n"
|
||||
}
|
||||
|
||||
get_switch_port_reg_dump()
|
||||
{
|
||||
for port_phy in {0..6}
|
||||
do
|
||||
printf "========================================\n"
|
||||
printf "Port %d (%s)\n" "${PORT_NUM_MAP[port_phy]}" "${PORT_NAME_MAP[port_phy]}"
|
||||
printf "****************************************\n"
|
||||
for reg_offset in {0..31}
|
||||
do
|
||||
printf "[%02X]: %04X\n" "$reg_offset" "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" "$reg_offset")"
|
||||
done
|
||||
printf "========================================\n\n"
|
||||
done
|
||||
}
|
||||
|
||||
print_help()
|
||||
{
|
||||
echo "Usage:"
|
||||
echo " $0 <COMMAND>"
|
||||
echo ""
|
||||
echo "COMMAND:"
|
||||
echo " --link-st"
|
||||
echo " show link status"
|
||||
echo ""
|
||||
echo " --port-reg-dump"
|
||||
echo " port registers dump"
|
||||
echo ""
|
||||
}
|
||||
|
||||
ACTION_CMD="$1"
|
||||
|
||||
if [[ ${ACTION_CMD} =~ -h|--help ]]; then
|
||||
print_help
|
||||
elif [ "${ACTION_CMD}" = "--link-st" ]; then
|
||||
get_port_link_st
|
||||
elif [ "${ACTION_CMD}" = "--port-reg-dump" ]; then
|
||||
get_switch_port_reg_dump
|
||||
else
|
||||
echo "Unknow command: $ACTION_CMD"
|
||||
print_help
|
||||
fi
|
||||
Reference in New Issue
Block a user