linux-aspeed.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Winiarska, Iwona <iwona.winiarska@intel.com>
To: linux-aspeed@lists.ozlabs.org
Subject: [PATCH v3 00/13] Introduce PECI subsystem
Date: Thu, 18 Nov 2021 21:51:00 +0000	[thread overview]
Message-ID: <c79aaa9bbd3751de99c3e908fd478aadbb208ba7.camel@intel.com> (raw)
In-Reply-To: <CAP6Zq1iOfQufgqu9jyVdA47TeCmDCa6Ri286v2HUCt5xeV9=wg@mail.gmail.com>

On Thu, 2021-11-18 at 14:19 +0200, Tomer Maimon wrote:
> Hi?Iwona,
> 
> My name is Tomer I working as a SW engineer in Nuvoton BMC project.
> 
> First, thanks for?upstreaming the PECI driver!
> 
> Nuvoton (NPCM) PECI driver was?in the PECI patchset that has been handheld?by
> Jae.
> https://patchwork.kernel.org/project/linux-arm-kernel/patch/20191211194624.2872-10-jae.hyun.yoo at linux.intel.com/
> 
> Could you add Nuvoton (NPCM) PECI driver?to your patch set next time you will
> send upstream patches to Linux vanilla?

Some (relatively small) changes are going to be needed to adapt that driver to
changes that happened in PECI core.
I want to keep this series as small as possible, but once it gets merged,
Nuvoton driver can be added in a separate series.

> If you agree, we will check your patchset in Nuvoton systems in a few days and
> send you NPCM OECI driver and documentation.
> 

I don't have any hardware to test it on so help will definitely be welcome :)

Thanks
-Iwona

> Thanks,
> 
> Tomer
> 
> On Mon, 15 Nov 2021 at 20:28, Iwona Winiarska <iwona.winiarska@intel.com> wrote:
> > Hi,
> > 
> > This is a third round of patches introducing PECI subsystem.
> > Sorry for the delay between v2 and v3.
> > 
> > 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/
> > 
> > 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? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|? 29 +
> > ?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? ? ? ? ? ? ? ? ? ? ? ? ?| 249 +++++++
> > ?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? ? ? ? ? ? ? ? ? ? ? ? ? | 110 +++
> > ?35 files changed, 3944 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
> > 


      reply	other threads:[~2021-11-18 21:51 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-15 18:25 [PATCH v3 00/13] Introduce PECI subsystem Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 01/13] dt-bindings: Add generic bindings for PECI Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 02/13] dt-bindings: Add bindings for peci-aspeed Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 03/13] ARM: dts: aspeed: Add PECI controller nodes Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 04/13] peci: Add core infrastructure Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 05/13] peci: Add peci-aspeed controller driver Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 06/13] peci: Add device detection Iwona Winiarska
2021-11-15 18:49   ` Greg Kroah-Hartman
2021-11-15 22:35     ` Winiarska, Iwona
2021-11-16  6:26       ` gregkh
2021-11-17 23:19         ` Winiarska, Iwona
2021-11-15 18:25 ` [PATCH v3 07/13] peci: Add sysfs interface for PECI bus Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 08/13] peci: Add support for PECI device drivers Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 09/13] peci: Add peci-cpu driver Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 10/13] hwmon: peci: Add cputemp driver Iwona Winiarska
2021-11-16  0:52   ` Guenter Roeck
2021-11-17 22:20     ` Winiarska, Iwona
2021-11-15 18:25 ` [PATCH v3 11/13] hwmon: peci: Add dimmtemp driver Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 12/13] docs: hwmon: Document PECI drivers Iwona Winiarska
2021-11-15 18:25 ` [PATCH v3 13/13] docs: Add PECI documentation Iwona Winiarska
2021-11-17  3:56 ` [PATCH v3 00/13] Introduce PECI subsystem Zev Weiss
2021-11-17 23:25   ` Winiarska, Iwona
2021-11-18 12:19 ` Tomer Maimon
2021-11-18 21:51   ` Winiarska, Iwona [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c79aaa9bbd3751de99c3e908fd478aadbb208ba7.camel@intel.com \
    --to=iwona.winiarska@intel.com \
    --cc=linux-aspeed@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).