From: Zev Weiss <zev@bewilderbeest.net>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Mark Brown <broonie@kernel.org>, Jean Delvare <jdelvare@suse.com>,
linux-hwmon@vger.kernel.org, Andrew Jeffery <andrew@aj.id.au>,
Liam Girdwood <lgirdwood@gmail.com>,
linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org
Subject: Re: Enabling pmbus power control
Date: Mon, 19 Apr 2021 20:29:53 -0500 [thread overview]
Message-ID: <YH4ukR5egB2eG0Vo@hatter.bewilderbeest.net> (raw)
In-Reply-To: <20210330193810.GA235990@roeck-us.net>
On Tue, Mar 30, 2021 at 02:38:10PM CDT, Guenter Roeck wrote:
>On Tue, Mar 30, 2021 at 07:02:00PM +0100, Mark Brown wrote:
>> On Tue, Mar 30, 2021 at 12:56:56PM -0500, Zev Weiss wrote:
>>
>> > Okay, to expand a bit on the description in my initial message -- we've
>> > got a single chassis with multiple server boards and a single manager board
>> > that handles, among other things, power control for the servers.
>> > The manager board has one LM25066 for each attached server, which acts as
>> > the "power switch" for that server. There thus really isn't any driver to
>> > speak of for the downstream device.
>>
>> This sounds like you need a driver representing those server boards (or
>> the slots they plug into perhaps) that represents everything about those
>> boards to userspace, including power switching. I don't see why you
>> wouldn't have a driver for that - it's a thing that physically exists
>> and clearly has some software control, and you'd presumably also expect
>> to represent some labelling about the slot as well.
>
>Absolutely agree.
>
>Thanks,
>Guenter
Hi Guenter, Mark,
I wanted to return to this to try to explain why structuring the kernel
support for this in a way that's specific to the device behind the PMIC
seems like an awkward fit to me, and ultimately kind of artificial.
In the system I described, the manager board with the LM25066 devices is
its own little self-contained BMC system running its own Linux kernel
(though "BMC" is perhaps a slightly misleading term because there's no
host system that it manages). The PMICs are really the only relevant
connection it has to the servers it controls power for -- they have
their own dedicated local BMCs on board as well doing all the usual BMC
tasks. A hypothetical dedicated driver for this on the manager board
wouldn't have any other hardware to touch aside from the pmbus interface
of the LM25066 itself, so calling it a server board driver seems pretty
arbitrary -- and in fact the same system also has another LM25066 that
controls the power supply to the chassis cooling fans (a totally
different downstream device, but one that would be equally well-served
by the same software).
More recently, another system has entered the picture for us that might
illustrate it more starkly -- the Delta Open19 power shelf [0] supported
by a recent code release from LinkedIn [1]. This is a rackmount power
supply with fifty outputs, each independently switchable via an LM25066
attached to an on-board BMC-style management controller (though again,
no host system involved). We (Equinix Metal) are interested in porting
a modern OpenBMC to it to replace the dated, crufty,
pre-Linux-Foundation version of OpenBMC it currently runs (as found in
the linked repo). The exact nature of the devices powered by its
outputs is well outside the scope of the firmware running on that
controller (it could be any arbitrary thing that runs on 12VDC), but we
still want to be able to both (a) retrieve per-output
voltage/current/power readings as provided by the existing LM25066 hwmon
support, and (b) control the on/off state of those outputs from
userspace.
Given the array of possible use-cases, an approach of adding
power-switch functionality to the existing LM25066 support seems like
the most obvious way to support this, so I'm hoping to see if I can get
some idea of what an acceptable implementation of that might look like.
Thanks,
Zev
[0] https://www.open19.org/marketplace/delta-16kw-power-shelf/
[1] https://github.com/linkedin/o19-bmc-firmware/tree/master/meta-openbmc/meta-linkedin/meta-deltapower
next prev parent reply other threads:[~2021-04-20 1:29 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-30 8:17 Enabling pmbus power control Zev Weiss
2021-03-30 10:34 ` Guenter Roeck
2021-03-30 11:22 ` Mark Brown
2021-03-30 17:19 ` Zev Weiss
2021-03-30 17:42 ` Mark Brown
2021-03-30 17:56 ` Zev Weiss
2021-03-30 18:02 ` Mark Brown
2021-03-30 19:38 ` Guenter Roeck
2021-04-20 1:29 ` Zev Weiss [this message]
2021-04-20 3:36 ` Guenter Roeck
2021-04-20 5:50 ` Zev Weiss
2021-04-20 6:00 ` Guenter Roeck
2021-04-20 7:06 ` Zev Weiss
2021-04-20 10:52 ` Guenter Roeck
2021-04-20 15:19 ` Zev Weiss
2021-04-20 16:13 ` Mark Brown
2021-04-20 16:40 ` Zev Weiss
2021-04-20 17:15 ` Mark Brown
2021-04-20 18:54 ` Zev Weiss
2021-04-21 11:05 ` Mark Brown
2021-04-21 18:29 ` Zev Weiss
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=YH4ukR5egB2eG0Vo@hatter.bewilderbeest.net \
--to=zev@bewilderbeest.net \
--cc=andrew@aj.id.au \
--cc=broonie@kernel.org \
--cc=jdelvare@suse.com \
--cc=lgirdwood@gmail.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=openbmc@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