That is among the reasons why ipmi is disabled.
And will remain disabled, until all the reasons are fixed.
> It looks like the Supermicro X9SCM BIOS lies about the presence of a BMC.
>
> This board does not have a BMC but OpenBSD 5.9 tries to attach it and fails
> with the following panic:
> ...
> acpibtn0 at acpi0: SLPB
> acpibtn1 at acpi0: PWRB
> panic: ipmi0: sendcmd fails
> Starting stack trace...
> panic() at panic+0x10b
> ipmi_cmd_poll() at ipmi_cmd_poll+0x5c
> ipmi_match() at ipmi_match+0x11f
> config_scan() at config_scan+0x133
> config_search() at config_search+0x129
> config_found_sm() at config_found_sm+0x2b
> mainbus_attach() at mainbus_attach+0x224
> config_attach() at config_attach+0x1bc
> cpu_configure() at cpu_configure+0x1b
> main() at main+0x40d
> end trace frame: 0x0, count: 4
>
> OpenBSD 5.8 works fine though. I think the behaviour changed with rev1.84.
> I also attached a workaround which is working for me.
>
>
> Index: dev/ipmi.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/ipmi.c,v
> retrieving revision 1.95
> diff -u -p -u -p -r1.95 ipmi.c
> --- dev/ipmi.c 11 Feb 2016 04:02:22 -0000 1.95
> +++ dev/ipmi.c 12 May 2016 14:01:05 -0000
> @@ -150,8 +150,8 @@ int get_sdr(struct ipmi_softc *, u_int16
>
> int ipmi_sendcmd(struct ipmi_cmd *);
> int ipmi_recvcmd(struct ipmi_cmd *);
> -void ipmi_cmd(struct ipmi_cmd *);
> -void ipmi_cmd_poll(struct ipmi_cmd *);
> +int ipmi_cmd(struct ipmi_cmd *);
> +int ipmi_cmd_poll(struct ipmi_cmd *);
> void ipmi_cmd_wait(struct ipmi_cmd *);
> void ipmi_cmd_wait_cb(void *);
>
> @@ -1026,26 +1026,33 @@ ipmi_recvcmd(struct ipmi_cmd *c)
> return (rc);
> }
>
> -void
> +int
> ipmi_cmd(struct ipmi_cmd *c)
> {
> + int rv = 1;
> +
> if (cold || panicstr != NULL)
> - ipmi_cmd_poll(c);
> + rv = ipmi_cmd_poll(c);
> else
> ipmi_cmd_wait(c);
> +
> + return rv;
> }
>
> -void
> +int
> ipmi_cmd_poll(struct ipmi_cmd *c)
> {
> mtx_enter(&c->c_sc->sc_cmd_mtx);
>
> if (ipmi_sendcmd(c)) {
> - panic("%s: sendcmd fails", DEVNAME(c->c_sc));
> + mtx_leave(&c->c_sc->sc_cmd_mtx);
> + return 0; /* BIOS is lying, there is no BMC */
> }
> c->c_ccode = ipmi_recvcmd(c);
>
> mtx_leave(&c->c_sc->sc_cmd_mtx);
> +
> + return 1;
> }
>
> void
> @@ -1671,10 +1678,11 @@ ipmi_match(struct device *parent, void *
> c.c_maxrxlen = sizeof(cmd);
> c.c_rxlen = 0;
> c.c_data = cmd;
> - ipmi_cmd(&c);
> + rv = ipmi_cmd(&c);
> +
> + if (rv == 1) /* GETID worked, we got IPMI */
> + dbg_dump(1, "bmc data", c.c_rxlen, cmd);
>
> - dbg_dump(1, "bmc data", c.c_rxlen, cmd);
> - rv = 1; /* GETID worked, we got IPMI */
> ipmi_unmap_regs(sc);
> }
>