linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: dmitry.torokhov@gmail.com,
	"Matt Fleming" <matt@codeblueprint.co.uk>,
	"Will Deacon" <will.deacon@arm.com>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"David Howells" <dhowells@redhat.com>,
	"David Brown" <david.brown@linaro.org>,
	"Peter Jones" <pjones@redhat.com>,
	"H . Peter Anvin" <hpa@zytor.com>,
	"open list:ANDROID DRIVERS" <devel@driverdev.osuosl.org>,
	nbroeking@me.com, x86@kernel.org,
	"Arve Hjønnevåg" <arve@android.com>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Andy Gross" <andy.gross@linaro.org>,
	"Darren Hart" <dvhart@infradead.org>,
	"Mimi Zohar" <zohar@linux.vnet.ibm.com>,
	"Arend Van Spriel" <arend.vanspriel@broadcom.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Kees Cook" <keescook@chromium.org>,
	linux-efi <linux-efi@vger.kernel.org>,
	linux-arm-msm@vger.kernel.org, "Torsten Duwe" <duwe@suse.de>,
	"Josh Triplett" <josh@joshtriplett.org>,
	"Chris Wright" <chrisw@sous-sol.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Andy Lutomirski" <luto@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	platform-driver-x86@vger.kernel.org,
	"Martijn Coenen" <maco@android.com>,
	"Kalle Valo" <kvalo@codeaurora.org>,
	"Alan Cox" <alan@linux.intel.com>,
	mfuzzey@parkeon.com, "Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Vikram Mulukutla" <markivx@codeaurora.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-security-module@vger.kernel.org,
	"Dave Olsthoorn" <dave@bewaar.me>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Andy Shevchenko" <andy@infradead.org>
Subject: Re: [PATCH v3 2/5] efi: Add embedded peripheral firmware support
Date: Tue, 8 May 2018 16:10:37 +0000	[thread overview]
Message-ID: <20180508161037.GE27853@wotan.suse.de> (raw)
In-Reply-To: <20180508153805.GC27853@wotan.suse.de>

On Tue, May 08, 2018 at 03:38:05PM +0000, Luis R. Rodriguez wrote:
> On Fri, May 04, 2018 at 12:44:37PM -0700, Martijn Coenen wrote:
> > On Wed, Apr 25, 2018 at 10:55 AM, Luis R. Rodriguez <mcgrof@kernel.org> wrote:
> > > Android became the primary user of CONFIG_FW_LOADER_USER_HELPER_FALLBACK.
> > >
> > > It would be good for us to hear from Android folks if their current use of
> > > request_firmware_into_buf() is designed in practice to *never* use the direct
> > > filesystem firmware loading interface, and always rely instead on the
> > > fallback mechanism.
> > 
> > It's hard to answer this question for Android in general. As far as I
> > can tell the reasons we use CONFIG_FW_LOADER_USER_HELPER(_FALLBACK)
> > are:
> > 1) We have multiple different paths on our devices where firmware can
> > be located, and the direct loader only supports one custom path

FWIW I'd love to consider patches to address this, if this is something
you may find a need for in the future to *avoid* the fallback, however
would like a clean solution.

> > 2) Most of those paths are not mounted by the time the corresponding
> > drivers are loaded, because pretty much all Android kernels today are
> > built without module support, and therefore drivers are loaded well
> > before the firmware partition is mounted

I've given this some more thought and you can address this with initramfs,
this is how other Linux distributions are addressing this. One way to
address this automatically is to scrape the drivers built-in or needed early on
boot in initamfs and if the driver has a MODULE_FIRMWARE() its respective
firmware is added to initramfs as well.

If you *don't* use initramfs, then yes you can obviously run into issues
where your firmware may not be accessible if the driver is somehow loaded
early.

> > 3) I think we use _FALLBACK because doing this with uevents is just
> > the easiest thing to do; our init code has a firmware helper that
> > deals with this and searches the paths that we care about
> > 
> > 2) will change at some point, because Android is moving towards a
> > model where device-specific peripheral drivers will be loaded as
> > modules, and since those modules would likely come from the same
> > partition as the firmware, it's possible that the direct load would
> > succeed (depending on whether the custom path is configured there or
> > not). But I don't think we can rely on the direct loader even in those
> > cases, unless we could configure it with multiple custom paths.

