Lines Matching +full:system +full:- +full:reboot +full:- +full:controller

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
584 * the system, as VMX and SVM block INIT when running in the host. in emergency_reboot_disable_virtualization()
610 * the following on reboot:
612 * 1) If the FADT has the ACPI reboot register flag set, try it
613 * 2) If still alive, write to the keyboard controller
614 * 3) If still alive, write to the ACPI reboot register again
615 * 4) If still alive, write to the keyboard controller 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
639 /* Tell the BIOS if we want cold or warm reboot */ 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;
854 * Otherwise, system will completely hang. Crashing cpu can get in crash_nmi_callback()
855 * an NMI if system was initially booted with nmi_watchdog parameter. in crash_nmi_callback()
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()