All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/8] ipmi: a couple of enhancements to the BMC simulator (round 2)
@ 2016-02-09 12:13 Cédric Le Goater
  2016-02-09 12:13 ` [Qemu-devel] [PATCH 1/8] ipmi: add a realize function to the device class Cédric Le Goater
                   ` (8 more replies)
  0 siblings, 9 replies; 30+ messages in thread
From: Cédric Le Goater @ 2016-02-09 12:13 UTC (permalink / raw)
  To: Corey Minyard
  Cc: Cédric Le Goater, Greg Kurz, qemu-devel, Michael S. Tsirkin

The first patches are cleanups and prepare ground for an extension of
the BMC simulator providing a SDR loader using a file. A simple FRU
support comes next.

The last patches introduce APIs to populate a guest device tree with
the available sensors and to generate events, which is needed by
platforms in some occasions.

Based on e4a096b1cd43 and also available here  :

  https://github.com/legoater/qemu/commits/ipmi

Thanks,

C.

Cédric Le Goater (8):
  ipmi: add a realize function to the device class
  ipmi: use a function to initialize the SDR table
  ipmi: remove the need of an ending record in the SDR table
  ipmi: add some local variables in ipmi_sdr_init
  ipmi: use a file to load SDRs
  ipmi: provide support for FRUs
  ipmi: introduce an ipmi_bmc_sdr_find() API
  ipmi: introduce an ipmi_bmc_gen_event() API

 hw/ipmi/ipmi_bmc_sim.c | 256 +++++++++++++++++++++++++++++++++++++++++++------
 include/hw/ipmi/ipmi.h |   4 +
 2 files changed, 233 insertions(+), 27 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 30+ messages in thread
* [Qemu-devel] [PATCH 8/8] ipmi: introduce an ipmi_bmc_gen_event() API
@ 2016-01-05 17:30 Cédric Le Goater
  0 siblings, 0 replies; 30+ messages in thread
From: Cédric Le Goater @ 2016-01-05 17:30 UTC (permalink / raw)
  To: Corey Minyard; +Cc: Cédric Le Goater, qemu-devel, Michael S. Tsirkin

It will be used to fill the message buffer with custom events expected
by some systems. Typically, an Open PowerNV platform guest is notified
with an OEM SEL message before a shutdown or a reboot.

Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
---
 hw/ipmi/ipmi_bmc_sim.c | 24 ++++++++++++++++++++++++
 include/hw/ipmi/ipmi.h |  2 ++
 2 files changed, 26 insertions(+)

diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
index 9618db44ce69..cf105c343596 100644
--- a/hw/ipmi/ipmi_bmc_sim.c
+++ b/hw/ipmi/ipmi_bmc_sim.c
@@ -447,6 +447,30 @@ static int attn_irq_enabled(IPMIBmcSim *ibs)
             IPMI_BMC_MSG_FLAG_EVT_BUF_FULL_SET(ibs));
 }
 
+void ipmi_bmc_gen_event(IPMIBmc *b, uint8_t *evt, bool log)
+{
+    IPMIBmcSim *ibs = IPMI_BMC_SIMULATOR(b);
+    IPMIInterface *s = ibs->parent.intf;
+    IPMIInterfaceClass *k = IPMI_INTERFACE_GET_CLASS(s);
+
+    if (!IPMI_BMC_EVENT_MSG_BUF_ENABLED(ibs)) {
+        return;
+    }
+
+    if (log && IPMI_BMC_EVENT_LOG_ENABLED(ibs)) {
+        sel_add_event(ibs, evt);
+    }
+
+    if (ibs->msg_flags & IPMI_BMC_MSG_FLAG_EVT_BUF_FULL) {
+        goto out;
+    }
+
+    memcpy(ibs->evtbuf, evt, 16);
+    ibs->msg_flags |= IPMI_BMC_MSG_FLAG_EVT_BUF_FULL;
+    k->set_atn(s, 1, attn_irq_enabled(ibs));
+ out:
+    return;
+}
 static void gen_event(IPMIBmcSim *ibs, unsigned int sens_num, uint8_t deassert,
                       uint8_t evd1, uint8_t evd2, uint8_t evd3)
 {
diff --git a/include/hw/ipmi/ipmi.h b/include/hw/ipmi/ipmi.h
index ce1f539754be..0006299e263b 100644
--- a/include/hw/ipmi/ipmi.h
+++ b/include/hw/ipmi/ipmi.h
@@ -247,4 +247,6 @@ typedef uint8_t ipmi_sdr_compact_buffer[sizeof(struct ipmi_sdr_compact)];
 int ipmi_bmc_init_sensor(IPMIBmc *b, const uint8_t *entry,
                          unsigned int len, uint8_t *sensor_num);
 
+void ipmi_bmc_gen_event(IPMIBmc *b, uint8_t *evt, bool log);
+
 #endif
-- 
2.1.4

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

end of thread, other threads:[~2016-02-16  8:47 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-09 12:13 [Qemu-devel] [PATCH 0/8] ipmi: a couple of enhancements to the BMC simulator (round 2) Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 1/8] ipmi: add a realize function to the device class Cédric Le Goater
2016-02-14  8:22   ` Marcel Apfelbaum
2016-02-09 12:13 ` [Qemu-devel] [PATCH 2/8] ipmi: use a function to initialize the SDR table Cédric Le Goater
2016-02-14  8:31   ` Marcel Apfelbaum
2016-02-15 16:52     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 3/8] ipmi: remove the need of an ending record in " Cédric Le Goater
2016-02-14  8:39   ` Marcel Apfelbaum
2016-02-09 12:13 ` [Qemu-devel] [PATCH 4/8] ipmi: add some local variables in ipmi_sdr_init Cédric Le Goater
2016-02-14  8:55   ` Marcel Apfelbaum
2016-02-15 16:54     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 5/8] ipmi: use a file to load SDRs Cédric Le Goater
2016-02-14  9:08   ` Marcel Apfelbaum
2016-02-15 17:02     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 6/8] ipmi: provide support for FRUs Cédric Le Goater
2016-02-14  9:25   ` Marcel Apfelbaum
2016-02-15 17:17     ` Cédric Le Goater
2016-02-15 18:40       ` Marcel Apfelbaum
2016-02-16  3:38         ` Corey Minyard
2016-02-16  8:47           ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 7/8] ipmi: introduce an ipmi_bmc_sdr_find() API Cédric Le Goater
2016-02-14  9:30   ` Marcel Apfelbaum
2016-02-15 17:21     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 8/8] ipmi: introduce an ipmi_bmc_gen_event() API Cédric Le Goater
2016-02-14  9:32   ` Marcel Apfelbaum
2016-02-09 18:25 ` [Qemu-devel] [PATCH 0/8] ipmi: a couple of enhancements to the BMC simulator (round 2) Corey Minyard
2016-02-10 14:05   ` Cédric Le Goater
2016-02-10 16:06     ` Corey Minyard
2016-02-10 16:13       ` Cédric Le Goater
  -- strict thread matches above, loose matches on Subject: below --
2016-01-05 17:30 [Qemu-devel] [PATCH 8/8] ipmi: introduce an ipmi_bmc_gen_event() API Cédric Le Goater

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.