mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jeremy Kerr <jk@codeconstruct.com.au>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Adrian Ambrozewicz <aambrozewicz@nvidia.com>
Cc: "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 12:06:15 +0800	[thread overview]
Message-ID: <f3f305a0f3195948bd25ca7eea4348113f998ee2.camel@codeconstruct.com.au> (raw)
In-Reply-To: <c569c912141e9da7530121b8b2fc81527e0518a4.camel@codeconstruct.com.au>

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.

[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]

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.

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.

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).

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.

Cheers,


Jeremy

  parent reply	other threads:[~2026-10-30  4:06 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-12 17:35 Adrian Ambrozewicz
2026-10-12 17:35 ` [PATCH 01/11] dt-bindings: gpio: Add NVIDIA LSTP GPIO Adrian Ambrozewicz
2026-10-13  6:09   ` Krzysztof Kozlowski
2026-10-16  8:44     ` 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 03/11] dt-bindings: spi: Add NVIDIA LSTP SPI Adrian Ambrozewicz
2026-10-13  6:11   ` Krzysztof Kozlowski
2026-10-12 17:36 ` [PATCH 04/11] dt-bindings: usb: Add NVIDIA LSTP USB adapter Adrian Ambrozewicz
2026-10-13  6:13   ` Krzysztof Kozlowski
2026-10-13  6:17   ` Krzysztof Kozlowski
2026-10-22 10:40     ` Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 05/11] usb: misc: Add NVIDIA LSTP USB adapter driver Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 06/11] gpio: Add NVIDIA LSTP GPIO driver Adrian Ambrozewicz
2026-10-13 23:25   ` Linus Walleij
2026-10-16  8:19     ` Adrian Ambrozewicz
2026-10-16 21:14       ` Linus Walleij
2026-10-20 13:53         ` Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 07/11] leds: Add NVIDIA LSTP LED driver Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 08/11] i2c: Add NVIDIA LSTP I2C driver Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 09/11] spi: Add NVIDIA LSTP SPI driver Adrian Ambrozewicz
2026-10-12 17:36 ` [PATCH 10/11] tty: Add NVIDIA LSTP UART driver Adrian Ambrozewicz
2026-10-13  5:49   ` Jiri Slaby
2026-10-16  8:19     ` Adrian Ambrozewicz
2026-10-15  1:25   ` kernel test robot
2026-10-16  7:43   ` kernel test robot
2026-10-12 17:36 ` [PATCH 11/11] ipmi: Add NVIDIA LSTP IPMI BMC driver Adrian Ambrozewicz
2026-10-12 21:10   ` Corey Minyard
2026-10-16  8:19     ` Adrian Ambrozewicz
2026-10-16 12:26       ` Corey Minyard
2026-10-20 13:53         ` 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 [this message]
2026-10-30  5:32       ` Greg Kroah-Hartman

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=f3f305a0f3195948bd25ca7eea4348113f998ee2.camel@codeconstruct.com.au \
    --to=jk@codeconstruct.com.au \
    --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=gregkh@linuxfoundation.org \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jirislaby@kernel.org \
    --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

all inboxes | Powered by JetHome®