lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e2a0c77d-cb48-9348-672a-6adaae38df3c@linaro.org>
Date:   Tue, 22 Aug 2023 08:04:37 +0200
From:   Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To:     Mao Jinlong <quic_jinlmao@...cinc.com>,
        Suzuki K Poulose <suzuki.poulose@....com>,
        Mike Leach <mike.leach@...aro.org>,
        James Clark <james.clark@....com>,
        Leo Yan <leo.yan@...aro.org>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
        Andy Gross <agross@...nel.org>,
        Bjorn Andersson <andersson@...nel.org>,
        Konrad Dybcio <konrad.dybcio@...aro.org>,
        Rob Herring <robh+dt@...nel.org>,
        Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
        Conor Dooley <conor+dt@...nel.org>
Cc:     coresight@...ts.linaro.org, linux-arm-kernel@...ts.infradead.org,
        linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org,
        devicetree@...r.kernel.org,
        Tingwei Zhang <quic_tingweiz@...cinc.com>,
        Yuanfang Zhang <quic_yuanfang@...cinc.com>,
        Tao Zhang <quic_taozha@...cinc.com>,
        Hao Zhang <quic_hazha@...cinc.com>
Subject: Re: [PATCH v2 2/3] dt-bindings: arm: Adds CoreSight CSR hardware
 definitions

On 13/08/2023 17:12, Mao Jinlong wrote:
> Adds new coresight-csr.yaml file describing the bindings required
> to define csr in the device trees.
> 
> Signed-off-by: Mao Jinlong <quic_jinlmao@...cinc.com>
> ---
>  .../bindings/arm/qcom,coresight-csr.yaml      | 130 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  include/dt-bindings/arm/coresight-csr-dt.h    |  12 ++
>  3 files changed, 143 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/arm/qcom,coresight-csr.yaml
>  create mode 100644 include/dt-bindings/arm/coresight-csr-dt.h
> 
> diff --git a/Documentation/devicetree/bindings/arm/qcom,coresight-csr.yaml b/Documentation/devicetree/bindings/arm/qcom,coresight-csr.yaml
> new file mode 100644
> index 000000000000..de4baa335fdb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/qcom,coresight-csr.yaml
> @@ -0,0 +1,130 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/qcom,coresight-csr.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: CoreSight Slave Register - CSR
> +
> +description: |
> +  CoreSight Slave Register block hosts miscellaneous configuration registers.
> +  Those configuration registers can be used to control, various coresight
> +  configurations.
> +
> +maintainers:
> +  - Mao Jinlong <quic_jinlmao@...cinc.com>
> +  - Hao Zhang <quic_hazha@...cinc.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^csr(@[0-9a-f]+)$"

Blank line. Or even drop the nodename, we do not enforce names in the
individual bindings and I do not get why "csr" should be a recommended
name. It's not really generic, but specific.

> +  compatible:
> +    items:
> +      - const: qcom,coresight-csr
> +
> +  reg:
> +    minItems: 1
> +    maxItems: 2

Why is this flexible? One device has only one register layout... or you
want to say that compatible is not specific but generic?

Anyway, items needs to be described.

> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    items:
> +      - const: apb_pclk
> +
> +  # size cells and address cells required if assoc_device node present.
> +  "#size-cells":
> +    const: 0
> +
> +  "#address-cells":
> +    const: 1
> +
> +patternProperties:
> +  '^assoc_device@([0-9]+)$':

No underscores.

Aren't you now creating duplicated nodes for devices? ETRs for example
have their device nodes, right? So here you would be creating second
one? If that's the case, then it looks wrong.

> +    type: object
> +    description:
> +      A assocated device child node which describes the required configs
> +      between this CSR and another hardware device. This device may be ETR or
> +      TPDM device.
> +
> +    properties:
> +      reg:
> +        maxItems: 1
> +
> +      arm,cs-dev-assoc:
> +        $ref: /schemas/types.yaml#/definitions/phandle
> +        description:
> +          defines a phandle reference to an associated CoreSight trace device.
> +          When the associated trace device is enabled, then the respective CSR
> +          will be enabled. If the associated device has not been registered
> +          then the node name will be stored as the assocated name for later
> +          resolution.
> +
> +      qcom,cs-dev-type:
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        description:
> +          Device type of the Assocated device. Types are in coresight-csr-dt.h.
> +
> +      qcom,csr-bytecntr-offset:
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        description:
> +          The ETR irqctrl register offset. If the assocated device is ETR
> +          device and there are more than one ETR devices, this property need
> +          to be added.
> +
> +      interrupts:
> +        minItems: 1
> +
> +      interrupt-names:
> +        minItems: 1
> +
> +    required:
> +      - reg
> +      - qcom,cs-dev-type
> +      - qcom,cs-dev-assoc
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> +  # minimum CSR definition.
> +  - |
> +    csr@...01000 {
> +      compatible = "qcom,coresight-csr";
> +      reg = <0 0x10001000 0 0x1000>;
> +
> +      clocks = <&aoss_qmp>;
> +      clock-names = "apb_pclk";
> +    };
> +  # Assocated with ETR device
> +  - |
> +    #include <dt-bindings/arm/coresight-csr-dt.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    csr@...01000 {
> +      compatible = "qcom,coresight-csr";
> +      reg = <0 0x10001000 0 0x1000>;
> +
> +      clocks = <&aoss_qmp>;
> +      clock-names = "apb_pclk";
> +
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      assoc_device@0 {
> +        reg = <0>;
> +        qcom,cs-dev-type = <CSR_ASSOC_DEV_ETR>;
> +        qcom,cs-dev-assoc = <&tmc_etr>;
> +        qcom,csr-bytecntr-offset = <0x6c>;
> +        interrupts = <GIC_SPI 270 IRQ_TYPE_EDGE_RISING>;
> +        interrupt-names = "byte-cntr-irq";
> +      };
> +    };
> +...
> +
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d516295978a4..3ed81a8fd1d0 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2042,7 +2042,7 @@ F:	Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
>  F:	Documentation/devicetree/bindings/arm/qcom,coresight-*.yaml
>  F:	Documentation/trace/coresight/*
>  F:	drivers/hwtracing/coresight/*
> -F:	include/dt-bindings/arm/coresight-cti-dt.h
> +F:	include/dt-bindings/arm/coresight-*.h
>  F:	include/linux/coresight*
>  F:	samples/coresight/*
>  F:	tools/perf/arch/arm/util/auxtrace.c
> diff --git a/include/dt-bindings/arm/coresight-csr-dt.h b/include/dt-bindings/arm/coresight-csr-dt.h
> new file mode 100644
> index 000000000000..804b9bbeb2bd
> --- /dev/null
> +++ b/include/dt-bindings/arm/coresight-csr-dt.h

Use the same naming pattern as for bindings, so qcom,coresight-csr if it
is qcom, or arm,coresight-csr if it is ARM. DT is for sure redundant.

> @@ -0,0 +1,12 @@
> +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
> +/*
> + * This header provides constants for the defined device
> + * types on CoreSight CSR.
> + */
> +
> +#ifndef _DT_BINDINGS_ARM_CORESIGHT_CSR_DT_H
> +#define _DT_BINDINGS_ARM_CORESIGHT_CSR_DT_H
> +
> +#define CSR_ASSOC_DEV_ETR	1
> +
> +#endif /*_DT_BINDINGS_ARM_CORESIGHT_CSR_DT_H */

Best regards,
Krzysztof

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