On Wed, 2021-07-14 at 16:51 +0000, Williams, Dan J wrote: > 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 intention was to direct it to Greg, but I guess I didn't express that through the mail headers. I am expecting contributions - for example there is at least one other major BMC vendor which also ships PECI controllers. >From my perspective, the pieces that make up a BMC are pretty loosely connected (at least from the kernel perspective - scattered all over the kernel tree), so I don't see how that would work in practice. Thanks -Iwona > > > > 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%) > > >