Message ID | 20210712220447.957418-1-iwona.winiarska@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Introduce PECI subsystem | expand |
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@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%) >
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@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%) > > >
On Thu, Jul 15, 2021 at 10:33 AM Winiarska, Iwona <iwona.winiarska@intel.com> wrote: > > 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. Usually something like a "Hey Greg, please consider applying..." in the cover letter lets people know who the upstream path is for the series. > I am expecting contributions - for example there is at least one other > major BMC vendor which also ships PECI controllers. You're expecting to take patches from them and you'll forward them to Greg, or they'll go to Greg directly? > > 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. No worries, Greg continues to scale more than other mere mortals for these kinds of things. I was more asking because it was not clear from these patches, nor MAINTAINERS, and it's healthy for Linux to grow new patch wranglers from time to time.