forked from pool/grub2
Accepting request 454876 from Base:System
1 OBS-URL: https://build.opensuse.org/request/show/454876 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/grub2?expand=0&rev=151
This commit is contained in:
commit
87832fc21c
59
grub2-efi-gop-add-blt.patch
Normal file
59
grub2-efi-gop-add-blt.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From dc56925653819582777ddc5c761a56f52dddd8f1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Graf <agraf@suse.de>
|
||||||
|
Date: Wed, 1 Feb 2017 23:10:45 +0100
|
||||||
|
Subject: [PATCH] grub-core/video/efi_gop.c: Add support for BLT_ONLY adapters
|
||||||
|
|
||||||
|
EFI GOP has support for multiple different bitness types of frame buffers
|
||||||
|
and for a special "BLT only" type which is always defined to be RGBx.
|
||||||
|
|
||||||
|
Because grub2 doesn't ever directly access the frame buffer but instead
|
||||||
|
only renders graphics via the BLT interface anyway, we can easily support
|
||||||
|
these adapters.
|
||||||
|
|
||||||
|
The reason this has come up now is the emerging support for virtio-gpu
|
||||||
|
in OVMF. That adapter does not have the notion of a memory mapped frame
|
||||||
|
buffer and thus is BLT only.
|
||||||
|
|
||||||
|
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||||
|
---
|
||||||
|
grub-core/video/efi_gop.c | 2 ++
|
||||||
|
include/grub/efi/graphics_output.h | 3 ++-
|
||||||
|
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c
|
||||||
|
index 7f9d1c2..c9e40e8 100644
|
||||||
|
--- a/grub-core/video/efi_gop.c
|
||||||
|
+++ b/grub-core/video/efi_gop.c
|
||||||
|
@@ -121,6 +121,7 @@ grub_video_gop_get_bpp (struct grub_efi_gop_mode_info *in)
|
||||||
|
{
|
||||||
|
case GRUB_EFI_GOT_BGRA8:
|
||||||
|
case GRUB_EFI_GOT_RGBA8:
|
||||||
|
+ case GRUB_EFI_GOT_BLT_ONLY:
|
||||||
|
return 32;
|
||||||
|
|
||||||
|
case GRUB_EFI_GOT_BITMASK:
|
||||||
|
@@ -187,6 +188,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode,
|
||||||
|
switch (in->pixel_format)
|
||||||
|
{
|
||||||
|
case GRUB_EFI_GOT_RGBA8:
|
||||||
|
+ case GRUB_EFI_GOT_BLT_ONLY:
|
||||||
|
out->red_mask_size = 8;
|
||||||
|
out->red_field_pos = 0;
|
||||||
|
out->green_mask_size = 8;
|
||||||
|
diff --git a/include/grub/efi/graphics_output.h b/include/grub/efi/graphics_output.h
|
||||||
|
index 1297774..e438812 100644
|
||||||
|
--- a/include/grub/efi/graphics_output.h
|
||||||
|
+++ b/include/grub/efi/graphics_output.h
|
||||||
|
@@ -28,7 +28,8 @@ typedef enum
|
||||||
|
{
|
||||||
|
GRUB_EFI_GOT_RGBA8,
|
||||||
|
GRUB_EFI_GOT_BGRA8,
|
||||||
|
- GRUB_EFI_GOT_BITMASK
|
||||||
|
+ GRUB_EFI_GOT_BITMASK,
|
||||||
|
+ GRUB_EFI_GOT_BLT_ONLY,
|
||||||
|
}
|
||||||
|
grub_efi_gop_pixel_format_t;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.5.6
|
||||||
|
|
@ -18,7 +18,7 @@ error_quit()
|
|||||||
|
|
||||||
check-system()
|
check-system()
|
||||||
{
|
{
|
||||||
[ -x "${GRUB_ONCE}" ] || error_quit "ERROR: cannot find or execute ${GRUB_EDITENV}"
|
[ -x "${GRUB_ONCE}" ] || error_quit "ERROR: cannot find or execute ${GRUB_ONCE}"
|
||||||
[ -x "${GRUB_EDITENV}" ] || error_quit "ERROR: cannot find or execute ${GRUB_EDITENV}"
|
[ -x "${GRUB_EDITENV}" ] || error_quit "ERROR: cannot find or execute ${GRUB_EDITENV}"
|
||||||
[ -x "${BLKID}" ] || error_quit "ERROR: cannot find or execute ${BLKID}"
|
[ -x "${BLKID}" ] || error_quit "ERROR: cannot find or execute ${BLKID}"
|
||||||
[ -r "${GRUB_CONF}" ] || error_quit "ERROR: cannot find or read ${GRUB_CONF}"
|
[ -r "${GRUB_CONF}" ] || error_quit "ERROR: cannot find or read ${GRUB_CONF}"
|
||||||
@ -60,7 +60,7 @@ get-kernels()
|
|||||||
|
|
||||||
;;
|
;;
|
||||||
linux*noresume*|module*xen*noresume*)
|
linux*noresume*|module*xen*noresume*)
|
||||||
echo " Skipping grub entry #${J}, because it has the noresume option" >&2
|
echo " Skipping ${MENU_ENTRIES[$I]}, because it has the noresume option" >&2
|
||||||
;;
|
;;
|
||||||
linux*root=*|module*xen*root=*)
|
linux*root=*|module*xen*root=*)
|
||||||
local ROOT
|
local ROOT
|
||||||
@ -71,15 +71,20 @@ get-kernels()
|
|||||||
if [ x"${ROOT:0:5}" = "xUUID=" ]; then
|
if [ x"${ROOT:0:5}" = "xUUID=" ]; then
|
||||||
UUID=${ROOT#UUID=}
|
UUID=${ROOT#UUID=}
|
||||||
if [ -n "$UUID" ]; then
|
if [ -n "$UUID" ]; then
|
||||||
ROOT=$($BLKID -U $UUID)
|
ROOT=$($BLKID -U $UUID || true)
|
||||||
|
if [ -z "$ROOT" ]; then
|
||||||
|
echo " Skipping ${MENU_ENTRIES[$I]}, because its root device $UUID is not found" >&2
|
||||||
|
continue
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(stat -Lc '%t:%T' $ROOT)" != "$(stat -Lc '%t:%T' $ROOTDEV)" ]; then
|
if [ "$(stat -Lc '%t:%T' $ROOT || true)" != "$(stat -Lc '%t:%T' $ROOTDEV || true)" ]; then
|
||||||
echo " Skipping grub entry #${J}, because its root= parameter ($ROOT)" >&2
|
echo " Skipping ${MENU_ENTRIES[$I]}, because its root= parameter ($ROOT)" >&2
|
||||||
echo " does not match the current root device ($ROOTDEV)." >&2
|
echo " does not match the current root device ($ROOTDEV)." >&2
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DUMMY=($LINE) # kernel (hd0,1)/boot/vmlinuz-ABC root=/dev/hda2
|
DUMMY=($LINE) # kernel (hd0,1)/boot/vmlinuz-ABC root=/dev/hda2
|
||||||
KERNELS[$I]=${DUMMY[1]##*/} # vmlinuz-ABC
|
KERNELS[$I]=${DUMMY[1]##*/} # vmlinuz-ABC
|
||||||
# DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO
|
# DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO
|
||||||
@ -87,7 +92,7 @@ get-kernels()
|
|||||||
;;
|
;;
|
||||||
linux*|module*xen*)
|
linux*|module*xen*)
|
||||||
# a kernel without "root="? We better skip that one...
|
# a kernel without "root="? We better skip that one...
|
||||||
echo " Skipping grub entry #${J}, because it has no root= option" >&2
|
echo " Skipping ${MENU_ENTRIES[$I]}, because it has no root= option" >&2
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 3 08:18:30 UTC 2017 - mchang@suse.com
|
||||||
|
|
||||||
|
- grub2-systemd-sleep.sh: Fix prematurely abort by commands error return code
|
||||||
|
and skip the offending menu entry (bsc#1022880)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 1 21:42:49 UTC 2017 - agraf@suse.com
|
||||||
|
|
||||||
|
- Add support for BLT only EFI GOP adapters (FATE#322332)
|
||||||
|
* grub2-efi-gop-add-blt.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jan 25 09:58:20 UTC 2017 - schwab@linux-m68k.org
|
Wed Jan 25 09:58:20 UTC 2017 - schwab@linux-m68k.org
|
||||||
|
|
||||||
|
@ -244,6 +244,8 @@ Patch307: 0008-xen-factor-out-allocation-of-page-tables-into-separa.patch
|
|||||||
Patch308: 0009-xen-add-capability-to-load-initrd-outside-of-initial.patch
|
Patch308: 0009-xen-add-capability-to-load-initrd-outside-of-initial.patch
|
||||||
Patch309: 0010-xen-modify-page-table-construction.patch
|
Patch309: 0010-xen-modify-page-table-construction.patch
|
||||||
Patch310: 0011-xen-add-capability-to-load-p2m-list-outside-of-kerne.patch
|
Patch310: 0011-xen-add-capability-to-load-p2m-list-outside-of-kerne.patch
|
||||||
|
# Fix GOP BLT support (FATE#322332)
|
||||||
|
Patch311: grub2-efi-gop-add-blt.patch
|
||||||
|
|
||||||
Requires: gettext-runtime
|
Requires: gettext-runtime
|
||||||
%if 0%{?suse_version} >= 1140
|
%if 0%{?suse_version} >= 1140
|
||||||
@ -497,6 +499,7 @@ swap partition while in resuming
|
|||||||
%patch308 -p1
|
%patch308 -p1
|
||||||
%patch309 -p1
|
%patch309 -p1
|
||||||
%patch310 -p1
|
%patch310 -p1
|
||||||
|
%patch311 -p1
|
||||||
|
|
||||||
# This simplifies patch handling without need to use git to create patch
|
# This simplifies patch handling without need to use git to create patch
|
||||||
# that renames file
|
# that renames file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user