Lines Matching +full:ipmi +full:- +full:ipmb
1 /* SPDX-License-Identifier: GPL-2.0+ */
5 * MontaVista IPMI system management interface
21 #include <linux/ipmi.h>
26 * This files describes the interface for IPMI system management interface
27 * drivers to bind into the IPMI message handler.
30 /* Structure for the low-level drivers. */
48 * * IPMB (over a IPMB to another MC)
53 * +-----------+-----+------+
55 * +-----------+-----+------+
60 * +-----------+-----+------+------+
62 * +-----------+-----+------+------+
67 * In IPMB mode, we are acting as an IPMB device. Commands will be in
70 * +-------------+------+-------------+-----+------+
72 * +-------------+------+-------------+-----+------+
76 * +-------------+------+-------------+-----+------+------+
78 * +-------------+------+-------------+-----+------+------+
80 * This is similar to the format defined in the IPMB manual section
84 * IPMB messages can be commands and responses in both directions.
142 * The low-level interface cannot start sending messages to
151 * When called, the low-level interface should disable all
159 * ACPI device handle will be returned for the pnp_acpi IPMI device.
236 #define ipmi_version_major(v) ((v)->ipmi_version & 0xf)
237 #define ipmi_version_minor(v) ((v)->ipmi_version >> 4)
240 * Take a pointer to an IPMI response and extract device id information from
250 return -EINVAL; in ipmi_demangle_device_id()
253 return -EINVAL; in ipmi_demangle_device_id()
256 return -EINVAL; in ipmi_demangle_device_id()
259 data_len--; in ipmi_demangle_device_id()
261 id->device_id = data[0]; in ipmi_demangle_device_id()
262 id->device_revision = data[1]; in ipmi_demangle_device_id()
263 id->firmware_revision_1 = data[2]; in ipmi_demangle_device_id()
264 id->firmware_revision_2 = data[3]; in ipmi_demangle_device_id()
265 id->ipmi_version = data[4]; in ipmi_demangle_device_id()
266 id->additional_device_support = data[5]; in ipmi_demangle_device_id()
268 id->manufacturer_id = (data[6] | (data[7] << 8) | in ipmi_demangle_device_id()
270 id->product_id = data[9] | (data[10] << 8); in ipmi_demangle_device_id()
272 id->manufacturer_id = 0; in ipmi_demangle_device_id()
273 id->product_id = 0; in ipmi_demangle_device_id()
276 memcpy(id->aux_firmware_revision, data+11, 4); in ipmi_demangle_device_id()
277 id->aux_firmware_revision_set = 1; in ipmi_demangle_device_id()
279 id->aux_firmware_revision_set = 0; in ipmi_demangle_device_id()
285 * Add a low-level interface to the IPMI driver. Note that if the
287 * The low-level interface should not deliver any messages to the
302 * Remove a low-level interface from the IPMI driver. This will
316 /* The lower layer received a watchdog pre-timeout on interface. */
322 msg->done(msg); in ipmi_free_smi_msg()