xref: /freebsd/sys/contrib/device-tree/Bindings/arm/tegra/nvidia,tegra234-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,tegra234-cbb.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: NVIDIA Tegra CBB 2.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 2.0 consists
15b97ee269SEmmanuel Vadot  of multiple sub-blocks connected to each other to create a topology.
16b97ee269SEmmanuel Vadot  The Tegra234 SoC has different fabrics based on CBB 2.0 architecture
17b97ee269SEmmanuel Vadot  which include cluster fabrics BPMP, AON, PSC, SCE, RCE, DCE, FSI and
18b97ee269SEmmanuel Vadot  "CBB central fabric".
19b97ee269SEmmanuel Vadot
20b97ee269SEmmanuel Vadot  In CBB 2.0, each initiator which can issue transactions connects to a
21b97ee269SEmmanuel Vadot  Root Master Node (MN) before it connects to any other element of the
22b97ee269SEmmanuel Vadot  fabric. Each Root MN contains a Error Monitor (EM) which detects and
23b97ee269SEmmanuel Vadot  logs error. Interrupts from various EM blocks are collated by Error
24b97ee269SEmmanuel Vadot  Notifier (EN) which is per fabric and presents a single interrupt from
25b97ee269SEmmanuel Vadot  fabric to the SoC interrupt controller.
26b97ee269SEmmanuel Vadot
27b97ee269SEmmanuel Vadot  The driver handles errors from CBB due to illegal register accesses
28b97ee269SEmmanuel Vadot  and prints debug information about failed transaction on receiving
29b97ee269SEmmanuel Vadot  the interrupt from EN. Debug information includes Error Code, Error
30b97ee269SEmmanuel Vadot  Description, MasterID, Fabric, SlaveID, Address, Cache, Protection,
31b97ee269SEmmanuel Vadot  Security Group etc on receiving error notification.
32b97ee269SEmmanuel Vadot
33b97ee269SEmmanuel Vadot  If the Error Response Disable (ERD) is set/enabled for an initiator,
34b97ee269SEmmanuel Vadot  then SError or Data abort exception error response is masked and an
35b97ee269SEmmanuel Vadot  interrupt is used for reporting errors due to illegal accesses from
36b97ee269SEmmanuel Vadot  that initiator. The value returned on read failures is '0xFFFFFFFF'
37b97ee269SEmmanuel Vadot  for compatibility with PCIE.
38b97ee269SEmmanuel Vadot
39b97ee269SEmmanuel Vadotproperties:
40b97ee269SEmmanuel Vadot  $nodename:
41b97ee269SEmmanuel Vadot    pattern: "^[a-z]+-fabric@[0-9a-f]+$"
42b97ee269SEmmanuel Vadot
43b97ee269SEmmanuel Vadot  compatible:
44b97ee269SEmmanuel Vadot    enum:
45b97ee269SEmmanuel Vadot      - nvidia,tegra234-aon-fabric
46b97ee269SEmmanuel Vadot      - nvidia,tegra234-bpmp-fabric
47b97ee269SEmmanuel Vadot      - nvidia,tegra234-cbb-fabric
48b97ee269SEmmanuel Vadot      - nvidia,tegra234-dce-fabric
49b97ee269SEmmanuel Vadot      - nvidia,tegra234-rce-fabric
50b97ee269SEmmanuel Vadot      - nvidia,tegra234-sce-fabric
51b97ee269SEmmanuel Vadot
52b97ee269SEmmanuel Vadot  reg:
53b97ee269SEmmanuel Vadot    maxItems: 1
54b97ee269SEmmanuel Vadot
55b97ee269SEmmanuel Vadot  interrupts:
56b97ee269SEmmanuel Vadot    items:
57b97ee269SEmmanuel Vadot      - description: secure interrupt from error notifier
58b97ee269SEmmanuel Vadot
59b97ee269SEmmanuel VadotadditionalProperties: false
60b97ee269SEmmanuel Vadot
61b97ee269SEmmanuel Vadotrequired:
62b97ee269SEmmanuel Vadot  - compatible
63b97ee269SEmmanuel Vadot  - reg
64b97ee269SEmmanuel Vadot  - interrupts
65b97ee269SEmmanuel Vadot
66b97ee269SEmmanuel Vadotexamples:
67b97ee269SEmmanuel Vadot  - |
68b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
69b97ee269SEmmanuel Vadot
70b97ee269SEmmanuel Vadot    cbb-fabric@1300000 {
71b97ee269SEmmanuel Vadot      compatible = "nvidia,tegra234-cbb-fabric";
72b97ee269SEmmanuel Vadot      reg = <0x13a00000 0x400000>;
73b97ee269SEmmanuel Vadot      interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
74b97ee269SEmmanuel Vadot    };
75