75 lines
2.1 KiB
YAML
75 lines
2.1 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/interrupt-controller/riscv,rpmi-system-msi.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: RISC-V RPMI system MSI service group based interrupt controller
|
|
|
|
maintainers:
|
|
- Anup Patel <anup@brainfault.org>
|
|
|
|
description: |
|
|
The RISC-V Platform Management Interface (RPMI) [1] defines a
|
|
messaging protocol which is modular and extensible. The supervisor
|
|
software can send/receive RPMI messages via SBI MPXY extension [2]
|
|
or some dedicated supervisor-mode RPMI transport.
|
|
|
|
The RPMI specification [1] defines system MSI service group which
|
|
allow application processors to receive MSIs upon system events
|
|
such as P2A doorbell, graceful shutdown/reboot request, CPU hotplug
|
|
event, memory hotplug event, etc from the platform microcontroller.
|
|
The supervisor software can access RPMI system MSI service group via
|
|
SBI MPXY channel or some dedicated supervisor-mode RPMI transport.
|
|
|
|
===========================================
|
|
References
|
|
===========================================
|
|
|
|
[1] RISC-V Platform Management Interface (RPMI) v1.0 (or higher)
|
|
https://github.com/riscv-non-isa/riscv-rpmi/releases
|
|
|
|
[2] RISC-V Supervisor Binary Interface (SBI) v3.0 (or higher)
|
|
https://github.com/riscv-non-isa/riscv-sbi-doc/releases
|
|
|
|
allOf:
|
|
- $ref: /schemas/interrupt-controller.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
description:
|
|
Intended for use by the supervisor software.
|
|
const: riscv,rpmi-system-msi
|
|
|
|
mboxes:
|
|
maxItems: 1
|
|
description:
|
|
Mailbox channel of the underlying RPMI transport or SBI message proxy channel.
|
|
|
|
msi-parent: true
|
|
|
|
interrupt-controller: true
|
|
|
|
"#interrupt-cells":
|
|
const: 1
|
|
|
|
required:
|
|
- compatible
|
|
- mboxes
|
|
- msi-parent
|
|
- interrupt-controller
|
|
- "#interrupt-cells"
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
interrupt-controller {
|
|
compatible = "riscv,rpmi-system-msi";
|
|
mboxes = <&mpxy_mbox 0x2000 0x0>;
|
|
msi-parent = <&imsic_slevel>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
...
|