All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Tomasz Jeznach <tjeznach@rivosinc.com>
Cc: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Anup Patel <apatel@ventanamicro.com>,
	Sunil V L <sunilvl@ventanamicro.com>,
	Nick Kossifidis <mick@ics.forth.gr>,
	Sebastien Boeuf <seb@rivosinc.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org, iommu@lists.linux.dev,
	linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux@rivosinc.com
Subject: Re: [PATCH v3 1/7] dt-bindings: iommu: riscv: Add bindings for RISC-V IOMMU
Date: Wed, 1 May 2024 08:15:56 -0500	[thread overview]
Message-ID: <20240501131556.GA2931109-robh@kernel.org> (raw)
In-Reply-To: <ef946892252b18f541986a461fc4d37957cc805e.1714494653.git.tjeznach@rivosinc.com>

On Tue, Apr 30, 2024 at 01:01:51PM -0700, Tomasz Jeznach wrote:
> Add bindings for the RISC-V IOMMU device drivers.
> 
> Co-developed-by: Anup Patel <apatel@ventanamicro.com>
> Signed-off-by: Anup Patel <apatel@ventanamicro.com>
> Signed-off-by: Tomasz Jeznach <tjeznach@rivosinc.com>
> ---
>  .../bindings/iommu/riscv,iommu.yaml           | 150 ++++++++++++++++++
>  MAINTAINERS                                   |   7 +
>  2 files changed, 157 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> new file mode 100644
> index 000000000000..16817525e157
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> @@ -0,0 +1,150 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iommu/riscv,iommu.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: RISC-V IOMMU Architecture Implementation
> +
> +maintainers:
> +  - Tomasz Jeznach <tjeznach@rivosinc.com>
> +
> +description: |
> +  The RISC-V IOMMU provides memory address translation and isolation for
> +  input and output devices, supporting per-device translation context,
> +  shared process address spaces including the ATS and PRI components of
> +  the PCIe specification, two stage address translation and MSI remapping.
> +  It supports identical translation table format to the RISC-V address
> +  translation tables with page level access and protection attributes.
> +  Hardware uses in-memory command and fault reporting queues with wired
> +  interrupt or MSI notifications.
> +
> +  Visit https://github.com/riscv-non-isa/riscv-iommu for more details.
> +
> +  For information on assigning RISC-V IOMMU to its peripheral devices,
> +  see generic IOMMU bindings.
> +
> +properties:
> +  # For PCIe IOMMU hardware compatible property should contain the vendor
> +  # and device ID according to the PCI Bus Binding specification.
> +  # Since PCI provides built-in identification methods, compatible is not
> +  # actually required. For non-PCIe hardware implementations 'riscv,iommu'
> +  # should be specified along with 'reg' property providing MMIO location.
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - qemu,iommu

'qemu,iommu' is too broad. Could be other QEMU implementations of an 
IOMMU. So 'qemu,riscv-iommu'.


> +          - const: riscv,iommu
> +      - items:
> +          - enum:
> +              - pci1efd,edf1
> +          - const: riscv,pci-iommu
> +
> +  reg:
> +    maxItems: 1
> +    description:
> +      For non-PCI devices this represents base address and size of for the
> +      IOMMU memory mapped registers interface.
> +      For PCI IOMMU hardware implementation this should represent an address
> +      of the IOMMU, as defined in the PCI Bus Binding reference. The reg
> +      property is a five-cell address encoded as (phys.hi phys.mid phys.lo
> +      size.hi size.lo), where phys.hi should contain the device's BDF as
> +      0b00000000 bbbbbbbb dddddfff 00000000. The other cells should be zero.

No need to describe what the PCI address looks like.

> +
> +  '#iommu-cells':
> +    const: 1
> +    description:
> +      Has to be one. The single cell describes the requester id emitted

Drop 'Has to be one'. You already said that with the schema.

