Commit bed91667 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'x86-misc-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc x86 updates from Thomas Gleixner:
 "A set of updates for the x86 reboot code:

   - Limit the Dell Optiplex 990 quirk to early BIOS versions to avoid
     the full 'power cycle' alike reboot which is required for the buggy
     BIOSes.

   - Update documentation for the reboot=pci command line option and
     document how DMI platform quirks can be overridden"

* tag 'x86-misc-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
  x86/reboot: Document how to override DMI platform quirks
  x86/reboot: Document the "reboot=pci" option
parents ccd8ec4a a729691b
...@@ -4794,7 +4794,7 @@ ...@@ -4794,7 +4794,7 @@
reboot= [KNL] reboot= [KNL]
Format (x86 or x86_64): Format (x86 or x86_64):
[w[arm] | c[old] | h[ard] | s[oft] | g[pio]] \ [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] | d[efault] \
[[,]s[mp]#### \ [[,]s[mp]#### \
[[,]b[ios] | a[cpi] | k[bd] | t[riple] | e[fi] | p[ci]] \ [[,]b[ios] | a[cpi] | k[bd] | t[riple] | e[fi] | p[ci]] \
[[,]f[orce] [[,]f[orce]
......
...@@ -126,7 +126,7 @@ Idle loop ...@@ -126,7 +126,7 @@ Idle loop
Rebooting Rebooting
========= =========
reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] [, [w]arm | [c]old] reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] | p[ci] [, [w]arm | [c]old]
bios bios
Use the CPU reboot vector for warm reset Use the CPU reboot vector for warm reset
warm warm
...@@ -145,6 +145,8 @@ Rebooting ...@@ -145,6 +145,8 @@ Rebooting
Use efi reset_system runtime service. If EFI is not configured or Use efi reset_system runtime service. If EFI is not configured or
the EFI reset does not work, the reboot path attempts the reset using the EFI reset does not work, the reboot path attempts the reset using
the keyboard controller. the keyboard controller.
pci
Use a write to the PCI config space register 0xcf9 to trigger reboot.
Using warm reset will be much faster especially on big memory Using warm reset will be much faster especially on big memory
systems because the BIOS will not go through the memory check. systems because the BIOS will not go through the memory check.
...@@ -155,6 +157,13 @@ Rebooting ...@@ -155,6 +157,13 @@ Rebooting
Don't stop other CPUs on reboot. This can make reboot more reliable Don't stop other CPUs on reboot. This can make reboot more reliable
in some cases. in some cases.
reboot=default
There are some built-in platform specific "quirks" - you may see:
"reboot: <name> series board detected. Selecting <type> for reboots."
In the case where you think the quirk is in error (e.g. you have
newer BIOS, or newer board) using this option will ignore the built-in
quirk table, and use the generic default reboot actions.
Non Executable Mappings Non Executable Mappings
======================= =======================
......
...@@ -388,10 +388,11 @@ static const struct dmi_system_id reboot_dmi_table[] __initconst = { ...@@ -388,10 +388,11 @@ static const struct dmi_system_id reboot_dmi_table[] __initconst = {
}, },
{ /* Handle problems with rebooting on the OptiPlex 990. */ { /* Handle problems with rebooting on the OptiPlex 990. */
.callback = set_pci_reboot, .callback = set_pci_reboot,
.ident = "Dell OptiPlex 990", .ident = "Dell OptiPlex 990 BIOS A0x",
.matches = { .matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
DMI_MATCH(DMI_BIOS_VERSION, "A0"),
}, },
}, },
{ /* Handle problems with rebooting on Dell 300's */ { /* Handle problems with rebooting on Dell 300's */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment