1*c66ec88fSEmmanuel VadotTexas Instruments' Secure Proxy 2*c66ec88fSEmmanuel Vadot======================================== 3*c66ec88fSEmmanuel Vadot 4*c66ec88fSEmmanuel VadotThe Texas Instruments' secure proxy is a mailbox controller that has 5*c66ec88fSEmmanuel Vadotconfigurable queues selectable at SoC(System on Chip) integration. The 6*c66ec88fSEmmanuel VadotMessage manager is broken up into different address regions that are 7*c66ec88fSEmmanuel Vadotcalled "threads" or "proxies" - each instance is unidirectional and is 8*c66ec88fSEmmanuel Vadotinstantiated at SoC integration level by system controller to indicate 9*c66ec88fSEmmanuel Vadotreceive or transmit path. 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel VadotMessage Manager Device Node: 12*c66ec88fSEmmanuel Vadot=========================== 13*c66ec88fSEmmanuel VadotRequired properties: 14*c66ec88fSEmmanuel Vadot-------------------- 15*c66ec88fSEmmanuel Vadot- compatible: Shall be "ti,am654-secure-proxy" 16*c66ec88fSEmmanuel Vadot- reg-names target_data - Map the proxy data region 17*c66ec88fSEmmanuel Vadot rt - Map the realtime status region 18*c66ec88fSEmmanuel Vadot scfg - Map the configuration region 19*c66ec88fSEmmanuel Vadot- reg: Contains the register map per reg-names. 20*c66ec88fSEmmanuel Vadot- #mbox-cells Shall be 1 and shall refer to the transfer path 21*c66ec88fSEmmanuel Vadot called thread. 22*c66ec88fSEmmanuel Vadot- interrupt-names: Contains interrupt names matching the rx transfer path 23*c66ec88fSEmmanuel Vadot for a given SoC. Receive interrupts shall be of the 24*c66ec88fSEmmanuel Vadot format: "rx_<PID>". 25*c66ec88fSEmmanuel Vadot- interrupts: Contains the interrupt information corresponding to 26*c66ec88fSEmmanuel Vadot interrupt-names property. 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel VadotExample(AM654): 29*c66ec88fSEmmanuel Vadot------------ 30*c66ec88fSEmmanuel Vadot 31*c66ec88fSEmmanuel Vadot secure_proxy: mailbox@32c00000 { 32*c66ec88fSEmmanuel Vadot compatible = "ti,am654-secure-proxy"; 33*c66ec88fSEmmanuel Vadot #mbox-cells = <1>; 34*c66ec88fSEmmanuel Vadot reg-names = "target_data", "rt", "scfg"; 35*c66ec88fSEmmanuel Vadot reg = <0x0 0x32c00000 0x0 0x100000>, 36*c66ec88fSEmmanuel Vadot <0x0 0x32400000 0x0 0x100000>, 37*c66ec88fSEmmanuel Vadot <0x0 0x32800000 0x0 0x100000>; 38*c66ec88fSEmmanuel Vadot interrupt-names = "rx_011"; 39*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 40*c66ec88fSEmmanuel Vadot }; 41*c66ec88fSEmmanuel Vadot 42*c66ec88fSEmmanuel Vadot dmsc: dmsc { 43*c66ec88fSEmmanuel Vadot [...] 44*c66ec88fSEmmanuel Vadot mbox-names = "rx", "tx"; 45*c66ec88fSEmmanuel Vadot # RX Thread ID is 11 46*c66ec88fSEmmanuel Vadot # TX Thread ID is 13 47*c66ec88fSEmmanuel Vadot mboxes= <&secure_proxy 11>, 48*c66ec88fSEmmanuel Vadot <&secure_proxy 13>; 49*c66ec88fSEmmanuel Vadot [...] 50*c66ec88fSEmmanuel Vadot }; 51