xref: /freebsd/sys/contrib/device-tree/Bindings/arm/tegra/nvidia,tegra194-cbb.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
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