qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/16] Add an IPMI device to qemu
@ 2014-12-12 19:15 minyard
  2014-12-12 19:15 ` [Qemu-devel] [PATCH 01/16] Add a base IPMI interface minyard
                   ` (16 more replies)
  0 siblings, 17 replies; 24+ messages in thread
From: minyard @ 2014-12-12 19:15 UTC (permalink / raw)
  To: qemu-devel

This set of patches adds an IPMI device to qemu.  This is good for
systems that require an IPMI device to work correctly, for simulating
scenarios that require IPMI and testing software that uses IPMI, and
of course, for the Linux IPMI driver maintainer to use to reproduce
issues that could not be easily reproduced otherwise :).

For those that don't know, IPMI is a standard for doing sensor
monitoring and basic machine maintenance.  It has local interfaces
on the host system (four different types, SMIC, KCS, BT, and SSIF)
that can be in I/O space, memory space, and PCI space, and in the
case of SSIF, is on an I2C bus.  It can also have network interfaces
for out of band maintenance, though that's not directly relevant
here.  It is a message-based interface; all IPMI operations are
done by sending command messages, results come back as response
messages.

The maintenance actions are done by a small controller on the system
called a Baseboard Management Controller (BMC).  These devices are
always on when the system is plugged in, even if the system is off.

The first 9 patches add the device itself on an ISA interface.  This
adds a KCS device and a BT device (two of the four standard IPMI
interfaces).  It also adds software to have a small BMC simulated
inside of QEMU, and a way to connected to an external BMC (like
openipmi library's lanserv) over the network.  Those patches should
be pretty straightforward, though I'm still not 100% sure about
migration.

Patch 10 postpones sending the SMBIOS and ACPI tables to the firmware
until after the devices have initialized.  This lets the IPMI driver
add entries to those tables when it starts.  It might be possible to
pre-parse the IPMI parameters very early, but that seems like a lot
more work, and there's no harm in sending the tables to the firmware
later, as far as I can tell.

Patches 11 and 12 add an SMBIOS entry for the IPMI device.

Patches 13-15 are about adding ACPI tables for the IPMI device.
This adds code that can dynamically create ACPI tables, then
uses that to generate an SSDT for an IPMI device in the ISA bus
space.  I opted for this over a hard coded table because I would
need several different tables depending on configuration (I/O or
memory space, interrupt or none, PCI space, I2C space if that
gets added, IPMI device type).  Generating them on the fly is
fairly simple.

Patch 16 moves running the local BMC simulation to it's own
thread.  I'm not really sure of the value, besides a more accurate
simulation, but perhaps there is to offload the main execution of
qemu.

-corey

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2015-02-22 20:48 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-12 19:15 [Qemu-devel] [PATCH 00/16] Add an IPMI device to qemu minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 01/16] Add a base IPMI interface minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 02/16] ipmi: Add a PC ISA type structure minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 03/16] ipmi: Add a KCS low-level interface minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 04/16] ipmi: Add a BT " minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 05/16] ipmi: Add a local BMC simulation minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 06/16] ipmi: Add an external connection simulation interface minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 07/16] ipmi: Add tests minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 08/16] ipmi: Add documentation minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 09/16] ipmi: Add migration capability to the IPMI device minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 10/16] pc: Postpone adding ACPI and SMBIOS to fw_cfg minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 11/16] smbios: Add a function to directly add an entry minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 12/16] ipmi: Add SMBIOS table entry minyard
2015-02-19  2:53   ` Benjamin Herrenschmidt
2014-12-12 19:15 ` [Qemu-devel] [PATCH 13/16] acpi: Add a way to extend tables minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 14/16] acpi: Add table construction tools minyard
2014-12-12 19:15 ` [Qemu-devel] [PATCH 15/16] ipmi: Add ACPI table entries for BMCs minyard
2015-02-19  2:54   ` Benjamin Herrenschmidt
2015-02-20  3:16     ` Corey Minyard
2015-02-22 20:48       ` Benjamin Herrenschmidt
2014-12-12 19:15 ` [Qemu-devel] [PATCH 16/16] ipmi: Add a thread to better simulate a BMC minyard
2014-12-15 21:11   ` Paolo Bonzini
2014-12-15 21:33     ` Corey Minyard
2014-12-15 21:21 ` [Qemu-devel] [PATCH 00/16] Add an IPMI device to qemu Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).