xref: /linux/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra194-cbb.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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