/Linux-v6.6/arch/x86/kvm/ |
D | lapic.c | 4 * 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 …]
|
D | lapic.h | 74 * 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/ |
D | init.c | 2 #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 …]
|
D | apic.c | 3 * 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 …]
|
D | io_apic.c | 3 * 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 …]
|
D | apic_flat_64.c | 5 * 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 …]
|
D | probe_32.c | 3 * 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()
|
D | apic_noop.c | 3 * 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 = {
|
D | bigsmp_32.c | 3 * 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()
|
D | vector.c | 3 * 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 …]
|
D | probe_64.c | 5 * 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()
|
D | Makefile | 3 # 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
|
D | apic_numachip.c | 6 * 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 = {
|
D | x2apic_phys.c | 10 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/ |
D | apic.h | 33 * 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/ |
D | intel,ce4100-ioapic.yaml | 7 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.
|
D | intel,ce4100-lapic.yaml | 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 local APIC interrupt controller.
|
/Linux-v6.6/drivers/iommu/ |
D | hyperv-iommu.c | 17 #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/ |
D | IO-APIC.rst | 4 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/ |
D | irqinit.c | 27 #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/ |
D | avic.c | 31 * 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/ |
D | apic.c | 6 #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/ |
D | hypercalls.rst | 99 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/ |
D | topology.c | 9 #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()
|
D | acrn.c | 15 #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()
|