1#!/bin/bash
2echo
3echo "-----FPGA Daytona<x> CRB Register Dump Utility"
4echo
5
6I2CBUS=2
7FPGAADDR=0x41
8
9FPGA_REG=1
10DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
11echo ----------FPGAreg$FPGA_REG-------------------------
12echo M_ABCD_EVENT_R_BUF_N----- : $(((DATA & 0x80) >> 7))
13echo M_EFGH_EVENT_R_BUF_N----- : $(((DATA & 0x40) >> 6))
14echo M_IJKL_EVENT_R_BUF_N----- : $(((DATA & 0x20) >> 5))
15echo M_MNOP_EVENT_R_BUF_N----- : $(((DATA & 0x10) >> 4))
16
17FPGA_REG=2
18DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
19echo ----------FPGAreg$FPGA_REG-------------------------
20echo BMC_NVDIMM_PRSNT_R_N----- : $(((DATA & 0x80) >> 7))
21echo FM_ADR_TRIGGER_CPU_BUFF_N : $(((DATA & 0x40) >> 6))
22echo FM_BMC_ONCTL_N----------- : $(((DATA & 0x20) >> 5))
23echo FM_NVDIMM_EVENT_N-------- : $(((DATA & 0x10) >> 4))
24echo P0_FORCE_SELFREFRESH----- : $(((DATA & 0x08) >> 3))
25echo P0_NV_SAVE--------------- : $(((DATA & 0x04) >> 2))
26echo P1_FORCE_SELFREFRESH----- : $(((DATA & 0x02) >> 1))
27echo P1_NV_SAVE--------------- : $((DATA & 0x01))
28
29FPGA_REG=3
30DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
31echo ----------FPGAreg$FPGA_REG-------------------------
32echo CPLD_PWR_BTN_N----------- : $(((DATA & 0x80) >> 7))
33echo FM_DEBUG_RST_BTN_N------- : $(((DATA & 0x40) >> 6))
34echo P0_PWR_BTN_N------------- : $(((DATA & 0x20) >> 5))
35echo PWRBTN_CPLD_IN_N--------- : $(((DATA & 0x10) >> 4))
36echo FM_PLD_DEBUG_MODE_N------ : $(((DATA & 0x08) >> 3))
37echo FM_PLD_DEBUG0------------ : $(((DATA & 0x04) >> 2))
38echo FM_PLD_DEBUG1------------ : $(((DATA & 0x02) >> 1))
39echo FM_PLD_DEBUG0------------ : $((DATA & 0x01))
40
41FPGA_REG=4
42DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
43echo ----------FPGAreg$FPGA_REG-------------------------
44echo FM_PLD_DEBUG3------------ : $(((DATA & 0x80) >> 7))
45echo FM_PLD_DEBUG4------------ : $(((DATA & 0x40) >> 6))
46echo FM_PLD_DEBUG5------------ : $(((DATA & 0x20) >> 5))
47echo FM_PLD_DEBUG6------------ : $(((DATA & 0x10) >> 4))
48echo FM_PLD_DEBUG7------------ : $(((DATA & 0x08) >> 3))
49echo BP_SIG_CABLE_PRES_R_N---- : $(((DATA & 0x04) >> 2))
50echo CPLD_P0_THERMTRIP_N------ : $(((DATA & 0x02) >> 1))
51echo CPLD_P1_THERMTRIP_N------ : $((DATA & 0x01))
52
53FPGA_REG=5
54DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
55echo ----------FPGAreg$FPGA_REG-------------------------
56echo FM_BMC_CPLD_GPO---------- : $(((DATA & 0x80) >> 7))
57echo FM_BMC_READY_N----------- : $(((DATA & 0x40) >> 6))
58echo FM_CPLD_BMC_PWRDN_N------ : $(((DATA & 0x20) >> 5))
59echo LED_PWR_AMBER_R---------- : $(((DATA & 0x10) >> 4))
60echo LED_PWR_GRN_R------------ : $(((DATA & 0x08) >> 3))
61echo P0_CORETYPE-------------- : $(((DATA & 0x04) >> 2))
62echo P0_CPU_PRESENT_HDT------- : $(((DATA & 0x02) >> 1))
63echo P0_CPU_PRESENT_N--------- : $((DATA & 0x01))
64
65FPGA_REG=6
66DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
67echo ----------FPGAreg$FPGA_REG-------------------------
68echo P0_NMI_SYNC_FLOOD_N------ : $(((DATA & 0x80) >> 7))
69echo P0_PWROK_RST_BUF_EN_N---- : $(((DATA & 0x40) >> 6))
70echo P0_SP3R1----------------- : $(((DATA & 0x20) >> 5))
71echo P0_SP3R2_R--------------- : $(((DATA & 0x10) >> 4))
72echo P1_CORETYPE-------------- : $(((DATA & 0x08) >> 3))
73echo P1_CPU_PRESENT_HDT------- : $(((DATA & 0x04) >> 2))
74echo P1_CPU_PRESENT_N--------- : $(((DATA & 0x02) >> 1))
75echo P1_PWROK_RST_BUF_EN_N---- : $((DATA & 0x01))
76
77FPGA_REG=7
78DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
79echo ----------FPGAreg$FPGA_REG-------------------------
80echo P1_SP3R1----------------- : $(((DATA & 0x80) >> 7))
81echo P1_SP3R2_R--------------- : $(((DATA & 0x40) >> 6))
82echo PSU1_BLADE_EN_R_N-------- : $(((DATA & 0x20) >> 5))
83echo SLOT1_CLKREQ_N----------- : $(((DATA & 0x10) >> 4))
84echo SLOT1_PRSNT_N------------ : $(((DATA & 0x08) >> 3))
85echo SLOT2_CLKREQ_N----------- : $(((DATA & 0x04) >> 2))
86echo SLOT2_PRSNT_N------------ : $(((DATA & 0x02) >> 1))
87echo SMB_M2_S0_ALERT_N-------- : $((DATA & 0x01))
88
89FPGA_REG=8
90DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
91echo ----------FPGAreg$FPGA_REG-------------------------
92echo SMB_M2_S1_ALERT_N-------- : $(((DATA & 0x80) >> 7))
93echo FM_BMC_READ_SPD_TEMP----- : $(((DATA & 0x40) >> 6))
94echo PWR_ALL_ON_N------------- : $(((DATA & 0x20) >> 5))
95echo I2C_SELECT_CPLD---------- : $(((DATA & 0x10) >> 4))
96echo CPLD_PWRBRK_N------------ : $(((DATA & 0x08) >> 3))
97echo FM_PWRBRK_N-------------- : $(((DATA & 0x04) >> 2))
98echo PSU1_THROTTLE_N---------- : $(((DATA & 0x02) >> 1))
99echo PSU2_ALERT_EN_N---------- : $((DATA & 0x01))
100
101FPGA_REG=9
102DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
103echo ----------FPGAreg$FPGA_REG-------------------------
104echo PSU2_ALERT_N------------- : $(((DATA & 0x80) >> 7))
105echo RM_THROTTLE_EN_N----- ----: $(((DATA & 0x40) >> 6))
106echo FM_P1V8_AUX_P0_EN-------- : $(((DATA & 0x20) >> 5))
107echo FM_P1V8_AUX_P1_EN-------- : $(((DATA & 0x10) >> 4))
108echo FM_P1V8_P0_EN------------ : $(((DATA & 0x08) >> 3))
109echo FM_P1V8_P1_EN------------ : $(((DATA & 0x04) >> 2))
110echo FM_P5V_EN---------------- : $(((DATA & 0x02) >> 1))
111echo FM_PS_P12V_EN------------ : $((DATA & 0x01))
112
113FPGA_REG=10
114DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
115echo ----------FPGAreg$FPGA_REG-------------------------
116echo FM_PS_P12V_FAN_EN-------- : $(((DATA & 0x80) >> 7))
117echo FM_PVDDIO_ABCD_EN-------- : $(((DATA & 0x40) >> 6))
118echo FM_PVDDIO_EFGH_EN-------- : $(((DATA & 0x20) >> 5))
119echo FM_PVDDIO_IJKL_EN-------- : $(((DATA & 0x10) >> 4))
120echo FM_PVDDIO_MNOP_EN-------- : $(((DATA & 0x08) >> 3))
121echo FM_PVPP_ABCD_EN---------- : $(((DATA & 0x04) >> 2))
122echo FM_PVPP_EFGH_EN---------- : $(((DATA & 0x02) >> 1))
123echo FM_PVPP_IJKL_EN---------- : $((DATA & 0x01))
124
125FPGA_REG=11
126DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
127echo ----------FPGAreg$FPGA_REG-------------------------
128echo FM_PVPP_MNOP_EN---------- : $(((DATA & 0x80) >> 7))
129echo P0_VDDCR_CPU_EN1--------- : $(((DATA & 0x40) >> 6))
130echo P0_VDDCR_CPU_PWROK_R----- : $(((DATA & 0x20) >> 5))
131echo P0_VDDCR_SOC_AUX_EN------ : $(((DATA & 0x10) >> 4))
132echo P0_VDDCR_SOC_EN1--------- : $(((DATA & 0x08) >> 3))
133echo P0_VDDCR_SOC_PWROK_R----- : $(((DATA & 0x04) >> 2))
134echo P1_VDDCR_CPU_EN1--------- : $(((DATA & 0x02) >> 1))
135echo P1_VDDCR_CPU_PWROK_R----- : $((DATA & 0x01))
136
137FPGA_REG=12
138DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
139echo ----------FPGAreg$FPGA_REG-------------------------
140echo P1_VDDCR_SOC_AUX_EN------ : $(((DATA & 0x80) >> 7))
141echo P1_VDDCR_SOC_EN1--------- : $(((DATA & 0x40) >> 6))
142echo P1_VDDCR_SOC_PWROK_R----- : $(((DATA & 0x20) >> 5))
143echo PVTT_ABCD_EN------------- : $(((DATA & 0x10) >> 4))
144echo PVTT_EFGH_EN------------- : $(((DATA & 0x08) >> 3))
145echo PVTT_IJKL_EN------------- : $(((DATA & 0x04) >> 2))
146echo PVTT_MNOP_EN------------- : $(((DATA & 0x02) >> 1))
147echo VR_P3V3_EN_N------------- : $((DATA & 0x01))
148
149FPGA_REG=13
150DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
151echo ----------FPGAreg$FPGA_REG-------------------------
152echo ASSERT_P0_PWROK_L------- : $(((DATA & 0x80) >> 7))
153echo ASSERT_P1_PWROK_L------- : $(((DATA & 0x40) >> 6))
154echo HDT_HDR_PWROK----------- : $(((DATA & 0x20) >> 5))
155echo P0_33_PWROK------------- : $(((DATA & 0x10) >> 4))
156echo P0_PWR_GOOD------------- : $(((DATA & 0x08) >> 3))
157echo P0_PWRGD_OUT------------ : $(((DATA & 0x04) >> 2))
158echo P0_VDDCR_CPU_PG1-------- : $(((DATA & 0x02) >> 1))
159echo P0_VDDCR_SOC_PG1-------- : $((DATA & 0x01))
160
161FPGA_REG=14
162DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
163echo ----------FPGAreg$FPGA_REG-------------------------
164echo P1_33_PWROK------------- : $(((DATA & 0x80) >> 7))
165echo P1_PWR_GOOD------------- : $(((DATA & 0x40) >> 6))
166echo P1_PWRGD_OUT------------ : $(((DATA & 0x20) >> 5))
167echo P1_VDDCR_CPU_PG1-------- : $(((DATA & 0x10) >> 4))
168echo P1_VDDCR_SOC_PG1-------- : $(((DATA & 0x08) >> 3))
169echo P3V3_AUX_PWRGD---------- : $(((DATA & 0x04) >> 2))
170echo PWRGD_BMC_ALL----------- : $(((DATA & 0x02) >> 1))
171echo PWRGD_P0_VDDCR_SOC_AUX-- : $((DATA & 0x01))
172
173FPGA_REG=15
174DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
175echo ----------FPGAreg$FPGA_REG-------------------------
176echo PWRGD_P1_VDDCR_SOC_AUX-- : $(((DATA & 0x80) >> 7))
177echo PWRGD_P12V-------------- : $(((DATA & 0x40) >> 6))
178echo PWRGD_P12V_FAN_R-------- : $(((DATA & 0x20) >> 5))
179echo PWRGD_P1V8_AUX_P0------- : $(((DATA & 0x10) >> 4))
180echo PWRGD_P1V8_AUX_P1------- : $(((DATA & 0x08) >> 3))
181echo PWRGD_P1V8_P0----------- : $(((DATA & 0x04) >> 2))
182echo PWRGD_P1V8_P1----------- : $(((DATA & 0x02) >> 1))
183echo PWRGD_P3V3_R3----------- : $((DATA & 0x01))
184
185FPGA_REG=16
186DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
187echo ----------FPGAreg$FPGA_REG-------------------------
188echo PWRGD_P5V_CPLD_R-------- : $(((DATA & 0x80) >> 7))
189echo PWRGD_PVDDIO_ABCD------- : $(((DATA & 0x40) >> 6))
190echo PWRGD_PVDDIO_EFGH------- : $(((DATA & 0x20) >> 5))
191echo PWRGD_PVDDIO_IJKL------- : $(((DATA & 0x10) >> 4))
192echo PWRGD_PVDDIO_MNOP------- : $(((DATA & 0x08) >> 3))
193echo PWRGD_PVPP_ABCD--------- : $(((DATA & 0x04) >> 2))
194echo PWRGD_PVPP_EFGH--------- : $(((DATA & 0x02) >> 1))
195echo PWRGD_PVPP_IJKL--------- : $((DATA & 0x01))
196
197FPGA_REG=17
198DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
199echo ----------FPGAreg$FPGA_REG-------------------------
200echo PWRGD_PVPP_MNOP--------- : $(((DATA & 0x80) >> 7))
201echo PWRGD_PVTT_ABCD--------- : $(((DATA & 0x40) >> 6))
202echo PWRGD_PVTT_EFGH--------- : $(((DATA & 0x20) >> 5))
203echo PWRGD_PVTT_IJKL--------- : $(((DATA & 0x10) >> 4))
204echo PWRGD_PVTT_MNOP--------- : $(((DATA & 0x08) >> 3))
205echo PWRGD_SYS_BMC_PWROK----- : $(((DATA & 0x04) >> 2))
206echo P0_SLP_S3_N------------- : $(((DATA & 0x02) >> 1))
207echo P0_SLP_S5_N------------- : $((DATA & 0x01))
208
209FPGA_REG=18
210DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
211echo ----------FPGAreg$FPGA_REG-------------------------
212echo PSU2_PS_ON_N----------- : $(((DATA & 0x80) >> 7))
213echo BMC_PWRCAP_N----------- : $(((DATA & 0x40) >> 6))
214echo CPLD_FPH_ALERT_R_N----- : $(((DATA & 0x20) >> 5))
215echo FAST_PROCHOT_R_N------- : $(((DATA & 0x10) >> 4))
216echo FM_THROTTLE_IN_N------- : $(((DATA & 0x08) >> 3))
217echo HSC_GPIO0_PLD_N-------- : $(((DATA & 0x04) >> 2))
218echo HSC_GPIO1_PLD_N-------- : $(((DATA & 0x02) >> 1))
219echo P0_BMC_PROCHOT_N------- : $((DATA & 0x01))
220
221FPGA_REG=19
222DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
223echo ----------FPGAreg$FPGA_REG-------------------------
224echo P1_BMC_PROCHOT_N------- : $(((DATA & 0x80) >> 7))
225echo PMB_ALERT_SW_N--------- : $(((DATA & 0x40) >> 6))
226echo RM_THROTTLE_SW_N------- : $(((DATA & 0x20) >> 5))
227echo RST_PLTRST_DLY--------- : $(((DATA & 0x10) >> 4))
228echo UV_ALERT_R_N----------- : $(((DATA & 0x08) >> 3))
229echo ASSERT_P0_RESET-------- : $(((DATA & 0x04) >> 2))
230echo ASSERT_P1_RESET-------- : $(((DATA & 0x02) >> 1))
231echo HDT_HDR_RESET_L-------- : $((DATA & 0x01))
232
233FPGA_REG=20
234DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
235echo ----------FPGAreg$FPGA_REG-------------------------
236echo RST_CPLD_BMC_R_N------- : $(((DATA & 0x80) >> 7))
237echo RST_CPU_1V8_N---------- : $(((DATA & 0x40) >> 6))
238echo RST_KBRST_P0_N--------- : $(((DATA & 0x20) >> 5))
239echo RST_P0_3V3_N----------- : $(((DATA & 0x10) >> 4))
240echo RST_P0_PE0_N----------- : $(((DATA & 0x08) >> 3))
241echo RST_P0_PE1_N----------- : $(((DATA & 0x04) >> 2))
242echo RST_P0_PE2_N----------- : $(((DATA & 0x02) >> 1))
243echo RST_P0_PE3_N,---------- : $((DATA & 0x01))
244
245FPGA_REG=21
246DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
247echo ----------FPGAreg$FPGA_REG-------------------------
248echo RST_P0_SASHD_0_R_N----- : $(((DATA & 0x80) >> 7))
249echo RST_P0_SASHD_1_R_N----- : $(((DATA & 0x40) >> 6))
250echo RST_P1_3V3_N----------- : $(((DATA & 0x20) >> 5))
251echo RST_P1_OCU1_R_N-------- : $(((DATA & 0x10) >> 4))
252echo RST_P1_PE0_N----------- : $(((DATA & 0x08) >> 3))
253echo RST_P1_PE1_N----------- : $(((DATA & 0x04) >> 2))
254echo RST_P1_PE2_N----------- : $(((DATA & 0x02) >> 1))
255echo RST_P1_PE3_N,---------- : $((DATA & 0x01))
256
257FPGA_REG=22
258DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
259echo ----------FPGAreg$FPGA_REG-------------------------
260echo RST_BMC_RSTBTN_OUT_N_CPLD : $(((DATA & 0x80) >> 7))
261echo RST_PE_NVME0_N----------- : $(((DATA & 0x40) >> 6))
262echo RST_PE_NVME1_N----------- : $(((DATA & 0x20) >> 5))
263echo RST_PE_NVME2_N----------- : $(((DATA & 0x10) >> 4))
264echo RST_PE_NVME3_N----------- : $(((DATA & 0x08) >> 3))
265echo RST_PE_SLOT1_N----------- : $(((DATA & 0x04) >> 2))
266echo RST_PE_SLOT2_N----------- : $(((DATA & 0x02) >> 1))
267echo RST_PE_SLOT3_N----------- : $((DATA & 0x01))
268
269FPGA_REG=23
270DATA=$(i2cget -y $I2CBUS $FPGAADDR "$(printf '0x%x' $FPGA_REG)")
271echo ----------FPGAreg$FPGA_REG-------------------------
272echo RST_PE_SLOT4_N----------- : $(((DATA & 0x80) >> 7))
273echo RST_PE_SLOT5_N----------- : $(((DATA & 0x40) >> 6))
274echo RST_RSMRST_P0_N---------- : $(((DATA & 0x20) >> 5))
275echo RST_RSMRST_P1_N---------- : $(((DATA & 0x10) >> 4))
276echo RST_SYSTEM_BTN_CPLD_N---- : $(((DATA & 0x08) >> 3))
277echo RST_VSBPWR_BMC_BUF_N----- : $(((DATA & 0x04) >> 2))
278