From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "Jiaxin Yu" <jiaxin.yu@mediatek.com>,
"Nícolas F. R. A. Prado" <nfraprado@collabora.com>,
"Mark Brown" <broonie@kernel.org>
Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
Liam Girdwood <lgirdwood@gmail.com>,
linux-kernel@vger.kernel.org,
Shane Chien <shane.chien@mediatek.com>,
Rob Herring <robh+dt@kernel.org>,
linux-mediatek@lists.infradead.org,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
kernel@collabora.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/3] ASoC: dt-bindings: mediatek: mt8192: Add i2s-share properties
Date: Thu, 5 May 2022 10:52:45 +0200 [thread overview]
Message-ID: <d1c548bb-8a36-79bf-498d-c909bf7e7679@collabora.com> (raw)
In-Reply-To: <cbf2fcbae25408b95875278eb37e829bf4671430.camel@mediatek.com>
Il 05/05/22 10:48, Jiaxin Yu ha scritto:
> On Thu, 2022-05-05 at 10:08 +0200, AngeloGioacchino Del Regno wrote:
>> Il 29/04/22 22:30, Nícolas F. R. A. Prado ha scritto:
>>> The Mediatek AFE PCM controller for MT8192 allows sharing of an I2S
>>> bus
>>> between two busses. Add a pattern for these properties in the
>>> dt-binding.
>>>
>>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>
>>> Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml | 5
>>> +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml b/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml
>>> index 7a25bc9b8060..5b03c8dbf318 100644
>>> --- a/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> +++ b/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> @@ -54,6 +54,11 @@ properties:
>>> - const: aud_infra_clk
>>> - const: aud_infra_26m_clk
>>>
>>> +patternProperties:
>>> + "^i2s[0-35-9]-share$":
>>> + description: Name of the I2S bus that is shared with this bus
>>> + pattern: "^I2S[0-35-9]$"
>>> +
>>> required:
>>> - compatible
>>> - interrupts
>>>
>>
>> The only other way of doing this would be to complicate this in the
>> driver
>> so that we can do something like
>>
>> "i2s-share = <0 2>"; instead of i2s0-share = "I2S2";
>>
>> ...and I don't think that this would be any more straightforward than
>> the
>> provided way.
>>
>> There's an improvement that we can do to that pattern description
>> though,
>> which would be explaining that declaring 'i2s0-share = "I2S2"' means
>> that
>> I2S2's data pin will be used as DATA-OUT, while i2s0 is DATA-IN.
>>
>> Another thing that comes to mind here is that this is a MediaTek
>> specific
>> property and *not* a generic one, which means that both the driver
>> and
>> this binding should be fixed to get a "mediatek," prefix, so, this
>> property
>> should - in reality - be "mediatek,i2s[0-35-9]-share" instead.
>>
>> I think that everyone agrees about that, but let's see what the
>> others say.
>>
>> Cheers,
>> Angelo
>
> Hi Angelo,
>
> 'i2s0-share = "I2S2"' means that if we want use I2S0, there need open
> I2S2 to provide clock. Conversely, if we want to use I2S2, we don't
> need to open I2S0. However, MediaTek I2S0 and I2S2 hardware are
> generally designed as input. So usually we use 'i2s0-share = "I2S1"'.
> Even numbers represent input, odd numbers represent output.
>
> Yes, I think adding the "mediatek," prefix is the right way to define a
> non-generic property.
>
Hello Jiaxin,
if I get this correctly, i2s0-share = "I2S2" would be *invalid*... as you
just explained, i2sX, where:
X = even number -> always DATA IN
X = odd number -> always DATA OUT
...this means that the dt-binding needs a pattern to specify that only odd
can be assigned to only even.
Nicolas, take note! :-) :-)
Thanks,
Angelo
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "Jiaxin Yu" <jiaxin.yu@mediatek.com>,
"Nícolas F. R. A. Prado" <nfraprado@collabora.com>,
"Mark Brown" <broonie@kernel.org>
Cc: kernel@collabora.com,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Shane Chien <shane.chien@mediatek.com>,
alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org
Subject: Re: [PATCH 1/3] ASoC: dt-bindings: mediatek: mt8192: Add i2s-share properties
Date: Thu, 5 May 2022 10:52:45 +0200 [thread overview]
Message-ID: <d1c548bb-8a36-79bf-498d-c909bf7e7679@collabora.com> (raw)
In-Reply-To: <cbf2fcbae25408b95875278eb37e829bf4671430.camel@mediatek.com>
Il 05/05/22 10:48, Jiaxin Yu ha scritto:
> On Thu, 2022-05-05 at 10:08 +0200, AngeloGioacchino Del Regno wrote:
>> Il 29/04/22 22:30, Nícolas F. R. A. Prado ha scritto:
>>> The Mediatek AFE PCM controller for MT8192 allows sharing of an I2S
>>> bus
>>> between two busses. Add a pattern for these properties in the
>>> dt-binding.
>>>
>>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>
>>> Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml | 5
>>> +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml b/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml
>>> index 7a25bc9b8060..5b03c8dbf318 100644
>>> --- a/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> +++ b/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> @@ -54,6 +54,11 @@ properties:
>>> - const: aud_infra_clk
>>> - const: aud_infra_26m_clk
>>>
>>> +patternProperties:
>>> + "^i2s[0-35-9]-share$":
>>> + description: Name of the I2S bus that is shared with this bus
>>> + pattern: "^I2S[0-35-9]$"
>>> +
>>> required:
>>> - compatible
>>> - interrupts
>>>
>>
>> The only other way of doing this would be to complicate this in the
>> driver
>> so that we can do something like
>>
>> "i2s-share = <0 2>"; instead of i2s0-share = "I2S2";
>>
>> ...and I don't think that this would be any more straightforward than
>> the
>> provided way.
>>
>> There's an improvement that we can do to that pattern description
>> though,
>> which would be explaining that declaring 'i2s0-share = "I2S2"' means
>> that
>> I2S2's data pin will be used as DATA-OUT, while i2s0 is DATA-IN.
>>
>> Another thing that comes to mind here is that this is a MediaTek
>> specific
>> property and *not* a generic one, which means that both the driver
>> and
>> this binding should be fixed to get a "mediatek," prefix, so, this
>> property
>> should - in reality - be "mediatek,i2s[0-35-9]-share" instead.
>>
>> I think that everyone agrees about that, but let's see what the
>> others say.
>>
>> Cheers,
>> Angelo
>
> Hi Angelo,
>
> 'i2s0-share = "I2S2"' means that if we want use I2S0, there need open
> I2S2 to provide clock. Conversely, if we want to use I2S2, we don't
> need to open I2S0. However, MediaTek I2S0 and I2S2 hardware are
> generally designed as input. So usually we use 'i2s0-share = "I2S1"'.
> Even numbers represent input, odd numbers represent output.
>
> Yes, I think adding the "mediatek," prefix is the right way to define a
> non-generic property.
>
Hello Jiaxin,
if I get this correctly, i2s0-share = "I2S2" would be *invalid*... as you
just explained, i2sX, where:
X = even number -> always DATA IN
X = odd number -> always DATA OUT
...this means that the dt-binding needs a pattern to specify that only odd
can be assigned to only even.
Nicolas, take note! :-) :-)
Thanks,
Angelo
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "Jiaxin Yu" <jiaxin.yu@mediatek.com>,
"Nícolas F. R. A. Prado" <nfraprado@collabora.com>,
"Mark Brown" <broonie@kernel.org>
Cc: kernel@collabora.com,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Shane Chien <shane.chien@mediatek.com>,
alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org
Subject: Re: [PATCH 1/3] ASoC: dt-bindings: mediatek: mt8192: Add i2s-share properties
Date: Thu, 5 May 2022 10:52:45 +0200 [thread overview]
Message-ID: <d1c548bb-8a36-79bf-498d-c909bf7e7679@collabora.com> (raw)
In-Reply-To: <cbf2fcbae25408b95875278eb37e829bf4671430.camel@mediatek.com>
Il 05/05/22 10:48, Jiaxin Yu ha scritto:
> On Thu, 2022-05-05 at 10:08 +0200, AngeloGioacchino Del Regno wrote:
>> Il 29/04/22 22:30, Nícolas F. R. A. Prado ha scritto:
>>> The Mediatek AFE PCM controller for MT8192 allows sharing of an I2S
>>> bus
>>> between two busses. Add a pattern for these properties in the
>>> dt-binding.
>>>
>>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>
>>> Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml | 5
>>> +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml b/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml
>>> index 7a25bc9b8060..5b03c8dbf318 100644
>>> --- a/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> +++ b/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> @@ -54,6 +54,11 @@ properties:
>>> - const: aud_infra_clk
>>> - const: aud_infra_26m_clk
>>>
>>> +patternProperties:
>>> + "^i2s[0-35-9]-share$":
>>> + description: Name of the I2S bus that is shared with this bus
>>> + pattern: "^I2S[0-35-9]$"
>>> +
>>> required:
>>> - compatible
>>> - interrupts
>>>
>>
>> The only other way of doing this would be to complicate this in the
>> driver
>> so that we can do something like
>>
>> "i2s-share = <0 2>"; instead of i2s0-share = "I2S2";
>>
>> ...and I don't think that this would be any more straightforward than
>> the
>> provided way.
>>
>> There's an improvement that we can do to that pattern description
>> though,
>> which would be explaining that declaring 'i2s0-share = "I2S2"' means
>> that
>> I2S2's data pin will be used as DATA-OUT, while i2s0 is DATA-IN.
>>
>> Another thing that comes to mind here is that this is a MediaTek
>> specific
>> property and *not* a generic one, which means that both the driver
>> and
>> this binding should be fixed to get a "mediatek," prefix, so, this
>> property
>> should - in reality - be "mediatek,i2s[0-35-9]-share" instead.
>>
>> I think that everyone agrees about that, but let's see what the
>> others say.
>>
>> Cheers,
>> Angelo
>
> Hi Angelo,
>
> 'i2s0-share = "I2S2"' means that if we want use I2S0, there need open
> I2S2 to provide clock. Conversely, if we want to use I2S2, we don't
> need to open I2S0. However, MediaTek I2S0 and I2S2 hardware are
> generally designed as input. So usually we use 'i2s0-share = "I2S1"'.
> Even numbers represent input, odd numbers represent output.
>
> Yes, I think adding the "mediatek," prefix is the right way to define a
> non-generic property.
>
Hello Jiaxin,
if I get this correctly, i2s0-share = "I2S2" would be *invalid*... as you
just explained, i2sX, where:
X = even number -> always DATA IN
X = odd number -> always DATA OUT
...this means that the dt-binding needs a pattern to specify that only odd
can be assigned to only even.
Nicolas, take note! :-) :-)
Thanks,
Angelo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "Jiaxin Yu" <jiaxin.yu@mediatek.com>,
"Nícolas F. R. A. Prado" <nfraprado@collabora.com>,
"Mark Brown" <broonie@kernel.org>
Cc: kernel@collabora.com,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Shane Chien <shane.chien@mediatek.com>,
alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org
Subject: Re: [PATCH 1/3] ASoC: dt-bindings: mediatek: mt8192: Add i2s-share properties
Date: Thu, 5 May 2022 10:52:45 +0200 [thread overview]
Message-ID: <d1c548bb-8a36-79bf-498d-c909bf7e7679@collabora.com> (raw)
In-Reply-To: <cbf2fcbae25408b95875278eb37e829bf4671430.camel@mediatek.com>
Il 05/05/22 10:48, Jiaxin Yu ha scritto:
> On Thu, 2022-05-05 at 10:08 +0200, AngeloGioacchino Del Regno wrote:
>> Il 29/04/22 22:30, Nícolas F. R. A. Prado ha scritto:
>>> The Mediatek AFE PCM controller for MT8192 allows sharing of an I2S
>>> bus
>>> between two busses. Add a pattern for these properties in the
>>> dt-binding.
>>>
>>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>
>>> Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml | 5
>>> +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml b/Documentation/devicetree/bindings/sound/mt8192-afe-
>>> pcm.yaml
>>> index 7a25bc9b8060..5b03c8dbf318 100644
>>> --- a/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> +++ b/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
>>> @@ -54,6 +54,11 @@ properties:
>>> - const: aud_infra_clk
>>> - const: aud_infra_26m_clk
>>>
>>> +patternProperties:
>>> + "^i2s[0-35-9]-share$":
>>> + description: Name of the I2S bus that is shared with this bus
>>> + pattern: "^I2S[0-35-9]$"
>>> +
>>> required:
>>> - compatible
>>> - interrupts
>>>
>>
>> The only other way of doing this would be to complicate this in the
>> driver
>> so that we can do something like
>>
>> "i2s-share = <0 2>"; instead of i2s0-share = "I2S2";
>>
>> ...and I don't think that this would be any more straightforward than
>> the
>> provided way.
>>
>> There's an improvement that we can do to that pattern description
>> though,
>> which would be explaining that declaring 'i2s0-share = "I2S2"' means
>> that
>> I2S2's data pin will be used as DATA-OUT, while i2s0 is DATA-IN.
>>
>> Another thing that comes to mind here is that this is a MediaTek
>> specific
>> property and *not* a generic one, which means that both the driver
>> and
>> this binding should be fixed to get a "mediatek," prefix, so, this
>> property
>> should - in reality - be "mediatek,i2s[0-35-9]-share" instead.
>>
>> I think that everyone agrees about that, but let's see what the
>> others say.
>>
>> Cheers,
>> Angelo
>
> Hi Angelo,
>
> 'i2s0-share = "I2S2"' means that if we want use I2S0, there need open
> I2S2 to provide clock. Conversely, if we want to use I2S2, we don't
> need to open I2S0. However, MediaTek I2S0 and I2S2 hardware are
> generally designed as input. So usually we use 'i2s0-share = "I2S1"'.
> Even numbers represent input, odd numbers represent output.
>
> Yes, I think adding the "mediatek," prefix is the right way to define a
> non-generic property.
>
Hello Jiaxin,
if I get this correctly, i2s0-share = "I2S2" would be *invalid*... as you
just explained, i2sX, where:
X = even number -> always DATA IN
X = odd number -> always DATA OUT
...this means that the dt-binding needs a pattern to specify that only odd
can be assigned to only even.
Nicolas, take note! :-) :-)
Thanks,
Angelo
next prev parent reply other threads:[~2022-05-05 8:53 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-29 20:30 [PATCH 0/3] Add missing dt-binding properties for audio components on mt8192-asurada Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-04-29 20:30 ` [PATCH 1/3] ASoC: dt-bindings: mediatek: mt8192: Add i2s-share properties Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-05-04 20:38 ` Rob Herring
2022-05-04 20:38 ` Rob Herring
2022-05-04 20:38 ` Rob Herring
2022-05-04 20:38 ` Rob Herring
2022-05-05 2:13 ` Jiaxin Yu
2022-05-05 2:13 ` Jiaxin Yu
2022-05-05 2:13 ` Jiaxin Yu
2022-05-05 2:13 ` Jiaxin Yu
2022-05-05 8:08 ` AngeloGioacchino Del Regno
2022-05-05 8:08 ` AngeloGioacchino Del Regno
2022-05-05 8:08 ` AngeloGioacchino Del Regno
2022-05-05 8:08 ` AngeloGioacchino Del Regno
2022-05-05 8:48 ` Jiaxin Yu
2022-05-05 8:48 ` Jiaxin Yu
2022-05-05 8:48 ` Jiaxin Yu
2022-05-05 8:48 ` Jiaxin Yu
2022-05-05 8:52 ` AngeloGioacchino Del Regno [this message]
2022-05-05 8:52 ` AngeloGioacchino Del Regno
2022-05-05 8:52 ` AngeloGioacchino Del Regno
2022-05-05 8:52 ` AngeloGioacchino Del Regno
2022-05-05 16:25 ` Nícolas F. R. A. Prado
2022-05-05 16:25 ` Nícolas F. R. A. Prado
2022-05-05 16:25 ` Nícolas F. R. A. Prado
2022-05-05 16:25 ` Nícolas F. R. A. Prado
2022-05-06 5:45 ` Jiaxin Yu
2022-05-06 5:45 ` Jiaxin Yu
2022-05-06 5:45 ` Jiaxin Yu
2022-05-06 5:45 ` Jiaxin Yu
2022-05-06 14:09 ` Nícolas F. R. A. Prado
2022-05-06 14:09 ` Nícolas F. R. A. Prado
2022-05-06 14:09 ` Nícolas F. R. A. Prado
2022-05-06 14:09 ` Nícolas F. R. A. Prado
2022-05-06 14:44 ` Jiaxin Yu
2022-05-06 14:44 ` Jiaxin Yu
2022-05-06 14:44 ` Jiaxin Yu
2022-05-06 14:44 ` Jiaxin Yu
2022-04-29 20:30 ` [PATCH 2/3] ASoC: dt-bindings: rt1015p: Add #sound-dai-cells Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-05-04 20:39 ` Rob Herring
2022-05-04 20:39 ` Rob Herring
2022-04-29 20:30 ` [PATCH 3/3] ASoC: dt-bindings: rt5682: " Nícolas F. R. A. Prado
2022-04-29 20:30 ` Nícolas F. R. A. Prado
2022-05-04 20:39 ` Rob Herring
2022-05-04 20:39 ` Rob Herring
2022-05-09 17:17 ` [PATCH 0/3] Add missing dt-binding properties for audio components on mt8192-asurada Mark Brown
2022-05-09 17:17 ` Mark Brown
2022-05-09 17:17 ` Mark Brown
2022-05-09 17:17 ` Mark Brown
2022-05-09 18:16 ` Nícolas F. R. A. Prado
2022-05-09 18:16 ` Nícolas F. R. A. Prado
2022-05-09 18:16 ` Nícolas F. R. A. Prado
2022-05-09 18:16 ` Nícolas F. R. A. Prado
2022-05-09 18:19 ` Mark Brown
2022-05-09 18:19 ` Mark Brown
2022-05-09 18:19 ` Mark Brown
2022-05-09 18:19 ` Mark Brown
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=d1c548bb-8a36-79bf-498d-c909bf7e7679@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jiaxin.yu@mediatek.com \
--cc=kernel@collabora.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=nfraprado@collabora.com \
--cc=robh+dt@kernel.org \
--cc=shane.chien@mediatek.com \
/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.