From mboxrd@z Thu Jan 1 00:00:00 1970 From: Winiarska, Iwona Date: Thu, 15 Jul 2021 17:33:34 +0000 Subject: [PATCH 00/14] Introduce PECI subsystem In-Reply-To: <3b9cfe5f728c40c473a22070029c8790b452daf4.camel@intel.com> References: <20210712220447.957418-1-iwona.winiarska@intel.com> <3b9cfe5f728c40c473a22070029c8790b452daf4.camel@intel.com> Message-ID: List-Id: To: linux-aspeed@lists.ozlabs.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 at linux.intel.com/ > > > > 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%) > > >