示例#1
0
static const struct dmi_system_id bigsmp_dmi_table[] = {
	{ hp_ht_bigsmp, "HP ProLiant DL760 G2",
	{ DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
	DMI_MATCH(DMI_BIOS_VERSION, "P44-"),}
	},

	{ hp_ht_bigsmp, "HP ProLiant DL740",
	{ DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
	DMI_MATCH(DMI_BIOS_VERSION, "P47-"),}
	},
	 { }
};

static void vector_allocation_domain(int cpu, cpumask_t *retmask)
{
	cpus_clear(*retmask);
	cpu_set(cpu, *retmask);
}

static int probe_bigsmp(void)
{
	if (def_to_bigsmp)
		dmi_bigsmp = 1;
	else
		dmi_check_system(bigsmp_dmi_table);
	return dmi_bigsmp;
}

struct genapic apic_bigsmp = APIC_INIT("bigsmp", probe_bigsmp);
示例#2
0
文件: x2apic.c 项目: 0day-ci/xen
            if ( !cpumask_test_cpu(cpu, ipimask) )
                continue;
            msr_content |= per_cpu(cpu_2_logical_apicid, cpu);
        }

        BUG_ON(!msr_content);
        msr_content = (msr_content << 32) | APIC_DM_FIXED |
                      APIC_DEST_LOGICAL | vector;
        apic_wrmsr(APIC_ICR, msr_content);
    }

    local_irq_restore(flags);
}

static const struct genapic apic_x2apic_phys = {
    APIC_INIT("x2apic_phys", NULL),
    .int_delivery_mode = dest_Fixed,
    .int_dest_mode = 0 /* physical delivery */,
    .init_apic_ldr = init_apic_ldr_x2apic_phys,
    .clustered_apic_check = clustered_apic_check_x2apic,
    .target_cpus = target_cpus_all,
    .vector_allocation_cpumask = vector_allocation_cpumask_phys,
    .cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
    .send_IPI_mask = send_IPI_mask_x2apic_phys,
    .send_IPI_self = send_IPI_self_x2apic
};

static const struct genapic apic_x2apic_cluster = {
    APIC_INIT("x2apic_cluster", NULL),
    .int_delivery_mode = dest_LowestPrio,
    .int_dest_mode = 1 /* logical delivery */,
示例#3
0
/* 
 * APIC driver for the IBM "Summit" chipset.
 */
#define APIC_DEFINITION 1
#include <linux/threads.h>
#include <linux/cpumask.h>
#include <asm/mpspec.h>
#include <asm/genapic.h>
#include <asm/fixmap.h>
#include <asm/apicdef.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/smp.h>
#include <linux/init.h>
#include <asm/mach-summit/mach_apic.h>
#include <asm/mach-summit/mach_apicdef.h>
#include <asm/mach-summit/mach_ipi.h>
#include <asm/mach-summit/mach_mpparse.h>

static int probe_summit(void)
{ 
	/* probed later in mptable/ACPI hooks */
	return 0;
} 

struct genapic apic_summit = APIC_INIT("summit", probe_summit); 
示例#4
0
文件: bigsmp.c 项目: nypdmax/RT-Xen
            DMI_MATCH(DMI_BIOS_VERSION, "P47-"),
        }
    },
    {   force_bigsmp, "UNISYS ES7000-ONE", {
            DMI_MATCH(DMI_PRODUCT_NAME, "ES7000-ONE")
        }
    },

    { }
};


static __init int probe_bigsmp(void)
{
    /*
     * We don't implement cluster mode, so force use of
     * physical mode in both cases.
     */
    if (acpi_gbl_FADT.flags &
            (ACPI_FADT_APIC_CLUSTER | ACPI_FADT_APIC_PHYSICAL))
        def_to_bigsmp = 1;
    else if (!def_to_bigsmp)
        dmi_check_system(bigsmp_dmi_table);
    return def_to_bigsmp;
}

const struct genapic apic_bigsmp = {
    APIC_INIT("bigsmp", probe_bigsmp),
    GENAPIC_PHYS
};
示例#5
0
 * Place - Suite 330, Boston, MA 02111-1307 USA.
 */

#include <xen/cpumask.h>
#include <asm/apicdef.h>
#include <asm/genapic.h>
#include <xen/smp.h>
#include <asm/mach-default/mach_mpparse.h>

__init int probe_x2apic(void)
{
    return x2apic_is_available();
}

struct genapic apic_x2apic= {
    APIC_INIT("x2apic", probe_x2apic),
    GENAPIC_X2APIC
};

void init_apic_ldr_x2apic(void)
{
    /* We only use physical delivery mode. */
    return;
}

void clustered_apic_check_x2apic(void)
{
    /* We only use physical delivery mode. */
    return;
}
示例#6
0
/*
 * APIC driver for the Unisys ES7000 chipset.
 */
#define APIC_DEFINITION 1
#include <linux/threads.h>
#include <linux/cpumask.h>
#include <asm/mpspec.h>
#include <asm/genapic.h>
#include <asm/fixmap.h>
#include <asm/apicdef.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/smp.h>
#include <linux/init.h>
#include <asm/mach-es7000/mach_apicdef.h>
#include <asm/mach-es7000/mach_apic.h>
#include <asm/mach-es7000/mach_ipi.h>
#include <asm/mach-es7000/mach_mpparse.h>
#include <asm/mach-es7000/mach_wakecpu.h>

static __init int probe_es7000(void)
{
	/* probed later in mptable/ACPI hooks */
	return 0;
}

struct genapic apic_es7000 = APIC_INIT("es7000", probe_es7000);
示例#7
0
/* 
 * APIC driver for the IBM "Summit" chipset.
 */
#include <xen/config.h>
#include <xen/cpumask.h>
#include <asm/current.h>
#include <asm/mpspec.h>
#include <asm/genapic.h>
#include <asm/fixmap.h>
#include <asm/apicdef.h>
#include <xen/kernel.h>
#include <xen/string.h>
#include <xen/smp.h>
#include <xen/init.h>
#include <asm/mach-summit/mach_mpparse.h>

static __init int probe_summit(void)
{ 
	/* probed later in mptable/ACPI hooks */
	return 0;
} 

struct genapic apic_summit = {
	APIC_INIT("summit", probe_summit),
	GENAPIC_PHYS
};