linux-efi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
To: Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
Cc: "Kweh,
	Hock Leong"
	<hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Matt Fleming
	<matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>,
	Andy Lutomirski <luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org>,
	Ming Lei <ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>,
	"Ong,
	Boon Leong"
	<boon.leong.ong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Sam Protsenko
	<semen.protsenko-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Peter Jones <pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Roy Franz <roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>
Subject: Re: [PATCH v4 2/2] efi: an sysfs interface for user to update efi firmware
Date: Tue, 21 Apr 2015 18:21:19 -0700	[thread overview]
Message-ID: <1429665679.2207.44.camel@HansenPartnership.com> (raw)
In-Reply-To: <20150421075620.GA11000-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>

On Tue, 2015-04-21 at 09:56 +0200, Greg Kroah-Hartman wrote:
> On Tue, Apr 21, 2015 at 03:23:55AM +0000, Kweh, Hock Leong wrote:
> > > -----Original Message-----
> > > From: Greg Kroah-Hartman [mailto:gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org]
> > > Sent: Monday, April 20, 2015 10:43 PM
> > > 
> > > On Mon, Apr 20, 2015 at 03:28:32AM +0000, Kweh, Hock Leong wrote:
> > > > Regarding the 'reboot require' status, is it critical to have a 1 to 1 status
> > > match
> > > > with the capsule upload binary? Is it okay to have one sysfs file note to tell
> > > the
> > > > overall status (for example: 10 capsule binaries uploaded but one require
> > > > reboot, so the status shows reboot require is yes)? I am not here trying to
> > > argue
> > > > anything. I am just trying to find out what kind of info is needed but the
> > > sysfs
> > > > could not provide.
> > > >
> > > > Please imagine if your whole Linux system (kernel + rootfs) has to fit into
> > > 6MB
> > > > space and you don't even have the gcc compiler included into the package.
> > > > I believe in this environment, kernel interface + shell command is the only
> > > > interaction that user could work with.
> > > 
> > > Why would you have to have gcc on such a system?  Why is that a
> > > requirement for having an ioctl/char interface?
> > 
> > This is my logic:
> > - Besides writing a C program (for example), I am not aware any shell script
> >   could perform an ioctl function call. This led me to if I don't have an execution
> >   binary then I need a compiler to compile the source to execution binary.
> 
> You would have built it on a separate machine, like the one you used to
> build your kernel and other binary packages you are running.
> 
> > - For embedded product as mentioned above, not all vendors willing to carry
> >   the userland tool when they are struggling to fit into small memory space.
> >   Yet, you may say this tool would not eat up a lot of space compare to others.
> >   But when the source of this tool being upstream-ed to the tools/ kernel tree,
> >   we cannot stop people to contribute and make the tool more features support,
> >   eventually the embedded product may need to drop the tool.
> 
> So because someday in the future someone might make the code that is
> open source too big for us to use, we are going to reject the idea
> today?  That really doesn't make any sense.

I think we can all agree that interfaces that don't require special
purpose tools are easier to use. That doesn't mean that every interface
has to not use them, because that would be impossible.  However it does
mean that if we can get away without using them, we should.

> > > And if you only have 6Mb of space, you don't have UEFI, sorry, there's
> > > no way that firmware can get that small.
> > 
> > Actually there is. Quark is one of the examples. The kernel + rootfs take
> > up 6MB and the UEFI consume only 2MB, so total size 8MB in the spi chip.
> > If you have an Intel Galileo board, you don't need any mass storage (SD & USB),
> > you are able to boot to Linux console.
> 
> Does Galieleo support this UEFI feature?  If so, great, how big is a
> binary that can read a file and write the data using an ioctl?

The capsule file is usually the same size as the NVRAM for an embedded
system (on Galileo Gen I, this is 8MB) it usually includes not only the
UEFI but also the OS payload.  I actually load UEFI only capsules on
Galileo and they're around 2MB.

There have been a lot of red herrings in this thread (like namespace
confusion and ideas about how big UEFI FW can be), but the problem
summary is:

        We need a way of updating FW including payload via the UEFI
        capsule mechanism.  Since the payload is usually as big as the
        NVRAM and the NVRAM contains the OS, we can't place the payload
        at any OS location.  Unlike usual firmware, the capsule update
        is fire and forget (once the update is done we don't need the
        capsule file anymore).
        
