1. 24 May, 2019 2 commits
  2. 13 Feb, 2019 1 commit
  3. 23 Dec, 2018 1 commit
  4. 02 Dec, 2018 4 commits
  5. 16 Oct, 2018 1 commit
  6. 23 Sep, 2018 2 commits
  7. 20 Aug, 2018 3 commits
  8. 25 Jul, 2018 6 commits
  9. 14 Jun, 2018 1 commit
  10. 03 Jun, 2018 2 commits
  11. 29 May, 2018 2 commits
    • Rick Chen's avatar
      efi_loader: Enable RISC-V support · 6836adbe
      Rick Chen authored
      We have almost all pieces needed to support RISC-V UEFI binaries in place already.
      The only missing piece are ELF relocations for runtime code and
      data.
      
      This patch adds respective support in the linker script and the runtime
      relocation code. It also allows users to enable the EFI_LOADER configuration
      switch on RISC-V platforms.
      Signed-off-by: Alexander Graf's avatarAlexander Graf <agraf@suse.de>
      6836adbe
    • Alexander Graf's avatar
      efi_loader: Use EFI_CACHELINE_SIZE in the image loader too · 89aea436
      Alexander Graf authored
      We were using our EFI_CACHELINE_SIZE define only in the runtime service
      code, but left the image loader to use plain CONFIG_SYS_CACHELINE_SIZE.
      
      This patch moves EFI_CACHELINE_SIZE into efi_loader.h and converts
      the image loader to use it.
      Signed-off-by: Alexander Graf's avatarAlexander Graf <agraf@suse.de>
      89aea436
  12. 11 May, 2018 1 commit
  13. 04 Apr, 2018 5 commits
  14. 09 Feb, 2018 1 commit
  15. 20 Sep, 2017 1 commit
    • Rob Clark's avatar
      efi_loader: efi variable support · ad644e7c
      Rob Clark authored
      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: default avatarRob Clark <robdclark@gmail.com>
      Signed-off-by: Alexander Graf's avatarAlexander Graf <agraf@suse.de>
      ad644e7c
  16. 18 Sep, 2017 1 commit
  17. 12 Aug, 2017 1 commit
  18. 19 Oct, 2016 2 commits
  19. 18 Oct, 2016 1 commit
    • Alexander Graf's avatar
      efi_loader: Allow boards to implement get_time and reset_system · 80a4800e
      Alexander Graf authored
      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: Alexander Graf's avatarAlexander Graf <agraf@suse.de>
      80a4800e
  20. 06 Jun, 2016 1 commit
    • Alexander Graf's avatar
      efi_loader: Move to normal debug infrastructure · edcef3ba
      Alexander Graf authored
      We introduced special "DEBUG_EFI" defines when the efi loader
      support was new. After giving it a bit of thought, turns out
      we really didn't have to - the normal #define DEBUG infrastructure
      works well enough for efi loader as well.
      
      So this patch switches to the common debug() and #define DEBUG
      way of printing debug information.
      Signed-off-by: Alexander Graf's avatarAlexander Graf <agraf@suse.de>
      edcef3ba
  21. 27 May, 2016 1 commit
    • Alexander Graf's avatar
      efi_loader: Clean up system table on exit · ae874405
      Alexander Graf authored
      We put the system table into our runtime services data section so that
      payloads may still access it after exit_boot_services. However, most fields
      in it are quite useless once we're in that state, so let's just patch them
      out.
      
      With this patch we don't get spurious warnings when running EFI binaries
      anymore.
      Signed-off-by: Alexander Graf's avatarAlexander Graf <agraf@suse.de>
      ae874405