Lines Matching +full:reboot +full:- +full:mode
1 // SPDX-License-Identifier: GPL-2.0
5 #include <linux/reboot.h>
15 #include <acpi/reboot.h>
23 #include <asm/reboot.h>
52 * Reboot options and system auto-detection code provided by
53 * Dell Inc. so their systems "just work". :-)
57 * Some machines require the "reboot=a" commandline options
63 pr_info("%s series board detected. Selecting %s-method for reboots.\n", in set_acpi_reboot()
64 d->ident, "ACPI"); in set_acpi_reboot()
70 * Some machines require the "reboot=b" or "reboot=k" commandline options,
77 pr_info("%s series board detected. Selecting %s-method for reboots.\n", in set_bios_reboot()
78 d->ident, "BIOS"); in set_bios_reboot()
84 * Some machines don't handle the default ACPI reboot method and
85 * require the EFI reboot method:
91 pr_info("%s series board detected. Selecting EFI-method for reboot.\n", d->ident); in set_efi_reboot()
102 * routine will recognize as telling it to do a proper reboot. (Well in machine_real_restart()
103 * that's what this book in front of me says -- it may only apply to in machine_real_restart()
108 * safe side. (Yes, CMOS_WRITE does outb_p's. - Paul G.) in machine_real_restart()
119 /* Jump to the identity-mapped low memory code */ in machine_real_restart()
122 "rm" (real_mode_header->machine_real_restart_asm), in machine_real_restart()
126 "m" (real_mode_header->machine_real_restart_asm), in machine_real_restart()
137 * Some Apple MacBook and MacBookPro's needs reboot=p to be able to reboot
143 pr_info("%s series board detected. Selecting %s-method for reboots.\n", in set_pci_reboot()
144 d->ident, "PCI"); in set_pci_reboot()
153 pr_info("%s series board detected. Selecting %s-method for reboot.\n", in set_kbd_reboot()
154 d->ident, "KBD"); in set_kbd_reboot()
160 * This is a single dmi_table handling all reboot quirks.
165 { /* Handle reboot issue on Acer Aspire one */
173 { /* Handle reboot issue on Acer TravelMate X514-51T */
175 .ident = "Acer TravelMate X514-51T",
178 DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate X514-51T"),
233 { /* Handle problems with rebooting on ASRock Q1900DC-ITX */
235 .ident = "ASRock Q1900DC-ITX",
238 DMI_MATCH(DMI_BOARD_NAME, "Q1900DC-ITX"),
462 /* Hewlett-Packard */
467 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
472 { /* PCIe Wifi card isn't detected after reboot otherwise */
477 DMI_MATCH(DMI_PRODUCT_NAME, "ZBOX-CI327NANO-GS-01"),
482 { /* Handle problems with rebooting on Sony VGN-Z540N */
484 .ident = "Sony VGN-Z540N",
487 DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"),
508 * runtime services are enabled, force EFI reboot. in reboot_init()
533 /* RCU-protected callback to disable virtualization prior to reboot. */
557 * reboot. VMX blocks INIT if the CPU is post-VMXON, and SVM blocks INIT if
610 * the following on reboot:
612 * 1) If the FADT has the ACPI reboot register flag set, try it
614 * 3) If still alive, write to the ACPI reboot register again
616 * 5) If still alive, call the EFI runtime service to reboot
617 * 6) If no EFI runtime service, call the BIOS to do a reboot
620 * two other reboot methods: 'triple fault' and 'PCI', which
621 * can be triggered via the reboot= kernel boot option or
632 unsigned short mode; in native_machine_emergency_restart() local
639 /* Tell the BIOS if we want cold or warm reboot */ in native_machine_emergency_restart()
640 mode = reboot_mode == REBOOT_WARM ? 0x1234 : 0; in native_machine_emergency_restart()
641 *((unsigned short *)__va(0x472)) = mode; in native_machine_emergency_restart()
645 * override the reboot= parameter. in native_machine_emergency_restart()
648 pr_info("EFI capsule is pending, forcing EFI reboot.\n"); in native_machine_emergency_restart()
738 * not receive the per-cpu timer interrupt which may trigger in native_machine_shutdown()
837 int crashing_cpu = -1;
865 * Prepare the CPU for reboot _after_ invoking the callback so that the in crash_nmi_callback()
880 * nmi_shootdown_cpus - Stop other CPUs via NMI
885 * INIT is recognized during reboot.
898 * Avoid certain doom if a shootdown already occurred; re-registering in nmi_shootdown_cpus()
910 atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1); in nmi_shootdown_cpus()
929 msecs--; in nmi_shootdown_cpus()
933 * Leave the nmi callback set, shootdown is a one-time thing. Clearing in nmi_shootdown_cpus()