Home
last modified time | relevance | path

Searched full:apic (Results 1 – 25 of 290) sorted by relevance

12345678910>>...12

/Linux-v6.6/arch/x86/kvm/
Dlapic.c4 * Local APIC virtualization
68 static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data);
69 static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data);
76 static inline void kvm_lapic_set_reg(struct kvm_lapic *apic, int reg_off, u32 val) in kvm_lapic_set_reg() argument
78 __kvm_lapic_set_reg(apic->regs, reg_off, val); in kvm_lapic_set_reg()
87 static __always_inline u64 kvm_lapic_get_reg64(struct kvm_lapic *apic, int reg) in kvm_lapic_get_reg64() argument
89 return __kvm_lapic_get_reg64(apic->regs, reg); in kvm_lapic_get_reg64()
98 static __always_inline void kvm_lapic_set_reg64(struct kvm_lapic *apic, in kvm_lapic_set_reg64() argument
101 __kvm_lapic_set_reg64(apic->regs, reg, val); in kvm_lapic_set_reg64()
111 struct kvm_lapic *apic = vcpu->arch.apic; in kvm_apic_pending_eoi() local
[all …]
Dlapic.h74 * APIC register page. The layout matches the register layout seen by
113 int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type);
120 void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high);
139 int kvm_x2apic_icr_write(struct kvm_lapic *apic, u64 data);
149 u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic);
164 static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic) in kvm_lapic_set_irr() argument
166 kvm_lapic_set_vector(vec, apic->regs + APIC_IRR); in kvm_lapic_set_irr()
171 apic->irr_pending = true; in kvm_lapic_set_irr()
179 static inline u32 kvm_lapic_get_reg(struct kvm_lapic *apic, int reg_off) in kvm_lapic_get_reg() argument
181 return __kvm_lapic_get_reg(apic->regs, reg_off); in kvm_lapic_get_reg()
[all …]
/Linux-v6.6/arch/x86/kernel/apic/
Dinit.c2 #define pr_fmt(fmt) "APIC: " fmt
4 #include <asm/apic.h>
15 DEFINE_STATIC_CALL_NULL(apic_call_##__cb, *apic->__cb)
41 apic->__cb = __x86_apic_override.__cb
62 static_call_update(apic_call_##__cb, *apic->__cb)
85 /* Ensure that the default APIC has native_eoi populated */ in apic_setup_apic_calls()
86 apic->native_eoi = apic->eoi; in apic_setup_apic_calls()
91 void __init apic_install_driver(struct apic *driver) in apic_install_driver()
93 if (apic == driver) in apic_install_driver()
96 apic = driver; in apic_install_driver()
[all …]
Dapic.c3 * Local APIC handling, local APIC timers
13 * Mikael Pettersson : Power Management for UP-APIC.
50 #include <asm/apic.h>
97 * Hypervisor supports 15 bits of APIC ID in MSI Extended Destination ID
110 * Map cpu index to physical APIC ID
118 /* Local APIC was disabled by the BIOS and enabled by the kernel */
125 * local APIC. Before entering Symmetric I/O Mode, either
131 /* NMI and 8259 INTR go through APIC */ in imcr_pic_to_apic()
143 * Knob to control our willingness to enable the local APIC.
150 * APIC command line parameters
[all …]
Dio_apic.c3 * Intel IO-APIC support for multi-Pentium hosts.
10 * (c) 1999, Multiple IO-APIC support, developed by
25 * - SiS APIC rmw bug:
67 #include <asm/apic.h>
90 int apic, pin; member
116 /* I/O APIC config */
118 /* IO APIC gsi routing info */
197 /* disable IO-APIC */ in parse_noapic()
209 " IRQ %02x, APIC ID %x, APIC INT %02x\n", in mp_save_irq()
269 static inline void io_apic_eoi(unsigned int apic, unsigned int vector) in io_apic_eoi() argument
[all …]
Dapic_flat_64.c5 * Flat APIC subarch code.
16 #include <asm/apic.h>
20 static struct apic apic_physflat;
21 static struct apic apic_flat;
23 struct apic *apic __ro_after_init = &apic_flat;
24 EXPORT_SYMBOL_GPL(apic);
79 static struct apic apic_flat __ro_after_init = {
125 * Quirk: some x86_64 machines can only use physical APIC mode in physflat_acpi_madt_oem_check()
131 printk(KERN_DEBUG "system APIC only can use physical flat"); in physflat_acpi_madt_oem_check()
136 printk(KERN_DEBUG "IBM Summit detected, will use apic physical"); in physflat_acpi_madt_oem_check()
[all …]
Dprobe_32.c3 * Default generic APIC driver. This handles up to 8 CPUs.
7 * Generic x86 APIC driver probe layer.
16 #include <asm/apic.h>
32 static struct apic apic_default __ro_after_init = {
72 struct apic *apic __ro_after_init = &apic_default;
73 EXPORT_SYMBOL_GPL(apic);
78 struct apic **drv; in parse_apic()
94 early_param("apic", parse_apic);
128 struct apic **drv; in x86_32_probe_apic()
138 panic("Didn't find an APIC driver"); in x86_32_probe_apic()
Dapic_noop.c3 * NOOP APIC driver.
5 * Does almost nothing and should be substituted by a real apic driver via
8 * Though in case if apic is disabled (for some reason) we try
9 * to not uglify the caller's code and allow to call (some) apic routines
14 * APIC::read/write() have a WARN_ON_ONCE() in them. Sigh...
19 #include <asm/apic.h>
45 struct apic apic_noop __ro_after_init = {
Dbigsmp_32.c3 * APIC driver for "bigsmp" xAPIC machines with more than 8 virtual CPUs.
5 * Drives the local APIC in "clustered mode".
11 #include <asm/apic.h>
51 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); in hp_ht_bigsmp()
78 static struct apic apic_bigsmp __ro_after_init = {
117 return apic == &apic_bigsmp || !cmdline_override; in apic_bigsmp_possible()
122 if (apic != &apic_bigsmp) in apic_bigsmp_force()
Dvector.c3 * Local APIC related interfaces to support IOAPIC, MSI, etc.
6 * Moved from arch/x86/kernel/apic/io_apic.c.
19 #include <asm/apic.h>
136 apicd->hw_irq_cfg.dest_apicid = apic->calc_dest_apicid(cpu); in apic_update_irq_cfg()
665 return fwname && !strncmp(fwname, "IO-APIC-", 8) && in x86_fwspec_is_ioapic()
691 * if IRQ remapping is enabled. APIC IDs above 15 bits are in x86_vector_select()
756 * If the IO/APIC is disabled via config, kernel command line or in lapic_update_legacy_vectors()
786 * in the IO/APIC code. in lapic_assign_system_vectors()
832 /* Online the local APIC infrastructure and initialize the vectors */
926 .name = "APIC",
[all …]
Dprobe_64.c5 * Generic APIC sub-arch probe layer.
12 #include <asm/apic.h>
16 /* Select the appropriate APIC driver */
19 struct apic **drv; in x86_64_probe_apic()
33 struct apic **drv; in default_acpi_madt_oem_check()
DMakefile3 # Makefile for local APIC drivers and for the IO-APIC code
10 obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_common.o apic_noop.o ipi.o vector.o init.o
18 # APIC probe will depend on the listing order here
26 # APIC probe will depend on the listing order here
Dapic_numachip.c6 * Numascale NumaConnect-Specific APIC Code
24 static const struct apic apic_numachip1;
25 static const struct apic apic_numachip2;
91 /* Send via local APIC where non-local part matches */ in numachip_send_IPI_one()
151 return apic == &apic_numachip1; in numachip1_probe()
156 return apic == &apic_numachip2; in numachip2_probe()
220 static const struct apic apic_numachip1 __refconst = {
257 static const struct apic apic_numachip2 __refconst = {
Dx2apic_phys.c10 static struct apic apic_x2apic_phys;
16 if (apic->x2apic_set_max_apicid) in x2apic_set_max_apicid()
17 apic->max_apic_id = apicid; in x2apic_set_max_apicid()
124 return apic == &apic_x2apic_phys; in x2apic_phys_probe()
142 static struct apic apic_x2apic_phys __ro_after_init = {
/Linux-v6.6/arch/x86/include/asm/
Dapic.h33 * This can be turned up by using apic=verbose for more
34 * information and apic=debug for _lots_ of information.
35 * apic_verbosity is defined in apic.c
69 * With 82489DX we can't rely on apic feature bit
71 * such an apic chip so we assume that SMP configuration
251 * Generic APIC sub-arch data struct.
257 struct apic { struct
287 /* The limit of the APIC ID space. */
330 * Pointer to the local APIC driver in use on this system (there's
334 extern struct apic *apic;
[all …]
/Linux-v6.6/Documentation/devicetree/bindings/interrupt-controller/
Dintel,ce4100-ioapic.yaml7 title: Intel I/O Advanced Programmable Interrupt Controller (IO APIC)
13 Intel's Advanced Programmable Interrupt Controller (APIC) is a
14 family of interrupt controllers. The APIC is a split
16 into the processor itself and an external I/O APIC. Local APIC
18 from internal sources and from an external I/O APIC (ioapic).
26 This schema defines bindings for I/O APIC interrupt controller.
Dintel,ce4100-lapic.yaml13 Intel's Advanced Programmable Interrupt Controller (APIC) is a
14 family of interrupt controllers. The APIC is a split
16 into the processor itself and an external I/O APIC. Local APIC
18 from internal sources and from an external I/O APIC (ioapic).
26 This schema defines bindings for local APIC interrupt controller.
/Linux-v6.6/drivers/iommu/
Dhyperv-iommu.c17 #include <asm/apic.h>
30 * According 82093AA IO-APIC spec , IO APIC has a 24-entry Interrupt
31 * Redirection Table. Hyper-V exposes one single IO-APIC and so define
32 * 24 IO APIC remmapping entries.
89 * Hypver-V IO APIC irq affinity should be in the scope of in hyperv_irq_remapping_alloc()
107 /* Claim the only I/O APIC emulated by Hyper-V */ in hyperv_irq_remapping_select()
159 * IO-APIC and so IO-APIC only accepts 8-bit APIC ID. in hyperv_prepare_irq_remapping()
160 * Cpu's APIC ID is read from ACPI MADT table and APIC IDs in hyperv_prepare_irq_remapping()
162 * APIC ID reflects cpu topology. There maybe some APIC ID in hyperv_prepare_irq_remapping()
165 * into ioapic_max_cpumask if its APIC ID is less than 256. in hyperv_prepare_irq_remapping()
/Linux-v6.6/Documentation/arch/x86/i386/
DIO-APIC.rst4 IO-APIC
9 Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
12 IO-APIC, interrupts from hardware will be delivered only to the
23 If your box boots fine with enabled IO-APIC IRQs, then your
28 0: 1360293 IO-APIC-edge timer
29 1: 4 IO-APIC-edge keyboard
32 14: 1448 IO-APIC-edge ide0
33 16: 28232 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet
34 17: 51304 IO-APIC-level eth0
97 board does not do default daisy-chaining. (or the IO-APIC has the PIRQ pins
/Linux-v6.6/arch/x86/kernel/
Dirqinit.c27 #include <asm/apic.h>
34 * ISA PIC or low IO-APIC triggered (INTA-cycle or APIC) interrupts:
39 * The IO-APIC gives us many more interrupt sources. Most of these
44 * IO-APIC registers.
59 * Try to set up the through-local-APIC virtual wire mode earlier. in init_ISA_irqs()
61 * On some 32-bit UP machines, whose APIC has been disabled by BIOS in init_ISA_irqs()
82 * these IRQs are handled by more modern controllers like IO-APIC, in init_IRQ()
/Linux-v6.6/arch/x86/kvm/svm/
Davic.c31 * Encode the arbitrary VM ID and the vCPU's default APIC ID, i.e the vCPU ID,
36 * guest physical APIC ID (limited by the size of the physical ID table), and
97 * achieved using AVIC doorbell. KVM disables the APIC access page in avic_activate_vmcb()
101 if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) { in avic_activate_vmcb()
108 * Flush the TLB, the guest may have inserted a non-APIC in avic_activate_vmcb()
205 /* Allocating physical APIC ID table (4KB) */ in avic_vm_init()
212 /* Allocating logical APIC ID table (4KB) */ in avic_vm_init()
287 if (!vcpu->arch.apic->regs) in avic_init_backing_page()
304 svm->avic_backing_page = virt_to_page(vcpu->arch.apic->regs); in avic_init_backing_page()
306 /* Setting AVIC backing page address in the phy APIC ID table */ in avic_init_backing_page()
[all …]
/Linux-v6.6/arch/x86/xen/
Dapic.c6 #include <asm/apic.h>
16 static unsigned int xen_io_apic_read(unsigned apic, unsigned reg) in xen_io_apic_read() argument
21 apic_op.apic_physbase = mpc_ioapic_addr(apic); in xen_io_apic_read()
31 return apic << 24; in xen_io_apic_read()
56 /* Shouldn't need this as APIC is turned off for PV, and we only in xen_apic_read()
126 static struct apic xen_pv_apic __ro_after_init = {
/Linux-v6.6/Documentation/virt/kvm/x86/
Dhypercalls.rst99 specifying APIC ID (a1) of the vcpu to be woken up. An additional argument (a0)
147 - a0: lower part of the bitmap of destination APIC IDs
148 - a1: higher part of the bitmap of destination APIC IDs
149 - a2: the lowest APIC ID in bitmap
150 - a3: APIC ICR
156 a0 corresponds to the APIC ID in the third argument (a2), bit 1
157 corresponds to the APIC ID a2+1, and so on.
168 a0: destination APIC ID
/Linux-v6.6/arch/x86/kernel/cpu/
Dtopology.c9 #include <asm/apic.h>
79 * initial apic id, which also represents 32-bit extended x2apic id. in detect_extended_topology_early()
149 c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, in detect_extended_topology()
153 c->cpu_die_id = apic->phys_pkg_id(c->initial_apicid, in detect_extended_topology()
157 c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, in detect_extended_topology()
162 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0); in detect_extended_topology()
Dacrn.c15 #include <asm/apic.h>
48 * The hypervisor requires that the APIC EOI should be acked. in DEFINE_IDTENTRY_SYSVEC()
49 * If the APIC EOI is not acked, the APIC ISR bit for the in DEFINE_IDTENTRY_SYSVEC()

12345678910>>...12