Lines Matching +full:reboot +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0
5 #include <linux/reboot.h>
16 #include <acpi/reboot.h>
24 #include <asm/reboot.h>
53 * Reboot options and system auto-detection code provided by
54 * Dell Inc. so their systems "just work". :-)
58 * Some machines require the "reboot=a" commandline options
64 pr_info("%s series board detected. Selecting %s-method for reboots.\n", in set_acpi_reboot()
65 d->ident, "ACPI"); in set_acpi_reboot()
71 * Some machines require the "reboot=b" or "reboot=k" commandline options,
78 pr_info("%s series board detected. Selecting %s-method for reboots.\n", in set_bios_reboot()
79 d->ident, "BIOS"); in set_bios_reboot()
85 * Some machines don't handle the default ACPI reboot method and
86 * require the EFI reboot method:
92 pr_info("%s series board detected. Selecting EFI-method for reboot.\n", d->ident); in set_efi_reboot()
103 * routine will recognize as telling it to do a proper reboot. (Well in machine_real_restart()
104 * that's what this book in front of me says -- it may only apply to in machine_real_restart()
109 * safe side. (Yes, CMOS_WRITE does outb_p's. - Paul G.) in machine_real_restart()
120 /* Jump to the identity-mapped low memory code */ in machine_real_restart()
123 "rm" (real_mode_header->machine_real_restart_asm), in machine_real_restart()
127 "m" (real_mode_header->machine_real_restart_asm), in machine_real_restart()
138 * Some Apple MacBook and MacBookPro's needs reboot=p to be able to reboot
144 pr_info("%s series board detected. Selecting %s-method for reboots.\n", in set_pci_reboot()
145 d->ident, "PCI"); in set_pci_reboot()
154 pr_info("%s series board detected. Selecting %s-method for reboot.\n", in set_kbd_reboot()
155 d->ident, "KBD"); in set_kbd_reboot()
161 * This is a single dmi_table handling all reboot quirks.
166 { /* Handle reboot issue on Acer Aspire one */
174 { /* Handle reboot issue on Acer TravelMate X514-51T */
176 .ident = "Acer TravelMate X514-51T",
179 DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate X514-51T"),
234 { /* Handle problems with rebooting on ASRock Q1900DC-ITX */
236 .ident = "ASRock Q1900DC-ITX",
239 DMI_MATCH(DMI_BOARD_NAME, "Q1900DC-ITX"),
463 /* Hewlett-Packard */
468 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
473 { /* PCIe Wifi card isn't detected after reboot otherwise */
478 DMI_MATCH(DMI_PRODUCT_NAME, "ZBOX-CI327NANO-GS-01"),
483 { /* Handle problems with rebooting on Sony VGN-Z540N */
485 .ident = "Sony VGN-Z540N",
488 DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"),
509 * runtime services are enabled, force EFI reboot. in reboot_init()
534 /* RCU-protected callback to disable virtualization prior to reboot. */
558 * reboot. VMX blocks INIT if the CPU is post-VMXON, and SVM blocks INIT if
611 * the following on reboot:
613 * 1) If the FADT has the ACPI reboot register flag set, try it
615 * 3) If still alive, write to the ACPI reboot register again
617 * 5) If still alive, call the EFI runtime service to reboot
618 * 6) If no EFI runtime service, call the BIOS to do a reboot
621 * two other reboot methods: 'triple fault' and 'PCI', which
622 * can be triggered via the reboot= kernel boot option or
633 unsigned short mode; in native_machine_emergency_restart() local
640 /* Tell the BIOS if we want cold or warm reboot */ in native_machine_emergency_restart()
641 mode = reboot_mode == REBOOT_WARM ? 0x1234 : 0; in native_machine_emergency_restart()
642 *((unsigned short *)__va(0x472)) = mode; in native_machine_emergency_restart()
646 * override the reboot= parameter. in native_machine_emergency_restart()
649 pr_info("EFI capsule is pending, forcing EFI reboot.\n"); in native_machine_emergency_restart()
722 * interrupts are enabled. This will allow all in-flight memory in native_machine_shutdown()
747 * not receive the per-cpu timer interrupt which may trigger in native_machine_shutdown()
849 int crashing_cpu = -1;
877 * Prepare the CPU for reboot _after_ invoking the callback so that the in crash_nmi_callback()
898 * nmi_shootdown_cpus - Stop other CPUs via NMI
903 * INIT is recognized during reboot.
916 * Avoid certain doom if a shootdown already occurred; re-registering in nmi_shootdown_cpus()
928 atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1); in nmi_shootdown_cpus()
947 msecs--; in nmi_shootdown_cpus()
951 * Leave the nmi callback set, shootdown is a one-time thing. Clearing in nmi_shootdown_cpus()