2023-08-30 17:31:07 +02:00
|
|
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
|
|
%YAML 1.2
|
|
|
|
---
|
2023-10-24 12:59:35 +02:00
|
|
|
$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra234-cbb.yaml#
|
|
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
2023-08-30 17:31:07 +02:00
|
|
|
|
|
|
|
title: NVIDIA Tegra CBB 2.0
|
|
|
|
|
|
|
|
maintainers:
|
|
|
|
- Sumit Gupta <sumitg@nvidia.com>
|
|
|
|
|
|
|
|
description: |+
|
|
|
|
The Control Backbone (CBB) is comprised of the physical path from an
|
|
|
|
initiator to a target's register configuration space. CBB 2.0 consists
|
|
|
|
of multiple sub-blocks connected to each other to create a topology.
|
|
|
|
The Tegra234 SoC has different fabrics based on CBB 2.0 architecture
|
|
|
|
which include cluster fabrics BPMP, AON, PSC, SCE, RCE, DCE, FSI and
|
|
|
|
"CBB central fabric".
|
|
|
|
|
|
|
|
In CBB 2.0, each initiator which can issue transactions connects to a
|
|
|
|
Root Master Node (MN) before it connects to any other element of the
|
|
|
|
fabric. Each Root MN contains a Error Monitor (EM) which detects and
|
|
|
|
logs error. Interrupts from various EM blocks are collated by Error
|
|
|
|
Notifier (EN) which is per fabric and presents a single interrupt from
|
|
|
|
fabric to the SoC interrupt controller.
|
|
|
|
|
|
|
|
The driver handles errors from CBB due to illegal register accesses
|
|
|
|
and prints debug information about failed transaction on receiving
|
|
|
|
the interrupt from EN. Debug information includes Error Code, Error
|
|
|
|
Description, MasterID, Fabric, SlaveID, Address, Cache, Protection,
|
|
|
|
Security Group etc on receiving error notification.
|
|
|
|
|
|
|
|
If the Error Response Disable (ERD) is set/enabled for an initiator,
|
|
|
|
then SError or Data abort exception error response is masked and an
|
|
|
|
interrupt is used for reporting errors due to illegal accesses from
|
|
|
|
that initiator. The value returned on read failures is '0xFFFFFFFF'
|
|
|
|
for compatibility with PCIE.
|
|
|
|
|
|
|
|
properties:
|
|
|
|
$nodename:
|
|
|
|
pattern: "^[a-z]+-fabric@[0-9a-f]+$"
|
|
|
|
|
|
|
|
compatible:
|
|
|
|
enum:
|
|
|
|
- nvidia,tegra234-aon-fabric
|
|
|
|
- nvidia,tegra234-bpmp-fabric
|
|
|
|
- nvidia,tegra234-cbb-fabric
|
|
|
|
- nvidia,tegra234-dce-fabric
|
|
|
|
- nvidia,tegra234-rce-fabric
|
|
|
|
- nvidia,tegra234-sce-fabric
|
|
|
|
|
|
|
|
reg:
|
|
|
|
maxItems: 1
|
|
|
|
|
|
|
|
interrupts:
|
|
|
|
items:
|
|
|
|
- description: secure interrupt from error notifier
|
|
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
|
|
required:
|
|
|
|
- compatible
|
|
|
|
- reg
|
|
|
|
- interrupts
|
|
|
|
|
|
|
|
examples:
|
|
|
|
- |
|
|
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
|
|
|
|
cbb-fabric@1300000 {
|
|
|
|
compatible = "nvidia,tegra234-cbb-fabric";
|
|
|
|
reg = <0x13a00000 0x400000>;
|
|
|
|
interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
};
|