[PATCH v4 00/13] Introduce PECI subsystem
Tomer Maimon
tmaimon77 at gmail.com
Wed Dec 15 00:52:14 AEDT 2021
Hi Iwona,
Attach NPCM PECI driver support.
The PECI driver built-in kernel 5.16-rc and tested on NPCM750 and NPCM845
BMC SoC's
It will be great if you can add it to the PECI patchset.
Thanks,
Tomer
On Tue, 23 Nov 2021 at 16:09, Iwona Winiarska <iwona.winiarska at intel.com>
wrote:
> 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/
>
> Changes v3 -> v4:
> * Fixed an issue where peci doesn't work after host shutdown (Zev)
> * Replaced kill_device() with peci_device_del_lock (Greg)
> * Fixed dts_valid() parameter type (Guenter)
> * Removed Jae from MAINTAINERS file (Jae)
>
> Changes v2 -> v3:
>
> * Dropped x86/cpu patches (Boris)
> * Dropped pr_fmt() for PECI module (Dan)
> * Fixed releasing peci controller device flow (Dan)
> * Improved peci-aspeed commit-msg and Kconfig help (Dan)
> * Fixed aspeed_peci_xfer() to use the proper spin_lock function (Dan)
> * Wrapped print_hex_dump_bytes() in CONFIG_DYNAMIC_DEBUG (Dan)
> * Removed debug status logs from aspeed_peci_irq_handler() (Dan)
> * Renamed functions using devres to start with "devm" (Dan)
> * Changed request to be allocated on stack in peci_detect (Dan)
> * Removed redundant WARN_ON on invalid PECI addr (Dan)
> * Changed peci_device_create() to use device_initialize() + device_add()
> pattern (Dan)
> * Fixed peci_device_destroy() to use kill_device() avoiding double-free
> (Dan)
> * Renamed functions that perform xfer using "peci_xfer_*" prefix (Dan)
> * Renamed peci_request_data_dib(temp) -> peci_request_dib(temp)_read (Dan)
> * Fixed thermal margin readings for older Intel processors (Zev)
> * Misc hwmon simplifications (Guenter)
> * Used BIT_PER_TYPE to verify macro value constrains (Guenter)
> * Improved WARN_ON message to print chan_rank_max and idx_dimm_max
> (Guenter)
> * Improved dimmtemp to not reattempt probe if no dimms are populated
>
> Changes v1 -> v2:
>
> Biggest changes when it comes to diffstat are locking in HWMON
> (I decided to clean things up a bit while adding it), switching to
> devres usage in more places and exposing sysfs interface in separate patch.
>
> * Moved extending X86 ARCHITECTURE MAINTAINERS earlier in series (Dan)
> * Removed "default n" for GENERIC_LIB_X86 (Dan)
> * Added vendor prefix for peci-aspeed specific properties (Rob)
> * Refactored PECI to use devres consistently (Dan)
> * Added missing sysfs documentation and excluded adding peci-sysfs to
> separate patch (Dan)
> * Used module_init() instead of subsys_init() for peci module
> initialization (Dan)
> * Removed redundant struct peci_device member (Dan)
> * Improved PECI Kconfig help (Randy/Dan)
> * Fixed/removed log messages (Dan, Guenter)
> * Refactored peci-cputemp and peci-dimmtemp and added missing locks
> (Guenter)
> * Removed unused dev_set_drvdata() in peci-cputemp and peci-dimmtemp
> (Guenter)
> * Fixed used types, names, fixed broken and added additional comments
> to peci-hwmon (Guenter, Zev)
> * Refactored peci-dimmtemp to not return -ETIMEDOUT (Guenter)
> * Added sanity check for min_peci_revision in peci-hwmon drivers (Zev)
> * Added assert for DIMM_NUMS_MAX and additional warning in peci-dimmtemp
> (Zev)
> * Fixed macro names in peci-aspeed (Zev)
> * Refactored peci-aspeed sanitizing properties to a single helper function
> (Zev)
> * Fixed peci_cpu_device_ids definition for Broadwell Xeon D (David)
> * Refactor peci_request to use a single allocation (Zev)
> * Used min_t() to improve code readability (Zev)
> * Added macro for PECI_RDENDPTCFG_MMIO_WR_LEN_BASE and fixed adev type
> array name to more descriptive (Zev)
> * Fixed peci-hwmon commit-msg and documentation (Zev)
>
> Thanks
> -Iwona
>
> Iwona Winiarska (11):
> 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 sysfs interface for PECI bus
> 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
>
> Documentation/ABI/testing/sysfs-bus-peci | 16 +
> .../devicetree/bindings/peci/peci-aspeed.yaml | 109 +++
> .../bindings/peci/peci-controller.yaml | 33 +
> Documentation/hwmon/index.rst | 2 +
> Documentation/hwmon/peci-cputemp.rst | 90 +++
> Documentation/hwmon/peci-dimmtemp.rst | 57 ++
> Documentation/index.rst | 1 +
> Documentation/peci/index.rst | 16 +
> Documentation/peci/peci.rst | 51 ++
> MAINTAINERS | 26 +
> arch/arm/boot/dts/aspeed-g4.dtsi | 14 +
> arch/arm/boot/dts/aspeed-g5.dtsi | 14 +
> arch/arm/boot/dts/aspeed-g6.dtsi | 14 +
> drivers/Kconfig | 3 +
> drivers/Makefile | 1 +
> drivers/hwmon/Kconfig | 2 +
> drivers/hwmon/Makefile | 1 +
> drivers/hwmon/peci/Kconfig | 31 +
> drivers/hwmon/peci/Makefile | 7 +
> drivers/hwmon/peci/common.h | 58 ++
> drivers/hwmon/peci/cputemp.c | 592 ++++++++++++++++
> drivers/hwmon/peci/dimmtemp.c | 630 ++++++++++++++++++
> drivers/peci/Kconfig | 36 +
> drivers/peci/Makefile | 10 +
> drivers/peci/controller/Kconfig | 17 +
> drivers/peci/controller/Makefile | 3 +
> drivers/peci/controller/peci-aspeed.c | 429 ++++++++++++
> drivers/peci/core.c | 236 +++++++
> drivers/peci/cpu.c | 343 ++++++++++
> drivers/peci/device.c | 252 +++++++
> drivers/peci/internal.h | 136 ++++
> drivers/peci/request.c | 482 ++++++++++++++
> drivers/peci/sysfs.c | 82 +++
> include/linux/peci-cpu.h | 40 ++
> include/linux/peci.h | 112 ++++
> 35 files changed, 3946 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-bus-peci
> 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
>
> --
> 2.31.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20211214/2227733c/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-dt-bindings-Add-bindings-for-peci-npcm.patch
Type: application/octet-stream
Size: 2738 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20211214/2227733c/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-peci-Add-peci-npcm-controller-driver.patch
Type: application/octet-stream
Size: 13312 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20211214/2227733c/attachment-0003.obj>
More information about the openbmc
mailing list