xref: /freebsd/sys/contrib/device-tree/Bindings/arm/arm,coresight-cpu-debug.yaml (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
1*b97ee269SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*b97ee269SEmmanuel Vadot%YAML 1.2
3*b97ee269SEmmanuel Vadot---
4*b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/arm,coresight-cpu-debug.yaml#
5*b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b97ee269SEmmanuel Vadot
7*b97ee269SEmmanuel Vadottitle: CoreSight CPU Debug Component
8*b97ee269SEmmanuel Vadot
9*b97ee269SEmmanuel Vadotmaintainers:
10*b97ee269SEmmanuel Vadot  - Mathieu Poirier <mathieu.poirier@linaro.org>
11*b97ee269SEmmanuel Vadot  - Mike Leach <mike.leach@linaro.org>
12*b97ee269SEmmanuel Vadot  - Leo Yan <leo.yan@linaro.org>
13*b97ee269SEmmanuel Vadot  - Suzuki K Poulose <suzuki.poulose@arm.com>
14*b97ee269SEmmanuel Vadot
15*b97ee269SEmmanuel Vadotdescription: |
16*b97ee269SEmmanuel Vadot  CoreSight CPU debug component are compliant with the ARMv8 architecture
17*b97ee269SEmmanuel Vadot  reference manual (ARM DDI 0487A.k) Chapter 'Part H: External debug'. The
18*b97ee269SEmmanuel Vadot  external debug module is mainly used for two modes: self-hosted debug and
19*b97ee269SEmmanuel Vadot  external debug, and it can be accessed from mmio region from Coresight and
20*b97ee269SEmmanuel Vadot  eventually the debug module connects with CPU for debugging. And the debug
21*b97ee269SEmmanuel Vadot  module provides sample-based profiling extension, which can be used to sample
22*b97ee269SEmmanuel Vadot  CPU program counter, secure state and exception level, etc; usually every CPU
23*b97ee269SEmmanuel Vadot  has one dedicated debug module to be connected.
24*b97ee269SEmmanuel Vadot
25*b97ee269SEmmanuel Vadotselect:
26*b97ee269SEmmanuel Vadot  properties:
27*b97ee269SEmmanuel Vadot    compatible:
28*b97ee269SEmmanuel Vadot      contains:
29*b97ee269SEmmanuel Vadot        const: arm,coresight-cpu-debug
30*b97ee269SEmmanuel Vadot  required:
31*b97ee269SEmmanuel Vadot    - compatible
32*b97ee269SEmmanuel Vadot
33*b97ee269SEmmanuel VadotallOf:
34*b97ee269SEmmanuel Vadot  - $ref: /schemas/arm/primecell.yaml#
35*b97ee269SEmmanuel Vadot
36*b97ee269SEmmanuel Vadotproperties:
37*b97ee269SEmmanuel Vadot  compatible:
38*b97ee269SEmmanuel Vadot    items:
39*b97ee269SEmmanuel Vadot      - const: arm,coresight-cpu-debug
40*b97ee269SEmmanuel Vadot      - const: arm,primecell
41*b97ee269SEmmanuel Vadot
42*b97ee269SEmmanuel Vadot  reg:
43*b97ee269SEmmanuel Vadot    maxItems: 1
44*b97ee269SEmmanuel Vadot
45*b97ee269SEmmanuel Vadot  clocks:
46*b97ee269SEmmanuel Vadot    maxItems: 1
47*b97ee269SEmmanuel Vadot
48*b97ee269SEmmanuel Vadot  clock-names:
49*b97ee269SEmmanuel Vadot    maxItems: 1
50*b97ee269SEmmanuel Vadot
51*b97ee269SEmmanuel Vadot  cpu:
52*b97ee269SEmmanuel Vadot    description:
53*b97ee269SEmmanuel Vadot      A phandle to the cpu this debug component is bound to.
54*b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
55*b97ee269SEmmanuel Vadot
56*b97ee269SEmmanuel Vadot  power-domains:
57*b97ee269SEmmanuel Vadot    maxItems: 1
58*b97ee269SEmmanuel Vadot    description:
59*b97ee269SEmmanuel Vadot      A phandle to the debug power domain if the debug logic has its own
60*b97ee269SEmmanuel Vadot      dedicated power domain. CPU idle states may also need to be separately
61*b97ee269SEmmanuel Vadot      constrained to keep CPU cores powered.
62*b97ee269SEmmanuel Vadot
63*b97ee269SEmmanuel Vadotrequired:
64*b97ee269SEmmanuel Vadot  - compatible
65*b97ee269SEmmanuel Vadot  - reg
66*b97ee269SEmmanuel Vadot  - clocks
67*b97ee269SEmmanuel Vadot  - clock-names
68*b97ee269SEmmanuel Vadot  - cpu
69*b97ee269SEmmanuel Vadot
70*b97ee269SEmmanuel VadotunevaluatedProperties: false
71*b97ee269SEmmanuel Vadot
72*b97ee269SEmmanuel Vadotexamples:
73*b97ee269SEmmanuel Vadot  - |
74*b97ee269SEmmanuel Vadot    debug@f6590000 {
75*b97ee269SEmmanuel Vadot        compatible = "arm,coresight-cpu-debug", "arm,primecell";
76*b97ee269SEmmanuel Vadot        reg = <0xf6590000 0x1000>;
77*b97ee269SEmmanuel Vadot        clocks = <&sys_ctrl 1>;
78*b97ee269SEmmanuel Vadot        clock-names = "apb_pclk";
79*b97ee269SEmmanuel Vadot        cpu = <&cpu0>;
80*b97ee269SEmmanuel Vadot    };
81*b97ee269SEmmanuel Vadot...
82