Re: [PATCH v4 1/2] firmware_loader: introduce new API - request_firmware_direct_full_path()

Andy Lutomirski
2015-04-14T15:56:55Z

On Tue, Apr 14, 2015 at 10:08 AM, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> On Tue, Apr 14, 2015 at 05:44:55PM +0800, Kweh, Hock Leong wrote:
>> From: "Kweh, Hock Leong" <hock.leong.kweh@intel.com>
>>
>> Introduce this new API for loading firmware from a specific location
>> instead of /lib/firmware/ by providing a full path to the firmware
>> file.
>
> Ick, why would we want this?
>

Because this mechanism should still work even if /lib is unwriteable
(e.g it's on squashfs or a read-only NFS root).

In this regard, UEFI capsules are very much unlike firmware_class
firmware. firmware_class firmwise is kind of like device drivers; it
generally comes from the same vendor as your kernel image and
/lib/modules, and it can be updated by the same mechanism. UEFI
capsules, on the other hand, are one-time things that should be loaded
at the explicit request of the admin. There is no reason whatsoever
that they should exist on persistent storage, and, in fact, there's a
very good reason that they should not. On little embedded devices,
which will apparently be the initial users of this code, keeping the
capsules around is a waste of valuable space.

This is why I think that the right approach would be to avoid using
firmware_class entirely for this. IMO a simple_char device would be
the way to go (hint hint...) but other simple approaches are certainly
possible.

--Andy