All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: Remy Bohmer <linux-SYUVB/VFmdasTnJN9+BGXg@public.gmane.org>,
	U-Boot Mailing List
	<u-boot-0aAXYlwwYIKGBzrmiIFOJg@public.gmane.org>,
	Devicetree Discuss
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	Tom Warren <TWarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Albert ARIBAUD
	<albert.u.boot-LhW3hqR2+23R7s880joybQ@public.gmane.org>
Subject: Re: [PATCH v2 09/17] tegra: usb: fdt: Add additional device tree definitions for USB ports
Date: Mon, 12 Dec 2011 11:13:04 -0700	[thread overview]
Message-ID: <4EE64430.5070508@nvidia.com> (raw)
In-Reply-To: <CAPnjgZ1adfU652Z2ob30GTWZiCnah4WsJNfVrroWvtM5LXW93Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On 12/08/2011 02:10 PM, Simon Glass wrote:
> Hi Stephen,
> 
> On Wed, Dec 7, 2011 at 3:36 PM, Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote:
>> On 12/06/2011 02:09 PM, Simon Glass wrote:
>>> On Tue, Dec 6, 2011 at 12:28 PM, Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote:
>>>> On 12/05/2011 05:55 PM, Simon Glass wrote:
>>>>> On Mon, Dec 5, 2011 at 3:25 PM, Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote:
>>>>>> On 12/02/2011 07:11 PM, Simon Glass wrote:
>>>>>>> This adds peripheral IDs and timing information to the USB part of the
>>>>>>> device tree for U-Boot.
>>>>>>>
>>>>>>> The peripheral IDs provide easy access to clock registers. We will likely
>>>>>>> remove this in favor of a full clock tree when it is available in the
>>>>>>> kernel (but probably still retain the peripheral ID, just move it into
>>>>>>> a clock node).
>>>>>>>
>>>>>>> The USB timing information does apparently vary between boards sometimes,
>>>>>>> so is include in the fdt for convenience.
>>
>>>>>>>       usb@c5000000 {
>>>>>>>               compatible = "nvidia,tegra20-ehci", "usb-ehci";
>>>>>>>               reg = <0xc5000000 0x4000>;
>>>>>>>               interrupts = < 52 >;
>>>>>>>               phy_type = "utmi";
>>>>>>> +             periph-id = <22>;       // PERIPH_ID_USBD
>>>>>>
>>>>>> Given this is a temporary U-Boot-specific solution, can the property be
>>>>>> named u-boot,periph-id so it's obvious that when writing a .dts for the
>>>>>> kernel only, you don't care about this value.
>>>>>
>>>>> ok. I suggest the kernel does something similar.
>>>>
>>>> The kernel will use the standardized clock bindings once they're ready
>>>> and we convert Tegra over to use them. The kernel is extremely unlikely
>>>> to ever use "periph-id" or "u-boot,periph-id".
>>>
>>> What is the time frame on this working be completed and merged?
>>
>> Sorry, I have no idea. I've been focusing on other subsystems (pinmux,
>> audio) and haven't been following the clock stuff at all. Hopefully
>> someone will start driving Tegra kernel towards common clock soon, but I
>> don't think exactly who and when has been nailed down yet.
>>
>>>> Right now, the kernel's clock driver contains a mapping table from
>>>> device name (e.g. tegra-ehci.2) to clock name (e.g. usb3). This allows
>>>> the kernel USB driver to work without any explicit periph-id or similar
>>>> DT property.
>>>
>>> Where does tegra-ehci.2 come from? I don't see that in the fdt.
>>
>> Pre-DT, everything was instantiated from platform devices. Each one had
>> a name ("tegra-ehci") and an instance number ("2"), which concatenate to
>> "tegra-ehci.2". All the clocks (and I think other resources like
>> regulators) in the kernel were marked as being for use by a particular
>> device name. For example in arch/arm/mach-tegra/tegra2_clocks.c:
>>
>> static struct clk tegra_list_clks[] = {
>> ...
>>        PERIPH_CLK("usb3",      "tegra-ehci.2", ...),
>>
>> With DT, the device names typically don't follow this format (in this
>> case, it'd be something more like "/usb@c5008000"). However, this
>> prevented the clock lookups by device name from working, so a temporary
>> scheme was put in place to keep the same device names. This is driven by
>> "AUXDATA", for example in arch/arm/mach-tegra/board-dt.c:
>>
>>
>> struct of_dev_auxdata tegra20_auxdata_lookup[] __initdata = {
>> ...
>> //             compatible, unit address, device name
>> OF_DEV_AUXDATA("nvidia,tegra20-ehci", TEGRA_USB3_BASE, "tegra-ehci.2",
>>
>> This means that any device with the given compatible property value, the
>> given unit address will be named accordingly.
>>
>> This allows the existing clock/regulator lookups to work unmodified.
>>
>> Once DT bindings are in place for clocks, regulators, etc., the clock
>> tables can be derived from DT, phandles will be used to match clocks and
>> devices rather than device names, and the AUXDATA table can go away.
>>
>> The equivalent in U-Boot would be a table that maps from driver type
>> (e.g. COMPAT_NVIDIA_TEGRA20_USB or perhaps NVIDIA_TEGRA20_USB?) and
>> address to periph id. Again, once the clock bindings are complete and
>> the nodes present in the .dts file, that mapping table can be removed
>> and everything will work based on phandles.
>>
>> I'd like to point out here that everything is in a pretty big state of
>> flux/development, since DT support for ARM is new. Temporary workarounds
>> like AUXDATA allow us to make as much work as possible using device
>> tree, but without having to put temporary nodes/properties into the .dts
>> files themselves. That way, the DT bindings will only ever get added to
>> in a compatible fashion, rather than going through multiple incompatible
>> sets of requirements.
> 
> Gosh.
> 
> I have to say that I feel that peripheral IDs are the best solution
> for Tegra U-Boot until everything is worked out in the kernel.

The problem here is that it requires the DT to change incompatibly
later; it adds a property to the DT now that will be at best
meaningless/unused in the future.

If we simply don't add anything to the DT now, there's nothing to remove
from the DT later. Newer U-Boots might require additional information in
the DT (i.e. perhaps rely on full clock bindings) but won't deprecate
any existing fields.

> We can't rely on phandles since they don't exist without an fdt,
> unless we mandate that everyone must use an fdt. I don't feel
> comfortable doing that until things are a bit more stable with all the
> things you are working on.

Sure, phandles won't work until the complete clock binding is implemnted.

> I really can't see why we want to put a table in U-Boot which does a
> mapping that is clear a hardware feature and IMO belongs in the fdt
> (why repeat peripheral addresses in the code and the fdt?).

It's a HW feature of the clock/reset controller, not the USB controller.

> Plus I still don't have an answer to my question about how we can
> ensure that instance 0 is a particular device.

As I said before, in the context of USB (where IIRC the question was
asked), you can enable just a single USB controller. The code only
supports a single controller anyway.

For SD/MMC, it does make sense to statically name some/all devices. That
is what /aliases is for. It's just that as I said, /aliases is meant to
control naming of devices that have been enumerated, not control the
enumeration itself.

-- 
nvpublic

WARNING: multiple messages have this Message-ID (diff)
From: Stephen Warren <swarren@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 09/17] tegra: usb: fdt: Add additional device tree definitions for USB ports
Date: Mon, 12 Dec 2011 11:13:04 -0700	[thread overview]
Message-ID: <4EE64430.5070508@nvidia.com> (raw)
In-Reply-To: <CAPnjgZ1adfU652Z2ob30GTWZiCnah4WsJNfVrroWvtM5LXW93Q@mail.gmail.com>

On 12/08/2011 02:10 PM, Simon Glass wrote:
> Hi Stephen,
> 
> On Wed, Dec 7, 2011 at 3:36 PM, Stephen Warren <swarren@nvidia.com> wrote:
>> On 12/06/2011 02:09 PM, Simon Glass wrote:
>>> On Tue, Dec 6, 2011 at 12:28 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>>> On 12/05/2011 05:55 PM, Simon Glass wrote:
>>>>> On Mon, Dec 5, 2011 at 3:25 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>>>>> On 12/02/2011 07:11 PM, Simon Glass wrote:
>>>>>>> This adds peripheral IDs and timing information to the USB part of the
>>>>>>> device tree for U-Boot.
>>>>>>>
>>>>>>> The peripheral IDs provide easy access to clock registers. We will likely
>>>>>>> remove this in favor of a full clock tree when it is available in the
>>>>>>> kernel (but probably still retain the peripheral ID, just move it into
>>>>>>> a clock node).
>>>>>>>
>>>>>>> The USB timing information does apparently vary between boards sometimes,
>>>>>>> so is include in the fdt for convenience.
>>
>>>>>>>       usb at c5000000 {
>>>>>>>               compatible = "nvidia,tegra20-ehci", "usb-ehci";
>>>>>>>               reg = <0xc5000000 0x4000>;
>>>>>>>               interrupts = < 52 >;
>>>>>>>               phy_type = "utmi";
>>>>>>> +             periph-id = <22>;       // PERIPH_ID_USBD
>>>>>>
>>>>>> Given this is a temporary U-Boot-specific solution, can the property be
>>>>>> named u-boot,periph-id so it's obvious that when writing a .dts for the
>>>>>> kernel only, you don't care about this value.
>>>>>
>>>>> ok. I suggest the kernel does something similar.
>>>>
>>>> The kernel will use the standardized clock bindings once they're ready
>>>> and we convert Tegra over to use them. The kernel is extremely unlikely
>>>> to ever use "periph-id" or "u-boot,periph-id".
>>>
>>> What is the time frame on this working be completed and merged?
>>
>> Sorry, I have no idea. I've been focusing on other subsystems (pinmux,
>> audio) and haven't been following the clock stuff at all. Hopefully
>> someone will start driving Tegra kernel towards common clock soon, but I
>> don't think exactly who and when has been nailed down yet.
>>
>>>> Right now, the kernel's clock driver contains a mapping table from
>>>> device name (e.g. tegra-ehci.2) to clock name (e.g. usb3). This allows
>>>> the kernel USB driver to work without any explicit periph-id or similar
>>>> DT property.
>>>
>>> Where does tegra-ehci.2 come from? I don't see that in the fdt.
>>
>> Pre-DT, everything was instantiated from platform devices. Each one had
>> a name ("tegra-ehci") and an instance number ("2"), which concatenate to
>> "tegra-ehci.2". All the clocks (and I think other resources like
>> regulators) in the kernel were marked as being for use by a particular
>> device name. For example in arch/arm/mach-tegra/tegra2_clocks.c:
>>
>> static struct clk tegra_list_clks[] = {
>> ...
>>        PERIPH_CLK("usb3",      "tegra-ehci.2", ...),
>>
>> With DT, the device names typically don't follow this format (in this
>> case, it'd be something more like "/usb at c5008000"). However, this
>> prevented the clock lookups by device name from working, so a temporary
>> scheme was put in place to keep the same device names. This is driven by
>> "AUXDATA", for example in arch/arm/mach-tegra/board-dt.c:
>>
>>
>> struct of_dev_auxdata tegra20_auxdata_lookup[] __initdata = {
>> ...
>> //             compatible, unit address, device name
>> OF_DEV_AUXDATA("nvidia,tegra20-ehci", TEGRA_USB3_BASE, "tegra-ehci.2",
>>
>> This means that any device with the given compatible property value, the
>> given unit address will be named accordingly.
>>
>> This allows the existing clock/regulator lookups to work unmodified.
>>
>> Once DT bindings are in place for clocks, regulators, etc., the clock
>> tables can be derived from DT, phandles will be used to match clocks and
>> devices rather than device names, and the AUXDATA table can go away.
>>
>> The equivalent in U-Boot would be a table that maps from driver type
>> (e.g. COMPAT_NVIDIA_TEGRA20_USB or perhaps NVIDIA_TEGRA20_USB?) and
>> address to periph id. Again, once the clock bindings are complete and
>> the nodes present in the .dts file, that mapping table can be removed
>> and everything will work based on phandles.
>>
>> I'd like to point out here that everything is in a pretty big state of
>> flux/development, since DT support for ARM is new. Temporary workarounds
>> like AUXDATA allow us to make as much work as possible using device
>> tree, but without having to put temporary nodes/properties into the .dts
>> files themselves. That way, the DT bindings will only ever get added to
>> in a compatible fashion, rather than going through multiple incompatible
>> sets of requirements.
> 
> Gosh.
> 
> I have to say that I feel that peripheral IDs are the best solution
> for Tegra U-Boot until everything is worked out in the kernel.

The problem here is that it requires the DT to change incompatibly
later; it adds a property to the DT now that will be at best
meaningless/unused in the future.

If we simply don't add anything to the DT now, there's nothing to remove
from the DT later. Newer U-Boots might require additional information in
the DT (i.e. perhaps rely on full clock bindings) but won't deprecate
any existing fields.

> We can't rely on phandles since they don't exist without an fdt,
> unless we mandate that everyone must use an fdt. I don't feel
> comfortable doing that until things are a bit more stable with all the
> things you are working on.

Sure, phandles won't work until the complete clock binding is implemnted.

> I really can't see why we want to put a table in U-Boot which does a
> mapping that is clear a hardware feature and IMO belongs in the fdt
> (why repeat peripheral addresses in the code and the fdt?).

It's a HW feature of the clock/reset controller, not the USB controller.

> Plus I still don't have an answer to my question about how we can
> ensure that instance 0 is a particular device.

As I said before, in the context of USB (where IIRC the question was
asked), you can enable just a single USB controller. The code only
supports a single controller anyway.

For SD/MMC, it does make sense to statically name some/all devices. That
is what /aliases is for. It's just that as I said, /aliases is meant to
control naming of devices that have been enumerated, not control the
enumeration itself.

-- 
nvpublic

  parent reply	other threads:[~2011-12-12 18:13 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-03  2:11 [U-Boot] [PATCH v2 0/17] tegra: Add fdt definitions and USB driver Simon Glass
2011-12-03  2:11 ` [PATCH v2 01/17] fdt: Tidy up a few fdtdec problems Simon Glass
2011-12-03  2:11   ` [U-Boot] " Simon Glass
2011-12-05 21:27   ` Stephen Warren
2011-12-05 21:27     ` [U-Boot] " Stephen Warren
2011-12-05 21:40     ` Simon Glass
2011-12-05 21:40       ` [U-Boot] " Simon Glass
     [not found]       ` <CAPnjgZ0h39vB2H4MuCwVqb2Tgcr4==yN8Pj6a3s9dciyXPBu1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-05 22:07         ` Stephen Warren
2011-12-05 22:07           ` [U-Boot] " Stephen Warren
     [not found]           ` <4EDD4091.1030708-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-12-05 22:11             ` Simon Glass
2011-12-05 22:11               ` [U-Boot] " Simon Glass
2011-12-05 22:18               ` Scott Wood
2011-12-05 22:18                 ` [U-Boot] " Scott Wood
2011-12-05 22:25                 ` Stephen Warren
2011-12-05 22:25                   ` [U-Boot] " Stephen Warren
2011-12-05 22:53                   ` Simon Glass
2011-12-05 22:53                     ` [U-Boot] " Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 03/17] Add gpio_request() to asm-generic header Simon Glass
2011-12-03  2:11 ` [PATCH v2 06/17] arm: fdt: Add skeleton device tree file from kernel Simon Glass
2011-12-03  2:11   ` [U-Boot] " Simon Glass
     [not found] ` <1322878300-5551-1-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-03  2:11   ` [PATCH v2 02/17] fdt: Add functions to access phandles, arrays and bools Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
     [not found]     ` <1322878300-5551-3-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-05 21:59       ` Stephen Warren
2011-12-05 21:59         ` [U-Boot] " Stephen Warren
     [not found]         ` <4EDD3EDE.4000609-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-12-05 22:07           ` Simon Glass
2011-12-05 22:07             ` [U-Boot] " Simon Glass
     [not found]             ` <CAPnjgZ30Bmxp4eGCgYss9GHt=SN5X5-sSHrPJpZFjVjprpa_Ag-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-05 22:36               ` Stephen Warren
2011-12-05 22:36                 ` [U-Boot] " Stephen Warren
2011-12-05 23:56                 ` Simon Glass
2011-12-05 23:56                   ` [U-Boot] " Simon Glass
2011-12-03  2:11   ` [PATCH v2 04/17] fdt: Add basic support for decoding GPIO definitions Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
     [not found]     ` <1322878300-5551-5-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-05 21:46       ` Stephen Warren
2011-12-05 21:46         ` [U-Boot] " Stephen Warren
2011-12-05 21:56         ` Simon Glass
2011-12-05 21:56           ` [U-Boot] " Simon Glass
     [not found]           ` <CAPnjgZ3ARCTXVN2MKhfrdCCmmb21zbYdSq8AuQFPdoA=xFr7Mg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-05 22:22             ` Stephen Warren
2011-12-05 22:22               ` [U-Boot] " Stephen Warren
     [not found]               ` <4EDD440C.80002-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-12-05 22:52                 ` Simon Glass
2011-12-05 22:52                   ` [U-Boot] " Simon Glass
     [not found]                   ` <CAPnjgZ03+tfMhkqo4=uarcAf1E8hTfvSF_Y0=V70tuqP866QQQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-05 23:03                     ` Stephen Warren
2011-12-05 23:03                       ` [U-Boot] " Stephen Warren
     [not found]                       ` <4EDD4DA7.6070902-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-12-05 23:29                         ` Simon Glass
2011-12-05 23:29                           ` [U-Boot] " Simon Glass
2011-12-06  3:55                   ` Mike Frysinger
2011-12-06  3:55                     ` [U-Boot] " Mike Frysinger
2011-12-07  1:21                     ` Simon Glass
2011-12-07  1:21                       ` [U-Boot] " Simon Glass
2011-12-03  2:11   ` [PATCH v2 05/17] arm: fdt: Ensure that an embedded fdt is word-aligned Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
2011-12-03  2:11   ` [PATCH v2 07/17] tegra: fdt: Add Tegra2x device tree file from kernel Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
2011-12-03  2:11   ` [PATCH v2 08/17] tegra: fdt: Add device tree file for Tegra2 Seaboard " Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
2011-12-03  2:11   ` [PATCH v2 09/17] tegra: usb: fdt: Add additional device tree definitions for USB ports Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
     [not found]     ` <1322878300-5551-10-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-05 23:25       ` Stephen Warren
2011-12-05 23:25         ` [U-Boot] " Stephen Warren
2011-12-06  0:55         ` Simon Glass
2011-12-06  0:55           ` [U-Boot] " Simon Glass
     [not found]           ` <CAPnjgZ1J_cOS_E+ZiDoZUh79V7LUFzVkx-0nhbPTDwuGCGvDnQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-06 20:28             ` Stephen Warren
2011-12-06 20:28               ` [U-Boot] " Stephen Warren
2011-12-06 21:09               ` Simon Glass
2011-12-06 21:09                 ` [U-Boot] " Simon Glass
     [not found]                 ` <CAPnjgZ035Cen11ObFXjKUCqypvVKzkewhfY2F=yGH8=RWxVuSA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-07 23:36                   ` Stephen Warren
2011-12-07 23:36                     ` [U-Boot] " Stephen Warren
     [not found]                     ` <4EDFF898.1070708-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-12-08 21:10                       ` Simon Glass
2011-12-08 21:10                         ` [U-Boot] " Simon Glass
     [not found]                         ` <CAPnjgZ1adfU652Z2ob30GTWZiCnah4WsJNfVrroWvtM5LXW93Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-12 18:13                           ` Stephen Warren [this message]
2011-12-12 18:13                             ` Stephen Warren
2011-12-12 18:53                             ` Simon Glass
2011-12-12 18:53                               ` [U-Boot] " Simon Glass
2011-12-03  2:11   ` [PATCH v2 10/17] tegra: usb: fdt: Add USB definitions for Tegra2 Seaboard Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
     [not found]     ` <1322878300-5551-11-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-05 23:26       ` Stephen Warren
2011-12-05 23:26         ` [U-Boot] " Stephen Warren
2011-12-03  2:11   ` [PATCH v2 17/17] tegra: fdt: Enable FDT support for Seaboard Simon Glass
2011-12-03  2:11     ` [U-Boot] " Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 11/17] usb: Add support for data alignment Simon Glass
2011-12-04 11:13   ` Remy Bohmer
2011-12-06  2:38     ` Simon Glass
2011-12-10 16:04       ` Remy Bohmer
2011-12-10 18:58         ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 12/17] usb: Add support for txfifo threshold Simon Glass
2011-12-05 23:32   ` Stephen Warren
2011-12-06  2:03     ` Simon Glass
2011-12-06 18:58       ` Stephen Warren
2011-12-06 19:24         ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 13/17] tegra: usb: Add support for Tegra USB peripheral Simon Glass
2011-12-04 11:12   ` Remy Bohmer
2011-12-03  2:11 ` [U-Boot] [PATCH v2 14/17] tegra: usb: Add USB support to nvidia boards Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 15/17] tegra: usb: Add common USB defines for tegra2 boards Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 16/17] tegra: usb: Enable USB on Seaboard Simon Glass

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=4EE64430.5070508@nvidia.com \
    --to=swarren-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
    --cc=TWarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=albert.u.boot-LhW3hqR2+23R7s880joybQ@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=linux-SYUVB/VFmdasTnJN9+BGXg@public.gmane.org \
    --cc=sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=u-boot-0aAXYlwwYIKGBzrmiIFOJg@public.gmane.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.