xref: /OK3568_Linux_fs/buildroot/boot/grub2/0032-efi-Add-secure-boot-detection.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom d7e54b2e5feee95d2f83058ed30d883c450d1473 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Daniel Kiper <daniel.kiper@oracle.com>
3*4882a593SmuzhiyunDate: Thu, 3 Dec 2020 16:01:48 +0100
4*4882a593SmuzhiyunSubject: [PATCH] efi: Add secure boot detection
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunIntroduce grub_efi_get_secureboot() function which returns whether
7*4882a593SmuzhiyunUEFI Secure Boot is enabled or not on UEFI systems.
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunSigned-off-by: Ignat Korchagin <ignat@cloudflare.com>
10*4882a593SmuzhiyunSigned-off-by: Daniel Kiper <daniel.kiper@oracle.com>
11*4882a593SmuzhiyunSigned-off-by: Marco A Benatto <mbenatto@redhat.com>
12*4882a593SmuzhiyunSigned-off-by: Javier Martinez Canillas <javierm@redhat.com>
13*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
14*4882a593Smuzhiyun[Add changes to generated files]
15*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
16*4882a593Smuzhiyun---
17*4882a593Smuzhiyun grub-core/Makefile.am       |   1 +
18*4882a593Smuzhiyun grub-core/Makefile.core.am  |  14 +++---
19*4882a593Smuzhiyun grub-core/Makefile.core.def |   1 +
20*4882a593Smuzhiyun grub-core/Makefile.in       | 102 ++++++++++++++++++++++++++---------------
21*4882a593Smuzhiyun grub-core/kern/efi/sb.c     | 109 ++++++++++++++++++++++++++++++++++++++++++++
22*4882a593Smuzhiyun include/grub/efi/sb.h       |  40 ++++++++++++++++
23*4882a593Smuzhiyun po/POTFILES.in              |   2 +
24*4882a593Smuzhiyun 7 files changed, 225 insertions(+), 44 deletions(-)
25*4882a593Smuzhiyun create mode 100644 grub-core/kern/efi/sb.c
26*4882a593Smuzhiyun create mode 100644 include/grub/efi/sb.h
27*4882a593Smuzhiyun
28*4882a593Smuzhiyundiff --git a/grub-core/Makefile.am b/grub-core/Makefile.am
29*4882a593Smuzhiyunindex 3ea8e7f..c6ba5b2 100644
30*4882a593Smuzhiyun--- a/grub-core/Makefile.am
31*4882a593Smuzhiyun+++ b/grub-core/Makefile.am
32*4882a593Smuzhiyun@@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h
33*4882a593Smuzhiyun KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h
34*4882a593Smuzhiyun KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h
35*4882a593Smuzhiyun KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h
36*4882a593Smuzhiyun+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h
37*4882a593Smuzhiyun KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h
38*4882a593Smuzhiyun KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h
39*4882a593Smuzhiyun KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h
40*4882a593Smuzhiyundiff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am
41*4882a593Smuzhiyunindex a217716..f28b753 100644
42*4882a593Smuzhiyun--- a/grub-core/Makefile.core.am
43*4882a593Smuzhiyun+++ b/grub-core/Makefile.core.am
44*4882a593Smuzhiyun@@ -22421,7 +22421,7 @@ endif
45*4882a593Smuzhiyun if COND_i386_efi
46*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
47*4882a593Smuzhiyun kernel_exec_SOURCES  = kern/i386/efi/startup.S
48*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
49*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
50*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
51*4882a593Smuzhiyun kernel_exec_LDADD  =
52*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
53*4882a593Smuzhiyun@@ -22531,7 +22531,7 @@ endif
54*4882a593Smuzhiyun if COND_x86_64_efi
55*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
56*4882a593Smuzhiyun kernel_exec_SOURCES  = kern/x86_64/efi/startup.S
57*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
58*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
59*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
60*4882a593Smuzhiyun kernel_exec_LDADD  =
61*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
62*4882a593Smuzhiyun@@ -22707,7 +22707,7 @@ endif
63*4882a593Smuzhiyun if COND_ia64_efi
64*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
65*4882a593Smuzhiyun kernel_exec_SOURCES  =
66*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
67*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
68*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
69*4882a593Smuzhiyun kernel_exec_LDADD  =
70*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput
71*4882a593Smuzhiyun@@ -22773,7 +22773,7 @@ endif
72*4882a593Smuzhiyun if COND_arm_efi
73*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
74*4882a593Smuzhiyun kernel_exec_SOURCES  = kern/arm/efi/startup.S
75*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
76*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
77*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
78*4882a593Smuzhiyun kernel_exec_LDADD  =
79*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
80*4882a593Smuzhiyun@@ -22795,7 +22795,7 @@ endif
81*4882a593Smuzhiyun if COND_arm64_efi
82*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
83*4882a593Smuzhiyun kernel_exec_SOURCES  = kern/arm64/efi/startup.S
84*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
85*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
86*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
87*4882a593Smuzhiyun kernel_exec_LDADD  =
88*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
89*4882a593Smuzhiyun@@ -22839,7 +22839,7 @@ endif
90*4882a593Smuzhiyun if COND_riscv32_efi
91*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
92*4882a593Smuzhiyun kernel_exec_SOURCES  = kern/riscv/efi/startup.S
93*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
94*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
95*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
96*4882a593Smuzhiyun kernel_exec_LDADD  =
97*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
98*4882a593Smuzhiyun@@ -22861,7 +22861,7 @@ endif
99*4882a593Smuzhiyun if COND_riscv64_efi
100*4882a593Smuzhiyun platform_PROGRAMS += kernel.exec
101*4882a593Smuzhiyun kernel_exec_SOURCES  = kern/riscv/efi/startup.S
102*4882a593Smuzhiyun-kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
103*4882a593Smuzhiyun+kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
104*4882a593Smuzhiyun nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
105*4882a593Smuzhiyun kernel_exec_LDADD  =
106*4882a593Smuzhiyun kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
107*4882a593Smuzhiyundiff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
108*4882a593Smuzhiyunindex 474a63e..abd26cf 100644
109*4882a593Smuzhiyun--- a/grub-core/Makefile.core.def
110*4882a593Smuzhiyun+++ b/grub-core/Makefile.core.def
111*4882a593Smuzhiyun@@ -203,6 +203,7 @@ kernel = {
112*4882a593Smuzhiyun   efi = term/efi/console.c;
113*4882a593Smuzhiyun   efi = kern/acpi.c;
114*4882a593Smuzhiyun   efi = kern/efi/acpi.c;
115*4882a593Smuzhiyun+  efi = kern/efi/sb.c;
116*4882a593Smuzhiyun   i386_coreboot = kern/i386/pc/acpi.c;
117*4882a593Smuzhiyun   i386_multiboot = kern/i386/pc/acpi.c;
118*4882a593Smuzhiyun   i386_coreboot = kern/acpi.c;
119*4882a593Smuzhiyundiff --git a/grub-core/Makefile.in b/grub-core/Makefile.in
120*4882a593Smuzhiyunindex d287607..8fb81ee 100644
121*4882a593Smuzhiyun--- a/grub-core/Makefile.in
122*4882a593Smuzhiyun+++ b/grub-core/Makefile.in
123*4882a593Smuzhiyun@@ -10468,32 +10468,33 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
124*4882a593Smuzhiyun 	kern/arm64/cache_flush.S kern/arm64/dl.c \
125*4882a593Smuzhiyun 	kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c \
126*4882a593Smuzhiyun 	kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \
127*4882a593Smuzhiyun-	kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c \
128*4882a593Smuzhiyun-	kern/generic/millisleep.c kern/command.c kern/corecmd.c \
129*4882a593Smuzhiyun-	kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
130*4882a593Smuzhiyun-	kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c \
131*4882a593Smuzhiyun-	kern/parser.c kern/partition.c kern/rescue_parser.c \
132*4882a593Smuzhiyun-	kern/rescue_reader.c kern/term.c kern/arm/startup.S \
133*4882a593Smuzhiyun-	kern/arm/coreboot/init.c kern/arm/coreboot/timer.c \
134*4882a593Smuzhiyun-	kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c \
135*4882a593Smuzhiyun-	term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c \
136*4882a593Smuzhiyun-	bus/spi/rk3288_spi.c commands/keylayouts.c \
137*4882a593Smuzhiyun-	kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c \
138*4882a593Smuzhiyun-	video/coreboot/cbfb.c kern/coreboot/mmap.c \
139*4882a593Smuzhiyun-	kern/coreboot/cbtable.c term/gfxterm.c font/font.c \
140*4882a593Smuzhiyun-	font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c \
141*4882a593Smuzhiyun-	video/fb/fbutil.c video/fb/video_fb.c video/video.c \
142*4882a593Smuzhiyun-	kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S \
143*4882a593Smuzhiyun-	kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S \
144*4882a593Smuzhiyun-	lib/division.c kern/arm/efi/startup.S kern/arm/efi/init.c \
145*4882a593Smuzhiyun-	kern/arm/uboot/init.c kern/arm/uboot/uboot.S \
146*4882a593Smuzhiyun-	disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c \
147*4882a593Smuzhiyun-	kern/uboot/hw.c term/uboot/console.c term/terminfo.c \
148*4882a593Smuzhiyun-	term/tparm.c commands/extcmd.c lib/arg.c disk/host.c \
149*4882a593Smuzhiyun-	kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c \
150*4882a593Smuzhiyun-	osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c \
151*4882a593Smuzhiyun-	kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c \
152*4882a593Smuzhiyun-	kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c \
153*4882a593Smuzhiyun+	kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c \
154*4882a593Smuzhiyun+	kern/time.c kern/generic/millisleep.c kern/command.c \
155*4882a593Smuzhiyun+	kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c \
156*4882a593Smuzhiyun+	kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \
157*4882a593Smuzhiyun+	kern/misc.c kern/parser.c kern/partition.c \
158*4882a593Smuzhiyun+	kern/rescue_parser.c kern/rescue_reader.c kern/term.c \
159*4882a593Smuzhiyun+	kern/arm/startup.S kern/arm/coreboot/init.c \
160*4882a593Smuzhiyun+	kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \
161*4882a593Smuzhiyun+	lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \
162*4882a593Smuzhiyun+	term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \
163*4882a593Smuzhiyun+	commands/keylayouts.c kern/arm/coreboot/dma.c \
164*4882a593Smuzhiyun+	kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c \
165*4882a593Smuzhiyun+	kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c \
166*4882a593Smuzhiyun+	font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c \
167*4882a593Smuzhiyun+	video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c \
168*4882a593Smuzhiyun+	video/video.c kern/arm/dl.c kern/arm/dl_helper.c \
169*4882a593Smuzhiyun+	kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c \
170*4882a593Smuzhiyun+	kern/arm/compiler-rt.S lib/division.c kern/arm/efi/startup.S \
171*4882a593Smuzhiyun+	kern/arm/efi/init.c kern/arm/uboot/init.c \
172*4882a593Smuzhiyun+	kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c \
173*4882a593Smuzhiyun+	kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c \
174*4882a593Smuzhiyun+	term/uboot/console.c term/terminfo.c term/tparm.c \
175*4882a593Smuzhiyun+	commands/extcmd.c lib/arg.c disk/host.c kern/emu/cache_s.S \
176*4882a593Smuzhiyun+	kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c \
177*4882a593Smuzhiyun+	osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c \
178*4882a593Smuzhiyun+	kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c \
179*4882a593Smuzhiyun+	kern/emu/mm.c kern/emu/time.c kern/emu/cache.c \
180*4882a593Smuzhiyun 	osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c \
181*4882a593Smuzhiyun 	osdep/emunet.c osdep/cputime.c kern/i386/coreboot/startup.S \
182*4882a593Smuzhiyun 	kern/i386/coreboot/init.c kern/i386/pc/acpi.c \
183*4882a593Smuzhiyun@@ -10580,6 +10581,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
184*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
185*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
186*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
187*4882a593Smuzhiyun+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
188*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
189*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
190*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
191*4882a593Smuzhiyun@@ -10651,6 +10653,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
192*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
193*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
194*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
195*4882a593Smuzhiyun+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
196*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
197*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
198*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
199*4882a593Smuzhiyun@@ -10686,6 +10689,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
200*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
201*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
202*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
203*4882a593Smuzhiyun+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
204*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
205*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
206*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
207*4882a593Smuzhiyun@@ -10881,6 +10885,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
208*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
209*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
210*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
211*4882a593Smuzhiyun+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
212*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
213*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
214*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
215*4882a593Smuzhiyun@@ -11109,6 +11114,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
216*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
217*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
218*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
219*4882a593Smuzhiyun+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
220*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
221*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
222*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
223*4882a593Smuzhiyun@@ -11271,6 +11277,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
224*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
225*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
226*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
227*4882a593Smuzhiyun+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
228*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
229*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
230*4882a593Smuzhiyun @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
231*4882a593Smuzhiyun@@ -11360,6 +11367,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
232*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	term/efi/kernel_exec-console.$(OBJEXT) \
233*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/kernel_exec-acpi.$(OBJEXT) \
234*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/efi/kernel_exec-acpi.$(OBJEXT) \
235*4882a593Smuzhiyun+@COND_arm64_efi_TRUE@	kern/efi/kernel_exec-sb.$(OBJEXT) \
236*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/kernel_exec-compiler-rt.$(OBJEXT) \
237*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
238*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
239*4882a593Smuzhiyun@@ -16380,6 +16388,7 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \
240*4882a593Smuzhiyun 	$(top_srcdir)/include/grub/device.h \
241*4882a593Smuzhiyun 	$(top_srcdir)/include/grub/disk.h \
242*4882a593Smuzhiyun 	$(top_srcdir)/include/grub/dl.h \
243*4882a593Smuzhiyun+	$(top_srcdir)/include/grub/efi/sb.h \
244*4882a593Smuzhiyun 	$(top_srcdir)/include/grub/env.h \
245*4882a593Smuzhiyun 	$(top_srcdir)/include/grub/env_private.h \
246*4882a593Smuzhiyun 	$(top_srcdir)/include/grub/err.h \
247*4882a593Smuzhiyun@@ -25612,7 +25621,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
248*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/arm64/dl_helper.c disk/efi/efidisk.c \
249*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/efi/efi.c kern/efi/init.c \
250*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/efi/mm.c term/efi/console.c \
251*4882a593Smuzhiyun-@COND_arm64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c \
252*4882a593Smuzhiyun+@COND_arm64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
253*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
254*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
255*4882a593Smuzhiyun @COND_arm64_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
256*4882a593Smuzhiyun@@ -25661,8 +25670,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
257*4882a593Smuzhiyun @COND_arm_efi_TRUE@	disk/efi/efidisk.c kern/efi/efi.c \
258*4882a593Smuzhiyun @COND_arm_efi_TRUE@	kern/efi/init.c kern/efi/mm.c \
259*4882a593Smuzhiyun @COND_arm_efi_TRUE@	term/efi/console.c kern/acpi.c \
260*4882a593Smuzhiyun-@COND_arm_efi_TRUE@	kern/efi/acpi.c kern/compiler-rt.c \
261*4882a593Smuzhiyun-@COND_arm_efi_TRUE@	kern/mm.c kern/time.c \
262*4882a593Smuzhiyun+@COND_arm_efi_TRUE@	kern/efi/acpi.c kern/efi/sb.c \
263*4882a593Smuzhiyun+@COND_arm_efi_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
264*4882a593Smuzhiyun @COND_arm_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
265*4882a593Smuzhiyun @COND_arm_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
266*4882a593Smuzhiyun @COND_arm_efi_TRUE@	kern/dl.c kern/env.c kern/err.c kern/file.c \
267*4882a593Smuzhiyun@@ -25739,7 +25748,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
268*4882a593Smuzhiyun @COND_i386_efi_TRUE@	kern/i386/tsc_pit.c disk/efi/efidisk.c \
269*4882a593Smuzhiyun @COND_i386_efi_TRUE@	kern/efi/efi.c kern/efi/init.c \
270*4882a593Smuzhiyun @COND_i386_efi_TRUE@	kern/efi/mm.c term/efi/console.c \
271*4882a593Smuzhiyun-@COND_i386_efi_TRUE@	kern/acpi.c kern/efi/acpi.c \
272*4882a593Smuzhiyun+@COND_i386_efi_TRUE@	kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
273*4882a593Smuzhiyun @COND_i386_efi_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
274*4882a593Smuzhiyun @COND_i386_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
275*4882a593Smuzhiyun @COND_i386_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
276*4882a593Smuzhiyun@@ -25851,7 +25860,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
277*4882a593Smuzhiyun @COND_ia64_efi_TRUE@	lib/division.c disk/efi/efidisk.c \
278*4882a593Smuzhiyun @COND_ia64_efi_TRUE@	kern/efi/efi.c kern/efi/init.c \
279*4882a593Smuzhiyun @COND_ia64_efi_TRUE@	kern/efi/mm.c term/efi/console.c \
280*4882a593Smuzhiyun-@COND_ia64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c \
281*4882a593Smuzhiyun+@COND_ia64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
282*4882a593Smuzhiyun @COND_ia64_efi_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
283*4882a593Smuzhiyun @COND_ia64_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
284*4882a593Smuzhiyun @COND_ia64_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
285*4882a593Smuzhiyun@@ -25959,9 +25968,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
286*4882a593Smuzhiyun @COND_riscv32_efi_TRUE@	disk/efi/efidisk.c kern/efi/efi.c \
287*4882a593Smuzhiyun @COND_riscv32_efi_TRUE@	kern/efi/init.c kern/efi/mm.c \
288*4882a593Smuzhiyun @COND_riscv32_efi_TRUE@	term/efi/console.c kern/acpi.c \
289*4882a593Smuzhiyun-@COND_riscv32_efi_TRUE@	kern/efi/acpi.c kern/compiler-rt.c \
290*4882a593Smuzhiyun-@COND_riscv32_efi_TRUE@	kern/mm.c kern/time.c \
291*4882a593Smuzhiyun-@COND_riscv32_efi_TRUE@	kern/generic/millisleep.c \
292*4882a593Smuzhiyun+@COND_riscv32_efi_TRUE@	kern/efi/acpi.c kern/efi/sb.c \
293*4882a593Smuzhiyun+@COND_riscv32_efi_TRUE@	kern/compiler-rt.c kern/mm.c \
294*4882a593Smuzhiyun+@COND_riscv32_efi_TRUE@	kern/time.c kern/generic/millisleep.c \
295*4882a593Smuzhiyun @COND_riscv32_efi_TRUE@	kern/command.c kern/corecmd.c \
296*4882a593Smuzhiyun @COND_riscv32_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
297*4882a593Smuzhiyun @COND_riscv32_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
298*4882a593Smuzhiyun@@ -25977,8 +25986,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
299*4882a593Smuzhiyun @COND_riscv64_efi_TRUE@	kern/efi/efi.c kern/efi/init.c \
300*4882a593Smuzhiyun @COND_riscv64_efi_TRUE@	kern/efi/mm.c term/efi/console.c \
301*4882a593Smuzhiyun @COND_riscv64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c \
302*4882a593Smuzhiyun-@COND_riscv64_efi_TRUE@	kern/compiler-rt.c kern/mm.c \
303*4882a593Smuzhiyun-@COND_riscv64_efi_TRUE@	kern/time.c kern/generic/millisleep.c \
304*4882a593Smuzhiyun+@COND_riscv64_efi_TRUE@	kern/efi/sb.c kern/compiler-rt.c \
305*4882a593Smuzhiyun+@COND_riscv64_efi_TRUE@	kern/mm.c kern/time.c \
306*4882a593Smuzhiyun+@COND_riscv64_efi_TRUE@	kern/generic/millisleep.c \
307*4882a593Smuzhiyun @COND_riscv64_efi_TRUE@	kern/command.c kern/corecmd.c \
308*4882a593Smuzhiyun @COND_riscv64_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
309*4882a593Smuzhiyun @COND_riscv64_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
310*4882a593Smuzhiyun@@ -26022,7 +26032,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
311*4882a593Smuzhiyun @COND_x86_64_efi_TRUE@	kern/efi/efi.c kern/efi/init.c \
312*4882a593Smuzhiyun @COND_x86_64_efi_TRUE@	kern/efi/mm.c term/efi/console.c \
313*4882a593Smuzhiyun @COND_x86_64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c \
314*4882a593Smuzhiyun-@COND_x86_64_efi_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
315*4882a593Smuzhiyun+@COND_x86_64_efi_TRUE@	kern/efi/sb.c kern/compiler-rt.c \
316*4882a593Smuzhiyun+@COND_x86_64_efi_TRUE@	kern/mm.c kern/time.c \
317*4882a593Smuzhiyun @COND_x86_64_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
318*4882a593Smuzhiyun @COND_x86_64_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
319*4882a593Smuzhiyun @COND_x86_64_efi_TRUE@	kern/dl.c kern/env.c kern/err.c \
320*4882a593Smuzhiyun@@ -27989,6 +28000,8 @@ kern/kernel_exec-acpi.$(OBJEXT): kern/$(am__dirstamp) \
321*4882a593Smuzhiyun 	kern/$(DEPDIR)/$(am__dirstamp)
322*4882a593Smuzhiyun kern/efi/kernel_exec-acpi.$(OBJEXT): kern/efi/$(am__dirstamp) \
323*4882a593Smuzhiyun 	kern/efi/$(DEPDIR)/$(am__dirstamp)
324*4882a593Smuzhiyun+kern/efi/kernel_exec-sb.$(OBJEXT): kern/efi/$(am__dirstamp) \
325*4882a593Smuzhiyun+	kern/efi/$(DEPDIR)/$(am__dirstamp)
326*4882a593Smuzhiyun kern/kernel_exec-compiler-rt.$(OBJEXT): kern/$(am__dirstamp) \
327*4882a593Smuzhiyun 	kern/$(DEPDIR)/$(am__dirstamp)
328*4882a593Smuzhiyun kern/kernel_exec-mm.$(OBJEXT): kern/$(am__dirstamp) \
329*4882a593Smuzhiyun@@ -30994,6 +31007,7 @@ distclean-compile:
330*4882a593Smuzhiyun @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-fdt.Po@am__quote@
331*4882a593Smuzhiyun @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-init.Po@am__quote@
332*4882a593Smuzhiyun @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-mm.Po@am__quote@
333*4882a593Smuzhiyun+@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-sb.Po@am__quote@
334*4882a593Smuzhiyun @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu-full.Po@am__quote@
335*4882a593Smuzhiyun @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu_lite-lite.Po@am__quote@
336*4882a593Smuzhiyun @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/kernel_exec-argp_common.Po@am__quote@
337*4882a593Smuzhiyun@@ -35285,6 +35299,20 @@ kern/efi/kernel_exec-acpi.obj: kern/efi/acpi.c
338*4882a593Smuzhiyun @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
339*4882a593Smuzhiyun @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-acpi.obj `if test -f 'kern/efi/acpi.c'; then $(CYGPATH_W) 'kern/efi/acpi.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/acpi.c'; fi`
340*4882a593Smuzhiyun
341*4882a593Smuzhiyun+kern/efi/kernel_exec-sb.o: kern/efi/sb.c
342*4882a593Smuzhiyun+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-sb.o -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo -c -o kern/efi/kernel_exec-sb.o `test -f 'kern/efi/sb.c' || echo '$(srcdir)/'`kern/efi/sb.c
343*4882a593Smuzhiyun+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo kern/efi/$(DEPDIR)/kernel_exec-sb.Po
344*4882a593Smuzhiyun+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='kern/efi/sb.c' object='kern/efi/kernel_exec-sb.o' libtool=no @AMDEPBACKSLASH@
345*4882a593Smuzhiyun+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
346*4882a593Smuzhiyun+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.o `test -f 'kern/efi/sb.c' || echo '$(srcdir)/'`kern/efi/sb.c
347*4882a593Smuzhiyun+
348*4882a593Smuzhiyun+kern/efi/kernel_exec-sb.obj: kern/efi/sb.c
349*4882a593Smuzhiyun+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-sb.obj -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi`
350*4882a593Smuzhiyun+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo kern/efi/$(DEPDIR)/kernel_exec-sb.Po
351*4882a593Smuzhiyun+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='kern/efi/sb.c' object='kern/efi/kernel_exec-sb.obj' libtool=no @AMDEPBACKSLASH@
352*4882a593Smuzhiyun+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
353*4882a593Smuzhiyun+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi`
354*4882a593Smuzhiyun+
355*4882a593Smuzhiyun kern/kernel_exec-compiler-rt.o: kern/compiler-rt.c
356*4882a593Smuzhiyun @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-compiler-rt.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo -c -o kern/kernel_exec-compiler-rt.o `test -f 'kern/compiler-rt.c' || echo '$(srcdir)/'`kern/compiler-rt.c
357*4882a593Smuzhiyun @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo kern/$(DEPDIR)/kernel_exec-compiler-rt.Po
358*4882a593Smuzhiyundiff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c
359*4882a593Smuzhiyunnew file mode 100644
360*4882a593Smuzhiyunindex 0000000..19658d9
361*4882a593Smuzhiyun--- /dev/null
362*4882a593Smuzhiyun+++ b/grub-core/kern/efi/sb.c
363*4882a593Smuzhiyun@@ -0,0 +1,109 @@
364*4882a593Smuzhiyun+/*
365*4882a593Smuzhiyun+ *  GRUB  --  GRand Unified Bootloader
366*4882a593Smuzhiyun+ *  Copyright (C) 2020  Free Software Foundation, Inc.
367*4882a593Smuzhiyun+ *
368*4882a593Smuzhiyun+ *  GRUB is free software: you can redistribute it and/or modify
369*4882a593Smuzhiyun+ *  it under the terms of the GNU General Public License as published by
370*4882a593Smuzhiyun+ *  the Free Software Foundation, either version 3 of the License, or
371*4882a593Smuzhiyun+ *  (at your option) any later version.
372*4882a593Smuzhiyun+ *
373*4882a593Smuzhiyun+ *  GRUB is distributed in the hope that it will be useful,
374*4882a593Smuzhiyun+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
375*4882a593Smuzhiyun+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
376*4882a593Smuzhiyun+ *  GNU General Public License for more details.
377*4882a593Smuzhiyun+ *
378*4882a593Smuzhiyun+ *  You should have received a copy of the GNU General Public License
379*4882a593Smuzhiyun+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
380*4882a593Smuzhiyun+ *
381*4882a593Smuzhiyun+ *  UEFI Secure Boot related checkings.
382*4882a593Smuzhiyun+ */
383*4882a593Smuzhiyun+
384*4882a593Smuzhiyun+#include <grub/efi/efi.h>
385*4882a593Smuzhiyun+#include <grub/efi/pe32.h>
386*4882a593Smuzhiyun+#include <grub/efi/sb.h>
387*4882a593Smuzhiyun+#include <grub/err.h>
388*4882a593Smuzhiyun+#include <grub/i386/linux.h>
389*4882a593Smuzhiyun+#include <grub/mm.h>
390*4882a593Smuzhiyun+#include <grub/types.h>
391*4882a593Smuzhiyun+
392*4882a593Smuzhiyun+/*
393*4882a593Smuzhiyun+ * Determine whether we're in secure boot mode.
394*4882a593Smuzhiyun+ *
395*4882a593Smuzhiyun+ * Please keep the logic in sync with the Linux kernel,
396*4882a593Smuzhiyun+ * drivers/firmware/efi/libstub/secureboot.c:efi_get_secureboot().
397*4882a593Smuzhiyun+ */
398*4882a593Smuzhiyun+grub_uint8_t
399*4882a593Smuzhiyun+grub_efi_get_secureboot (void)
400*4882a593Smuzhiyun+{
401*4882a593Smuzhiyun+  static grub_efi_guid_t efi_variable_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID;
402*4882a593Smuzhiyun+  static grub_efi_guid_t efi_shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID;
403*4882a593Smuzhiyun+  grub_efi_status_t status;
404*4882a593Smuzhiyun+  grub_efi_uint32_t attr = 0;
405*4882a593Smuzhiyun+  grub_size_t size = 0;
406*4882a593Smuzhiyun+  grub_uint8_t *secboot = NULL;
407*4882a593Smuzhiyun+  grub_uint8_t *setupmode = NULL;
408*4882a593Smuzhiyun+  grub_uint8_t *moksbstate = NULL;
409*4882a593Smuzhiyun+  grub_uint8_t secureboot = GRUB_EFI_SECUREBOOT_MODE_UNKNOWN;
410*4882a593Smuzhiyun+  const char *secureboot_str = "UNKNOWN";
411*4882a593Smuzhiyun+
412*4882a593Smuzhiyun+  status = grub_efi_get_variable ("SecureBoot", &efi_variable_guid,
413*4882a593Smuzhiyun+				  &size, (void **) &secboot);
414*4882a593Smuzhiyun+
415*4882a593Smuzhiyun+  if (status == GRUB_EFI_NOT_FOUND)
416*4882a593Smuzhiyun+    {
417*4882a593Smuzhiyun+      secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED;
418*4882a593Smuzhiyun+      goto out;
419*4882a593Smuzhiyun+    }
420*4882a593Smuzhiyun+
421*4882a593Smuzhiyun+  if (status != GRUB_EFI_SUCCESS)
422*4882a593Smuzhiyun+    goto out;
423*4882a593Smuzhiyun+
424*4882a593Smuzhiyun+  status = grub_efi_get_variable ("SetupMode", &efi_variable_guid,
425*4882a593Smuzhiyun+				  &size, (void **) &setupmode);
426*4882a593Smuzhiyun+
427*4882a593Smuzhiyun+  if (status != GRUB_EFI_SUCCESS)
428*4882a593Smuzhiyun+    goto out;
429*4882a593Smuzhiyun+
430*4882a593Smuzhiyun+  if ((*secboot == 0) || (*setupmode == 1))
431*4882a593Smuzhiyun+    {
432*4882a593Smuzhiyun+      secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED;
433*4882a593Smuzhiyun+      goto out;
434*4882a593Smuzhiyun+    }
435*4882a593Smuzhiyun+
436*4882a593Smuzhiyun+  /*
437*4882a593Smuzhiyun+   * See if a user has put the shim into insecure mode. If so, and if the
438*4882a593Smuzhiyun+   * variable doesn't have the runtime attribute set, we might as well
439*4882a593Smuzhiyun+   * honor that.
440*4882a593Smuzhiyun+   */
441*4882a593Smuzhiyun+  status = grub_efi_get_variable_with_attributes ("MokSBState", &efi_shim_lock_guid,
442*4882a593Smuzhiyun+						  &size, (void **) &moksbstate, &attr);
443*4882a593Smuzhiyun+
444*4882a593Smuzhiyun+  /* If it fails, we don't care why. Default to secure. */
445*4882a593Smuzhiyun+  if (status != GRUB_EFI_SUCCESS)
446*4882a593Smuzhiyun+    {
447*4882a593Smuzhiyun+      secureboot = GRUB_EFI_SECUREBOOT_MODE_ENABLED;
448*4882a593Smuzhiyun+      goto out;
449*4882a593Smuzhiyun+    }
450*4882a593Smuzhiyun+
451*4882a593Smuzhiyun+  if (!(attr & GRUB_EFI_VARIABLE_RUNTIME_ACCESS) && *moksbstate == 1)
452*4882a593Smuzhiyun+    {
453*4882a593Smuzhiyun+      secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED;
454*4882a593Smuzhiyun+      goto out;
455*4882a593Smuzhiyun+    }
456*4882a593Smuzhiyun+
457*4882a593Smuzhiyun+  secureboot = GRUB_EFI_SECUREBOOT_MODE_ENABLED;
458*4882a593Smuzhiyun+
459*4882a593Smuzhiyun+ out:
460*4882a593Smuzhiyun+  grub_free (moksbstate);
461*4882a593Smuzhiyun+  grub_free (setupmode);
462*4882a593Smuzhiyun+  grub_free (secboot);
463*4882a593Smuzhiyun+
464*4882a593Smuzhiyun+  if (secureboot == GRUB_EFI_SECUREBOOT_MODE_DISABLED)
465*4882a593Smuzhiyun+    secureboot_str = "Disabled";
466*4882a593Smuzhiyun+  else if (secureboot == GRUB_EFI_SECUREBOOT_MODE_ENABLED)
467*4882a593Smuzhiyun+    secureboot_str = "Enabled";
468*4882a593Smuzhiyun+
469*4882a593Smuzhiyun+  grub_dprintf ("efi", "UEFI Secure Boot state: %s\n", secureboot_str);
470*4882a593Smuzhiyun+
471*4882a593Smuzhiyun+  return secureboot;
472*4882a593Smuzhiyun+}
473*4882a593Smuzhiyundiff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h
474*4882a593Smuzhiyunnew file mode 100644
475*4882a593Smuzhiyunindex 0000000..a33d985
476*4882a593Smuzhiyun--- /dev/null
477*4882a593Smuzhiyun+++ b/include/grub/efi/sb.h
478*4882a593Smuzhiyun@@ -0,0 +1,40 @@
479*4882a593Smuzhiyun+/*
480*4882a593Smuzhiyun+ *  GRUB  --  GRand Unified Bootloader
481*4882a593Smuzhiyun+ *  Copyright (C) 2020  Free Software Foundation, Inc.
482*4882a593Smuzhiyun+ *
483*4882a593Smuzhiyun+ *  GRUB is free software: you can redistribute it and/or modify
484*4882a593Smuzhiyun+ *  it under the terms of the GNU General Public License as published by
485*4882a593Smuzhiyun+ *  the Free Software Foundation, either version 3 of the License, or
486*4882a593Smuzhiyun+ *  (at your option) any later version.
487*4882a593Smuzhiyun+ *
488*4882a593Smuzhiyun+ *  GRUB is distributed in the hope that it will be useful,
489*4882a593Smuzhiyun+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
490*4882a593Smuzhiyun+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
491*4882a593Smuzhiyun+ *  GNU General Public License for more details.
492*4882a593Smuzhiyun+ *
493*4882a593Smuzhiyun+ *  You should have received a copy of the GNU General Public License
494*4882a593Smuzhiyun+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
495*4882a593Smuzhiyun+ */
496*4882a593Smuzhiyun+
497*4882a593Smuzhiyun+#ifndef GRUB_EFI_SB_H
498*4882a593Smuzhiyun+#define GRUB_EFI_SB_H     1
499*4882a593Smuzhiyun+
500*4882a593Smuzhiyun+#include <grub/types.h>
501*4882a593Smuzhiyun+#include <grub/dl.h>
502*4882a593Smuzhiyun+
503*4882a593Smuzhiyun+#define GRUB_EFI_SECUREBOOT_MODE_UNSET	0
504*4882a593Smuzhiyun+#define GRUB_EFI_SECUREBOOT_MODE_UNKNOWN	1
505*4882a593Smuzhiyun+#define GRUB_EFI_SECUREBOOT_MODE_DISABLED	2
506*4882a593Smuzhiyun+#define GRUB_EFI_SECUREBOOT_MODE_ENABLED	3
507*4882a593Smuzhiyun+
508*4882a593Smuzhiyun+#ifdef GRUB_MACHINE_EFI
509*4882a593Smuzhiyun+extern grub_uint8_t
510*4882a593Smuzhiyun+EXPORT_FUNC (grub_efi_get_secureboot) (void);
511*4882a593Smuzhiyun+#else
512*4882a593Smuzhiyun+static inline grub_uint8_t
513*4882a593Smuzhiyun+grub_efi_get_secureboot (void)
514*4882a593Smuzhiyun+{
515*4882a593Smuzhiyun+  return GRUB_EFI_SECUREBOOT_MODE_UNSET;
516*4882a593Smuzhiyun+}
517*4882a593Smuzhiyun+#endif
518*4882a593Smuzhiyun+#endif /* GRUB_EFI_SB_H */
519*4882a593Smuzhiyundiff --git a/po/POTFILES.in b/po/POTFILES.in
520*4882a593Smuzhiyunindex 5574cbe..22543be 100644
521*4882a593Smuzhiyun--- a/po/POTFILES.in
522*4882a593Smuzhiyun+++ b/po/POTFILES.in
523*4882a593Smuzhiyun@@ -266,6 +266,7 @@
524*4882a593Smuzhiyun ./grub-core/kern/efi/fdt.c
525*4882a593Smuzhiyun ./grub-core/kern/efi/init.c
526*4882a593Smuzhiyun ./grub-core/kern/efi/mm.c
527*4882a593Smuzhiyun+./grub-core/kern/efi/sb.c
528*4882a593Smuzhiyun ./grub-core/kern/elf.c
529*4882a593Smuzhiyun ./grub-core/kern/elfXX.c
530*4882a593Smuzhiyun ./grub-core/kern/emu/argp_common.c
531*4882a593Smuzhiyun@@ -1053,6 +1054,7 @@
532*4882a593Smuzhiyun ./include/grub/efi/memory.h
533*4882a593Smuzhiyun ./include/grub/efi/pci.h
534*4882a593Smuzhiyun ./include/grub/efi/pe32.h
535*4882a593Smuzhiyun+./include/grub/efi/sb.h
536*4882a593Smuzhiyun ./include/grub/efi/tpm.h
537*4882a593Smuzhiyun ./include/grub/efi/uga_draw.h
538*4882a593Smuzhiyun ./include/grub/efiemu/efiemu.h
539*4882a593Smuzhiyun--
540*4882a593Smuzhiyun2.14.2
541*4882a593Smuzhiyun
542