So what we need is a way to load the capsule data from arbitrary storage
and then trigger the update.

Andy, just on the misc device idea, what about triggering the capsule
update from close()?  In theory close returns an error code (not sure if
most tools actually check this, though).  That means we can do the write
in chunks but pass it in atomically on the close and cat will work
(provided it checks the return code of close).

James

  parent reply	other threads:[~2015-04-22  1:21 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-14  9:44 [PATCH v4 0/2] Enable capsule loader interface for efi firmware updating Kweh, Hock Leong
     [not found] ` <1429004697-28320-1-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-14  9:44   ` [PATCH v4 1/2] firmware_loader: introduce new API - request_firmware_direct_full_path() Kweh, Hock Leong
2015-04-14 14:08     ` Greg Kroah-Hartman
2015-04-14 15:56       ` Andy Lutomirski
     [not found]         ` <CALCETrW_aXJ1iiXCa6aTE3r3J3EF_Njn5bb9=At_3ajCzPFSPg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-14 16:18           ` Borislav Petkov
     [not found]             ` <20150414161833.GE14069-fF5Pk5pvG8Y@public.gmane.org>
2015-04-15 10:14               ` Matt Fleming
     [not found]                 ` <20150415101455.GB4804-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2015-04-15 10:18                   ` Borislav Petkov
     [not found]                     ` <20150415101805.GC2282-fF5Pk5pvG8Y@public.gmane.org>
2015-04-15 11:09                       ` Matt Fleming
2015-04-15 13:15           ` Greg Kroah-Hartman
2015-04-15 15:53             ` Andy Lutomirski
     [not found]     ` <1429004697-28320-2-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-15 12:48       ` Matt Fleming
2015-04-14  9:44   ` [PATCH v4 2/2] efi: an sysfs interface for user to update efi firmware Kweh, Hock Leong
     [not found]     ` <1429004697-28320-3-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-14 14:09       ` Greg Kroah-Hartman
     [not found]         ` <20150414140914.GE5989-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-14 15:52           ` Andy Lutomirski
     [not found]             ` <CALCETrWeW8Gp9QFGCVhPmNo_Z+xsCJN7LYMPD6XNc92_dKMz3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-15 13:20               ` Greg Kroah-Hartman
     [not found]                 ` <20150415132000.GD21491-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-15 15:45                   ` Andy Lutomirski
     [not found]                     ` <CALCETrWUTjTLmwPZAwXrj06SwYaSX_7+XSTsVun2+HYC4wsqZQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-16  0:19                       ` Roy Franz
     [not found]                         ` <CAFECyb-bthi74VwkF8fpZg8ZpoyORmE5X+8dbRGG1uTP8RUm_A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-17 13:50                           ` Greg KH
2015-04-15 11:32           ` Kweh, Hock Leong
     [not found]             ` <F54AEECA5E2B9541821D670476DAE19C2B8D2AEA-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-15 13:19               ` Greg Kroah-Hartman
2015-04-16  9:42                 ` Kweh, Hock Leong
     [not found]                   ` <F54AEECA5E2B9541821D670476DAE19C2B8D2E74-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-17 13:49                     ` Greg Kroah-Hartman
2015-04-17 14:36                       ` Matt Fleming
     [not found]                         ` <20150417143640.GB3671-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2015-04-20  3:28                           ` Kweh, Hock Leong
2015-04-20 14:43                             ` Greg Kroah-Hartman
     [not found]                               ` <20150420144323.GA7261-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-21  3:23                                 ` Kweh, Hock Leong
     [not found]                                   ` <F54AEECA5E2B9541821D670476DAE19C2CC11869-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-21  7:56                                     ` Greg Kroah-Hartman
     [not found]                                       ` <20150421075620.GA11000-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-22  1:21                                         ` James Bottomley [this message]
     [not found]                                           ` <1429665679.2207.44.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22  1:58                                             ` Andy Lutomirski
2015-04-22  2:20                                               ` James Bottomley
     [not found]                                                 ` <1429669228.2207.46.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22  3:24                                                   ` Andy Lutomirski
     [not found]                                                     ` <CALCETrVsmQxoJ6WxVnW03Q9Hq8oH=zuv662S6TJxFwb26d=erQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-22  4:51                                                       ` James Bottomley
     [not found]                                                         ` <1429678269.18798.9.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 16:50                                                           ` Andy Lutomirski
     [not found]                                                             ` <CALCETrU5u5nUJB4i0KRPZGvXgohW5ojxxOOv-_pR2OLmypvXyw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-22 17:34                                                               ` James Bottomley
     [not found]                                                                 ` <1429724049.2195.44.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 17:45                                                                   ` Andy Lutomirski
     [not found]                                               ` <CALCETrX9GZmWnfkm-CwKW-2mPvRbNcRaY6tUY=8e0THsPBKMcA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-22 13:27                                                 ` Peter Jones
2015-04-22 15:18                                                   ` James Bottomley
     [not found]                                                     ` <1429715913.2195.22.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 15:24                                                       ` One Thousand Gnomes
2015-04-23  8:30                                                       ` Kweh, Hock Leong
2015-04-23 14:09                                                         ` James Bottomley
     [not found]                                                           ` <1429798187.2170.3.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-24  2:14                                                             ` Kweh, Hock Leong
     [not found]                                                               ` <F54AEECA5E2B9541821D670476DAE19C2CC12798-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-24 15:16                                                                 ` James Bottomley
     [not found]                                                                   ` <1429888575.2182.20.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-27 21:59                                                                     ` Andy Lutomirski
     [not found]                                                                       ` <CALCETrU2G10uGvdB6kVyfMPA=biuZwK7BAeqmKuY=jvN38K2wA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-27 22:35                                                                         ` James Bottomley
     [not found]                                                                           ` <1430174136.2314.49.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-27 22:40                                                                             ` Andy Lutomirski
     [not found]                                                                               ` <CALCETrXeh+y1XZrdDyhEmy+GK6z7-swZNPYGZybnqzppWAE+Wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-27 22:51                                                                                 ` James Bottomley
     [not found]                                                                                   ` <1430175112.2314.56.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-29 11:23                                                                                     ` Kweh, Hock Leong
2015-04-29 18:40                                                                                       ` Andy Lutomirski
     [not found]                                                                                         ` <CALCETrXBFBqwZ=A+zoC5Lj0Zr2_2hEkSBX0hrLZJRjyDWqjucA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-29 21:37                                                                                           ` James Bottomley
2015-04-30  9:17                                                                                           ` Kweh, Hock Leong
     [not found]                                                                                             ` <F54AEECA5E2B9541821D670476DAE19C2CC142E1-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-30 17:55                                                                                               ` Andy Lutomirski
     [not found]                                                                                       ` <F54AEECA5E2B9541821D670476DAE19C2CC13F37-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-29 21:35                                                                                         ` James Bottomley
2015-04-29 21:36                                                                                           ` Andy Lutomirski
2015-04-29 21:39                                                                                             ` James Bottomley
2015-04-29 21:42                                                                                               ` Andy Lutomirski
2015-04-20 17:59                       ` James Bottomley
     [not found]                 ` <20150415131906.GC21491-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-22 15:35                   ` James Bottomley
     [not found]                     ` <1429716954.2195.28.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 15:46                       ` Greg Kroah-Hartman
     [not found]                         ` <20150422154620.GA32576-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-22 16:11                           ` James Bottomley
     [not found]                             ` <1429719077.2195.37.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-23  9:50                               ` Greg Kroah-Hartman
2015-04-23 16:14                                 ` James Bottomley
     [not found]                                   ` <1429805658.6624.2.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-23 20:38                                     ` 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=1429665679.2207.44.camel@HansenPartnership.com \
    --to=james.bottomley-d9phhud1jfjcxq6kfmz53/egyhegw8jk@public.gmane.org \
    --cc=boon.leong.ong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org \
    --cc=matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org \
    --cc=ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org \
    --cc=pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=semen.protsenko-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    /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).