All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] Handling IPMI for emulated BMC
@ 2023-03-24 23:08 Hao Wu
  2023-03-24 23:08 ` [PATCH v2 1/7] docs: enable sphinx blockdiag extension Hao Wu
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Hao Wu @ 2023-03-24 23:08 UTC (permalink / raw)
  To: minyard
  Cc: qemu-arm, qemu-devel, wuhaotsh, venture, Avi.Fishman, kfting,
	hskinnemoen, titusr, peter.maydell

This patch set is follow-up to our BMC side IPMI
code that was sent our 18 months ago. It addresses
Corey's comments.

Baseboard Management Controllers (BMCs) are special
processors that monitors state of a computer, often
used in data center servers. They often communicate
via IPMI. As a result, it is important to emulate
the IPMI interface so that they can connect to host
machines.

This patch set aims to refactor the existing hw/ipmi
and make it handles both Core side and BMC side
emulations. We also added the implementation of the
KCS module for NPCM7XX BMC boards that work as a backend.
We have tested this patch on various NPCM7xx based
systems and they can communicate with a host that runs
pmi-bmc-extern

The structure is as follows:
Patch 1-3 contains some documentation written by
Havard Skinnomoen that how the emulation of existing
host-side IPMI and the new BMC-side IPMI works.
Patch 4-5 refactors the current IPMI code so that
they work for both host-side and BMC-side.
Patch 6 adds a new ipmi-host-extern which represents
BMC-side emulation that is similar to the current
ipmi-bmc-extern.
Patch 7 implements the KCS device in NPCM7XX boards. It
works as a backend to the ipmi-host-extern device. Since
the direction is different we can't directly use ipmi-kcs.c
for BMC emulation.

-- Changes since v1 --

1. Use the terms Corey suggested in patch v7 throughout
   the patch set.
2. Squash the original patch 6 into patch 4 so that
   the structure is clearer.
3. Addressed other comments from Corey in the original
   patch set.

Hao Wu (4):
  hw/ipmi: Refactor IPMI interface
  hw/ipmi: Take out common from ipmi_bmc_extern.c
  hw/ipmi: Add an IPMI external host device
  hw/ipmi: Add a KCS Module for NPCM7XX

Havard Skinnemoen (3):
  docs: enable sphinx blockdiag extension
  docs/specs: IPMI device emulation: main processor
  docs/specs: IPMI device emulation: BMC

 configs/devices/arm-softmmu/default.mak |   2 +
 docs/conf.py                            |   6 +-
 docs/specs/index.rst                    |   1 +
 docs/specs/ipmi.rst                     | 170 +++++++
 docs/system/arm/nuvoton.rst             |   1 -
 hw/acpi/ipmi.c                          |   4 +-
 hw/arm/npcm7xx.c                        |  10 +-
 hw/ipmi/Kconfig                         |   4 +
 hw/ipmi/ipmi.c                          |  60 ++-
 hw/ipmi/ipmi_bmc_extern.c               | 439 ++----------------
 hw/ipmi/ipmi_bmc_sim.c                  |  78 ++--
 hw/ipmi/ipmi_bt.c                       |  33 +-
 hw/ipmi/ipmi_extern.c                   | 432 +++++++++++++++++
 hw/ipmi/ipmi_extern.h                   |  90 ++++
 hw/ipmi/ipmi_host_extern.c              | 170 +++++++
 hw/ipmi/ipmi_kcs.c                      |  31 +-
 hw/ipmi/isa_ipmi_bt.c                   |  18 +-
 hw/ipmi/isa_ipmi_kcs.c                  |  13 +-
 hw/ipmi/meson.build                     |   4 +-
 hw/ipmi/npcm7xx_kcs.c                   | 590 ++++++++++++++++++++++++
 hw/ipmi/pci_ipmi_bt.c                   |   8 +-
 hw/ipmi/pci_ipmi_kcs.c                  |   8 +-
 hw/ipmi/smbus_ipmi.c                    |  26 +-
 hw/ipmi/trace-events                    |   8 +
 hw/ipmi/trace.h                         |   1 +
 hw/ppc/pnv.c                            |   4 +-
 hw/ppc/pnv_bmc.c                        |  22 +-
 hw/smbios/smbios_type_38.c              |  11 +-
 include/hw/arm/npcm7xx.h                |   2 +
 include/hw/ipmi/ipmi.h                  | 139 ++++--
 include/hw/ipmi/ipmi_bt.h               |   2 +-
 include/hw/ipmi/ipmi_kcs.h              |   2 +-
 include/hw/ipmi/npcm7xx_kcs.h           | 103 +++++
 include/hw/ppc/pnv.h                    |  12 +-
 meson.build                             |   1 +
 35 files changed, 1939 insertions(+), 566 deletions(-)
 create mode 100644 docs/specs/ipmi.rst
 create mode 100644 hw/ipmi/ipmi_extern.c
 create mode 100644 hw/ipmi/ipmi_extern.h
 create mode 100644 hw/ipmi/ipmi_host_extern.c
 create mode 100644 hw/ipmi/npcm7xx_kcs.c
 create mode 100644 hw/ipmi/trace-events
 create mode 100644 hw/ipmi/trace.h
 create mode 100644 include/hw/ipmi/npcm7xx_kcs.h

-- 
2.40.0.348.gf938b09366-goog


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

end of thread, other threads:[~2023-03-27 20:25 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-24 23:08 [PATCH v2 0/7] Handling IPMI for emulated BMC Hao Wu
2023-03-24 23:08 ` [PATCH v2 1/7] docs: enable sphinx blockdiag extension Hao Wu
2023-03-24 23:08 ` [PATCH v2 2/7] docs/specs: IPMI device emulation: main processor Hao Wu
2023-03-25 23:56   ` Corey Minyard
2023-03-27 17:12     ` Hao Wu
2023-03-24 23:09 ` [PATCH v2 3/7] docs/specs: IPMI device emulation: BMC Hao Wu
2023-03-24 23:09 ` [PATCH v2 4/7] hw/ipmi: Refactor IPMI interface Hao Wu
2023-03-25 23:51   ` Corey Minyard
2023-03-27 17:08     ` Hao Wu
2023-03-27 20:25       ` Corey Minyard
2023-03-27 12:34   ` Cédric Le Goater
2023-03-27 17:11     ` Hao Wu
2023-03-27 20:23       ` Corey Minyard
2023-03-24 23:09 ` [PATCH v2 5/7] hw/ipmi: Take out common from ipmi_bmc_extern.c Hao Wu
2023-03-24 23:09 ` [PATCH v2 6/7] hw/ipmi: Add an IPMI external host device Hao Wu
2023-03-24 23:09 ` [PATCH v2 7/7] hw/ipmi: Add a KCS Module for NPCM7XX Hao Wu

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.