// SPDX-License-Identifier: GPL-2.0-only /* * Intel CE4100 platform specific setup code * * (C) Copyright 2010 Intel Corporation */ #include #include #include #include #include #include /* * The CE4100 platform has an internal 8051 Microcontroller which is * responsible for signaling to the external Power Management Unit the * intention to reset, reboot or power off the system. This 8051 device has * its command register mapped at I/O port 0xcf9 and the value 0x4 is used * to power off the system. */ static void ce4100_power_off(void) { outb(0x4, 0xcf9); } static void __init sdv_arch_setup(void) { sdv_serial_fixup(); } static void sdv_pci_init(void) { x86_of_pci_init(); } /* * CE4100 specific x86_init function overrides and early setup * calls. */ void __init x86_ce4100_early_setup(void) { x86_init.oem.arch_setup = sdv_arch_setup; x86_init.resources.probe_roms = x86_init_noop; x86_init.mpparse.find_mptable = x86_init_noop; x86_init.mpparse.early_parse_smp_cfg = x86_init_noop; x86_init.pci.init = ce4100_pci_init; x86_init.pci.init_irq = sdv_pci_init; /* * By default, the reboot method is ACPI which is supported by the * CE4100 bootloader CEFDK using FADT.ResetReg Address and ResetValue * the bootloader will however issue a system power off instead of * reboot. By using BOOT_KBD we ensure proper system reboot as * expected. */ reboot_type = BOOT_KBD; pm_power_off = ce4100_power_off; }