Skip to contentSkip to conversation

x86: remove references to unimplemented BIOS reboot option

PATCH Applied Matt Wilson 5 participants 5 messages Aug 30, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86: remove references to unimplemented BIOS reboot option

The BIOS reboot option was never implemented for x86_64, and retaining it is somewhat false advertising.

Cc Keir Fraser <[email protected]>
Cc Jan Beulich <[email protected]>
Cc Andrew Cooper <[email protected]>
Cc Ben Guthro <[email protected]>
---
 docs/misc/xen-command-line.markdown |    5 +---
 xen/arch/x86/shutdown.c             |   42 ++++++++++++++--------------------
 2 files changed, 18 insertions(+), 29 deletions(-)
docs/misc/xen-command-line.markdown +1 -4
index 13c0306..da97da8 100644
@@ -747,7 +747,7 @@ This option can be specified more than once (up to 8 times at present).
 > `= <integer>`
 
 ### reboot
-> `= b[ios] | t[riple] | k[bd] | n[o] [, [w]arm | [c]old]`
+> `= t[riple] | k[bd] | n[o] [, [w]arm | [c]old]`
 
 Default: `0`
 
@@ -757,9 +757,6 @@ Specify the host reboot method.
 
 `cold` instructs Xen to set the cold reboot flag.
 
-`bios` instructs Xen to reboot the host by jumping to BIOS. This is
-only available on 32-bit x86 platforms.
-
 `triple` instructs Xen to reboot the host by causing a triple fault.
 
 `kbd` instructs Xen to reboot the host via the keyboard controller.
xen/arch/x86/shutdown.c +17 -25

174 lines not on this page · raw message

Signature · 1 line
1.7.4.5
Reviewed-by on v1 1/1
#2 lore raw
In reply to Matt Wilson
Quoted 7 lines · Matt Wilson

The BIOS reboot option was never implemented for x86_64, and retaining it is somewhat false advertising.

Cc Keir Fraser <[email protected]>
Cc Jan Beulich <[email protected]>
Cc Andrew Cooper <[email protected]>
Quoted 229 lines
Cc Ben Guthro <[email protected]>
---
 docs/misc/xen-command-line.markdown |    5 +---
 xen/arch/x86/shutdown.c             |   42 ++++++++++++++--------------------
 2 files changed, 18 insertions(+), 29 deletions(-)
docs/misc/xen-command-line.markdown +1 -4
index 13c0306..da97da8 100644
@@ -747,7 +747,7 @@ This option can be specified more than once (up to 8 times at present).
 > `= <integer>`
 
 ### reboot
-> `= b[ios] | t[riple] | k[bd] | n[o] [, [w]arm | [c]old]`
+> `= t[riple] | k[bd] | n[o] [, [w]arm | [c]old]`
 
 Default: `0`
 
@@ -757,9 +757,6 @@ Specify the host reboot method.
 
 `cold` instructs Xen to set the cold reboot flag.
 
-`bios` instructs Xen to reboot the host by jumping to BIOS. This is
-only available on 32-bit x86 platforms.
-
 `triple` instructs Xen to reboot the host by causing a triple fault.
 
 `kbd` instructs Xen to reboot the host via the keyboard controller.
xen/arch/x86/shutdown.c +17 -25
index 4715681..167905a 100644
@@ -31,7 +31,6 @@ enum reboot_type {
         BOOT_TRIPLE = 't',
         BOOT_KBD = 'k',
         BOOT_ACPI = 'a',
-        BOOT_BIOS = 'b',
         BOOT_CF9 = 'p',
 };
 
@@ -42,7 +41,6 @@ static int reboot_mode;
  * reboot=b[ios] | t[riple] | k[bd] | n[o] [, [w]arm | [c]old]
  * warm   Don't set the cold reboot flag
  * cold   Set the cold reboot flag
- * bios   Reboot by jumping through the BIOS (only for X86_32)
  * triple Force a triple fault (init)
  * kbd    Use the keyboard controller. cold reset (default)
  * acpi   Use the RESET_REG in the FADT
@@ -64,7 +62,6 @@ static void __init set_reboot_type(char *str)
         case 'c': /* "cold" reboot (with memory testing etc) */
             reboot_mode = 0x0;
             break;
-        case 'b':
         case 'a':
         case 'k':
         case 't':
