[PATCH linux-next v6 03/13] peci: Add support for PECI bus driver core

Jae Hyun Yoo jae.hyun.yoo at linux.intel.com
Sat Jul 7 03:38:01 AEST 2018


On 7/6/2018 12:03 AM, Lee Jones wrote:
> On Thu, 21 Jun 2018, Jae Hyun Yoo wrote:
> 
>> This commit adds driver implementation for PECI bus core into linux
>> driver framework.
>>
>> Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo at linux.intel.com>
>> Signed-off-by: Fengguang Wu <fengguang.wu at intel.com>
>> Reviewed-by: Haiyue Wang <haiyue.wang at linux.intel.com>
>> Reviewed-by: James Feist <james.feist at linux.intel.com>
>> Reviewed-by: Vernon Mauery <vernon.mauery at linux.intel.com>
>> Cc: Alan Cox <alan at linux.intel.com>
>> Cc: Andrew Lunn <andrew at lunn.ch>
>> Cc: Andy Shevchenko <andriy.shevchenko at intel.com>
>> Cc: Arnd Bergmann <arnd at arndb.de>
>> Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
>> Cc: Fengguang Wu <fengguang.wu at intel.com>
>> Cc: Greg KH <gregkh at linuxfoundation.org>
>> Cc: Jason M Biils <jason.m.bills at linux.intel.com>
>> Cc: Julia Cartwright <juliac at eso.teric.us>
>> ---
>>   drivers/Kconfig                 |    2 +
>>   drivers/Makefile                |    1 +
>>   drivers/peci/Kconfig            |   12 +
>>   drivers/peci/Makefile           |    6 +
>>   drivers/peci/peci-core.c        | 1438 +++++++++++++++++++++++++++++++
>>   include/linux/peci.h            |  104 +++
>>   include/uapi/linux/peci-ioctl.h |  265 ++++++
>>   7 files changed, 1828 insertions(+)
>>   create mode 100644 drivers/peci/Kconfig
>>   create mode 100644 drivers/peci/Makefile
>>   create mode 100644 drivers/peci/peci-core.c
>>   create mode 100644 include/linux/peci.h
>>   create mode 100644 include/uapi/linux/peci-ioctl.h
> 
> I'm struggling to see the justification for adding an entirely new
> subsystem for what looks like a bespoke, and perhaps more damning,
> *proprietary* 1-wire interface.  Especially one which has such
> limited use.  Between yourself and the other silicon chip vendors
> there must be 100s of these knocking about.  What makes this one
> special?  Or even useful?  Will there ever be more than a single
> source file in this directory?
> 
> Don't get me wrong, I'm all for upstreaming code, but to create a new
> subsystem and bus for this kind of device seems very over the top.
> 
> Since PECI's main purpose in life is Thermal Management, perhaps the
> whole thing should live in drivers/thermal or drivers/hwmon.  I've
> also seen you reference this as a kind of BMC too, so maybe
> drivers/platform/x86 would also be a nice place for it to reside.
> 

I think, I already discussed about it with other reviewers but I have to
explain it again. Yes, PECI is yet not a popular interface but plays a
vital role in BMC system, so most of BMC chip vendors provide PECI
interface in their BMC chipsets, and it is the reason why the PECI
subsystem is added by this implementation because we should provide a
generic bus system for those BMC chipsets from multiple vendors so
that they can add their chip set specific driver to support that through
the generic interface. At this moment, the folder has only PECI core and
ASPEED PECI adapter drivers but other vendors' (i.e. Nuvoton) driver
could be added into the folder.

As you said, PECI's main purpose is Thermal Management but it's not
limited on that. As I already said in another thread and the cover
letter, PECI also can provide other sideband functions such as Platform
Manageability, Processor Tuning and Diagnostics and Failure Analysis.

AFAIK, only ARM core based BMC chipsets are rolled out so this
PECI implementation will be running on an ARM kernel at this moment.
It's not an x86 limited implementation.

Thanks,

Jae


More information about the openbmc mailing list