1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/remoteproc/amd,bram-rproc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: AMD MicroBlaze/V BRAM-based Remote Processor 8 9maintainers: 10 - Ben Levinsky <ben.levinsky@amd.com> 11 12description: | 13 Soft-core processor subsystem instantiated in AMD programmable logic and 14 using dual-port BRAM for firmware storage and execution. 15 16 Hardware Architecture: 17 18 Host (PS) Programmable Logic (PL) 19 ========= ====================== 20 21 AXI Interface -----------------> AXI BRAM Controller (Host Port) 22 | 23 | Port A 24 v 25 +-----------------+ 26 | Dual-Port BRAM | 27 | (shared memory) | 28 +-----------------+ 29 ^ 30 | Port B 31 | 32 AXI BRAM Controller (Soft-core Port) 33 ^ 34 | LMB 35 | 36 Soft-core CPU (MicroBlaze/V) 37 38 GPIO --------------------------> Proc Sys Reset ----> CPU Reset Signal 39 40 Clock -------------------------> Clock Distribution -> CPU Clock 41 42 Memory Architecture: 43 44 The dual-port BRAM allows simultaneous access from both processors: 45 - Port A: Connected to the host AXI BRAM controller for firmware loading 46 - Port B: Connected to the soft-core local memory bus for execution 47 48 The reg property describes the executable BRAM window in the processor-local 49 address space. The parent bus node translates that window to the system 50 physical address space by using standard devicetree address translation 51 through ranges. A clock input and a reset GPIO control the subsystem. 52 53properties: 54 compatible: 55 oneOf: 56 - const: xlnx,zynqmp-bram-rproc 57 - items: 58 - enum: 59 - amd,versal2-bram-rproc 60 - xlnx,versal-bram-rproc 61 - xlnx,versal-net-bram-rproc 62 - const: xlnx,zynqmp-bram-rproc 63 64 reg: 65 maxItems: 1 66 description: 67 Processor-local address and size of the BRAM firmware memory window, 68 as seen by the soft-core processor (typically 0x0 for reset vector). 69 The parent bus ranges property must translate this window to the 70 corresponding system physical address. 71 72 clocks: 73 maxItems: 1 74 description: 75 Clock input for the soft-core processor subsystem. 76 77 firmware-name: 78 maxItems: 1 79 description: 80 Name of the firmware ELF file to load. 81 82 reset-gpios: 83 maxItems: 1 84 description: 85 GPIO specifier controlling the soft-core reset input. 86 87required: 88 - compatible 89 - reg 90 - clocks 91 - reset-gpios 92 93additionalProperties: false 94 95examples: 96 - | 97 #include <dt-bindings/gpio/gpio.h> 98 remoteproc@0 { 99 compatible = "xlnx,zynqmp-bram-rproc"; 100 reg = <0x0 0x40000>; 101 clocks = <&pl_clk>; 102 firmware-name = "firmware.elf"; 103 reset-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; 104 }; 105... 106