1 Xilinx IPI Mailbox Controller
2 ========================================
4 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
5 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
6 agent owns registers used for notification and buffers for message.
8 +-------------------------------------+
9 | Xilinx ZynqMP IPI Controller |
10 +-------------------------------------+
11 +--------------------------------------------------+
15 +--------------------------+ |
18 +--------------------------------------------------+
19 +------------------------------------------+
20 | +----------------+ +----------------+ |
21 Hardware | | IPI Agent | | IPI Buffers | |
24 | +----------------+ +----------------+ |
26 | Xilinx IPI Agent Block |
27 +------------------------------------------+
30 Controller Device Node:
31 ===========================
35 - compatible: Shall be: "xlnx,zynqmp-ipi-mailbox"
36 - interrupt-parent: Phandle for the interrupt controller
37 - interrupts: Interrupt information corresponding to the
38 interrupt-names property.
39 - xlnx,ipi-id: local Xilinx IPI agent ID
40 - #address-cells: number of address cells of internal IPI mailbox nodes
41 - #size-cells: number of size cells of internal IPI mailbox nodes
43 Internal IPI mailbox node:
44 - reg: IPI buffers address ranges
45 - reg-names: Names of the reg resources. It should have:
46 * local_request_region
47 - IPI request msg buffer written by local and read
49 * local_response_region
50 - IPI response msg buffer written by local and read
52 * remote_request_region
53 - IPI request msg buffer written by remote and read
55 * remote_response_region
56 - IPI response msg buffer written by remote and read
58 - #mbox-cells: Shall be 1. It contains:
59 * tx(0) or rx(1) channel
60 - xlnx,ipi-id: remote Xilinx IPI agent ID of which the mailbox is
65 - method: The method of accessing the IPI agent registers.
66 Permitted values are: "smc" and "hvc". Default is
70 ===========================
73 - mboxes: Standard property to specify a mailbox
75 - mbox-names: List of identifier strings for each mailbox
79 ===========================
81 compatible = "xlnx,zynqmp-ipi-mailbox";
82 interrupt-parent = <&gic>;
83 interrupts = <0 29 4>;
89 /* APU<->RPU0 IPI mailbox controller */
90 ipi_mailbox_rpu0: mailbox@ff990400 {
91 reg = <0xff990400 0x20>,
95 reg-names = "local_request_region",
96 "local_response_region",
97 "remote_request_region",
98 "remote_response_region";
102 /* APU<->RPU1 IPI mailbox controller */
103 ipi_mailbox_rpu1: mailbox@ff990440 {
104 reg = <0xff990440 0x20>,
108 reg-names = "local_request_region",
109 "local_response_region",
110 "remote_request_region",
111 "remote_response_region";
118 mboxes = <&ipi_mailbox_rpu0 0>,
119 <&ipi_mailbox_rpu0 1>;
120 mbox-names = "tx", "rx";
124 mboxes = <&ipi_mailbox_rpu1 0>,
125 <&ipi_mailbox_rpu1 1>;
126 mbox-names = "tx", "rx";