1476111beSSumit Gupta# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2476111beSSumit Gupta%YAML 1.2 3476111beSSumit Gupta--- 4*c94673e8SRob Herring$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra194-cbb.yaml# 5*c94673e8SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 6476111beSSumit Gupta 784e85359SKrzysztof Kozlowskititle: NVIDIA Tegra194 CBB 1.0 8476111beSSumit Gupta 9476111beSSumit Guptamaintainers: 10476111beSSumit Gupta - Sumit Gupta <sumitg@nvidia.com> 11476111beSSumit Gupta 12476111beSSumit Guptadescription: |+ 13476111beSSumit Gupta The Control Backbone (CBB) is comprised of the physical path from an 14476111beSSumit Gupta initiator to a target's register configuration space. CBB 1.0 has 15476111beSSumit Gupta multiple hierarchical sub-NOCs (Network-on-Chip) and connects various 16476111beSSumit Gupta initiators and targets using different bridges like AXIP2P, AXI2APB. 17476111beSSumit Gupta 18476111beSSumit Gupta This driver handles errors due to illegal register accesses reported 19476111beSSumit Gupta by the NOCs inside the CBB. NOCs reporting errors are cluster NOCs 20476111beSSumit Gupta "AON-NOC, SCE-NOC, RCE-NOC, BPMP-NOC, CV-NOC" and "CBB Central NOC" 21476111beSSumit Gupta which is the main NOC. 22476111beSSumit Gupta 23476111beSSumit Gupta By default, the access issuing initiator is informed about the error 24476111beSSumit Gupta using SError or Data Abort exception unless the ERD (Error Response 25476111beSSumit Gupta Disable) is enabled/set for that initiator. If the ERD is enabled, then 26476111beSSumit Gupta SError or Data Abort is masked and the error is reported with interrupt. 27476111beSSumit Gupta 28476111beSSumit Gupta - For CCPLEX (CPU Complex) initiator, the driver sets ERD bit. So, the 29476111beSSumit Gupta errors due to illegal accesses from CCPLEX are reported by interrupts. 30476111beSSumit Gupta If ERD is not set, then error is reported by SError. 31476111beSSumit Gupta - For other initiators, the ERD is disabled. So, the access issuing 32476111beSSumit Gupta initiator is informed about the illegal access by Data Abort exception. 33476111beSSumit Gupta In addition, an interrupt is also generated to CCPLEX. These initiators 34476111beSSumit Gupta include all engines using Cortex-R5 (which is ARMv7 CPU cluster) and 35476111beSSumit Gupta engines like TSEC (Security co-processor), NVDEC (NVIDIA Video Decoder 36476111beSSumit Gupta engine) etc which can initiate transactions. 37476111beSSumit Gupta 38476111beSSumit Gupta The driver prints relevant debug information like Error Code, Error 39476111beSSumit Gupta Description, Master, Address, AXI ID, Cache, Protection, Security Group 40476111beSSumit Gupta etc on receiving error notification. 41476111beSSumit Gupta 42476111beSSumit Guptaproperties: 43476111beSSumit Gupta $nodename: 44476111beSSumit Gupta pattern: "^[a-z]+-noc@[0-9a-f]+$" 45476111beSSumit Gupta 46476111beSSumit Gupta compatible: 47476111beSSumit Gupta enum: 48476111beSSumit Gupta - nvidia,tegra194-cbb-noc 49476111beSSumit Gupta - nvidia,tegra194-aon-noc 50476111beSSumit Gupta - nvidia,tegra194-bpmp-noc 51476111beSSumit Gupta - nvidia,tegra194-rce-noc 52476111beSSumit Gupta - nvidia,tegra194-sce-noc 53476111beSSumit Gupta 54476111beSSumit Gupta reg: 55476111beSSumit Gupta maxItems: 1 56476111beSSumit Gupta 57476111beSSumit Gupta interrupts: 58476111beSSumit Gupta description: 59476111beSSumit Gupta CCPLEX receives secure or nonsecure interrupt depending on error type. 60476111beSSumit Gupta A secure interrupt is received for SEC(firewall) & SLV errors and a 61476111beSSumit Gupta non-secure interrupt is received for TMO & DEC errors. 62476111beSSumit Gupta items: 63476111beSSumit Gupta - description: non-secure interrupt 64476111beSSumit Gupta - description: secure interrupt 65476111beSSumit Gupta 66476111beSSumit Gupta nvidia,axi2apb: 67*c94673e8SRob Herring $ref: /schemas/types.yaml#/definitions/phandle 68476111beSSumit Gupta description: 69476111beSSumit Gupta Specifies the node having all axi2apb bridges which need to be checked 70476111beSSumit Gupta for any error logged in their status register. 71476111beSSumit Gupta 72476111beSSumit Gupta nvidia,apbmisc: 73*c94673e8SRob Herring $ref: /schemas/types.yaml#/definitions/phandle 74476111beSSumit Gupta description: 75476111beSSumit Gupta Specifies the apbmisc node which need to be used for reading the ERD 76476111beSSumit Gupta register. 77476111beSSumit Gupta 78476111beSSumit GuptaadditionalProperties: false 79476111beSSumit Gupta 80476111beSSumit Guptarequired: 81476111beSSumit Gupta - compatible 82476111beSSumit Gupta - reg 83476111beSSumit Gupta - interrupts 84476111beSSumit Gupta - nvidia,apbmisc 85476111beSSumit Gupta 86476111beSSumit Guptaexamples: 87476111beSSumit Gupta - | 88476111beSSumit Gupta #include <dt-bindings/interrupt-controller/arm-gic.h> 89476111beSSumit Gupta 90476111beSSumit Gupta cbb-noc@2300000 { 91476111beSSumit Gupta compatible = "nvidia,tegra194-cbb-noc"; 92476111beSSumit Gupta reg = <0x02300000 0x1000>; 93476111beSSumit Gupta interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>, 94476111beSSumit Gupta <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>; 95476111beSSumit Gupta nvidia,axi2apb = <&axi2apb>; 96476111beSSumit Gupta nvidia,apbmisc = <&apbmisc>; 97476111beSSumit Gupta }; 98