summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPotin Lai <potin.lai@quantatw.com>2022-10-17 11:24:32 +0300
committerPatrick Williams <patrick@stwcx.xyz>2022-10-24 20:18:42 +0300
commit83c294d2663b85741e21a8ad2f29d9a825245238 (patch)
treec5869923c773cb8337209c7e54428dd037d64994
parente096c416ec1dc83bd968dcba90ac7110b1323843 (diff)
downloadopenbmc-83c294d2663b85741e21a8ad2f29d9a825245238.tar.xz
meta-bletchley: add switch diagnostics script
Add a switch diagnostics script to dump port register via mdio bus. Tested: root@bletchley:~# /usr/libexec/bletchley-switch-diag ======================================== Port 10 (BMC) **************************************** [00]: 0E07 (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07FE (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0001 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0000 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 001B (Debug Counters) ======================================== ======================================== Port 3 (SLED1) **************************************** [00]: 100F (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07FD (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0002 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0033 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 0000 (Debug Counters) ======================================== ======================================== Port 2 (SLED2) **************************************** [00]: 100F (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07FB (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0004 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0033 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 0000 (Debug Counters) ======================================== ======================================== Port 1 (SLED3) **************************************** [00]: 100F (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07F7 (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0008 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0033 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 0000 (Debug Counters) ======================================== ======================================== Port 7 (SLED4) **************************************** [00]: 100F (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07EF (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0010 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0033 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 0000 (Debug Counters) ======================================== ======================================== Port 6 (SLED5) **************************************** [00]: 1D4F (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07DF (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0020 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0033 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 0075 (Debug Counters) ======================================== ======================================== Port 5 (SLED6) **************************************** [00]: 1D4F (Port Status) [01]: 0003 (Physical Control) [02]: 0000 (Flow Control) [03]: 1920 (Switch Identifier) [04]: 007F (Port Control 0) [05]: 0000 (Port Control 1) [06]: 07BF (Port Based VLAN Map) [07]: 0001 (Default VLAN ID & Priority) [08]: 2080 (Port Control 2) [09]: 0001 (Egress Rate Control) [0A]: 8000 (Egress Rate Control 2) [0B]: 0040 (Port Association Vector) [0C]: 0000 (Port ATU Control) [0D]: 0000 (Override) [0E]: 0000 (Policy & MGMT Control) [10]: 0000 (Extended Port Control Operation) [11]: 0000 (Extended Port Control Data) [16]: 0033 (LED Control) [17]: 0000 (IP Priority Mapping Table) [18]: 0000 (IEEE Priority Mapping Table) [19]: 0000 (Port Control 3) [1B]: 8000 (Queue Counters) [1C]: 0000 (Queue Control) [1D]: 0000 (Queue Control 2) [1E]: 0000 (Enable & Cut Through) [1F]: 0058 (Debug Counters) ======================================== Signed-off-by: Potin Lai <potin.lai@quantatw.com> Change-Id: I3915e0747beeb8f8a3d06d3409ac55ed0cd50b41
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-tool_0.1.bb3
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-switch-diag39
2 files changed, 42 insertions, 0 deletions
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-tool_0.1.bb b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-tool_0.1.bb
index 170463f85a..081d740424 100644
--- a/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-tool_0.1.bb
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-tool_0.1.bb
@@ -4,15 +4,18 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5
inherit obmc-phosphor-systemd
RDEPENDS:${PN} += " bash motor-ctrl"
+RDEPENDS:${PN} += " mdio-tools"
SRC_URI += " \
file://bletchley-system-state-init \
file://bletchley-system-state-init@.service \
+ file://bletchley-switch-diag \
"
do_install() {
install -d ${D}${libexecdir}
install -m 0755 ${WORKDIR}/bletchley-system-state-init ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/bletchley-switch-diag ${D}${libexecdir}
}
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-switch-diag b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-switch-diag
new file mode 100644
index 0000000000..5fea8ace39
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-switch-diag
@@ -0,0 +1,39 @@
+#!/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"
+
+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"
+ printf "[%02X]: %04X (%s)\n" 0x00 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x00)" "Port Status"
+ printf "[%02X]: %04X (%s)\n" 0x01 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x01)" "Physical Control"
+ printf "[%02X]: %04X (%s)\n" 0x02 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x02)" "Flow Control"
+ printf "[%02X]: %04X (%s)\n" 0x03 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x03)" "Switch Identifier"
+ printf "[%02X]: %04X (%s)\n" 0x04 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x04)" "Port Control 0"
+ printf "[%02X]: %04X (%s)\n" 0x05 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x05)" "Port Control 1"
+ printf "[%02X]: %04X (%s)\n" 0x06 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x06)" "Port Based VLAN Map"
+ printf "[%02X]: %04X (%s)\n" 0x07 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x07)" "Default VLAN ID & Priority"
+ printf "[%02X]: %04X (%s)\n" 0x08 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x08)" "Port Control 2"
+ printf "[%02X]: %04X (%s)\n" 0x09 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x09)" "Egress Rate Control"
+ printf "[%02X]: %04X (%s)\n" 0x0A "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x0A)" "Egress Rate Control 2"
+ printf "[%02X]: %04X (%s)\n" 0x0B "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x0B)" "Port Association Vector"
+ printf "[%02X]: %04X (%s)\n" 0x0C "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x0C)" "Port ATU Control"
+ printf "[%02X]: %04X (%s)\n" 0x0D "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x0D)" "Override"
+ printf "[%02X]: %04X (%s)\n" 0x0E "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x0E)" "Policy & MGMT Control"
+ printf "[%02X]: %04X (%s)\n" 0x10 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x10)" "Extended Port Control Operation"
+ printf "[%02X]: %04X (%s)\n" 0x11 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x11)" "Extended Port Control Data"
+ printf "[%02X]: %04X (%s)\n" 0x16 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x16)" "LED Control"
+ printf "[%02X]: %04X (%s)\n" 0x17 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x17)" "IP Priority Mapping Table"
+ printf "[%02X]: %04X (%s)\n" 0x18 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x18)" "IEEE Priority Mapping Table"
+ printf "[%02X]: %04X (%s)\n" 0x19 "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x19)" "Port Control 3"
+ printf "[%02X]: %04X (%s)\n" 0x1B "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x1B)" "Queue Counters"
+ printf "[%02X]: %04X (%s)\n" 0x1C "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x1C)" "Queue Control"
+ printf "[%02X]: %04X (%s)\n" 0x1D "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x1D)" "Queue Control 2"
+ printf "[%02X]: %04X (%s)\n" 0x1E "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x1E)" "Enable & Cut Through"
+ printf "[%02X]: %04X (%s)\n" 0x1F "$(mdio "$SWITCH_MDIO_BUS" phy "${PORT_NUM_MAP[port_phy]}" 0x1F)" "Debug Counters"
+ printf "========================================\n\n"
+done