[PATCH 2/2] DT bindings docs for Driver Xilinx ZynqMP AXI Timeout Block (ATB)

Maciej Andrzejewski maciej.andrzejewski at m-works.net
Sun May 25 13:00:00 PDT 2025


Add DT bindings docs for Driver Xilinx ZynqMP AXI Timeout Block (ATB)

Signed-off-by: Maciej Andrzejewski <maciej.andrzejewski at m-works.net>
Signed-off-by: Maciej Andrzejewski <maciej.andrzejewski at iceye.com>
---
 .../bindings/soc/xilinx/xlnx,zynqmp-atb.yaml  | 90 +++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/xilinx/xlnx,zynqmp-atb.yaml

diff --git a/Documentation/devicetree/bindings/soc/xilinx/xlnx,zynqmp-atb.yaml b/Documentation/devicetree/bindings/soc/xilinx/xlnx,zynqmp-atb.yaml
new file mode 100644
index 000000000000..d92747fba947
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/xilinx/xlnx,zynqmp-atb.yaml
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/xilinx/xlnx,zynqmp-atb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx ZynqMP AXI Timeout Block peripheral
+
+maintainers:
+  - Maciej Andrzejewski <maciej.andrzejewski at m-works.net>
+
+description: |+
+
+  This module implements a driver for the Xilinx AXI Timeout Block (ATB).
+  The ATB is used to detect and handle timeouts on AXI transactions.
+  It supports configuration and handling of timeout interrupts for both
+  the Full Power Domain (FPD) and Low Power Domain (LPD) in Xilinx SoCs.
+  The driver reads configuration from the device tree, sets up the necessary
+  registers, and handles interrupts to report timeout events.
+
+  AXI timeouts can be harmful as they stall the bus and can potentially
+  stall the entire Linux system. Due to hardware limitations, this driver
+  cannot completely prevent bus stalls; only a limited number of AXI timeouts
+  can be registered before the bus will eventually stall.
+
+  It is important to note that this driver should produce dmesg error output
+  (grep for "atb: Timeout detected") to notify the user that the system
+  configuration is not properly handled. Once an AXI timeout is detected,
+  additional measures should be taken to address the issue.
+
+  The bool properties enable the corresponding interrupts for the
+  FPD and LPD.
+  The driver will read these properties and configure the ATB accordingly.
+  If the bool property is not present, the functionality for this ATB will be
+  disabled.
+
+  Enable this driver by selecting ZYNQMP_ATB in the kernel config.
+
+properties:
+  compatible:
+    const: xlnx,zynqmp-atb
+
+  fpd_afifs1_enable:
+    description: |
+      ATB instance 5: FPD Main Switch to M_AXI_HPM1_FPD interface.
+      This is used to detect timeouts on the M_AXI_HPM1_FPD.
+    type: boolean
+    default: false
+
+  fpd_afifs0_enable:
+    description: |
+      ATB instance 4: FPD Main Switch to M_AXI_HPM0_FPD interface.
+      This is used to detect timeouts on the M_AXI_HPM0_FPD.
+    type: boolean
+    default: false
+
+  fpd_fpds_enable:
+    description: |
+      ATB instance 3: FPD Main Switch to SIOU slaves.
+      This is used to detect timeouts on the SIOU slaves.
+    type: boolean
+    default: false
+
+  lpd_afifs2_enable:
+    description: |
+      ATB instance 2: LPD Main Switch to M_AXI_HPM2_LPD interface.
+      This is used to detect timeouts on the M_AXI_HPM2_LPD.
+    type: boolean
+    default: false
+
+  lpd_lpdm_enable:
+    description: |
+      ATB instance 1: LPD Main Switch to M_AXI_LPD interface.
+      This is used to detect timeouts on the M_AXI_LPD.
+    type: boolean
+    default: false
+
+examples:
+  - |
+
+  atb {
+      compatible = "xlnx,zynqmp-atb";
+      status = "okay";
+
+      fpd_afifs1_enable;
+      fpd_afifs0_enable;
+      fpd_fpds_enable;
+      lpd_afifs2_enable;
+      lpd_lpdm_enable;
+    };
\ No newline at end of file
-- 
2.43.0




More information about the linux-arm-kernel mailing list