1. 28 4月, 2016 1 次提交
    • M
      efi: Add 'capsule' update support · f0133f3c
      Matt Fleming 提交于
      The EFI capsule mechanism allows data blobs to be passed to the EFI
      firmware. A common use case is performing firmware updates. This patch
      just introduces the main infrastructure for interacting with the
      firmware, and a driver that allows users to upload capsules will come
      in a later patch.
      
      Once a capsule has been passed to the firmware, the next reboot must
      be performed using the ResetSystem() EFI runtime service, which may
      involve overriding the reboot type specified by reboot=. This ensures
      the reset value returned by QueryCapsuleCapabilities() is used to
      reset the system, which is required for the capsule to be processed.
      efi_capsule_pending() is provided for this purpose.
      
      At the moment we only allow a single capsule blob to be sent to the
      firmware despite the fact that UpdateCapsule() takes a 'CapsuleCount'
      parameter. This simplifies the API and shouldn't result in any
      downside since it is still possible to send multiple capsules by
      repeatedly calling UpdateCapsule().
      Signed-off-by: NMatt Fleming <matt@codeblueprint.co.uk>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Bryan O'Donoghue <pure.logic@nexus-software.ie>
      Cc: Kweh Hock Leong <hock.leong.kweh@intel.com>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Peter Jones <pjones@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: joeyli <jlee@suse.com>
      Cc: linux-efi@vger.kernel.org
      Link: http://lkml.kernel.org/r/1461614832-17633-28-git-send-email-matt@codeblueprint.co.ukSigned-off-by: NIngo Molnar <mingo@kernel.org>
      f0133f3c