On Tue, 2021-07-13 at 00:04 +0200, Iwona Winiarska wrote: > Note: All changes to arch/x86 are contained within patches 01-02. Hi Iwona, One meta question first, who is this submission "To:"? Is there an existing upstream maintainer path for OpenBMC changes? Are you expecting contributions to this subsystem from others? While Greg sometimes ends up as default maintainer for new stuff, I wonder if someone from the OpenBMC commnuity should step up to fill this role? > > The Platform Environment Control Interface (PECI) is a communication > interface between Intel processors and management controllers (e.g. > Baseboard Management Controller, BMC). > > This series adds a PECI subsystem and introduces drivers which run in > the Linux instance on the management controller (not the main Intel > processor) and is intended to be used by the OpenBMC [1], a Linux > distribution for BMC devices. > The information exposed over PECI (like processor and DIMM > temperature) refers to the Intel processor and can be consumed by > daemons running on the BMC to, for example, display the processor > temperature in its web interface. > > The PECI bus is collection of code that provides interface support > between PECI devices (that actually represent processors) and PECI > controllers (such as the "peci-aspeed" controller) that allow to > access physical PECI interface. PECI devices are bound to PECI > drivers that provides access to PECI services. This series introduces > a generic "peci-cpu" driver that exposes hardware monitoring > "cputemp" > and "dimmtemp" using the auxiliary bus. > > Exposing "raw" PECI to userspace, either to write userspace drivers > or > for debug/testing purpose was left out of this series to encourage > writing kernel drivers instead, but may be pursued in the future. > > Introducing PECI to upstream Linux was already attempted before [2]. > Since it's been over a year since last revision, and the series > changed quite a bit in the meantime, I've decided to start from v1. > > I would also like to give credit to everyone who helped me with > different aspects of preliminary review: > - Pierre-Louis Bossart, > - Tony Luck, > - Andy Shevchenko, > - Dave Hansen. > > [1] https://github.com/openbmc/openbmc > [2] > https://lore.kernel.org/openbmc/20191211194624.2872-1-jae.hyun.yoo@xxxxxxxxxxxxxxx/ > > Iwona Winiarska (12): > x86/cpu: Move intel-family to arch-independent headers > x86/cpu: Extract cpuid helpers to arch-independent > dt-bindings: Add generic bindings for PECI > dt-bindings: Add bindings for peci-aspeed > ARM: dts: aspeed: Add PECI controller nodes > peci: Add core infrastructure > peci: Add device detection > peci: Add support for PECI device drivers > peci: Add peci-cpu driver > hwmon: peci: Add cputemp driver > hwmon: peci: Add dimmtemp driver > docs: Add PECI documentation > > Jae Hyun Yoo (2): > peci: Add peci-aspeed controller driver > docs: hwmon: Document PECI drivers > > .../devicetree/bindings/peci/peci-aspeed.yaml | 111 ++++ > .../bindings/peci/peci-controller.yaml | 28 + > Documentation/hwmon/index.rst | 2 + > Documentation/hwmon/peci-cputemp.rst | 93 ++++ > Documentation/hwmon/peci-dimmtemp.rst | 58 ++ > Documentation/index.rst | 1 + > Documentation/peci/index.rst | 16 + > Documentation/peci/peci.rst | 48 ++ > MAINTAINERS | 32 ++ > arch/arm/boot/dts/aspeed-g4.dtsi | 14 + > arch/arm/boot/dts/aspeed-g5.dtsi | 14 + > arch/arm/boot/dts/aspeed-g6.dtsi | 14 + > arch/x86/Kconfig | 1 + > arch/x86/include/asm/cpu.h | 3 - > arch/x86/include/asm/intel-family.h | 141 +---- > arch/x86/include/asm/microcode.h | 2 +- > arch/x86/kvm/cpuid.h | 3 +- > arch/x86/lib/Makefile | 2 +- > drivers/Kconfig | 3 + > drivers/Makefile | 1 + > drivers/edac/mce_amd.c | 3 +- > drivers/hwmon/Kconfig | 2 + > drivers/hwmon/Makefile | 1 + > drivers/hwmon/peci/Kconfig | 31 ++ > drivers/hwmon/peci/Makefile | 7 + > drivers/hwmon/peci/common.h | 46 ++ > drivers/hwmon/peci/cputemp.c | 503 > +++++++++++++++++ > drivers/hwmon/peci/dimmtemp.c | 508 > ++++++++++++++++++ > drivers/peci/Kconfig | 36 ++ > drivers/peci/Makefile | 10 + > drivers/peci/controller/Kconfig | 12 + > drivers/peci/controller/Makefile | 3 + > drivers/peci/controller/peci-aspeed.c | 501 > +++++++++++++++++ > drivers/peci/core.c | 224 ++++++++ > drivers/peci/cpu.c | 347 ++++++++++++ > drivers/peci/device.c | 211 ++++++++ > drivers/peci/internal.h | 137 +++++ > drivers/peci/request.c | 502 > +++++++++++++++++ > drivers/peci/sysfs.c | 82 +++ > include/linux/peci-cpu.h | 38 ++ > include/linux/peci.h | 93 ++++ > include/linux/x86/cpu.h | 9 + > include/linux/x86/intel-family.h | 146 +++++ > lib/Kconfig | 5 + > lib/Makefile | 2 + > lib/x86/Makefile | 3 + > {arch/x86/lib => lib/x86}/cpu.c | 2 +- > 47 files changed, 3902 insertions(+), 149 deletions(-) > create mode 100644 Documentation/devicetree/bindings/peci/peci- > aspeed.yaml > create mode 100644 Documentation/devicetree/bindings/peci/peci- > controller.yaml > create mode 100644 Documentation/hwmon/peci-cputemp.rst > create mode 100644 Documentation/hwmon/peci-dimmtemp.rst > create mode 100644 Documentation/peci/index.rst > create mode 100644 Documentation/peci/peci.rst > create mode 100644 drivers/hwmon/peci/Kconfig > create mode 100644 drivers/hwmon/peci/Makefile > create mode 100644 drivers/hwmon/peci/common.h > create mode 100644 drivers/hwmon/peci/cputemp.c > create mode 100644 drivers/hwmon/peci/dimmtemp.c > create mode 100644 drivers/peci/Kconfig > create mode 100644 drivers/peci/Makefile > create mode 100644 drivers/peci/controller/Kconfig > create mode 100644 drivers/peci/controller/Makefile > create mode 100644 drivers/peci/controller/peci-aspeed.c > create mode 100644 drivers/peci/core.c > create mode 100644 drivers/peci/cpu.c > create mode 100644 drivers/peci/device.c > create mode 100644 drivers/peci/internal.h > create mode 100644 drivers/peci/request.c > create mode 100644 drivers/peci/sysfs.c > create mode 100644 include/linux/peci-cpu.h > create mode 100644 include/linux/peci.h > create mode 100644 include/linux/x86/cpu.h > create mode 100644 include/linux/x86/intel-family.h > create mode 100644 lib/x86/Makefile > rename {arch/x86/lib => lib/x86}/cpu.c (95%) >