Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F96800783
D28619.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D28619.diff
View Options
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -1169,10 +1169,6 @@
}
}
-static char bootmethod[16] = "";
-SYSCTL_STRING(_machdep, OID_AUTO, bootmethod, CTLFLAG_RD, bootmethod, 0,
- "System firmware boot method");
-
static void
native_parse_memmap(caddr_t kmdp, vm_paddr_t *physmap, int *physmap_idx)
{
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -1237,10 +1237,6 @@
SYSCTL_ULONG(_machdep, OID_AUTO, guessed_bootdev,
CTLFLAG_RD, &bootdev, 0, "Maybe the Boot device (not in struct cdev *format)");
-static char bootmethod[16] = "BIOS";
-SYSCTL_STRING(_machdep, OID_AUTO, bootmethod, CTLFLAG_RD, bootmethod, 0,
- "System firmware boot method");
-
/*
* Initialize 386 and configure to run kernel
*/
@@ -2348,6 +2344,9 @@
/* Init basic tunables, hz etc */
init_param1();
+ /* Set bootmethod to BIOS: it's the only supported on i386. */
+ strlcpy(bootmethod, "BIOS", sizeof(bootmethod));
+
/*
* Make gdt memory segments. All segments cover the full 4GB
* of address space and permissions are enforced at page level.
diff --git a/sys/x86/include/x86_var.h b/sys/x86/include/x86_var.h
--- a/sys/x86/include/x86_var.h
+++ b/sys/x86/include/x86_var.h
@@ -95,6 +95,7 @@
extern int cpu_flush_rsb_ctxsw;
extern int x86_rngds_mitg_enable;
extern int cpu_amdc1e_bug;
+extern char bootmethod[16];
struct pcb;
struct thread;
diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c
--- a/sys/x86/x86/cpu_machdep.c
+++ b/sys/x86/x86/cpu_machdep.c
@@ -111,6 +111,10 @@
static volatile u_int cpu_reset_proxy_active;
#endif
+char bootmethod[16];
+SYSCTL_STRING(_machdep, OID_AUTO, bootmethod, CTLFLAG_RD, bootmethod, 0,
+ "System firmware boot method");
+
struct msr_op_arg {
u_int msr;
int op;
diff --git a/sys/x86/xen/pv.c b/sys/x86/xen/pv.c
--- a/sys/x86/xen/pv.c
+++ b/sys/x86/xen/pv.c
@@ -48,6 +48,7 @@
#include <sys/ctype.h>
#include <sys/mutex.h>
#include <sys/smp.h>
+#include <sys/efi.h>
#include <vm/vm.h>
#include <vm/vm_extern.h>
@@ -65,6 +66,7 @@
#include <machine/pc/bios.h>
#include <machine/smp.h>
#include <machine/intr_machdep.h>
+#include <machine/md_var.h>
#include <machine/metadata.h>
#include <xen/xen-os.h>
@@ -630,6 +632,11 @@
if (envp != NULL)
envp += off;
xen_pvh_set_env(envp, reject_option);
+
+ if (MD_FETCH(kmdp, MODINFOMD_EFI_MAP, void *) != NULL)
+ strlcpy(bootmethod, "UEFI", sizeof(bootmethod));
+ else
+ strlcpy(bootmethod, "BIOS", sizeof(bootmethod));
} else {
/* Parse the extra boot information given by Xen */
if (start_info->cmdline_paddr != 0)
@@ -637,6 +644,7 @@
(char *)(start_info->cmdline_paddr + KERNBASE),
",");
kmdp = NULL;
+ strlcpy(bootmethod, "XEN", sizeof(bootmethod));
}
boothowto |= boot_env_to_howto();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Sep 27, 4:29 PM (14 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12926889
Default Alt Text
D28619.diff (2 KB)
Attached To
Mode
D28619: xen/boot: allow specifying boot method when booted from Xen
Attached
Detach File
Event Timeline
Log In to Comment