blob: 24a50301f1504a3560066e25ea9fa0ddc0d8fdaa [file] [log] [blame]
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -07001#include <linux/kernel.h>
2#include <linux/init.h>
3
4#include <asm/setup.h>
5#include <asm/bios_ebda.h>
6
7void __init x86_early_init_platform_quirks(void)
8{
9 x86_platform.legacy.rtc = 1;
Ingo Molnaredce2122016-07-21 09:53:52 +020010 x86_platform.legacy.reserve_bios_regions = 0;
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070011 x86_platform.legacy.devices.pnpbios = 1;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070012
13 switch (boot_params.hdr.hardware_subarch) {
Luis R. Rodriguez1330e3b2016-04-13 17:04:36 -070014 case X86_SUBARCH_PC:
Ingo Molnaredce2122016-07-21 09:53:52 +020015 x86_platform.legacy.reserve_bios_regions = 1;
Luis R. Rodriguez1330e3b2016-04-13 17:04:36 -070016 break;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070017 case X86_SUBARCH_XEN:
18 case X86_SUBARCH_LGUEST:
19 case X86_SUBARCH_INTEL_MID:
Luis R. Rodrigueza50b22a2016-04-13 17:04:46 -070020 case X86_SUBARCH_CE4100:
Luis R. Rodriguezf6935b72016-04-13 17:04:45 -070021 x86_platform.legacy.devices.pnpbios = 0;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070022 x86_platform.legacy.rtc = 0;
23 break;
24 }
25
26 if (x86_platform.set_legacy_features)
27 x86_platform.set_legacy_features();
28}
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070029
30#if defined(CONFIG_PNPBIOS)
31bool __init arch_pnpbios_disabled(void)
32{
33 return x86_platform.legacy.devices.pnpbios == 0;
34}
35#endif