1. 01 12月, 2017 4 次提交
  2. 12 10月, 2017 1 次提交
  3. 21 9月, 2017 2 次提交
  4. 20 9月, 2017 3 次提交
    • R
      efi_loader: add bootmgr · 9975fe96
      Rob Clark 提交于
      Similar to a "real" UEFI implementation, the bootmgr looks at the
      BootOrder and BootXXXX variables to try to find an EFI payload to load
      and boot.  This is added as a sub-command of bootefi.
      
      The idea is that the distro bootcmd would first try loading a payload
      via the bootmgr, and then if that fails (ie. first boot or corrupted
      EFI variables) it would fallback to loading bootaa64.efi.  (Which
      would then load fallback.efi which would look for \EFI\*\boot.csv and
      populate BootOrder and BootXXXX based on what it found.)
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      9975fe96
    • R
      efi_loader: efi variable support · ad644e7c
      Rob Clark 提交于
      Add EFI variable support, mapping to u-boot environment variables.
      Variables are pretty important for setting up boot order, among other
      things.  If the board supports saveenv, then it will be called in
      ExitBootServices() to persist variables set by the efi payload.  (For
      example, fallback.efi configuring BootOrder and BootXXXX load-option
      variables.)
      
      Variables are *not* currently exposed at runtime, post ExitBootServices.
      On boards without a dedicated device for storage, which the loaded OS
      is not trying to also use, this is rather tricky.  One idea, at least
      for boards that can persist RAM across reboot, is to keep a "journal"
      of modified variables in RAM, and then turn halt into a reboot into
      u-boot, plus store variables, plus halt.  Whatever the solution, it
      likely involves some per-board support.
      
      Mapping between EFI variables and u-boot variables:
      
        efi_$guid_$varname = {attributes}(type)value
      
      For example:
      
        efi_8be4df61-93ca-11d2-aa0d-00e098032b8c_OsIndicationsSupported=
           "{ro,boot,run}(blob)0000000000000000"
        efi_8be4df61-93ca-11d2-aa0d-00e098032b8c_BootOrder=
           "(blob)00010000"
      
      The attributes are a comma separated list of these possible
      attributes:
      
        + ro   - read-only
        + boot - boot-services access
        + run  - runtime access
      
      NOTE: with current implementation, no variables are available after
      ExitBootServices, and all are persisted (if possible).
      
      If not specified, the attributes default to "{boot}".
      
      The required type is one of:
      
        + utf8 - raw utf8 string
        + blob - arbitrary length hex string
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      ad644e7c
    • R
      efi_loader: refactor boot device and loaded_image handling · 95c5553e
      Rob Clark 提交于
      Get rid of the hacky fake boot-device and duplicate device-path
      constructing (which needs to match what efi_disk and efi_net do).
      Instead convert over to use efi_device_path helpers to construct
      device-paths, and use that to look up the actual boot device.
      
      Also, extract out a helper to plug things in properly to the
      loaded_image.  In a following patch we'll want to re-use this in
      efi_load_image() to handle the case of loading an image from a
      file_path.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      95c5553e
  5. 19 9月, 2017 3 次提交
  6. 12 8月, 2017 1 次提交
  7. 26 7月, 2017 1 次提交
    • A
      efi_loader: Fix configuration table override · f4f9993f
      Alexander Graf 提交于
      Before commit 7cbc1241 ("efi_loader: initalize EFI object list
      only once") we recreated the world on every bootefi invocation.
      
      That included the object tree as well as the configuration tables.
      
      Now however we don't recreate them, which means we must not explicitly
      override the configuration tables, as otherwise we may lose our SMBIOS
      table from the configuration table list on second bootefi invocation.
      
      This patch makes bootefi call our normal configuration table modification
      APIs to add/remove the FDT instead of recreating all tables from scratch.
      That way the SMBIOS table gets preserved across multiple invocations.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f4f9993f
  8. 24 7月, 2017 3 次提交
  9. 19 7月, 2017 6 次提交
  10. 03 7月, 2017 1 次提交
  11. 01 6月, 2017 1 次提交
  12. 28 1月, 2017 1 次提交
  13. 19 1月, 2017 1 次提交
  14. 23 11月, 2016 1 次提交
  15. 17 11月, 2016 1 次提交
  16. 15 11月, 2016 2 次提交
  17. 19 10月, 2016 3 次提交
  18. 18 10月, 2016 1 次提交
    • A
      efi_loader: Allow boards to implement get_time and reset_system · 80a4800e
      Alexander Graf 提交于
      EFI allows an OS to leverage firmware drivers while the OS is running. In the
      generic code we so far had to stub those implementations out, because we would
      need board specific knowledge about MMIO setups for it.
      
      However, boards can easily implement those themselves. This patch provides the
      framework so that a board can implement its own versions of get_time and
      reset_system which would actually do something useful.
      
      While at it we also introduce a simple way for code to reserve MMIO pointers
      as runtime available.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      80a4800e
  19. 20 8月, 2016 1 次提交
  20. 09 8月, 2016 1 次提交
    • A
      efi_loader: disk: Fix CONFIG_BLK breakage · f9d334bd
      Alexander Graf 提交于
      When using CONFIG_BLK, there were 2 issues:
      
        1) The name we generate the device with has to match the
           name we set in efi_set_bootdev()
      
        2) The device we pass into our block functions was wrong,
           we should not rediscover it but just use the already known
           pointer.
      
      This patch fixes both issues.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f9d334bd
  21. 26 7月, 2016 1 次提交
  22. 25 6月, 2016 1 次提交
    • S
      cmd: bootefi: cosmetic · 92dfd922
      Sergey Kubushyn 提交于
      Short help (description) in bootefi command has a trailing "\n" that
      breaks the "help" command output (empty line after "bootefi").
      
      Nothing important, doesn't affect anything but better be fixed in the
      upcoming release.
      
      Still working on i.MX6 and their siblings NAND U-Boot update -- it
      works here but not ready for a submission yet. Anyway it is for the
      next cycle, not going to go into this release because it is too big
      and may affect something else.
      
      Also have some thoughts about fastboot (using multiple devices) but
      this will go into separate email with RFC.
      Signed-off-by: NSergey Kubushyn <ksi@koi8.net>
      92dfd922