1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2b97ee269SEmmanuel Vadot%YAML 1.2 3b97ee269SEmmanuel Vadot--- 4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra194-cbb.yaml# 5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6b97ee269SEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: NVIDIA Tegra194 CBB 1.0 8b97ee269SEmmanuel Vadot 9b97ee269SEmmanuel Vadotmaintainers: 10b97ee269SEmmanuel Vadot - Sumit Gupta <sumitg@nvidia.com> 11b97ee269SEmmanuel Vadot 12b97ee269SEmmanuel Vadotdescription: |+ 13b97ee269SEmmanuel Vadot The Control Backbone (CBB) is comprised of the physical path from an 14b97ee269SEmmanuel Vadot initiator to a target's register configuration space. CBB 1.0 has 15b97ee269SEmmanuel Vadot multiple hierarchical sub-NOCs (Network-on-Chip) and connects various 16b97ee269SEmmanuel Vadot initiators and targets using different bridges like AXIP2P, AXI2APB. 17b97ee269SEmmanuel Vadot 18b97ee269SEmmanuel Vadot This driver handles errors due to illegal register accesses reported 19b97ee269SEmmanuel Vadot by the NOCs inside the CBB. NOCs reporting errors are cluster NOCs 20b97ee269SEmmanuel Vadot "AON-NOC, SCE-NOC, RCE-NOC, BPMP-NOC, CV-NOC" and "CBB Central NOC" 21b97ee269SEmmanuel Vadot which is the main NOC. 22b97ee269SEmmanuel Vadot 23b97ee269SEmmanuel Vadot By default, the access issuing initiator is informed about the error 24b97ee269SEmmanuel Vadot using SError or Data Abort exception unless the ERD (Error Response 25b97ee269SEmmanuel Vadot Disable) is enabled/set for that initiator. If the ERD is enabled, then 26b97ee269SEmmanuel Vadot SError or Data Abort is masked and the error is reported with interrupt. 27b97ee269SEmmanuel Vadot 28b97ee269SEmmanuel Vadot - For CCPLEX (CPU Complex) initiator, the driver sets ERD bit. So, the 29b97ee269SEmmanuel Vadot errors due to illegal accesses from CCPLEX are reported by interrupts. 30b97ee269SEmmanuel Vadot If ERD is not set, then error is reported by SError. 31b97ee269SEmmanuel Vadot - For other initiators, the ERD is disabled. So, the access issuing 32b97ee269SEmmanuel Vadot initiator is informed about the illegal access by Data Abort exception. 33b97ee269SEmmanuel Vadot In addition, an interrupt is also generated to CCPLEX. These initiators 34b97ee269SEmmanuel Vadot include all engines using Cortex-R5 (which is ARMv7 CPU cluster) and 35b97ee269SEmmanuel Vadot engines like TSEC (Security co-processor), NVDEC (NVIDIA Video Decoder 36b97ee269SEmmanuel Vadot engine) etc which can initiate transactions. 37b97ee269SEmmanuel Vadot 38b97ee269SEmmanuel Vadot The driver prints relevant debug information like Error Code, Error 39b97ee269SEmmanuel Vadot Description, Master, Address, AXI ID, Cache, Protection, Security Group 40b97ee269SEmmanuel Vadot etc on receiving error notification. 41b97ee269SEmmanuel Vadot 42b97ee269SEmmanuel Vadotproperties: 43b97ee269SEmmanuel Vadot $nodename: 44b97ee269SEmmanuel Vadot pattern: "^[a-z]+-noc@[0-9a-f]+$" 45b97ee269SEmmanuel Vadot 46b97ee269SEmmanuel Vadot compatible: 47b97ee269SEmmanuel Vadot enum: 48b97ee269SEmmanuel Vadot - nvidia,tegra194-cbb-noc 49b97ee269SEmmanuel Vadot - nvidia,tegra194-aon-noc 50b97ee269SEmmanuel Vadot - nvidia,tegra194-bpmp-noc 51b97ee269SEmmanuel Vadot - nvidia,tegra194-rce-noc 52b97ee269SEmmanuel Vadot - nvidia,tegra194-sce-noc 53b97ee269SEmmanuel Vadot 54b97ee269SEmmanuel Vadot reg: 55b97ee269SEmmanuel Vadot maxItems: 1 56b97ee269SEmmanuel Vadot 57b97ee269SEmmanuel Vadot interrupts: 58b97ee269SEmmanuel Vadot description: 59b97ee269SEmmanuel Vadot CCPLEX receives secure or nonsecure interrupt depending on error type. 60b97ee269SEmmanuel Vadot A secure interrupt is received for SEC(firewall) & SLV errors and a 61b97ee269SEmmanuel Vadot non-secure interrupt is received for TMO & DEC errors. 62b97ee269SEmmanuel Vadot items: 63b97ee269SEmmanuel Vadot - description: non-secure interrupt 64b97ee269SEmmanuel Vadot - description: secure interrupt 65b97ee269SEmmanuel Vadot 66b97ee269SEmmanuel Vadot nvidia,axi2apb: 67*fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 68b97ee269SEmmanuel Vadot description: 69b97ee269SEmmanuel Vadot Specifies the node having all axi2apb bridges which need to be checked 70b97ee269SEmmanuel Vadot for any error logged in their status register. 71b97ee269SEmmanuel Vadot 72b97ee269SEmmanuel Vadot nvidia,apbmisc: 73*fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 74b97ee269SEmmanuel Vadot description: 75b97ee269SEmmanuel Vadot Specifies the apbmisc node which need to be used for reading the ERD 76b97ee269SEmmanuel Vadot register. 77b97ee269SEmmanuel Vadot 78b97ee269SEmmanuel VadotadditionalProperties: false 79b97ee269SEmmanuel Vadot 80b97ee269SEmmanuel Vadotrequired: 81b97ee269SEmmanuel Vadot - compatible 82b97ee269SEmmanuel Vadot - reg 83b97ee269SEmmanuel Vadot - interrupts 84b97ee269SEmmanuel Vadot - nvidia,apbmisc 85b97ee269SEmmanuel Vadot 86b97ee269SEmmanuel Vadotexamples: 87b97ee269SEmmanuel Vadot - | 88b97ee269SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 89b97ee269SEmmanuel Vadot 90b97ee269SEmmanuel Vadot cbb-noc@2300000 { 91b97ee269SEmmanuel Vadot compatible = "nvidia,tegra194-cbb-noc"; 92b97ee269SEmmanuel Vadot reg = <0x02300000 0x1000>; 93b97ee269SEmmanuel Vadot interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>, 94b97ee269SEmmanuel Vadot <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>; 95b97ee269SEmmanuel Vadot nvidia,axi2apb = <&axi2apb>; 96b97ee269SEmmanuel Vadot nvidia,apbmisc = <&apbmisc>; 97b97ee269SEmmanuel Vadot }; 98