Using initramfs will help, but because of the custom path needs -- you're
right, we don't have anything for that yet, its also a bit unclear if
something nice and clean can be drawn up for it. So perhaps dealing with
the fallback mechanism is the way to go for this for sure, since we already
have support for it.

Just keep in mind that the fallback mechanism costs you about ~13436 bytes.

So, if someone comes up with a clean interface for custom paths I'd love
to consider it to avoid those 13436 bytes.

  Luis
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

  reply	other threads:[~2018-05-08 16:10 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-08 17:40 [PATCH v3 0/5] efi/firmware/platform-x86: Add EFI embedded fw support Hans de Goede
2018-04-08 17:40 ` [PATCH v3 1/5] efi: Export boot-services code and data as debugfs-blobs Hans de Goede
2018-04-16  8:23   ` Ard Biesheuvel
2018-04-24 13:11     ` Hans de Goede
2018-04-23 11:55   ` Greg Kroah-Hartman
2018-04-08 17:40 ` [PATCH v3 2/5] efi: Add embedded peripheral firmware support Hans de Goede
2018-04-16  8:28   ` Ard Biesheuvel
2018-04-24 13:17     ` Hans de Goede
2018-04-17  0:17   ` Luis R. Rodriguez
2018-04-17  8:58     ` Hans de Goede
2018-04-17  9:19     ` Hans de Goede
2018-04-23 21:11   ` Luis R. Rodriguez
2018-04-24 15:09     ` Hans de Goede
2018-04-24 16:07       ` Mimi Zohar
2018-04-24 18:33         ` Hans de Goede
2018-04-24 23:42         ` Luis R. Rodriguez
2018-04-25  5:00           ` Mimi Zohar
2018-04-25 17:55             ` Luis R. Rodriguez
2018-05-04  0:21               ` Luis R. Rodriguez
2018-05-04 15:26                 ` Martijn Coenen
2018-05-04 19:44               ` Martijn Coenen
2018-05-08 15:38                 ` Luis R. Rodriguez
2018-05-08 16:10                   ` Luis R. Rodriguez [this message]
2018-06-07 16:49                     ` Bjorn Andersson
2018-06-07 18:22                       ` Luis R. Rodriguez
2018-06-01 19:23                   ` Luis R. Rodriguez
2018-06-06 20:32                     ` Do Qualcomm drivers use DMA buffers for request_firmware_into_buf()? Luis R. Rodriguez
2018-06-07 16:18                       ` Bjorn Andersson
     [not found]                         ` <CAKv+Gu8+Fq7BD4XD-YCyXzZh0mg6Z2k-0styj0cw6_uZfaqy4Q@mail.gmail.com>
     [not found]                           ` <20180607163308.GA18834@kroah.com>
2018-06-08  6:41                             ` Vlastimil Babka
2018-06-07 16:33             ` [PATCH v3 2/5] efi: Add embedded peripheral firmware support Bjorn Andersson
2018-04-08 17:40 ` [PATCH v3 3/5] platform/x86: Rename silead_dmi to touchscreen_dmi Hans de Goede
2018-04-09  8:07   ` Andy Shevchenko
2018-04-20  0:20     ` Darren Hart
2018-04-08 17:40 ` [PATCH v3 4/5] platform/x86: touchscreen_dmi: Add EFI embedded firmware info support Hans de Goede
2018-04-08 17:40 ` [PATCH v3 5/5] platform/x86: touchscreen_dmi: Add info for the Chuwi Vi8 Plus tablet Hans de Goede
2018-04-09  8:10   ` Andy Shevchenko

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=20180508161037.GE27853@wotan.suse.de \
    --to=mcgrof@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=alan@linux.intel.com \
    --cc=andy.gross@linaro.org \
    --cc=andy@infradead.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=arend.vanspriel@broadcom.com \
    --cc=arve@android.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=chrisw@sous-sol.org \
    --cc=dave@bewaar.me \
    --cc=david.brown@linaro.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=dhowells@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=duwe@suse.de \
    --cc=dvhart@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=hpa@zytor.com \
    --cc=josh@joshtriplett.org \
    --cc=keescook@chromium.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=maco@android.com \
    --cc=markivx@codeaurora.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=mfuzzey@parkeon.com \
    --cc=mingo@redhat.com \
    --cc=nbroeking@me.com \
    --cc=pjones@redhat.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tkjos@android.com \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.com \
    --cc=x86@kernel.org \
    --cc=zohar@linux.vnet.ibm.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;
as well as URLs for NNTP newsgroup(s).