Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: dmitry.torokhov@gmail.com,
	Matt Fleming <matt@codeblueprint.co.uk>,
	Will Deacon <will.deacon@arm.com>,
	platform-driver-x86@vger.kernel.org,
	David Howells <dhowells@redhat.com>,
	David Brown <david.brown@linaro.org>,
	Peter Jones <pjones@redhat.com>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	"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>
Subject: Re: [PATCH v3 2/5] efi: Add embedded peripheral firmware support
Date: Thu, 7 Jun 2018 20:22:56 +0200	[thread overview]
Message-ID: <20180607182256.GE5527@wotan.suse.de> (raw)
In-Reply-To: <20180607164950.GP510@tuxbook-pro>

On Thu, Jun 07, 2018 at 09:49:50AM -0700, Bjorn Andersson wrote:
> On Tue 08 May 09:10 PDT 2018, Luis R. Rodriguez wrote:
> 
> > 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:
> [..]
> > > > 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.
> > 
> 
> That could be done, but it would not change the fact that the
> /sys/class/firmware is ABI and you may not break it.

Right, this is now well documented and also the latest changes to the firmware
API have made the sysfs fallback loader an option through a sysctl knob. The
code should be much easier to follow and test now.

> And it doesn't change the fact that the ramdisk would have to be over
> 100mb to facilitate this.

Indeed, this is now acknowledged in the latest Kconfig for the firmware loader.

> > 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.
> > 
> 
> This is still a problem that lacks a solution.

The firmwared solution capturing uevents and using the sysfs fallback
mechanism should resolve this. Its also now properly documented on the
firmware loader Kconfig.

> > > > 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.
> > 
> 
> Remember that putting the firmware in the ramdisk would cost about
> 10000x (yes, ten thousand times) more ram.

Indeed, this is now documented on the Kconfig too.

> > So, if someone comes up with a clean interface for custom paths I'd love
> > to consider it to avoid those 13436 bytes.
> > 
> 
> Combined with a way of synchronizing this with the availability of the
> firmware, this would be a nice thing!

The firmwared solution seems to be the way to go for now.

  Luis

  reply	other threads:[~2018-06-07 18:22 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180408174014.21908-1-hdegoede@redhat.com>
     [not found] ` <20180408174014.21908-3-hdegoede@redhat.com>
     [not found]   ` <20180423211143.GZ14440@wotan.suse.de>
     [not found]     ` <71e6a45a-398d-b7a4-dab0-8b9936683226@redhat.com>
     [not found]       ` <1524586021.3364.20.camel@linux.vnet.ibm.com>
     [not found]         ` <20180424234219.GX14440@wotan.suse.de>
     [not found]           ` <1524632409.3371.48.camel@linux.vnet.ibm.com>
2018-04-25 17:55             ` [PATCH v3 2/5] efi: Add embedded peripheral firmware support 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
2018-06-07 16:49                     ` Bjorn Andersson
2018-06-07 18:22                       ` Luis R. Rodriguez [this message]
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-06 20:41                       ` Ard Biesheuvel
2018-06-06 22:29                         ` Luis R. Rodriguez
2018-06-06 22:41                           ` Ard Biesheuvel
2018-06-06 22:55                             ` Luis R. Rodriguez
2018-06-07 16:18                       ` Bjorn Andersson
2018-06-07 16:23                         ` Ard Biesheuvel
2018-06-07 16:33                           ` Greg Kroah-Hartman
2018-06-07 16:43                             ` Ard Biesheuvel
2018-06-07 16:49                               ` Greg Kroah-Hartman
2018-06-07 16:56                                 ` Ard Biesheuvel
2018-06-07 18:21                             ` Bjorn Andersson
2018-06-07 18:42                               ` Ard Biesheuvel
2018-06-26  0:08                                 ` Bjorn Andersson
2018-06-27 18:00                                   ` Luis R. Rodriguez
2018-06-27 22:21                                     ` Ard Biesheuvel
2018-06-27 23:33                                       ` Luis R. Rodriguez
2018-06-27 23:42                                         ` Ard Biesheuvel
2018-06-27 23:50                                           ` Luis R. Rodriguez
2018-06-08  6:41                             ` Vlastimil Babka
2018-06-07 18:06                           ` Bjorn Andersson
2018-06-18 23:49                             ` Luis R. Rodriguez

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=20180607182256.GE5527@wotan.suse.de \
    --to=mcgrof@kernel.org \
    --cc=andy.gross@linaro.org \
    --cc=arend.vanspriel@broadcom.com \
    --cc=arve@android.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=chrisw@sous-sol.org \
    --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=hpa@zytor.com \
    --cc=josh@joshtriplett.org \
    --cc=keescook@chromium.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=mingo@redhat.com \
    --cc=nbroeking@me.com \
    --cc=pjones@redhat.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=tkjos@android.com \
    --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