/root/src/xen/xen/arch/x86/genapic/bigsmp.c
Line | Count | Source (jump to first uncovered line) |
1 | | #include <xen/cpumask.h> |
2 | | #include <asm/current.h> |
3 | | #include <asm/mpspec.h> |
4 | | #include <asm/genapic.h> |
5 | | #include <asm/fixmap.h> |
6 | | #include <asm/apicdef.h> |
7 | | #include <xen/kernel.h> |
8 | | #include <xen/smp.h> |
9 | | #include <xen/init.h> |
10 | | #include <xen/dmi.h> |
11 | | #include <asm/mach-default/mach_mpparse.h> |
12 | | #include <asm/io_apic.h> |
13 | | |
14 | | static __init int force_bigsmp(struct dmi_system_id *d) |
15 | 0 | { |
16 | 0 | printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); |
17 | 0 | def_to_bigsmp = true; |
18 | 0 | return 0; |
19 | 0 | } |
20 | | |
21 | | |
22 | | static struct dmi_system_id __initdata bigsmp_dmi_table[] = { |
23 | | { force_bigsmp, "UNISYS ES7000-ONE", { |
24 | | DMI_MATCH(DMI_PRODUCT_NAME, "ES7000-ONE") |
25 | | }}, |
26 | | |
27 | | { } |
28 | | }; |
29 | | |
30 | | |
31 | | static __init int probe_bigsmp(void) |
32 | 2 | { |
33 | 2 | /* |
34 | 2 | * We don't implement cluster mode, so force use of |
35 | 2 | * physical mode in both cases. |
36 | 2 | */ |
37 | 2 | if (acpi_gbl_FADT.flags & |
38 | 2 | (ACPI_FADT_APIC_CLUSTER | ACPI_FADT_APIC_PHYSICAL)) |
39 | 0 | def_to_bigsmp = true; |
40 | 2 | else if (!def_to_bigsmp) |
41 | 1 | dmi_check_system(bigsmp_dmi_table); |
42 | 2 | return def_to_bigsmp; |
43 | 2 | } |
44 | | |
45 | | const struct genapic apic_bigsmp = { |
46 | | APIC_INIT("bigsmp", probe_bigsmp), |
47 | | GENAPIC_PHYS |
48 | | }; |