> +      by a master to the IOMMU.
> +
> +  interrupts:
> +    minItems: 1
> +    maxItems: 4
> +    description:
> +      Wired interrupt vectors available for RISC-V IOMMU to notify the
> +      RISC-V HARTS. The cause to interrupt vector is software defined
> +      using IVEC IOMMU register.
> +
> +  msi-parent: true
> +
> +  power-domains:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - '#iommu-cells'
> +
> +additionalProperties: false
> +
> +examples:
> +  - |+
> +    /* Example 1 (IOMMU device with wired interrupts) */
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    iommu1: iommu@1bccd000 {
> +        compatible = "qemu,iommu", "riscv,iommu";
> +        reg = <0x1bccd000 0x1000>;
> +        interrupt-parent = <&aplic_smode>;
> +        interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
> +                     <33 IRQ_TYPE_LEVEL_HIGH>,
> +                     <34 IRQ_TYPE_LEVEL_HIGH>,
> +                     <35 IRQ_TYPE_LEVEL_HIGH>;
> +        #iommu-cells = <1>;
> +    };
> +
> +    /* Device with two IOMMU device IDs, 0 and 7 */
> +    master1 {
> +        iommus = <&iommu1 0>, <&iommu1 7>;
> +    };
> +
> +  - |+
> +    /* Example 2 (IOMMU device with shared wired interrupt) */
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    iommu2: iommu@1bccd000 {
> +        compatible = "qemu,iommu", "riscv,iommu";
> +        reg = <0x1bccd000 0x1000>;
> +        interrupt-parent = <&aplic_smode>;
> +        interrupts = <32 IRQ_TYPE_LEVEL_HIGH>;
> +        #iommu-cells = <1>;
> +    };
> +
> +  - |+
> +    /* Example 3 (IOMMU device with MSIs) */
> +    iommu3: iommu@1bcdd000 {
> +        compatible = "qemu,iommu", "riscv,iommu";
> +        reg = <0x1bccd000 0x1000>;
> +        msi-parent = <&imsics_smode>;
> +        #iommu-cells = <1>;
> +    };
> +
> +  - |+
> +    /* Example 4 (IOMMU PCIe device with MSIs) */
> +    bus {
> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        pcie@30000000 {
> +            device_type = "pci";
> +            #address-cells = <3>;
> +            #size-cells = <2>;
> +            reg = <0x0 0x30000000  0x0 0x1000000>;
> +            ranges = <0x02000000 0x0 0x41000000  0x0 0x41000000  0x0 0x0f000000>;
> +
> +            /*
> +             * The IOMMU manages all functions in this PCI domain except
> +             * itself. Omit BDF 00:01.0.
> +             */
> +            iommu-map = <0x0 &iommu0 0x0 0x8
> +                         0x9 &iommu0 0x9 0xfff7>;

Bracket each entry.

> +
> +            /* The IOMMU programming interface uses slot 00:01.0 */
> +            iommu0: iommu@1,0 {
> +               compatible = "pci1efd,edf1", "riscv,pci-iommu";
> +               reg = <0x800 0 0 0 0>;
> +               #iommu-cells = <1>;
> +            };
> +        };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f6dc90559341..7fcf7c27ef6b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18958,6 +18958,13 @@ F:	arch/riscv/
>  N:	riscv
>  K:	riscv
>  
> +RISC-V IOMMU
> +M:	Tomasz Jeznach <tjeznach@rivosinc.com>
> +L:	iommu@lists.linux.dev
> +L:	linux-riscv@lists.infradead.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> +
>  RISC-V MICROCHIP FPGA SUPPORT
>  M:	Conor Dooley <conor.dooley@microchip.com>
>  M:	Daire McNamara <daire.mcnamara@microchip.com>
> -- 
> 2.34.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Tomasz Jeznach <tjeznach@rivosinc.com>
Cc: Anup Patel <apatel@ventanamicro.com>,
	devicetree@vger.kernel.org, Conor Dooley <conor+dt@kernel.org>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux@rivosinc.com, Will Deacon <will@kernel.org>,
	Joerg Roedel <joro@8bytes.org>,
	linux-kernel@vger.kernel.org, Sebastien Boeuf <seb@rivosinc.com>,
	iommu@lists.linux.dev, Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Nick Kossifidis <mick@ics.forth.gr>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-riscv@lists.infradead.org
Subject: Re: [PATCH v3 1/7] dt-bindings: iommu: riscv: Add bindings for RISC-V IOMMU
Date: Wed, 1 May 2024 08:15:56 -0500	[thread overview]
Message-ID: <20240501131556.GA2931109-robh@kernel.org> (raw)
In-Reply-To: <ef946892252b18f541986a461fc4d37957cc805e.1714494653.git.tjeznach@rivosinc.com>

On Tue, Apr 30, 2024 at 01:01:51PM -0700, Tomasz Jeznach wrote:
> Add bindings for the RISC-V IOMMU device drivers.
> 
> Co-developed-by: Anup Patel <apatel@ventanamicro.com>
> Signed-off-by: Anup Patel <apatel@ventanamicro.com>
> Signed-off-by: Tomasz Jeznach <tjeznach@rivosinc.com>
> ---
>  .../bindings/iommu/riscv,iommu.yaml           | 150 ++++++++++++++++++
>  MAINTAINERS                                   |   7 +
>  2 files changed, 157 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> new file mode 100644
> index 000000000000..16817525e157
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> @@ -0,0 +1,150 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iommu/riscv,iommu.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: RISC-V IOMMU Architecture Implementation
> +
> +maintainers:
> +  - Tomasz Jeznach <tjeznach@rivosinc.com>
> +
> +description: |
> +  The RISC-V IOMMU provides memory address translation and isolation for
> +  input and output devices, supporting per-device translation context,
> +  shared process address spaces including the ATS and PRI components of
> +  the PCIe specification, two stage address translation and MSI remapping.
> +  It supports identical translation table format to the RISC-V address
> +  translation tables with page level access and protection attributes.
> +  Hardware uses in-memory command and fault reporting queues with wired
> +  interrupt or MSI notifications.
> +
> +  Visit https://github.com/riscv-non-isa/riscv-iommu for more details.
> +
> +  For information on assigning RISC-V IOMMU to its peripheral devices,
> +  see generic IOMMU bindings.
> +
> +properties:
> +  # For PCIe IOMMU hardware compatible property should contain the vendor
> +  # and device ID according to the PCI Bus Binding specification.
> +  # Since PCI provides built-in identification methods, compatible is not
> +  # actually required. For non-PCIe hardware implementations 'riscv,iommu'
> +  # should be specified along with 'reg' property providing MMIO location.
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - qemu,iommu

'qemu,iommu' is too broad. Could be other QEMU implementations of an 
IOMMU. So 'qemu,riscv-iommu'.


> +          - const: riscv,iommu
> +      - items:
> +          - enum:
> +              - pci1efd,edf1
> +          - const: riscv,pci-iommu
> +
> +  reg:
> +    maxItems: 1
> +    description:
> +      For non-PCI devices this represents base address and size of for the
> +      IOMMU memory mapped registers interface.
> +      For PCI IOMMU hardware implementation this should represent an address
> +      of the IOMMU, as defined in the PCI Bus Binding reference. The reg
> +      property is a five-cell address encoded as (phys.hi phys.mid phys.lo
> +      size.hi size.lo), where phys.hi should contain the device's BDF as
> +      0b00000000 bbbbbbbb dddddfff 00000000. The other cells should be zero.

No need to describe what the PCI address looks like.

> +
> +  '#iommu-cells':
> +    const: 1
> +    description:
> +      Has to be one. The single cell describes the requester id emitted

Drop 'Has to be one'. You already said that with the schema.

> +      by a master to the IOMMU.
> +
> +  interrupts:
> +    minItems: 1
> +    maxItems: 4
> +    description:
> +      Wired interrupt vectors available for RISC-V IOMMU to notify the
> +      RISC-V HARTS. The cause to interrupt vector is software defined
> +      using IVEC IOMMU register.
> +
> +  msi-parent: true
> +
> +  power-domains:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - '#iommu-cells'
> +
> +additionalProperties: false
> +
> +examples:
> +  - |+
> +    /* Example 1 (IOMMU device with wired interrupts) */
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    iommu1: iommu@1bccd000 {
> +        compatible = "qemu,iommu", "riscv,iommu";
> +        reg = <0x1bccd000 0x1000>;
> +        interrupt-parent = <&aplic_smode>;
> +        interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
> +                     <33 IRQ_TYPE_LEVEL_HIGH>,
> +                     <34 IRQ_TYPE_LEVEL_HIGH>,
> +                     <35 IRQ_TYPE_LEVEL_HIGH>;
> +        #iommu-cells = <1>;
> +    };
> +
> +    /* Device with two IOMMU device IDs, 0 and 7 */
> +    master1 {
> +        iommus = <&iommu1 0>, <&iommu1 7>;
> +    };
> +
> +  - |+
> +    /* Example 2 (IOMMU device with shared wired interrupt) */
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    iommu2: iommu@1bccd000 {
> +        compatible = "qemu,iommu", "riscv,iommu";
> +        reg = <0x1bccd000 0x1000>;
> +        interrupt-parent = <&aplic_smode>;
> +        interrupts = <32 IRQ_TYPE_LEVEL_HIGH>;
> +        #iommu-cells = <1>;
> +    };
> +
> +  - |+
> +    /* Example 3 (IOMMU device with MSIs) */
> +    iommu3: iommu@1bcdd000 {
> +        compatible = "qemu,iommu", "riscv,iommu";
> +        reg = <0x1bccd000 0x1000>;
> +        msi-parent = <&imsics_smode>;
> +        #iommu-cells = <1>;
> +    };
> +
> +  - |+
> +    /* Example 4 (IOMMU PCIe device with MSIs) */
> +    bus {
> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        pcie@30000000 {
> +            device_type = "pci";
> +            #address-cells = <3>;
> +            #size-cells = <2>;
> +            reg = <0x0 0x30000000  0x0 0x1000000>;
> +            ranges = <0x02000000 0x0 0x41000000  0x0 0x41000000  0x0 0x0f000000>;
> +
> +            /*
> +             * The IOMMU manages all functions in this PCI domain except
> +             * itself. Omit BDF 00:01.0.
> +             */
> +            iommu-map = <0x0 &iommu0 0x0 0x8
> +                         0x9 &iommu0 0x9 0xfff7>;

Bracket each entry.

> +
> +            /* The IOMMU programming interface uses slot 00:01.0 */
> +            iommu0: iommu@1,0 {
> +               compatible = "pci1efd,edf1", "riscv,pci-iommu";
> +               reg = <0x800 0 0 0 0>;
> +               #iommu-cells = <1>;
> +            };
> +        };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f6dc90559341..7fcf7c27ef6b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18958,6 +18958,13 @@ F:	arch/riscv/
>  N:	riscv
>  K:	riscv
>  
> +RISC-V IOMMU
> +M:	Tomasz Jeznach <tjeznach@rivosinc.com>
> +L:	iommu@lists.linux.dev
> +L:	linux-riscv@lists.infradead.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> +
>  RISC-V MICROCHIP FPGA SUPPORT
>  M:	Conor Dooley <conor.dooley@microchip.com>
>  M:	Daire McNamara <daire.mcnamara@microchip.com>
> -- 
> 2.34.1
> 

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  parent reply	other threads:[~2024-05-01 13:15 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-30 20:01 [PATCH v3 0/7] Linux RISC-V IOMMU Support Tomasz Jeznach
2024-04-30 20:01 ` Tomasz Jeznach
2024-04-30 20:01 ` [PATCH v3 1/7] dt-bindings: iommu: riscv: Add bindings for RISC-V IOMMU Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-01  9:30   ` Conor Dooley
2024-05-01  9:30     ` Conor Dooley
2024-05-01 13:15   ` Rob Herring [this message]
2024-05-01 13:15     ` Rob Herring
2024-05-02  2:47     ` Tomasz Jeznach
2024-05-02  2:47       ` Tomasz Jeznach
2024-05-02 15:15       ` Conor Dooley
2024-05-02 15:15         ` Conor Dooley
2024-04-30 20:01 ` [PATCH v3 2/7] iommu/riscv: Add RISC-V IOMMU platform device driver Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-01 10:26   ` Baolu Lu
2024-05-01 10:26     ` Baolu Lu
2024-05-01 14:20     ` Jason Gunthorpe
2024-05-01 14:20       ` Jason Gunthorpe
2024-05-02  2:23       ` Baolu Lu
2024-05-02  2:23         ` Baolu Lu
2024-05-02  2:44         ` Tomasz Jeznach
2024-05-02  2:44           ` Tomasz Jeznach
2024-04-30 20:01 ` [PATCH v3 3/7] iommu/riscv: Add RISC-V IOMMU PCIe " Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-01 10:01   ` Baolu Lu
2024-05-01 10:01     ` Baolu Lu
2024-04-30 20:01 ` [PATCH v3 4/7] iommu/riscv: Enable IOMMU registration and device probe Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-01  9:53   ` Baolu Lu
2024-05-01  9:53     ` Baolu Lu
2024-04-30 20:01 ` [PATCH v3 5/7] iommu/riscv: Device directory management Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-01 14:57   ` Jason Gunthorpe
2024-05-01 14:57     ` Jason Gunthorpe
2024-05-02  1:38   ` Baolu Lu
2024-05-02  1:38     ` Baolu Lu
2024-05-02  1:57     ` Baolu Lu
2024-05-02  1:57       ` Baolu Lu
2024-05-02  2:06   ` Baolu Lu
2024-05-02  2:06     ` Baolu Lu
2024-04-30 20:01 ` [PATCH v3 6/7] iommu/riscv: Command and fault queue support Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-02  3:51   ` Baolu Lu
2024-05-02  3:51     ` Baolu Lu
2024-04-30 20:01 ` [PATCH v3 7/7] iommu/riscv: Paging domain support Tomasz Jeznach
2024-04-30 20:01   ` Tomasz Jeznach
2024-05-01 14:56   ` Jason Gunthorpe
2024-05-01 14:56     ` Jason Gunthorpe
2024-05-03 17:44     ` Tomasz Jeznach
2024-05-03 17:44       ` Tomasz Jeznach
2024-05-03 18:10       ` Jason Gunthorpe
2024-05-03 18:10         ` Jason Gunthorpe
2024-05-03 19:44         ` Tomasz Jeznach
2024-05-03 19:44           ` Tomasz Jeznach
2024-05-05 15:46           ` Jason Gunthorpe
2024-05-05 15:46             ` Jason Gunthorpe
2024-05-07  2:22             ` Tomasz Jeznach
2024-05-07  2:22               ` Tomasz Jeznach
2024-05-07 16:51               ` Jason Gunthorpe
2024-05-07 16:51                 ` Jason Gunthorpe
2024-05-08 16:23                 ` Tomasz Jeznach
2024-05-08 16:23                   ` Tomasz Jeznach
2024-05-02  3:50   ` Baolu Lu
2024-05-02  3:50     ` Baolu Lu
2024-05-02  4:39     ` Tomasz Jeznach
2024-05-02  4:39       ` Tomasz Jeznach
2024-05-01 16:07 ` [PATCH v3 0/7] Linux RISC-V IOMMU Support Jason Gunthorpe
2024-05-01 16:07   ` Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240501131556.GA2931109-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=apatel@ventanamicro.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=iommu@lists.linux.dev \
    --cc=joro@8bytes.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux@rivosinc.com \
    --cc=mick@ics.forth.gr \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robin.murphy@arm.com \
    --cc=seb@rivosinc.com \
    --cc=sunilvl@ventanamicro.com \
    --cc=tjeznach@rivosinc.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.