All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
@ 2013-10-29 17:58 David Cohen
  2013-10-29 17:58 ` [RFC/PATCH 1/2] mmc: sdhci: add quirk for broken HS200 support David Cohen
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: David Cohen @ 2013-10-29 17:58 UTC (permalink / raw)
  To: cjb, adrian.hunter, gregkh
  Cc: linux-mmc, linux-kernel, chuanxiao.dong, David Cohen

Hi,

SDHCI used to work well on Intel Merrifield until this patch was applied:

commit 156e14b126ffb6f040bc6f1aff3c51077e42a744
Author: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
Date:   Wed Jun 12 08:16:38 2013 +0200

    mmc: sdhci: fix caps2 for HS200
    
    Although the HC supports HS200 (eMMC) the caps2 are always zero; this
    means there's no way to use the super speed mode (when init the card).
    
    If the HC support SDR104, for SD3.0, so it also supports HS200 for eMMC
    and this patch just sets the MMC_CAP2_HS200 in the host caps2 field.

Looks like there is a hw issue with unknown root cause so far.

Is it acceptable to have the quirk I'm proposing to workaround the issue?

Br, David Cohen

---
David Cohen (2):
  mmc: sdhci: add quirk for broken HS200 support
  mmc: sdhci-pci: add broken HS200 quirk for Intel Merrifield

 drivers/mmc/host/sdhci-pci.c | 1 +
 drivers/mmc/host/sdhci.c     | 3 ++-
 include/linux/mmc/sdhci.h    | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

-- 
1.8.4.rc3


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [RFC/PATCH 1/2] mmc: sdhci: add quirk for broken HS200 support
  2013-10-29 17:58 [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
@ 2013-10-29 17:58 ` David Cohen
  2013-10-29 17:58 ` [RFC/PATCH 2/2] mmc: sdhci-pci: add broken HS200 quirk for Intel Merrifield David Cohen
  2013-11-12 21:49 ` [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
  2 siblings, 0 replies; 9+ messages in thread
From: David Cohen @ 2013-10-29 17:58 UTC (permalink / raw)
  To: cjb, adrian.hunter, gregkh
  Cc: linux-mmc, linux-kernel, chuanxiao.dong, David Cohen

This patch defines a quirk for platforms unable to enable HS200 support.

Signed-off-by: David Cohen <david.a.cohen@linux.intel.com>
Reviewed-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
---
 drivers/mmc/host/sdhci.c  | 3 ++-
 include/linux/mmc/sdhci.h | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 7a7fb4f..ef91ad4 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3002,7 +3002,8 @@ int sdhci_add_host(struct sdhci_host *host)
 		/* SD3.0: SDR104 is supported so (for eMMC) the caps2
 		 * field can be promoted to support HS200.
 		 */
-		mmc->caps2 |= MMC_CAP2_HS200;
+		if (!(host->quirks2 & SDHCI_QUIRK2_BROKEN_HS200))
+			mmc->caps2 |= MMC_CAP2_HS200;
 	} else if (caps[1] & SDHCI_SUPPORT_SDR50)
 		mmc->caps |= MMC_CAP_UHS_SDR50;
 
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
index 3e781b8..362927c4 100644
--- a/include/linux/mmc/sdhci.h
+++ b/include/linux/mmc/sdhci.h
@@ -98,6 +98,8 @@ struct sdhci_host {
 #define SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON		(1<<4)
 /* Controller has a non-standard host control register */
 #define SDHCI_QUIRK2_BROKEN_HOST_CONTROL		(1<<5)
+/* Controller does not support HS200 */
+#define SDHCI_QUIRK2_BROKEN_HS200			(1<<6)
 
 	int irq;		/* Device IRQ */
 	void __iomem *ioaddr;	/* Mapped address */
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [RFC/PATCH 2/2] mmc: sdhci-pci: add broken HS200 quirk for Intel Merrifield
  2013-10-29 17:58 [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
  2013-10-29 17:58 ` [RFC/PATCH 1/2] mmc: sdhci: add quirk for broken HS200 support David Cohen
@ 2013-10-29 17:58 ` David Cohen
  2013-11-12 21:49 ` [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
  2 siblings, 0 replies; 9+ messages in thread
From: David Cohen @ 2013-10-29 17:58 UTC (permalink / raw)
  To: cjb, adrian.hunter, gregkh
  Cc: linux-mmc, linux-kernel, chuanxiao.dong, David Cohen

Due to unkown hw issue so far, Merrifield is unable to enable HS200
support. This patch adds quirk to avoid SDHCI to initialize with error
below:

[   53.850132] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W
3.12.0-rc6-00037-g3d7c8d9-dirty #36
[   53.850150] Hardware name: Intel Corporation Merrifield/SALT BAY,
BIOS 397 2013.09.12:11.51.40
[   53.850167]  00000000 00000000 ee409e48 c18816d2 00000000 ee409e78
c123e254 c1acc9b0
[   53.850227]  00000000 00000000 c1b14148 000003de c16c03bf c16c03bf
ee75b480 ed97c54c
[   53.850282]  ee75b480 ee409e88 c123e292 00000009 00000000 ee409ef8
c16c03bf c1207fac
[   53.850339] Call Trace:
[   53.850376]  [<c18816d2>] dump_stack+0x4b/0x79
[   53.850408]  [<c123e254>] warn_slowpath_common+0x84/0xa0
[   53.850436]  [<c16c03bf>] ? sdhci_send_command+0xb4f/0xc50
[   53.850462]  [<c16c03bf>] ? sdhci_send_command+0xb4f/0xc50
[   53.850490]  [<c123e292>] warn_slowpath_null+0x22/0x30
[   53.850516]  [<c16c03bf>] sdhci_send_command+0xb4f/0xc50
[   53.850545]  [<c1207fac>] ? native_sched_clock+0x2c/0xb0
[   53.850575]  [<c14c1f93>] ? delay_tsc+0x73/0xb0
[   53.850601]  [<c14c1ebe>] ? __const_udelay+0x1e/0x20
[   53.850626]  [<c16bdeb3>] ? sdhci_reset+0x93/0x190
[   53.850654]  [<c16c05b0>] sdhci_finish_data+0xf0/0x2e0
[   53.850683]  [<c16c130f>] sdhci_irq+0x31f/0x930
[   53.850713]  [<c12cb080>] ? __buffer_unlock_commit+0x10/0x20
[   53.850740]  [<c12cbcd7>] ? trace_buffer_unlock_commit+0x37/0x50
[   53.850773]  [<c1288f3c>] handle_irq_event_percpu+0x5c/0x220
[   53.850800]  [<c128bc96>] ? handle_fasteoi_irq+0x16/0xd0
[   53.850827]  [<c128913a>] handle_irq_event+0x3a/0x60
[   53.850852]  [<c128bc80>] ? unmask_irq+0x30/0x30
[   53.850878]  [<c128bcce>] handle_fasteoi_irq+0x4e/0xd0
[   53.850895]  <IRQ>  [<c1890b52>] ? do_IRQ+0x42/0xb0
[   53.850943]  [<c1890a31>] ? common_interrupt+0x31/0x38
[   53.850973]  [<c12b00d8>] ? cgroup_mkdir+0x4e8/0x580
[   53.851001]  [<c1208d32>] ? default_idle+0x22/0xf0
[   53.851029]  [<c1209576>] ? arch_cpu_idle+0x26/0x30
[   53.851054]  [<c1288505>] ? cpu_startup_entry+0x65/0x240
[   53.851082]  [<c18793d5>] ? rest_init+0xb5/0xc0
[   53.851108]  [<c1879320>] ? __read_lock_failed+0x18/0x18
[   53.851138]  [<c1bf6a15>] ? start_kernel+0x31b/0x321
[   53.851164]  [<c1bf652f>] ? repair_env_string+0x51/0x51
[   53.851190]  [<c1bf6363>] ? i386_start_kernel+0x139/0x13c
[   53.851209] ---[ end trace 92777f5fe48d33f2 ]---
[   53.853449] mmcblk0: error -84 transferring data, sector 11142162, nr
304, cmd response 0x0, card status 0x0
[   53.853476] mmcblk0: retrying using single block read
[   55.937863] sdhci: Timeout waiting for Buffer Read Ready interrupt
during tuning procedure, falling back to fixed sampling clock
[   56.207951] sdhci: Timeout waiting for Buffer Read Ready interrupt
during tuning procedure, falling back to fixed sampling clock
[   66.228785] mmc0: Timeout waiting for hardware interrupt.
[   66.230855] ------------[ cut here ]------------

Signed-off-by: David Cohen <david.a.cohen@linux.intel.com>
Reviewed-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
---
 drivers/mmc/host/sdhci-pci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index 06f026a..86a7fbb 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -376,6 +376,7 @@ static int intel_mrfl_mmc_probe_slot(struct sdhci_pci_slot *slot)
 
 static const struct sdhci_pci_fixes sdhci_intel_mrfl_mmc = {
 	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
+	.quirks2	= SDHCI_QUIRK2_BROKEN_HS200,
 	.probe_slot	= intel_mrfl_mmc_probe_slot,
 };
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
  2013-10-29 17:58 [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
  2013-10-29 17:58 ` [RFC/PATCH 1/2] mmc: sdhci: add quirk for broken HS200 support David Cohen
  2013-10-29 17:58 ` [RFC/PATCH 2/2] mmc: sdhci-pci: add broken HS200 quirk for Intel Merrifield David Cohen
@ 2013-11-12 21:49 ` David Cohen
  2013-12-20  3:00   ` Dong Aisheng
  2 siblings, 1 reply; 9+ messages in thread
From: David Cohen @ 2013-11-12 21:49 UTC (permalink / raw)
  To: cjb; +Cc: adrian.hunter, gregkh, linux-mmc, linux-kernel, chuanxiao.dong

On 10/29/2013 10:58 AM, David Cohen wrote:
> Hi,
>
> SDHCI used to work well on Intel Merrifield until this patch was applied:
>
> commit 156e14b126ffb6f040bc6f1aff3c51077e42a744
> Author: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
> Date:   Wed Jun 12 08:16:38 2013 +0200
>
>      mmc: sdhci: fix caps2 for HS200
>
>      Although the HC supports HS200 (eMMC) the caps2 are always zero; this
>      means there's no way to use the super speed mode (when init the card).
>
>      If the HC support SDR104, for SD3.0, so it also supports HS200 for eMMC
>      and this patch just sets the MMC_CAP2_HS200 in the host caps2 field.
>
> Looks like there is a hw issue with unknown root cause so far.
>
> Is it acceptable to have the quirk I'm proposing to workaround the issue?

Ping. Any comments here?

Br, David Cohen

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
  2013-11-12 21:49 ` [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
@ 2013-12-20  3:00   ` Dong Aisheng
  2013-12-20  3:25     ` David Cohen
  0 siblings, 1 reply; 9+ messages in thread
From: Dong Aisheng @ 2013-12-20  3:00 UTC (permalink / raw)
  To: David Cohen
  Cc: Chris Ball, Adrian Hunter, gregkh, linux-mmc, linux-kernel,
	chuanxiao.dong

On Wed, Nov 13, 2013 at 5:49 AM, David Cohen
<david.a.cohen@linux.intel.com> wrote:
> On 10/29/2013 10:58 AM, David Cohen wrote:
>>
>> Hi,
>>
>> SDHCI used to work well on Intel Merrifield until this patch was applied:
>>
>> commit 156e14b126ffb6f040bc6f1aff3c51077e42a744
>> Author: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
>> Date:   Wed Jun 12 08:16:38 2013 +0200
>>
>>      mmc: sdhci: fix caps2 for HS200
>>
>>      Although the HC supports HS200 (eMMC) the caps2 are always zero; this
>>      means there's no way to use the super speed mode (when init the
>> card).
>>
>>      If the HC support SDR104, for SD3.0, so it also supports HS200 for
>> eMMC
>>      and this patch just sets the MMC_CAP2_HS200 in the host caps2 field.
>>
>> Looks like there is a hw issue with unknown root cause so far.
>>
>> Is it acceptable to have the quirk I'm proposing to workaround the issue?
>
>
> Ping. Any comments here?
>

Chris,
Can you pick this one?
IMX also needs this quirk for imx6q/dl since it can not meet HS200
timing requirement.


David,
Is the unkonwn hw issue in your patch #2 resolved now?
If yes, you may not need this quirk.
I could resend it with your sign-off with IMX patches.

Regards
Dong Aisheng

> Br, David Cohen
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
  2013-12-20  3:00   ` Dong Aisheng
@ 2013-12-20  3:25     ` David Cohen
  2013-12-20  3:32       ` Dong Aisheng
  0 siblings, 1 reply; 9+ messages in thread
From: David Cohen @ 2013-12-20  3:25 UTC (permalink / raw)
  To: Dong Aisheng
  Cc: Chris Ball, Adrian Hunter, gregkh, linux-mmc, linux-kernel,
	chuanxiao.dong

On Fri, Dec 20, 2013 at 11:00:23AM +0800, Dong Aisheng wrote:
> On Wed, Nov 13, 2013 at 5:49 AM, David Cohen
> <david.a.cohen@linux.intel.com> wrote:
> > On 10/29/2013 10:58 AM, David Cohen wrote:
> >>
> >> Hi,
> >>
> >> SDHCI used to work well on Intel Merrifield until this patch was applied:
> >>
> >> commit 156e14b126ffb6f040bc6f1aff3c51077e42a744
> >> Author: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
> >> Date:   Wed Jun 12 08:16:38 2013 +0200
> >>
> >>      mmc: sdhci: fix caps2 for HS200
> >>
> >>      Although the HC supports HS200 (eMMC) the caps2 are always zero; this
> >>      means there's no way to use the super speed mode (when init the
> >> card).
> >>
> >>      If the HC support SDR104, for SD3.0, so it also supports HS200 for
> >> eMMC
> >>      and this patch just sets the MMC_CAP2_HS200 in the host caps2 field.
> >>
> >> Looks like there is a hw issue with unknown root cause so far.
> >>
> >> Is it acceptable to have the quirk I'm proposing to workaround the issue?
> >
> >
> > Ping. Any comments here?
> >
> 
> Chris,
> Can you pick this one?
> IMX also needs this quirk for imx6q/dl since it can not meet HS200
> timing requirement.
> 
> 
> David,
> Is the unkonwn hw issue in your patch #2 resolved now?
> If yes, you may not need this quirk.
> I could resend it with your sign-off with IMX patches.

Merrifield still needs this quirk to not break MMC support.
This quirk could be applied to 3.13-rc (since merrifield was added to
sdhci-pci.c on 3.13-rc1).

Br, David

> 
> Regards
> Dong Aisheng
> 
> > Br, David Cohen
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
  2013-12-20  3:25     ` David Cohen
@ 2013-12-20  3:32       ` Dong Aisheng
  2014-01-13 17:55           ` Chris Ball
  0 siblings, 1 reply; 9+ messages in thread
From: Dong Aisheng @ 2013-12-20  3:32 UTC (permalink / raw)
  To: David Cohen
  Cc: Chris Ball, Adrian Hunter, gregkh, linux-mmc, linux-kernel,
	chuanxiao.dong

On Fri, Dec 20, 2013 at 11:25 AM, David Cohen
<david.a.cohen@linux.intel.com> wrote:
> On Fri, Dec 20, 2013 at 11:00:23AM +0800, Dong Aisheng wrote:
>> On Wed, Nov 13, 2013 at 5:49 AM, David Cohen
>> <david.a.cohen@linux.intel.com> wrote:
>> > On 10/29/2013 10:58 AM, David Cohen wrote:
>> >>
>> >> Hi,
>> >>
>> >> SDHCI used to work well on Intel Merrifield until this patch was applied:
>> >>
>> >> commit 156e14b126ffb6f040bc6f1aff3c51077e42a744
>> >> Author: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
>> >> Date:   Wed Jun 12 08:16:38 2013 +0200
>> >>
>> >>      mmc: sdhci: fix caps2 for HS200
>> >>
>> >>      Although the HC supports HS200 (eMMC) the caps2 are always zero; this
>> >>      means there's no way to use the super speed mode (when init the
>> >> card).
>> >>
>> >>      If the HC support SDR104, for SD3.0, so it also supports HS200 for
>> >> eMMC
>> >>      and this patch just sets the MMC_CAP2_HS200 in the host caps2 field.
>> >>
>> >> Looks like there is a hw issue with unknown root cause so far.
>> >>
>> >> Is it acceptable to have the quirk I'm proposing to workaround the issue?
>> >
>> >
>> > Ping. Any comments here?
>> >
>>
>> Chris,
>> Can you pick this one?
>> IMX also needs this quirk for imx6q/dl since it can not meet HS200
>> timing requirement.
>>
>>
>> David,
>> Is the unkonwn hw issue in your patch #2 resolved now?
>> If yes, you may not need this quirk.
>> I could resend it with your sign-off with IMX patches.
>
> Merrifield still needs this quirk to not break MMC support.
> This quirk could be applied to 3.13-rc (since merrifield was added to
> sdhci-pci.c on 3.13-rc1).
>

Okay, thanks for the information.
So please take my ACK:
Acked-by: Dong Aisheng <b29396@freescale.com>

I will send IMX patches based on it.

Regards
Dong Aisheng

> Br, David
>
>>
>> Regards
>> Dong Aisheng
>>
>> > Br, David Cohen
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> >
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> > Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
  2013-12-20  3:32       ` Dong Aisheng
@ 2014-01-13 17:55           ` Chris Ball
  0 siblings, 0 replies; 9+ messages in thread
From: Chris Ball @ 2014-01-13 17:55 UTC (permalink / raw)
  To: Dong Aisheng
  Cc: David Cohen, Adrian Hunter, gregkh, linux-mmc, linux-kernel,
	chuanxiao.dong

Hi David, Dong,

On Fri, Dec 20 2013, Dong Aisheng wrote:
> On Fri, Dec 20, 2013 at 11:25 AM, David Cohen
> <david.a.cohen@linux.intel.com> wrote:
>> Merrifield still needs this quirk to not break MMC support.
>> This quirk could be applied to 3.13-rc (since merrifield was added to
>> sdhci-pci.c on 3.13-rc1).
>
> Okay, thanks for the information.
> So please take my ACK:
> Acked-by: Dong Aisheng <b29396@freescale.com>

Thanks, I've pushed this to mmc-next now.

- Chris.
-- 
Chris Ball   <chris@printf.net>   <http://printf.net/>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200
@ 2014-01-13 17:55           ` Chris Ball
  0 siblings, 0 replies; 9+ messages in thread
From: Chris Ball @ 2014-01-13 17:55 UTC (permalink / raw)
  To: Dong Aisheng
  Cc: David Cohen, Adrian Hunter, gregkh, linux-mmc, linux-kernel,
	chuanxiao.dong

Hi David, Dong,

On Fri, Dec 20 2013, Dong Aisheng wrote:
> On Fri, Dec 20, 2013 at 11:25 AM, David Cohen
> <david.a.cohen@linux.intel.com> wrote:
>> Merrifield still needs this quirk to not break MMC support.
>> This quirk could be applied to 3.13-rc (since merrifield was added to
>> sdhci-pci.c on 3.13-rc1).
>
> Okay, thanks for the information.
> So please take my ACK:
> Acked-by: Dong Aisheng <b29396@freescale.com>

Thanks, I've pushed this to mmc-next now.

- Chris.
-- 
Chris Ball   <chris@printf.net>   <http://printf.net/>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-01-13 17:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-29 17:58 [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
2013-10-29 17:58 ` [RFC/PATCH 1/2] mmc: sdhci: add quirk for broken HS200 support David Cohen
2013-10-29 17:58 ` [RFC/PATCH 2/2] mmc: sdhci-pci: add broken HS200 quirk for Intel Merrifield David Cohen
2013-11-12 21:49 ` [RFC/PATCH 0/2] mmc: sdhci: Workaround Intel Merrifield issue for HS200 David Cohen
2013-12-20  3:00   ` Dong Aisheng
2013-12-20  3:25     ` David Cohen
2013-12-20  3:32       ` Dong Aisheng
2014-01-13 17:55         ` Chris Ball
2014-01-13 17:55           ` Chris Ball

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.