blob: 066b852f46181fe221cf9f1bd1ad83b7a611a1da [file] [log] [blame]
Konstantin Aladysheva953aa62021-04-19 11:37:54 +03001#!/bin/bash
2echo
3echo "-----FPGA Ethanol<x> CRB Register Dump Utility"
4echo
5I2CBUS=2
6FPGAADDR=0x50
7
8# FPGA FW Version Information
9FPGA_REG=39
Andrew Geisslerbda29da2023-04-13 13:56:43 -060010DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030011MAJOR=$((DATA >> 4))
12MINOR=$((DATA & 0x0F))
13echo FPGA FW Version: $MAJOR.$MINOR
14
15# IP register information
16FPGA_REG=0
17IP_REG_MAX=3
18printf "IP Address Registers: "
19while [ $FPGA_REG -le $IP_REG_MAX ]
20 do
21 # not using printf as integer and hex values are the same for this use
22 DATA=$(i2cget -y $I2CBUS $FPGAADDR $FPGA_REG)
23 if [ $FPGA_REG -ne $IP_REG_MAX ] ; then
Andrew Geisslerbda29da2023-04-13 13:56:43 -060024 printf "%d." "$DATA"
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030025 else
Andrew Geisslerbda29da2023-04-13 13:56:43 -060026 printf "%d\n\n" "$DATA"
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030027 fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -060028 ((FPGA_REG=FPGA_REG+1))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030029 done
30
31# VDD block - Addresses 16 - 23
32FPGA_REG=16
33VDD_REG_MAX=23
34SOCKET=0
35
36while [ $FPGA_REG -le $VDD_REG_MAX ]
37 do
38 VDD_LOOP_CNT=0
39
40 while [ $VDD_LOOP_CNT -le 1 ]
41 do
42 if [ $VDD_LOOP_CNT -eq 0 ] ; then
43 VDD_LOOP_CNT_TXT="Enables"
44 else
45 VDD_LOOP_CNT_TXT="Power Goods"
46 fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -060047 DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
48 echo ----------FPGAreg$FPGA_REG-----P$SOCKET VDD "$VDD_LOOP_CNT_TXT"
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030049 echo VDD_18_DUAL : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -060050 echo VDD_SOC_DUAL: $(((DATA & 0x02) >> 1))
51 echo VDD_SPD_ABCD: $(((DATA & 0x04) >> 2))
52 echo VDD_VPP_ABCD: $(((DATA & 0x08) >> 3))
53 echo VDD_VTT_ABCD: $(((DATA & 0x10) >> 4))
54 echo VDD_MEM_ABCD: $(((DATA & 0x20) >> 5))
55 echo VDD_SPD_EFGH: $(((DATA & 0x40) >> 6))
56 echo VDD_VPP_EFGH: $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030057
Andrew Geisslerbda29da2023-04-13 13:56:43 -060058 ((FPGA_REG=FPGA_REG+1))
59 DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030060 echo VDD_VTT_EFGH : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -060061 echo VDD_MEM_EFGH : $(((DATA & 0x02) >> 1))
62 echo VDD_18_RUN-- : $(((DATA & 0x04) >> 2))
63 echo VDD_SOC_RUN- : $(((DATA & 0x08) >> 3))
64 echo VDD_CORE_RUN : $(((DATA & 0x10) >> 4))
65 ((FPGA_REG=FPGA_REG+1))
66 ((VDD_LOOP_CNT=VDD_LOOP_CNT+1))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030067 done
Andrew Geisslerbda29da2023-04-13 13:56:43 -060068 ((SOCKET=SOCKET+1))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030069 done
70
71# Power State/Reset Data
72FPGA_REG=24
Andrew Geisslerbda29da2023-04-13 13:56:43 -060073DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030074echo ----------FPGAreg$FPGA_REG-----Power state Information:
75echo P0_SLP_S5_L--- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -060076echo P0_SLP_S3_L--- : $(((DATA & 0x02) >> 1))
77echo ATX_PS_ON----- : $(((DATA & 0x04) >> 2))
78echo FPGA_5_DUAL_EN : $(((DATA & 0x08) >> 3))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030079
80# Power Good information
81FPGA_REG=25
Andrew Geisslerbda29da2023-04-13 13:56:43 -060082DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030083echo ----------FPGAreg$FPGA_REG-----Power Good Information:
84echo VDD_33_DUAL_PG------- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -060085echo FPGA_VDD_CORE_DUAL_PG : $(((DATA & 0x02) >> 1))
86echo MGMT_VDD_VPP_DUAL_PG- : $(((DATA & 0x04) >> 2))
87echo MGMT_VDD_MEM_DUAL_PG- : $(((DATA & 0x08) >> 3))
88echo MGMT_VDD_CORE_DUAL_PG : $(((DATA & 0x10) >> 4))
89echo ATX_PWR_OK----------- : $(((DATA & 0x20) >> 5))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030090
91# Power and Reset Signals
92FPGA_REG=26
93PWRRST_REG_MAX=27
94SOCKET=0
95while [ $FPGA_REG -le $PWRRST_REG_MAX ]
96 do
Andrew Geisslerbda29da2023-04-13 13:56:43 -060097 DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +030098 echo ----------FPGAreg$FPGA_REG-----P$SOCKET Power and Reset Signals:
99 echo RSMRST_L----------------- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600100 echo PWR_GOOD----------------- : $(((DATA & 0x02) >> 1))
101 echo PWRGD_OUT---------------- : $(((DATA & 0x04) >> 2))
102 echo FPGA_PWROK_RESET_BUF_EN_L : $(((DATA & 0x08) >> 3))
103 echo 33_PWROK----------------- : $(((DATA & 0x10) >> 4))
104 echo VDD_CORE_RUN_PWROK------- : $(((DATA & 0x20) >> 5))
105 echo VDD_SOC_RUN_PWROK-------- : $(((DATA & 0x40) >> 6))
106 echo 33_RESET_L--------------- : $(((DATA & 0x80) >> 7))
107 ((FPGA_REG=FPGA_REG+1))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300108 done
109
110# Processor and power cable preset signals
111FPGA_REG=28
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600112DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300113echo ----------FPGAreg$FPGA_REG-----Processor and power cable preset signals:
114echo P0_PRESENT_L--------------------- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600115echo P0_VDD_MEM_ABCD_12_RUN_PLUG_PRSNT : $(((DATA & 0x02) >> 1))
116echo P0_VDD_MEM_EFGH_12_RUN_PLUG_PRSNT : $(((DATA & 0x04) >> 2))
117echo P0_VDD_12_RUN_PLUG_PRSNT--------- : $(((DATA & 0x08) >> 3))
118echo P1_PRESENT_L--------------------- : $(((DATA & 0x10) >> 4))
119echo P1_VDD_MEM_ABCD_12_RUN_PLUG_PRSNT : $(((DATA & 0x20) >> 5))
120echo P1_VDD_MEM_EFGH_12_RUN_PLUG_PRSNT : $(((DATA & 0x40) >> 6))
121echo P1_VDD_12_RUN_PLUG_PRSNT--------- : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300122
123# Board LEDs
124FPGA_REG=29
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600125DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300126echo ----------FPGAreg$FPGA_REG-----LED States:
127echo PWR_GOOD_LED--- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600128echo PWROK_LED------ : $(((DATA & 0x02) >> 1))
129echo RESET_LED_L---- : $(((DATA & 0x04) >> 2))
130echo P0_PROCHOT_LED- : $(((DATA & 0x08) >> 3))
131echo P1_PROCHOT_LED- : $(((DATA & 0x10) >> 4))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300132
133# VR thermal errors
134FPGA_REG=30
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600135DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300136echo ----------FPGAreg$FPGA_REG-----VR Thermal Errors:
137echo P0_VDD_MEM_ABCD_SUS_VRHOT_L : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600138echo P0_VDD_MEM_EFGH_SUS_VRHOT_L : $(((DATA & 0x02) >> 1))
139echo P0_VDD_SOC_RUN_VRHOT_L----- : $(((DATA & 0x04) >> 2))
140echo P0_VDD_CORE_RUN_VRHOT_L---- : $(((DATA & 0x08) >> 3))
141echo P1_VDD_MEM_ABCD_SUS_VRHOT_L : $(((DATA & 0x10) >> 4))
142echo P1_VDD_MEM_EFGH_SUS_VRHOT_L : $(((DATA & 0x20) >> 5))
143echo P1_VDD_SOC_RUN_VRHOT_L----- : $(((DATA & 0x40) >> 6))
144echo P1_VDD_CORE_RUN_VRHOT_L---- : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300145
146# Processor and board Thermal Errors
147FPGA_REG=31
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600148DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300149echo ----------FPGAreg$FPGA_REG-----Processor and board Thermal Errors:
150echo FPGA_P0_THERMTRIP_L : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600151echo FPGA_P1_THERMTRIP_L : $(((DATA & 0x02) >> 1))
152echo SENSOR_THERM_L----- : $(((DATA & 0x04) >> 2))
153echo P0_PROCHOT_L------- : $(((DATA & 0x08) >> 3))
154echo P1_PROCHOT_L------- : $(((DATA & 0x10) >> 4))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300155
156# AST2500 control Signals
157FPGA_REG=32
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600158DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300159echo ----------FPGAreg$FPGA_REG-----AST2500 Control Signals:
160echo MGMT_ASSERT_BMC_READY--- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600161echo MGMT_ASSERT_LOCAL_LOCK-- : $(((DATA & 0x02) >> 1))
162echo MGMT_ASSERT_PWR_BTN----- : $(((DATA & 0x04) >> 2))
163echo MGMT_ASSERT_RST_BTN----- : $(((DATA & 0x08) >> 3))
164echo MGMT_ASSERT_NMI_BTN----- : $(((DATA & 0x10) >> 4))
165echo MGMT_ASSERT_P0_PROCHOT-- : $(((DATA & 0x20) >> 5))
166echo MGMT_ASSERT_P1_PROCHOT-- : $(((DATA & 0x40) >> 6))
167echo MGMT_ASSERT_WARM_RST_BTN : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300168
169# FPGA processor control signals
170FPGA_REG=33
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600171DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300172echo ----------FPGAreg$FPGA_REG-----FPGA processor Control Signals:
173echo ASSERT_P0_PWROK_L-------- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600174echo ASSERT_P0_RESET_L-------- : $(((DATA & 0x02) >> 1))
175echo ASSERT_P0_PROCHOT_L------ : $(((DATA & 0x04) >> 2))
176echo MGMT_SYS_MON_P0_PROCHOT_L : $(((DATA & 0x08) >> 3))
177echo ASSERT_P1_PWROK_L-------- : $(((DATA & 0x10) >> 4))
178echo ASSERT_P1_RESET_L-------- : $(((DATA & 0x20) >> 5))
179echo ASSERT_P1_PROCHOT_L------ : $(((DATA & 0x40) >> 6))
180echo MGMT_SYS_MON_P1_PROCHOT_L : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300181
182# Buttons/Resets
183FPGA_REG=34
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600184DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300185echo ----------FPGAreg$FPGA_REG-----Button and Reset Signals:
186echo PWR_BTN_L----- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600187echo RST_BTN_L----- : $(((DATA & 0x02) >> 1))
188echo WARM_RST_BTN_L : $(((DATA & 0x04) >> 2))
189echo NMI_BTN_L----- : $(((DATA & 0x08) >> 3))
190echo FPGA_BTN_L---- : $(((DATA & 0x10) >> 4))
191echo P0_PWR_BTN_L-- : $(((DATA & 0x20) >> 5))
192echo P0_SYS_RESET_L : $(((DATA & 0x40) >> 6))
193echo P0_KBRST_L---- : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300194
195# Miscellaneous Block 1
196FPGA_REG=35
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600197DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300198echo ----------FPGAreg$FPGA_REG-----Miscellaneous 35 Signals:
199echo MGMT_AC_LOSS_L---------- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600200echo P0_NV_FORCE_SELF_REFRESH : $(((DATA & 0x02) >> 1))
201echo P1_NV_FORCE_SELF_REFRESH : $(((DATA & 0x04) >> 2))
202echo P0_LOCAL_SPI_ROM_SEL_L-- : $(((DATA & 0x08) >> 3))
203echo PCIE_SLOT4_HP_FON_L----- : $(((DATA & 0x10) >> 4))
204echo P0_NMI_SYNC_FLOOD_L----- : $(((DATA & 0x20) >> 5))
205echo FPGA_LPC_RST_L---------- : $(((DATA & 0x40) >> 6))
206echo MGMT_SMBUS_ALERT_L------ : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300207
208# Miscellaneous Block 2
209FPGA_REG=36
210SHUTDOWNERR=0
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600211DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300212echo ----------FPGAreg$FPGA_REG-----Miscellaneous 36 Signals:
213echo physical_pg------------------- : $((DATA & 0x01))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600214echo shutdown_error---------------- : $(((DATA & 0x02) >> 1))
215SHUTDOWNERR=$(((DATA & 0x02) >> 1))
216echo P0_PRESENT_HDT---------------- : $(((DATA & 0x04) >> 2))
217echo P1_PRESENT_HDT---------------- : $(((DATA & 0x08) >> 3))
218echo DAP_EXT_P0_CORE_RUN_VOLTAGE_PG : $(((DATA & 0x10) >> 4))
219echo FPGA_BRD_ID------------------- : $(((DATA & 0x20) >> 5))
220echo FPGA_BRD_ID------------------- : $(((DATA & 0x40) >> 6))
221echo MGMT_FPGA_RSVD---------------- : $(((DATA & 0x80) >> 7))
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300222
223# Switch S1
224FPGA_REG=37
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600225DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300226echo ----------FPGAreg$FPGA_REG-----Switch Bank S1:
227if [ $((DATA & 0x01)) -eq 1 ] ; then
228 echo "FPGA_SW1-1 - OFF - P0 PwrReg PU with Proc"
229else
230 echo "FPGA_SW1-1 - ON - P0 PwrReg PU without Proc"
231fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600232if [ $(((DATA & 0x02) >> 1)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300233 echo "FPGA_SW1-1 - OFF - P1 PwrReg PU with Proc"
234else
235 echo "FPGA_SW1-1 - ON - P1 PwrReg PU without Proc"
236fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600237if [ $(((DATA & 0x04) >> 2)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300238 echo "FPGA_SW1-3 - OFF - ATX Connectors Valid"
239else
240 echo "FPGA_SW1-3 - ON - ATX Connectors Ignored"
241fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600242if [ $(((DATA & 0x08) >> 3)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300243 echo "FPGA_SW1-4 - OFF - Wait for BMC Boot"
244else
245 echo "FPGA_SW1-4 - ON - Do Not Wait for BMC Boot"
246fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600247if [ $(((DATA & 0x10) >> 4)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300248 echo "FPGA_SW1-5 - OFF - MemPwrReg PU after ATX"
249else
250 echo "FPGA_SW1-5 - ON - MemPwrReg PU before ATX"
251fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600252if [ $(((DATA & 0x20) >> 5)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300253 echo "FPGA_SW1-6 - OFF - DAP CORE Reg Bypass DISABLED"
254else
255 echo "FPGA_SW1-6 - ON - DAP CORE Reg Bypass ENABLED"
256fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600257if [ $(((DATA & 0x40) >> 6)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300258 echo "FPGA_SW1-7 - OFF - Bypass P0 in HDT JTAG Chain DISABLED"
259else
260 echo "FPGA_SW1-7 - ON - Bypass P0 in HDT JTAG Chain ENABLED"
261fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600262if [ $(((DATA & 0x80) >> 7)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300263 echo "FPGA_SW1-8 - OFF - Bypass P1 in HDT JTAG Chain DISABLED"
264else
265 echo "FPGA_SW1-8 - ON - Bypass P1 in HDT JTAG Chain ENABLED"
266fi
267
268# Switch S2
269FPGA_REG=38
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600270DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300271echo ----------FPGAreg$FPGA_REG-----Switch Bank S2:
272if [ $((DATA & 0x01)) -eq 1 ] ; then
273 echo "FPGA_SW2-1 - OFF - Boot from SPI ROM behind BMC"
274else
275 echo "FPGA_SW2-1 - ON - Boot from P0 local SPI ROM"
276fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600277if [ $(((DATA & 0x02) >> 1)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300278 echo "FPGA_SW2-2 - OFF - PCIe SLOT4 hot plug forced PwrON without driver"
279else
280 echo "FPGA_SW2-2 - ON - PCIe SLOT4 hot plug NOT forced PwrON without driver"
281fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600282if [ $(((DATA & 0x04) >> 2)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300283 echo "FPGA_SW2-3 - OFF - SMI testing DISABLED"
284else
285 echo "FPGA_SW2-3 - ON - SMI testing ENABLED"
286fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600287if [ $(((DATA & 0x08) >> 3)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300288 echo "FPGA_SW2-4 - OFF - PROCHOT testing DISABLED"
289else
290 echo "FPGA_SW2-4 - ON - PROCHOT testing ENABLED"
291fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600292if [ $(((DATA & 0x10) >> 4)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300293 echo "FPGA_SW2-5 - OFF - PwrCycle on post code C0 DISABLED"
294else
295 echo "FPGA_SW2-5 - ON - PwrCycle on post code C0 ENABLED"
296fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600297if [ $(((DATA & 0x20) >> 5)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300298 echo "FPGA_SW2-6 - OFF - PwrCycle Px DISABLED"
299else
300 echo "FPGA_SW2-6 - ON - PwrCycle - Px Present - RESET_L | Px Not Present VR PwrGood"
301fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600302if [ $(((DATA & 0x40) >> 6)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300303 echo "FPGA_SW2-7 - OFF - BMC IP Address display DISABLED"
304else
305 echo "FPGA_SW2-7 - ON - BMC IP Address display ENABLED"
306fi
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600307if [ $(((DATA & 0x80) >> 7)) -eq 1 ] ; then
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300308 echo "FPGA_SW1-8 - OFF - FORCE_SELFREFRESH support diabled"
309else
310 echo "FPGA_SW1-8 - ON - FORCE_SELFREFRESH support diabled"
311fi
312
313# Powerup Error Group
314echo ------------------------Power and Thermal Error Group
315if [ $SHUTDOWNERR = 0 ] ; then
316 echo NO Shutdown Errors Detected
317fi
318
319FPGA_REG=40
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600320DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300321if [ $((DATA & 0x0F)) != 0 ] ; then
322 echo PU Error: PU1$((DATA & 0x0F))
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600323 echo "$DATA"
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300324fi
325
326FPGA_REG=41
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600327DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300328if [ $((DATA & 0x07)) != 0 ] ; then
329 echo PU Error: PU2$((DATA & 0x07))
330fi
331
332FPGA_REG=42
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600333DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300334if [ $((DATA & 0x0F)) != 0 ] ; then
335 echo PU Error: PU1$((DATA & 0x0F))
336fi
337
338FPGA_REG=43
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600339DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300340if [ $((DATA & 0x07)) != 0 ] ; then
341 echo PU Error: PU4$((DATA & 0x07))
342fi
343
344FPGA_REG=44
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600345DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300346if [ $((DATA & 0x03)) != 0 ] ; then
347 echo PU Error: PU5$((DATA & 0x03))
348fi
349
350FPGA_REG=45
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600351DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300352if [ $((DATA & 0x07)) != 0 ] ; then
353 echo PU Error: PU6$((DATA & 0x07))
354fi
355
356# Powerdown Error Group
357FPGA_REG=46
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600358DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300359if [ $((DATA & 0x0F)) != 0 ] ; then
360 echo PD Error: PD1$((DATA & 0x0F))
361fi
362
363FPGA_REG=47
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600364DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300365if [ $((DATA & 0x07)) != 0 ] ; then
366 echo PD Error: PD2$((DATA & 0x07))
367fi
368
369FPGA_REG=48
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600370DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300371if [ $((DATA & 0x0F)) != 0 ] ; then
372 echo PD Error: PD3$((DATA & 0x0F))
373fi
374
375FPGA_REG=49
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600376DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300377if [ $((DATA & 0x07)) != 0 ] ; then
378 echo PD Error: PD4$((DATA & 0x07))
379fi
380
381FPGA_REG=50
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600382DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300383if [ $((DATA & 0x03)) != 0 ] ; then
384 echo PD Error: PD5$((DATA & 0x03))
385fi
386
387FPGA_REG=51
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600388DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300389if [ $((DATA & 0x03)) != 0 ] ; then
390 echo PD Error: PD6$((DATA & 0x03))
391fi
392
393FPGA_REG=52
Andrew Geisslerbda29da2023-04-13 13:56:43 -0600394DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf "0x%x" $FPGA_REG)")
Konstantin Aladysheva953aa62021-04-19 11:37:54 +0300395if [ $((DATA & 0x0F)) != 0 ] ; then
396 echo Thermal Error: H_0$((DATA & 0x0F))
397fi
398echo ------------- end of data -----------------