@@ -112,7 +109,6 @@ static int __init override_reboot(struct dmi_system_id *d)
     {
         static const char *__initdata msg[] =
         {
-            [BOOT_BIOS] = "BIOS",
             [BOOT_KBD]  = "keyboard controller",
             [BOOT_CF9]  = "PCI",
         };
@@ -128,7 +124,7 @@ static int __init override_reboot(struct dmi_system_id *d)
 static struct dmi_system_id __initdata reboot_dmi_table[] = {
     {    /* Handle problems with rebooting on Dell E520's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell E520",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -137,7 +133,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell 1300's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 1300",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
@@ -146,7 +142,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell 300's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 300",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
@@ -155,7 +151,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745's SFF */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -164,7 +160,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745's DFF */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -174,7 +170,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745 with 0KW626 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -184,7 +180,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 330 with 0KP561 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 330",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -194,7 +190,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 360 with 0T656F */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 360",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -204,7 +200,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell OptiPlex 760 with 0G919G */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 760",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -214,7 +210,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell 2400's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 2400",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
@@ -223,7 +219,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell T5400's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell Precision T5400",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -232,7 +228,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell T7400's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell Precision T7400",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -241,7 +237,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on HP laptops */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "HP Compaq Laptop",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
@@ -250,7 +246,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell XPS710 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell XPS710",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -259,7 +255,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell DXP061 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell DXP061",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -268,7 +264,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Sony VGN-Z540N */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Sony VGN-Z540N",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
@@ -277,7 +273,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on ASUS P4S800 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "ASUS P4S800",
         .matches = {
             DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
@@ -530,10 +526,6 @@ void machine_restart(unsigned int delay_millisecs)
             asm volatile ( "lidt %0 ; int3" : "=m" (no_idt) );
             reboot_type = BOOT_KBD;
             break;
-        case BOOT_BIOS:
-            /* unsupported on x86_64 */
-            reboot_type = BOOT_KBD;
-            break;
         case BOOT_ACPI:
             acpi_reboot();
             reboot_type = BOOT_KBD;
Applied
#3 lore raw
In reply to Matt Wilson
Quoted 3 lines
Quoted 1 line
Quoted 1 line · Matt Wilson

The BIOS reboot option was never implemented for x86_64, and retaining it is somewhat false advertising.

Applied, but ...

Quoted 145 lines
xen/arch/x86/shutdown.c +16 -16
@@ -128,7 +124,7 @@ static int __init override_reboot(struct dmi_system_id *d)
 static struct dmi_system_id __initdata reboot_dmi_table[] = {
     {    /* Handle problems with rebooting on Dell E520's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell E520",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -137,7 +133,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell 1300's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 1300",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
@@ -146,7 +142,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell 300's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 300",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
@@ -155,7 +151,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745's SFF */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -164,7 +160,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745's DFF */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -174,7 +170,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745 with 0KW626 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -184,7 +180,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 330 with 0KP561 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 330",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -194,7 +190,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell Optiplex 360 with 0T656F */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 360",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -204,7 +200,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell OptiPlex 760 with 0G919G */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 760",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -214,7 +210,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell 2400's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 2400",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
@@ -223,7 +219,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell T5400's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell Precision T5400",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -232,7 +228,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell T7400's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell Precision T7400",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -241,7 +237,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on HP laptops */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "HP Compaq Laptop",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
@@ -250,7 +246,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell XPS710 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell XPS710",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -259,7 +255,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Dell DXP061 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell DXP061",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -268,7 +264,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on Sony VGN-Z540N */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Sony VGN-Z540N",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),

xen/arch/x86/shutdown.c static struct dmi_system_id __initdata reboot_dmi_table[] = { · line 279

Quoted 8 lines
xen/arch/x86/shutdown.c +1 -1
@@ -277,7 +273,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on ASUS P4S800 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "ASUS P4S800",
         .matches = {
             DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),

... I guess quite a few of these entries are obsolete too.

Jan

#4 lore raw
Quoted 15 lines · Jan Beulich
Quoted 3 lines
Quoted 1 line
Quoted 1 line · Matt Wilson

The BIOS reboot option was never implemented for x86_64, and retaining it is somewhat false advertising.

Applied, but ...

Quoted 9 lines
xen/arch/x86/shutdown.c +1 -1
@@ -128,7 +124,7 @@ static int __init override_reboot(struct dmi_system_id *d)
 static struct dmi_system_id __initdata reboot_dmi_table[] = {
     {    /* Handle problems with rebooting on Dell E520's */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell E520",
         .matches = {
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),

[...]

Quoted 11 lines

xen/arch/x86/shutdown.c static struct dmi_system_id __initdata reboot_dmi_table[] = { · line 279

Quoted 9 lines
xen/arch/x86/shutdown.c +1 -1
@@ -277,7 +273,7 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
     },
     {    /* Handle problems with rebooting on ASUS P4S800 */
         .callback = override_reboot,
-        .driver_data = (void *)(long)BOOT_BIOS,
+        .driver_data = (void *)(long)BOOT_KBD,
         .ident = "ASUS P4S800",
         .matches = {
             DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),

... I guess quite a few of these entries are obsolete too.

I spot checked a few and they supported x86_64. I didn't really want to dig into every one, so I figured we'd just leave it for now.

--msw