2023-08-30 17:31:07 +02:00
|
|
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
|
|
%YAML 1.2
|
|
|
|
---
|
2023-10-24 12:59:35 +02:00
|
|
|
$id: http://devicetree.org/schemas/interrupt-controller/intel,ce4100-lapic.yaml#
|
|
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
2023-08-30 17:31:07 +02:00
|
|
|
|
|
|
|
title: Intel Local Advanced Programmable Interrupt Controller (LAPIC)
|
|
|
|
|
|
|
|
maintainers:
|
|
|
|
- Rahul Tanwar <rtanwar@maxlinear.com>
|
|
|
|
|
|
|
|
description: |
|
|
|
|
Intel's Advanced Programmable Interrupt Controller (APIC) is a
|
|
|
|
family of interrupt controllers. The APIC is a split
|
|
|
|
architecture design, with a local component (LAPIC) integrated
|
|
|
|
into the processor itself and an external I/O APIC. Local APIC
|
|
|
|
(lapic) receives interrupts from the processor's interrupt pins,
|
|
|
|
from internal sources and from an external I/O APIC (ioapic).
|
|
|
|
And it sends these to the processor core for handling.
|
|
|
|
See [1] Chapter 8 for more details.
|
|
|
|
|
|
|
|
Many of the Intel's generic devices like hpet, ioapic, lapic have
|
|
|
|
the ce4100 name in their compatible property names because they
|
|
|
|
first appeared in CE4100 SoC.
|
|
|
|
|
|
|
|
This schema defines bindings for local APIC interrupt controller.
|
|
|
|
|
|
|
|
[1] https://pdos.csail.mit.edu/6.828/2008/readings/ia32/IA32-3A.pdf
|
|
|
|
|
|
|
|
properties:
|
|
|
|
compatible:
|
|
|
|
const: intel,ce4100-lapic
|
|
|
|
|
|
|
|
reg:
|
|
|
|
maxItems: 1
|
|
|
|
|
|
|
|
interrupt-controller: true
|
|
|
|
|
|
|
|
'#interrupt-cells':
|
|
|
|
const: 2
|
|
|
|
|
|
|
|
intel,virtual-wire-mode:
|
|
|
|
description: Intel defines a few possible interrupt delivery
|
|
|
|
modes. With respect to boot/init time, mainly two interrupt
|
|
|
|
delivery modes are possible.
|
|
|
|
PIC Mode - Legacy external 8259 compliant PIC interrupt controller.
|
|
|
|
Virtual Wire Mode - use lapic as virtual wire interrupt delivery mode.
|
|
|
|
For ACPI or MPS spec compliant systems, it is figured out by some read
|
|
|
|
only bit field/s available in their respective defined data structures.
|
|
|
|
For OF based systems, it is by default set to PIC mode.
|
|
|
|
But if this optional boolean property is set, then the interrupt delivery
|
|
|
|
mode is configured to virtual wire compatibility mode.
|
|
|
|
type: boolean
|
|
|
|
|
|
|
|
required:
|
|
|
|
- compatible
|
|
|
|
- reg
|
|
|
|
- interrupt-controller
|
|
|
|
- '#interrupt-cells'
|
|
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
|
|
examples:
|
|
|
|
- |
|
|
|
|
lapic0: interrupt-controller@fee00000 {
|
|
|
|
compatible = "intel,ce4100-lapic";
|
|
|
|
reg = <0xfee00000 0x1000>;
|
|
|
|
interrupt-controller;
|
|
|
|
#interrupt-cells = <2>;
|
|
|
|
intel,virtual-wire-mode;
|
|
|
|
};
|