The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 Xilinx IPI Mailbox Controller
    2 ========================================
    3 
    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.
    7 
    8                +-------------------------------------+
    9                | Xilinx ZynqMP IPI Controller        |
   10                +-------------------------------------+
   11     +--------------------------------------------------+
   12 ATF                    |                     |
   13                        |                     |
   14                        |                     |
   15     +--------------------------+             |
   16                        |                     |
   17                        |                     |
   18     +--------------------------------------------------+
   19             +------------------------------------------+
   20             |  +----------------+   +----------------+ |
   21 Hardware    |  |  IPI Agent     |   |  IPI Buffers   | |
   22             |  |  Registers     |   |                | |
   23             |  |                |   |                | |
   24             |  +----------------+   +----------------+ |
   25             |                                          |
   26             | Xilinx IPI Agent Block                   |
   27             +------------------------------------------+
   28 
   29 
   30 Controller Device Node:
   31 ===========================
   32 Required properties:
   33 --------------------
   34 IPI agent node:
   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
   42 
   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
   48                             by remote
   49                         * local_response_region
   50                           - IPI response msg buffer written by local and read
   51                             by remote
   52                         * remote_request_region
   53                           - IPI request msg buffer written by remote and read
   54                             by local
   55                         * remote_response_region
   56                           - IPI response msg buffer written by remote and read
   57                             by local
   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
   61                         connected to.
   62 
   63 Optional properties:
   64 --------------------
   65 - method:              The method of accessing the IPI agent registers.
   66                        Permitted values are: "smc" and "hvc". Default is
   67                        "smc".
   68 
   69 Client Device Node:
   70 ===========================
   71 Required properties:
   72 --------------------
   73 - mboxes:               Standard property to specify a mailbox
   74                         (See ./mailbox.txt)
   75 - mbox-names:           List of identifier  strings for each mailbox
   76                         channel.
   77 
   78 Example:
   79 ===========================
   80         zynqmp_ipi {
   81                 compatible = "xlnx,zynqmp-ipi-mailbox";
   82                 interrupt-parent = <&gic>;
   83                 interrupts = <0 29 4>;
   84                 xlnx,ipi-id = <0>;
   85                 #address-cells = <1>;
   86                 #size-cells = <1>;
   87                 ranges;
   88 
   89                 /* APU<->RPU0 IPI mailbox controller */
   90                 ipi_mailbox_rpu0: mailbox@ff990400 {
   91                         reg = <0xff990400 0x20>,
   92                               <0xff990420 0x20>,
   93                               <0xff990080 0x20>,
   94                               <0xff9900a0 0x20>;
   95                         reg-names = "local_request_region",
   96                                     "local_response_region",
   97                                     "remote_request_region",
   98                                     "remote_response_region";
   99                         #mbox-cells = <1>;
  100                         xlnx,ipi-id = <1>;
  101                 };
  102                 /* APU<->RPU1 IPI mailbox controller */
  103                 ipi_mailbox_rpu1: mailbox@ff990440 {
  104                         reg = <0xff990440 0x20>,
  105                               <0xff990460 0x20>,
  106                               <0xff990280 0x20>,
  107                               <0xff9902a0 0x20>;
  108                         reg-names = "local_request_region",
  109                                     "local_response_region",
  110                                     "remote_request_region",
  111                                     "remote_response_region";
  112                         #mbox-cells = <1>;
  113                         xlnx,ipi-id = <2>;
  114                 };
  115         };
  116         rpu0 {
  117                 ...
  118                 mboxes = <&ipi_mailbox_rpu0 0>,
  119                          <&ipi_mailbox_rpu0 1>;
  120                 mbox-names = "tx", "rx";
  121         };
  122         rpu1 {
  123                 ...
  124                 mboxes = <&ipi_mailbox_rpu1 0>,
  125                          <&ipi_mailbox_rpu1 1>;
  126                 mbox-names = "tx", "rx";
  127         };

Cache object: 13180aaaa84a924e75bea370d4d28831


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.