1. 23 Feb, 2018 8 commits
  2. 14 Feb, 2018 3 commits
    • Steve McIntyre's avatar
      Make grub-install check for errors from efibootmgr · 6400613a
      Steve McIntyre authored
      Code is currently ignoring errors from efibootmgr, giving users
      clearly bogus output like:
              Setting up grub-efi-amd64 (2.02~beta3-4) ...
              Installing for x86_64-efi platform.
              Could not delete variable: No space left on device
              Could not prepare Boot variable: No space left on device
              Installation finished. No error reported.
      and then potentially unbootable systems. If efibootmgr fails, grub-install
      should know that and report it!
      We've been using similar patch in Debian now for some time, with no ill effects.
      Signed-off-by: default avatarSteve McIntyre <93sam@debian.org>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • Eric Snowberg's avatar
      sparc64: fix OF path names for sun4v systems · d85c76b5
      Eric Snowberg authored
      Fix the Open Firmware (OF) path property for sun4v SPARC systems.
      These platforms do not have a /sas/ within their path. Over time
      different OF addressing schemes have been supported. There
      is no generic addressing scheme that works across every HBA.
      It looks that this functionality will not work if you try to cross-install
      SPARC GRUB2 binary using e.g. x86 grub-install. By default it should work.
      However, we will also have other issues here, like lack of access to OF
      firmware/paths, which make such configs unusable anyway. So, let's leave
      this patch as is for time being. If somebody cares then he/she should fix
      the issue(s) at some point.
      Signed-off-by: default avatarEric Snowberg <eric.snowberg@oracle.com>
      Signed-off-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • Eric Snowberg's avatar
      sparc64: Add blocklist GPT support for SPARC · 69e0a67b
      Eric Snowberg authored
      Add block-list GPT support for SPARC.  The OBP "load" and "boot" methods
      are partition aware and neither command can see the partition table. Also
      neither command can address the entire physical disk. When the install
      happens, grub generates the block-list entries based on the beginning of the
      physical disk, not the beginning of the partition. This patch fixes the
      block-list entries so they match what OBP expects during boot for a GPT disk.
      T5 and above now supports GPT as well as VTOC.
      This patch has been tested on T5-2 and newer SPARC systems.
      Signed-off-by: default avatarEric Snowberg <eric.snowberg@oracle.com>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
  3. 29 Jan, 2018 2 commits
    • Stefan Fritsch's avatar
      ahci: Improve error handling · 566a03a6
      Stefan Fritsch authored
      Check the error bits in the interrupt status register. According to the
      AHCI 1.2 spec, "Interrupt sources that are disabled (‘0’) are still
      reflected in the status registers.", so this should work even though
      grub uses polling
      This fixes the following problem on a Fujitsu E744 laptop:
      Sometimes there is a very long delay (up to several minutes) when
      booting from hard disk. It seems accessing the DVD drive (which has no
      disk inserted) sometimes fails with some errors, which leads to each
      access being stalled until the 20s timeout triggers. This seems to
      happen when grub is trying to read filesystem/partition data.
      The problem is that the command_issue bit that is checked in the loop is
      only reset if the "HBA receives a FIS which clears the BSY, DRQ, and ERR
      bits for the command", but the ERR bit is never cleared. Therefore
      command_issue is never reset and grub waits for the timeout.
      The relevant bit in our case is the Task File Error Status (TFES), which
      is equivalent to the ERR bit 0 in tfd. But this patch also checks
      the other error bits except for the "Interface non-fatal error status"
      Signed-off-by: default avatarStefan Fritsch <fritsch@genua.de>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • dann frazier's avatar
      Keep the native terminal active when enabling gfxterm · 52ef7b23
      dann frazier authored
      grub-mkconfig will set GRUB_TERMINAL_OUTPUT to "gfxterm" unless the user
      has overridden it. On EFI systems, this will stop output from going to the
      default "console" terminal. When the EFI fw console is configured to output to
      both serial and video, this will cause GRUB to only display on video - while
      continuing to accept input from both video and serial.
      Instead of switching from "console" to "gfxterm", let's output to both.
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
  4. 06 Dec, 2017 3 commits
  5. 28 Nov, 2017 1 commit
  6. 24 Nov, 2017 1 commit
  7. 06 Oct, 2017 1 commit
  8. 07 Sep, 2017 5 commits
    • Alexander Graf's avatar
      efi: Free malloc regions on exit · 92bfc33d
      Alexander Graf authored
      When we exit grub, we don't free all the memory that we allocated earlier
      for our heap region. This can cause problems with setups where you try
      to descend the boot order using "exit" entries, such as PXE -> HD boot
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • Alexander Graf's avatar
      efi: Move grub_reboot() into kernel · 0ba90a7f
      Alexander Graf authored
      The reboot function calls machine_fini() and then reboots the system.
      Currently it lives in lib/ which means it gets compiled into the
      reboot module which lives on the heap.
      In a following patch, I want to free the heap on machine_fini()
      though, so we would free the memory that the code is running in. That
      obviously breaks with smarter UEFI implementations.
      So this patch moves it into the core. That way we ensure that all
      code running after machine_fini() in the UEFI case is running from
      memory that got allocated (and gets deallocated) by the UEFI core.
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • Konrad Rzeszutek Wilk's avatar
      Use grub-file to figure out whether multiboot2 should be used for Xen.gz · b4d709b6
      Konrad Rzeszutek Wilk authored
      The multiboot2 is much more preferable than multiboot. Especiall
      if booting under EFI where multiboot does not have the functionality
      to pass ImageHandler.
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • Konrad Rzeszutek Wilk's avatar
      Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 · a8e0f1ad
      Konrad Rzeszutek Wilk authored
      Commit d33045ce introduced
      the support for this, but it does not work under x86 (as it stops
      20_linux_xen from running).
      The 20_linux_xen is run under a shell and any exits from within it:
      (For example on x86):
      + /usr/bin/grub2-file --is-arm64-efi /boot/xen-4.9.0.gz
      [root@tst063 grub]# echo $?
      will result in 20_linux_xen exiting without continuing
      and also causing grub2-mkconfig to stop processing.
      As in:
       [root@tst063 grub]# ./grub-mkconfig | tail
       Generating grub configuration file ...
       Found linux image: /boot/vmlinuz-4.13.0-0.rc5.git1.1.fc27.x86_64
       Found initrd image: /boot/initramfs-4.13.0-0.rc5.git1.1.fc27.x86_64.img
       Found linux image: /boot/vmlinuz-0-rescue-ec082ee24aea41b9b16aca52a6d10cc2
       Found initrd image: /boot/initramfs-0-rescue-ec082ee24aea41b9b16aca52a6d10cc2.img
       		echo	'Loading Linux 0-rescue-ec082ee24aea41b9b16aca52a6d10cc2 ...'
       		linux	/vmlinuz-0-rescue-ec082ee24aea41b9b16aca52a6d10cc2 root=/dev/mapper/fedora_tst063-root ro single
       		echo	'Loading initial ramdisk ...'
       		initrd	/initramfs-0-rescue-ec082ee24aea41b9b16aca52a6d10cc2.img
       ### END /usr/local/etc/grub.d/10_linux ###
       ### BEGIN /usr/local/etc/grub.d/20_linux_xen ###
       root@tst063 grub]#
      And no more.
      This patch wraps the invocation of grub-file to be a in subshell
      and to process the return value in a conditional. That fixes
      the issue.
      RH-BZ 1486002: grub2-mkconfig does not work if xen.gz is installed.
      CC: Fu Wei <fu.wei@linaro.org>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    • Vladimir Serbinenko's avatar
      Fix compilation for x86_64-efi. · 78d2b81b
      Vladimir Serbinenko authored
  9. 05 Sep, 2017 1 commit
  10. 30 Aug, 2017 9 commits
  11. 14 Aug, 2017 6 commits