[bmc/for-next RFC 1/1] ipmi: Retry BMC 100 times
From: Nabil S. Alramli
Date: Thu Jun 25 2026 - 18:47:58 EST
On certain hardware, the BMC firmware takes longer to become available. We
get errors that look like below, after which the BMC does not recover and
is unavailable for the rest of the boot:
```
kernel: ipmi_si IPI0001:00: BMC returned 0xc0, retry get bmc device id
kernel: ipmi_si IPI0001:00: BMC returned 0xc0, retry get bmc device id
kernel: ipmi_si IPI0001:00: BMC returned 0xc0, retry get bmc device id
kernel: ipmi_si IPI0001:00: BMC returned 0xc0, retry get bmc device id
kernel: ipmi_si IPI0001:00: BMC returned 0xc0, retry get bmc device id
kernel: ipmi_si IPI0001:00: There appears to be no BMC at this location
```
The fix is to increase the number of retries from 5 to 100, which allows
the BMC firmware on this hardware enough time to start up.
Signed-off-by: Nabil S. Alramli <dev@xxxxxxxxxxxx>
---
include/linux/ipmi.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h
index 7da6602eab71..662c664ce9de 100644
--- a/include/linux/ipmi.h
+++ b/include/linux/ipmi.h
@@ -339,7 +339,7 @@ struct ipmi_smi_info {
/* This is to get the private info of struct ipmi_smi */
extern int ipmi_get_smi_info(int if_num, struct ipmi_smi_info *data);
-#define GET_DEVICE_ID_MAX_RETRY 5
+#define GET_DEVICE_ID_MAX_RETRY 100
/* Helper function for computing the IPMB checksum of some data. */
unsigned char ipmb_checksum(unsigned char *data, int size);
--
2.43.0