From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Jeremy Kerr <jk@codeconstruct.com.au>
Cc: "Adrian Ambrozewicz" <aambrozewicz@nvidia.com>,
"Donald Shannon" <donalds@nvidia.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Linus Walleij" <linusw@kernel.org>,
"Bartosz Golaszewski" <brgl@kernel.org>,
"Lee Jones" <lee@kernel.org>, "Pavel Machek" <pavel@kernel.org>,
"Andi Shyti" <andi.shyti@kernel.org>,
"Mark Brown" <broonie@kernel.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Corey Minyard" <corey@minyard.net>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Len Brown" <lenb@kernel.org>, "Jonathan Corbet" <corbet@lwn.net>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Hans de Goede" <hansg@kernel.org>,
"Lixu Zhang" <lixu.zhang@intel.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"Johan Hovold" <johan@kernel.org>,
"Oliver Neukum" <oneukum@suse.com>,
"Quan Nguyen" <quan@os.amperecomputing.com>,
"Andrew Jeffery" <andrew@codeconstruct.com.au>,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-leds@vger.kernel.org,
linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org,
linux-serial@vger.kernel.org,
openipmi-developer@lists.sourceforge.net,
linux-acpi@vger.kernel.org, linux-doc@vger.kernel.org,
driver-core@lists.linux.dev, linux-kernel@vger.kernel.org,
"Bart Van Assche" <bvanassche@google.com>
Subject: Re: [PATCH 00/11] Add NVIDIA LSTP USB adapter drivers
Date: Fri, 30 Oct 2026 06:32:18 +0100 [thread overview]
Message-ID: <2026103015-stained-shudder-1582@gregkh> (raw)
In-Reply-To: <f3f305a0f3195948bd25ca7eea4348113f998ee2.camel@codeconstruct.com.au>
On Fri, Oct 30, 2026 at 12:06:15PM +0800, Jeremy Kerr wrote:
> Hi Greg,
>
> > FWIW, we did raise greybus as an approach to various HW vendors; I
> > assume there were reasons behind OBMF-ICP, and assume some prior-art
> > assesment was involved, but I don't have specifics for those reasons.
> >
> > HW peeps: This would be an excellent opportunity for elaboration on the
> > motivation there, either for LSTP or OBMF-OCP.
>
> I have been doing some asking around, and a few items came up around
> motivations for OBMC-ICP over Greybus. My motivation here is entirely
> around OBMF-ICP; the NVIDIA contributions for LSTP somewhat comes under
> this, and so we're working on composing a unified solution.
>
> Collating some of those items here:
>
> As a bit of background, the typical use case for OBMF-ICP is for
> platform pre-boot environments, with limitations in capabilities of both
> the hardware and software stack. Microcontroller and mask-ROM
> implementations of either side of the protocol are potential targets.
>
> This leads to the structure of OBMF-ICP being intentionally
> light-weight; the channel configuration (ie, definition of the
> encapsulated devices) is static, and the channel-level messaging is kept
> simple, mainly through a requirement of only one message in flight per
> channel.
greybus is very light-weight, you don't need to have more than one
message in flight. That's not a real answer :)
> [Greg, this is related to one of your points around why not use a
> multi-function USB device for individual, separate devices: the typical
> device-side hardware does not have support for enough USB endpoints to
> do so. Like greybus, the intention is to be able to support multiple
> downstream peripherals without constraints from USB hardware on existing
> SoC devices]
That's for LSTP, and USB devices are dirt cheap, multi-endpoint ones
should also be very cheap compared to the system they are attempting to
control here. Don't place this on a "it would cost too much so we are
going to fix that by making the software a complex beast and having
someone else solve our problem for us" solution driven by a hardware
designer. That's not acceptable these days, you all know that...
> There are a few design points that lead to the preference for OBMF-ICP:
>
> The front-loaded configuration mechanism means less state to manage on
> both sides of the protocol; the channel set and channel-specific
> parameters (like individual GPIO descriptors and flash geometry) being
> stable over the lifetime of the device means simpler core protocol
> support and channel driver implementations.
What state needs to be managed here for Greybus? And given that there
is firware and kernel code for greybus already written and working for
10+ years, that feels simpler to me.
> The simpler channel communication protocol is better suited to
> lower-complexity interfaces that are needed for the pre-boot
> environments (GPIO control, uart, IPMI, flash access) than the greybus
> targets for mobile device runtime, with higher-bandwidth communication
> requirements (camera, audio, display). For example, typical platform
> management functions generally involve a lot of short i2c operations -
> ICP messages for these are around half the length of greybus
> equivalents.
You don't have to do the high-bandwidth devices, just be a low-bandwidth
device. and "size" of an operation doesn't make sense here, it's just
bytes in a buffer that you have plenty of on both sides of the
connection.
> For the platform-boot use-cases, we would need to provide a bunch of new
> channel definitions for greybus. This certainly isn't a showstopper in
> itself, but the specification does not appear to be in active
> development; last change was 10 years ago, and the spec repository has
> since been archived as far as I can tell (and so is read-only).
There are new proposals for the spec, see the mailing list. And what is
missing for your needs that isn't currently present?
I haven't read all of OBMF, as obviously that isn't what is being
proposed here, I was just complaining about the madness of attempting to
create a device tree representation for a single USB device that wanted
to be carved up into different virtual devices because no one decided to
learn from history.
I have other objections about OBMF-ICP, but that's not what this thread
is about, sorry. Please propose your own patch series for that and I'll
be glad to criticize it there.
And all of these seem to be OMBC answers, not LSTP answers. There's
still no excuse for LSTP to be designed like this :)
> With OBMF-ICP's super-minimal core protocol, and the use-case
> appropriate channels, seems like a suitable approach to me.
>
> The USB-IF has a class ID allocated for OBMF-ICP interface descriptors,
> with the intention that we have multiple vendor implementations of the
> common protocol; we would like Linux to be one of those.
It's always fun to make a new spec and protocol, but getting an ID
doesn't mean that usb-if says "this is how it shoudl be done." Anyone
can get an ID :)
sorry,
greg k-h
prev parent reply other threads:[~2026-10-30 5:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 17:35 [PATCH 00/11] Add NVIDIA LSTP USB adapter drivers Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 02/11] dt-bindings: i2c: Add NVIDIA LSTP I2C Adrian Ambrozewicz
2026-10-13 6:11 ` Krzysztof Kozlowski
2026-10-12 17:36 ` [PATCH 08/11] i2c: Add NVIDIA LSTP I2C driver Adrian Ambrozewicz
2026-10-13 11:37 ` [PATCH 00/11] Add NVIDIA LSTP USB adapter drivers Greg Kroah-Hartman
2026-10-16 8:44 ` Adrian Ambrozewicz
2026-10-22 10:40 ` Adrian Ambrozewicz
2026-10-22 13:29 ` Greg Kroah-Hartman
2026-10-13 11:39 ` Greg Kroah-Hartman
2026-10-14 3:38 ` Jeremy Kerr
2026-10-14 4:53 ` Greg Kroah-Hartman
2026-10-16 8:19 ` Adrian Ambrozewicz
2026-10-30 4:06 ` Jeremy Kerr
2026-10-30 5:32 ` Greg Kroah-Hartman [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=2026103015-stained-shudder-1582@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=aambrozewicz@nvidia.com \
--cc=andi.shyti@kernel.org \
--cc=andrew@codeconstruct.com.au \
--cc=brgl@kernel.org \
--cc=broonie@kernel.org \
--cc=bvanassche@google.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=corey@minyard.net \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=donalds@nvidia.com \
--cc=driver-core@lists.linux.dev \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=jk@codeconstruct.com.au \
--cc=johan@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=lenb@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lixu.zhang@intel.com \
--cc=oneukum@suse.com \
--cc=openipmi-developer@lists.sourceforge.net \
--cc=pavel@kernel.org \
--cc=quan@os.amperecomputing.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=sakari.ailus@linux.intel.com \
/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