All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG
@ 2011-08-10 22:33 Joe Hershberger
  2011-08-17  0:48 ` [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code Joe Hershberger
  2011-10-06 22:02 ` [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Wolfgang Denk
  0 siblings, 2 replies; 8+ messages in thread
From: Joe Hershberger @ 2011-08-10 22:33 UTC (permalink / raw)
  To: u-boot

The register this is written to is named ddr.cs_config, so name the #define similarly to reduce confusion

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Kim Phillips <kim.phillips@freescale.com>
---
 board/freescale/mpc8313erdb/sdram.c       |    2 +-
 board/freescale/mpc8349emds/mpc8349emds.c |    2 +-
 board/freescale/mpc8349itx/mpc8349itx.c   |    2 +-
 board/freescale/mpc8360emds/mpc8360emds.c |    4 ++--
 board/sbc8349/sbc8349.c                   |    2 +-
 board/ve8313/ve8313.c                     |    2 +-
 include/configs/MPC8313ERDB.h             |    2 +-
 include/configs/MPC8349EMDS.h             |    2 +-
 include/configs/MPC8349ITX.h              |    2 +-
 include/configs/MPC8360EMDS.h             |    2 +-
 include/configs/sbc8349.h                 |    2 +-
 include/configs/ve8313.h                  |    2 +-
 12 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/board/freescale/mpc8313erdb/sdram.c b/board/freescale/mpc8313erdb/sdram.c
index 7aede13..35e3055 100644
--- a/board/freescale/mpc8313erdb/sdram.c
+++ b/board/freescale/mpc8313erdb/sdram.c
@@ -75,7 +75,7 @@ static long fixed_sdram(void)
 	__udelay(50000);
 
 	im->ddr.csbnds[0].csbnds = (msize - 1) >> 24;
-	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CONFIG;
+	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CS_CONFIG;
 
 	/* Currently we use only one CS, so disable the other bank. */
 	im->ddr.cs_config[1] = 0;
diff --git a/board/freescale/mpc8349emds/mpc8349emds.c b/board/freescale/mpc8349emds/mpc8349emds.c
index 365ac37..14f6e9f 100644
--- a/board/freescale/mpc8349emds/mpc8349emds.c
+++ b/board/freescale/mpc8349emds/mpc8349emds.c
@@ -130,7 +130,7 @@ int fixed_sdram(void)
 	im->ddr.sdram_clk_cntl = CONFIG_SYS_DDR_CLK_CNTL;
 #else
 	im->ddr.csbnds[2].csbnds = 0x0000000f;
-	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CONFIG;
+	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CS_CONFIG;
 
 	/* currently we use only one CS, so disable the other banks */
 	im->ddr.cs_config[0] = 0;
diff --git a/board/freescale/mpc8349itx/mpc8349itx.c b/board/freescale/mpc8349itx/mpc8349itx.c
index 5647579..1d69f17 100644
--- a/board/freescale/mpc8349itx/mpc8349itx.c
+++ b/board/freescale/mpc8349itx/mpc8349itx.c
@@ -59,7 +59,7 @@ int fixed_sdram(void)
 
 	/* Only one CS0 for DDR */
 	im->ddr.csbnds[0].csbnds = 0x0000000f;
-	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CONFIG;
+	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CS_CONFIG;
 
 	debug("cs0_bnds = 0x%08x\n", im->ddr.csbnds[0].csbnds);
 	debug("cs0_config = 0x%08x\n", im->ddr.cs_config[0]);
diff --git a/board/freescale/mpc8360emds/mpc8360emds.c b/board/freescale/mpc8360emds/mpc8360emds.c
index 51d8035..91f4194 100644
--- a/board/freescale/mpc8360emds/mpc8360emds.c
+++ b/board/freescale/mpc8360emds/mpc8360emds.c
@@ -249,8 +249,8 @@ int fixed_sdram(void)
 	im->ddr.csbnds[0].csbnds = 0x00000007;
 	im->ddr.csbnds[1].csbnds = 0x0008000f;
 
-	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CONFIG;
-	im->ddr.cs_config[1] = CONFIG_SYS_DDR_CONFIG;
+	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CS_CONFIG;
+	im->ddr.cs_config[1] = CONFIG_SYS_DDR_CS_CONFIG;
 
 	im->ddr.timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1;
 	im->ddr.timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2;
diff --git a/board/sbc8349/sbc8349.c b/board/sbc8349/sbc8349.c
index 50fae7c..a67fee1 100644
--- a/board/sbc8349/sbc8349.c
+++ b/board/sbc8349/sbc8349.c
@@ -108,7 +108,7 @@ int fixed_sdram(void)
 #warning Currently any ddr size other than 256 is not supported
 #endif
 	im->ddr.csbnds[2].csbnds = 0x0000000f;
-	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CONFIG;
+	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CS_CONFIG;
 
 	/* currently we use only one CS, so disable the other banks */
 	im->ddr.cs_config[0] = 0;
diff --git a/board/ve8313/ve8313.c b/board/ve8313/ve8313.c
index 166e459..bf6699d 100644
--- a/board/ve8313/ve8313.c
+++ b/board/ve8313/ve8313.c
@@ -66,7 +66,7 @@ static long fixed_sdram(void)
 	__udelay(50000);
 
 	out_be32(&im->ddr.csbnds[0].csbnds, (msize - 1) >> 24);
-	out_be32(&im->ddr.cs_config[0], CONFIG_SYS_DDR_CONFIG);
+	out_be32(&im->ddr.cs_config[0], CONFIG_SYS_DDR_CS_CONFIG);
 
 	/* Currently we use only one CS, so disable the other bank. */
 	out_be32(&im->ddr.cs_config[1], 0);
diff --git a/include/configs/MPC8313ERDB.h b/include/configs/MPC8313ERDB.h
index 92c54d0..78ad565 100644
--- a/include/configs/MPC8313ERDB.h
+++ b/include/configs/MPC8313ERDB.h
@@ -130,7 +130,7 @@
  * seem to have the SPD connected to I2C.
  */
 #define CONFIG_SYS_DDR_SIZE		128		/* MB */
-#define CONFIG_SYS_DDR_CONFIG		( CSCONFIG_EN \
+#define CONFIG_SYS_DDR_CS_CONFIG	( CSCONFIG_EN \
 				| 0x00010000 /* TODO */ \
 				| CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10 )
 				/* 0x80010102 */
diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h
index 45b6b5f..a723210 100644
--- a/include/configs/MPC8349EMDS.h
+++ b/include/configs/MPC8349EMDS.h
@@ -126,7 +126,7 @@
 #define CONFIG_SYS_DDR_SDRAM_CFG	0x43000000
 #define CONFIG_SYS_DDR_SDRAM_CFG2	0x00401000
 #else
-#define CONFIG_SYS_DDR_CONFIG		(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
+#define CONFIG_SYS_DDR_CS_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
 #define CONFIG_SYS_DDR_TIMING_1	0x36332321
 #define CONFIG_SYS_DDR_TIMING_2	0x00000800	/* P9-45,may need tuning */
 #define CONFIG_SYS_DDR_CONTROL		0xc2000000	/* unbuffered,no DYN_PWR */
diff --git a/include/configs/MPC8349ITX.h b/include/configs/MPC8349ITX.h
index de233ff..720b61b 100644
--- a/include/configs/MPC8349ITX.h
+++ b/include/configs/MPC8349ITX.h
@@ -202,7 +202,7 @@
 
 #ifndef CONFIG_SPD_EEPROM	/* No SPD? Then manually set up DDR parameters */
     #define CONFIG_SYS_DDR_SIZE	256		/* Mb */
-    #define CONFIG_SYS_DDR_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
+    #define CONFIG_SYS_DDR_CS_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
 
     #define CONFIG_SYS_DDR_TIMING_1	0x26242321
     #define CONFIG_SYS_DDR_TIMING_2	0x00000800  /* P9-45, may need tuning */
diff --git a/include/configs/MPC8360EMDS.h b/include/configs/MPC8360EMDS.h
index 49d64a5..63a2a0c 100644
--- a/include/configs/MPC8360EMDS.h
+++ b/include/configs/MPC8360EMDS.h
@@ -144,7 +144,7 @@
 #define CONFIG_SYS_DDR_SDRAM_CFG	0x43000000
 #define CONFIG_SYS_DDR_SDRAM_CFG2	0x00401000
 #else
-#define CONFIG_SYS_DDR_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_9)
+#define CONFIG_SYS_DDR_CS_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_9)
 #define CONFIG_SYS_DDR_TIMING_1	0x37344321 /* tCL-tRCD-tRP-tRAS=2.5-3-3-7 */
 #define CONFIG_SYS_DDR_TIMING_2	0x00000800 /* may need tuning */
 #define CONFIG_SYS_DDR_CONTROL		0x42008000 /* Self refresh,2T timing */
diff --git a/include/configs/sbc8349.h b/include/configs/sbc8349.h
index b418cf2..3067abd 100644
--- a/include/configs/sbc8349.h
+++ b/include/configs/sbc8349.h
@@ -114,7 +114,7 @@
  * NB: manual DDR setup untested on sbc834x
  */
 #define CONFIG_SYS_DDR_SIZE		256		/* MB */
-#define CONFIG_SYS_DDR_CONFIG		(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
+#define CONFIG_SYS_DDR_CS_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
 #define CONFIG_SYS_DDR_TIMING_1	0x36332321
 #define CONFIG_SYS_DDR_TIMING_2	0x00000800	/* P9-45,may need tuning */
 #define CONFIG_SYS_DDR_CONTROL		0xc2000000	/* unbuffered,no DYN_PWR */
diff --git a/include/configs/ve8313.h b/include/configs/ve8313.h
index abb57fe..8f5696a 100644
--- a/include/configs/ve8313.h
+++ b/include/configs/ve8313.h
@@ -79,7 +79,7 @@
  * have the SPD connected to I2C.
  */
 #define CONFIG_SYS_DDR_SIZE		128		/* MB */
-#define CONFIG_SYS_DDR_CONFIG		( CSCONFIG_EN \
+#define CONFIG_SYS_DDR_CS_CONFIG	( CSCONFIG_EN \
 				| CSCONFIG_AP \
 				| 0x00040000 /* TODO */ \
 				| CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10 )
-- 
1.6.0.2

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

* [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code
  2011-08-10 22:33 [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Joe Hershberger
@ 2011-08-17  0:48 ` Joe Hershberger
  2011-09-14  1:10   ` Kim Phillips
  2011-10-06 21:52   ` Wolfgang Denk
  2011-10-06 22:02 ` [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Wolfgang Denk
  1 sibling, 2 replies; 8+ messages in thread
From: Joe Hershberger @ 2011-08-17  0:48 UTC (permalink / raw)
  To: u-boot

Rename CONFIG_SYS_DDR_CONFIG to include which CS it is configuring
Cleanup the setting of the csnbds to respect the setting of CONFIG_SYS_DDR_SDRAM_BASE
Use __ilog2 instead of writing the code to compute it
Disable unused CS configs
Ensure ddrlaw.bar is configured

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Kim Phillips <kim.phillips@freescale.com>
---
Changes for v2:
 - Changed from CONFIG_SYS_DDR_CS_CONFIG to CONFIG_SYS_DDR_CS[x]_CONFIG where [x] is the actual CS used
 - Cleaup code that uses the csbnds associated with the DDR_CS_CONFIG

 board/freescale/mpc8313erdb/sdram.c       |    9 +++++-
 board/freescale/mpc8349emds/mpc8349emds.c |   26 +++++++++----------
 board/freescale/mpc8349itx/mpc8349itx.c   |   26 ++++++++++---------
 board/freescale/mpc8360emds/mpc8360emds.c |   39 +++++++++++++++++------------
 board/sbc8349/sbc8349.c                   |   26 +++++++++----------
 board/ve8313/ve8313.c                     |    9 +++++-
 include/configs/MPC8313ERDB.h             |    2 +-
 include/configs/MPC8349EMDS.h             |    2 +-
 include/configs/MPC8349ITX.h              |    2 +-
 include/configs/MPC8360EMDS.h             |    3 +-
 include/configs/sbc8349.h                 |    2 +-
 include/configs/ve8313.h                  |    2 +-
 12 files changed, 82 insertions(+), 66 deletions(-)

diff --git a/board/freescale/mpc8313erdb/sdram.c b/board/freescale/mpc8313erdb/sdram.c
index 7aede13..ab3fb3c 100644
--- a/board/freescale/mpc8313erdb/sdram.c
+++ b/board/freescale/mpc8313erdb/sdram.c
@@ -74,8 +74,13 @@ static long fixed_sdram(void)
 	 */
 	__udelay(50000);
 
-	im->ddr.csbnds[0].csbnds = (msize - 1) >> 24;
-	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CONFIG;
+#if ((CONFIG_SYS_DDR_SDRAM_BASE & 0x00FFFFFF) != 0 )
+#warning Chip select bounds is only configurable in 16MB increments (modify CONFIG_SYS_DDR_SDRAM_BASE)
+#endif
+	im->ddr.csbnds[0].csbnds =
+		((CONFIG_SYS_DDR_SDRAM_BASE >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + msize - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA);
+	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CS0_CONFIG;
 
 	/* Currently we use only one CS, so disable the other bank. */
 	im->ddr.cs_config[1] = 0;
diff --git a/board/freescale/mpc8349emds/mpc8349emds.c b/board/freescale/mpc8349emds/mpc8349emds.c
index 365ac37..29b8a4b 100644
--- a/board/freescale/mpc8349emds/mpc8349emds.c
+++ b/board/freescale/mpc8349emds/mpc8349emds.c
@@ -97,18 +97,10 @@ phys_size_t initdram (int board_type)
 int fixed_sdram(void)
 {
 	volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR;
-	u32 msize = 0;
-	u32 ddr_size;
-	u32 ddr_size_log2;
-
-	msize = CONFIG_SYS_DDR_SIZE;
-	for (ddr_size = msize << 20, ddr_size_log2 = 0;
-	     (ddr_size > 1);
-	     ddr_size = ddr_size>>1, ddr_size_log2++) {
-		if (ddr_size & 1) {
-			return -1;
-		}
-	}
+	u32 msize = CONFIG_SYS_DDR_SIZE;
+	u32 ddr_size = msize << 20;	/* DDR size in bytes */
+	u32 ddr_size_log2 = __ilog2(ddr_size);
+
 	im->sysconf.ddrlaw[0].bar = CONFIG_SYS_DDR_SDRAM_BASE & 0xfffff000;
 	im->sysconf.ddrlaw[0].ar = LAWAR_EN | ((ddr_size_log2 - 1) & LAWAR_SIZE);
 
@@ -129,8 +121,14 @@ int fixed_sdram(void)
 	im->ddr.sdram_interval = CONFIG_SYS_DDR_INTERVAL;
 	im->ddr.sdram_clk_cntl = CONFIG_SYS_DDR_CLK_CNTL;
 #else
-	im->ddr.csbnds[2].csbnds = 0x0000000f;
-	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CONFIG;
+
+#if ((CONFIG_SYS_DDR_SDRAM_BASE & 0x00FFFFFF) != 0 )
+#warning Chip select bounds is only configurable in 16MB increments (modify CONFIG_SYS_DDR_SDRAM_BASE)
+#endif
+	im->ddr.csbnds[2].csbnds =
+		((CONFIG_SYS_DDR_SDRAM_BASE >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + ddr_size - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA);
+	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CS2_CONFIG;
 
 	/* currently we use only one CS, so disable the other banks */
 	im->ddr.cs_config[0] = 0;
diff --git a/board/freescale/mpc8349itx/mpc8349itx.c b/board/freescale/mpc8349itx/mpc8349itx.c
index 5647579..22b4234 100644
--- a/board/freescale/mpc8349itx/mpc8349itx.c
+++ b/board/freescale/mpc8349itx/mpc8349itx.c
@@ -43,23 +43,25 @@
 int fixed_sdram(void)
 {
 	volatile immap_t *im = (immap_t *) CONFIG_SYS_IMMR;
-	u32 ddr_size;		/* The size of RAM, in bytes */
-	u32 ddr_size_log2 = 0;
-
-	for (ddr_size = CONFIG_SYS_DDR_SIZE * 0x100000; ddr_size > 1; ddr_size >>= 1) {
-		if (ddr_size & 1) {
-			return -1;
-		}
-		ddr_size_log2++;
-	}
+	u32 ddr_size = CONFIG_SYS_DDR_SIZE << 20;	/* The size of RAM, in bytes */
+	u32 ddr_size_log2 = __ilog2(ddr_size);
 
 	im->sysconf.ddrlaw[0].ar =
 	    LAWAR_EN | ((ddr_size_log2 - 1) & LAWAR_SIZE);
 	im->sysconf.ddrlaw[0].bar = CONFIG_SYS_DDR_SDRAM_BASE & 0xfffff000;
 
-	/* Only one CS0 for DDR */
-	im->ddr.csbnds[0].csbnds = 0x0000000f;
-	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CONFIG;
+#if ((CONFIG_SYS_DDR_SDRAM_BASE & 0x00FFFFFF) != 0 )
+#warning Chip select bounds is only configurable in 16MB increments (modify CONFIG_SYS_DDR_SDRAM_BASE)
+#endif
+	im->ddr.csbnds[0].csbnds =
+		((CONFIG_SYS_DDR_SDRAM_BASE >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + ddr_size - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA);
+	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CS0_CONFIG;
+
+	/* Only one CS for DDR */
+	im->ddr.cs_config[1] = 0;
+	im->ddr.cs_config[2] = 0;
+	im->ddr.cs_config[3] = 0;
 
 	debug("cs0_bnds = 0x%08x\n", im->ddr.csbnds[0].csbnds);
 	debug("cs0_config = 0x%08x\n", im->ddr.cs_config[0]);
diff --git a/board/freescale/mpc8360emds/mpc8360emds.c b/board/freescale/mpc8360emds/mpc8360emds.c
index 51d8035..cde5bec 100644
--- a/board/freescale/mpc8360emds/mpc8360emds.c
+++ b/board/freescale/mpc8360emds/mpc8360emds.c
@@ -216,19 +216,15 @@ phys_size_t initdram(int board_type)
 int fixed_sdram(void)
 {
 	volatile immap_t *im = (immap_t *) CONFIG_SYS_IMMR;
-	u32 msize = 0;
-	u32 ddr_size;
-	u32 ddr_size_log2;
-
-	msize = CONFIG_SYS_DDR_SIZE;
-	for (ddr_size = msize << 20, ddr_size_log2 = 0;
-	     (ddr_size > 1); ddr_size = ddr_size >> 1, ddr_size_log2++) {
-		if (ddr_size & 1) {
-			return -1;
-		}
-	}
+	u32 msize = CONFIG_SYS_DDR_SIZE;
+	u32 ddr_size = msize << 20;
+	u32 ddr_size_log2 = __ilog2(ddr_size);
+	u32 half_ddr_size = ddr_size >> 1;
+
+	im->sysconf.ddrlaw[0].bar =
+		CONFIG_SYS_DDR_SDRAM_BASE & 0xfffff000;
 	im->sysconf.ddrlaw[0].ar =
-	    LAWAR_EN | ((ddr_size_log2 - 1) & LAWAR_SIZE);
+		LAWAR_EN | ((ddr_size_log2 - 1) & LAWAR_SIZE);
 #if (CONFIG_SYS_DDR_SIZE != 256)
 #warning Currenly any ddr size other than 256 is not supported
 #endif
@@ -246,11 +242,22 @@ int fixed_sdram(void)
 	im->ddr.sdram_interval = CONFIG_SYS_DDR_INTERVAL;
 	im->ddr.sdram_clk_cntl = CONFIG_SYS_DDR_CLK_CNTL;
 #else
-	im->ddr.csbnds[0].csbnds = 0x00000007;
-	im->ddr.csbnds[1].csbnds = 0x0008000f;
 
-	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CONFIG;
-	im->ddr.cs_config[1] = CONFIG_SYS_DDR_CONFIG;
+#if ((CONFIG_SYS_DDR_SDRAM_BASE & 0x00FFFFFF) != 0 )
+#warning Chip select bounds is only configurable in 16MB increments (modify CONFIG_SYS_DDR_SDRAM_BASE)
+#endif
+	im->ddr.csbnds[0].csbnds =
+		((CONFIG_SYS_DDR_SDRAM_BASE >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + half_ddr_size - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA);
+	im->ddr.csbnds[1].csbnds =
+		(((CONFIG_SYS_DDR_SDRAM_BASE + half_ddr_size) >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + ddr_size - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA);
+
+	im->ddr.cs_config[0] = CONFIG_SYS_DDR_CS0_CONFIG;
+	im->ddr.cs_config[1] = CONFIG_SYS_DDR_CS1_CONFIG;
+
+	im->ddr.cs_config[2] = 0;
+	im->ddr.cs_config[3] = 0;
 
 	im->ddr.timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1;
 	im->ddr.timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2;
diff --git a/board/sbc8349/sbc8349.c b/board/sbc8349/sbc8349.c
index 50fae7c..eb558b4 100644
--- a/board/sbc8349/sbc8349.c
+++ b/board/sbc8349/sbc8349.c
@@ -89,26 +89,24 @@ phys_size_t initdram (int board_type)
 int fixed_sdram(void)
 {
 	volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR;
-	u32 msize = 0;
-	u32 ddr_size;
-	u32 ddr_size_log2;
-
-	msize = CONFIG_SYS_DDR_SIZE;
-	for (ddr_size = msize << 20, ddr_size_log2 = 0;
-	     (ddr_size > 1);
-	     ddr_size = ddr_size>>1, ddr_size_log2++) {
-		if (ddr_size & 1) {
-			return -1;
-		}
-	}
+	u32 msize = CONFIG_SYS_DDR_SIZE;
+	u32 ddr_size = msize << 20;	/* DDR size in bytes */
+	u32 ddr_size_log2 = __ilog2(msize);
+
 	im->sysconf.ddrlaw[0].bar = CONFIG_SYS_DDR_SDRAM_BASE & 0xfffff000;
 	im->sysconf.ddrlaw[0].ar = LAWAR_EN | ((ddr_size_log2 - 1) & LAWAR_SIZE);
 
 #if (CONFIG_SYS_DDR_SIZE != 256)
 #warning Currently any ddr size other than 256 is not supported
 #endif
-	im->ddr.csbnds[2].csbnds = 0x0000000f;
-	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CONFIG;
+
+#if ((CONFIG_SYS_DDR_SDRAM_BASE & 0x00FFFFFF) != 0 )
+#warning Chip select bounds is only configurable in 16MB increments (modify CONFIG_SYS_DDR_SDRAM_BASE)
+#endif
+	im->ddr.csbnds[2].csbnds =
+		((CONFIG_SYS_DDR_SDRAM_BASE >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + ddr_size - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA);
+	im->ddr.cs_config[2] = CONFIG_SYS_DDR_CS2_CONFIG;
 
 	/* currently we use only one CS, so disable the other banks */
 	im->ddr.cs_config[0] = 0;
diff --git a/board/ve8313/ve8313.c b/board/ve8313/ve8313.c
index 166e459..8ae5edf 100644
--- a/board/ve8313/ve8313.c
+++ b/board/ve8313/ve8313.c
@@ -65,8 +65,13 @@ static long fixed_sdram(void)
 	 */
 	__udelay(50000);
 
-	out_be32(&im->ddr.csbnds[0].csbnds, (msize - 1) >> 24);
-	out_be32(&im->ddr.cs_config[0], CONFIG_SYS_DDR_CONFIG);
+#if ((CONFIG_SYS_DDR_SDRAM_BASE & 0x00FFFFFF) != 0 )
+#warning Chip select bounds is only configurable in 16MB increments (modify CONFIG_SYS_DDR_SDRAM_BASE)
+#endif
+	out_be32(&im->ddr.csbnds[0].csbnds,
+		((CONFIG_SYS_DDR_SDRAM_BASE >> CSBNDS_SA_SHIFT) & CSBNDS_SA) |
+		(((CONFIG_SYS_DDR_SDRAM_BASE + msize - 1) >> CSBNDS_EA_SHIFT) & CSBNDS_EA));
+	out_be32(&im->ddr.cs_config[0], CONFIG_SYS_DDR_CS0_CONFIG);
 
 	/* Currently we use only one CS, so disable the other bank. */
 	out_be32(&im->ddr.cs_config[1], 0);
diff --git a/include/configs/MPC8313ERDB.h b/include/configs/MPC8313ERDB.h
index 92c54d0..354278a 100644
--- a/include/configs/MPC8313ERDB.h
+++ b/include/configs/MPC8313ERDB.h
@@ -130,7 +130,7 @@
  * seem to have the SPD connected to I2C.
  */
 #define CONFIG_SYS_DDR_SIZE		128		/* MB */
-#define CONFIG_SYS_DDR_CONFIG		( CSCONFIG_EN \
+#define CONFIG_SYS_DDR_CS0_CONFIG	( CSCONFIG_EN \
 				| 0x00010000 /* TODO */ \
 				| CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10 )
 				/* 0x80010102 */
diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h
index 45b6b5f..7e42f6e 100644
--- a/include/configs/MPC8349EMDS.h
+++ b/include/configs/MPC8349EMDS.h
@@ -126,7 +126,7 @@
 #define CONFIG_SYS_DDR_SDRAM_CFG	0x43000000
 #define CONFIG_SYS_DDR_SDRAM_CFG2	0x00401000
 #else
-#define CONFIG_SYS_DDR_CONFIG		(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
+#define CONFIG_SYS_DDR_CS2_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
 #define CONFIG_SYS_DDR_TIMING_1	0x36332321
 #define CONFIG_SYS_DDR_TIMING_2	0x00000800	/* P9-45,may need tuning */
 #define CONFIG_SYS_DDR_CONTROL		0xc2000000	/* unbuffered,no DYN_PWR */
diff --git a/include/configs/MPC8349ITX.h b/include/configs/MPC8349ITX.h
index de233ff..981058f 100644
--- a/include/configs/MPC8349ITX.h
+++ b/include/configs/MPC8349ITX.h
@@ -202,7 +202,7 @@
 
 #ifndef CONFIG_SPD_EEPROM	/* No SPD? Then manually set up DDR parameters */
     #define CONFIG_SYS_DDR_SIZE	256		/* Mb */
-    #define CONFIG_SYS_DDR_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
+    #define CONFIG_SYS_DDR_CS0_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
 
     #define CONFIG_SYS_DDR_TIMING_1	0x26242321
     #define CONFIG_SYS_DDR_TIMING_2	0x00000800  /* P9-45, may need tuning */
diff --git a/include/configs/MPC8360EMDS.h b/include/configs/MPC8360EMDS.h
index 49d64a5..1a9e9b5 100644
--- a/include/configs/MPC8360EMDS.h
+++ b/include/configs/MPC8360EMDS.h
@@ -144,7 +144,8 @@
 #define CONFIG_SYS_DDR_SDRAM_CFG	0x43000000
 #define CONFIG_SYS_DDR_SDRAM_CFG2	0x00401000
 #else
-#define CONFIG_SYS_DDR_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_9)
+#define CONFIG_SYS_DDR_CS0_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_9)
+#define CONFIG_SYS_DDR_CS1_CONFIG CONFIG_SYS_DDR_CS0_CONFIG
 #define CONFIG_SYS_DDR_TIMING_1	0x37344321 /* tCL-tRCD-tRP-tRAS=2.5-3-3-7 */
 #define CONFIG_SYS_DDR_TIMING_2	0x00000800 /* may need tuning */
 #define CONFIG_SYS_DDR_CONTROL		0x42008000 /* Self refresh,2T timing */
diff --git a/include/configs/sbc8349.h b/include/configs/sbc8349.h
index b418cf2..7662c84 100644
--- a/include/configs/sbc8349.h
+++ b/include/configs/sbc8349.h
@@ -114,7 +114,7 @@
  * NB: manual DDR setup untested on sbc834x
  */
 #define CONFIG_SYS_DDR_SIZE		256		/* MB */
-#define CONFIG_SYS_DDR_CONFIG		(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
+#define CONFIG_SYS_DDR_CS2_CONFIG	(CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10)
 #define CONFIG_SYS_DDR_TIMING_1	0x36332321
 #define CONFIG_SYS_DDR_TIMING_2	0x00000800	/* P9-45,may need tuning */
 #define CONFIG_SYS_DDR_CONTROL		0xc2000000	/* unbuffered,no DYN_PWR */
diff --git a/include/configs/ve8313.h b/include/configs/ve8313.h
index abb57fe..175adf5 100644
--- a/include/configs/ve8313.h
+++ b/include/configs/ve8313.h
@@ -79,7 +79,7 @@
  * have the SPD connected to I2C.
  */
 #define CONFIG_SYS_DDR_SIZE		128		/* MB */
-#define CONFIG_SYS_DDR_CONFIG		( CSCONFIG_EN \
+#define CONFIG_SYS_DDR_CS0_CONFIG	( CSCONFIG_EN \
 				| CSCONFIG_AP \
 				| 0x00040000 /* TODO */ \
 				| CSCONFIG_ROW_BIT_13 | CSCONFIG_COL_BIT_10 )
-- 
1.6.0.2

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

* [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code
  2011-08-17  0:48 ` [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code Joe Hershberger
@ 2011-09-14  1:10   ` Kim Phillips
  2011-10-06 21:53     ` Wolfgang Denk
  2011-10-06 22:02     ` Wolfgang Denk
  2011-10-06 21:52   ` Wolfgang Denk
  1 sibling, 2 replies; 8+ messages in thread
From: Kim Phillips @ 2011-09-14  1:10 UTC (permalink / raw)
  To: u-boot

On Tue, 16 Aug 2011 19:48:13 -0500
Joe Hershberger <joe.hershberger@ni.com> wrote:

> Rename CONFIG_SYS_DDR_CONFIG to include which CS it is configuring
> Cleanup the setting of the csnbds to respect the setting of CONFIG_SYS_DDR_SDRAM_BASE
> Use __ilog2 instead of writing the code to compute it
> Disable unused CS configs
> Ensure ddrlaw.bar is configured
> 
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Kim Phillips <kim.phillips@freescale.com>

applied, thanks.

Kim

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

* [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code
  2011-08-17  0:48 ` [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code Joe Hershberger
  2011-09-14  1:10   ` Kim Phillips
@ 2011-10-06 21:52   ` Wolfgang Denk
  1 sibling, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2011-10-06 21:52 UTC (permalink / raw)
  To: u-boot

Dear Joe Hershberger,

In message <1313542093-7252-1-git-send-email-joe.hershberger@ni.com> you wrote:
> Rename CONFIG_SYS_DDR_CONFIG to include which CS it is configuring
> Cleanup the setting of the csnbds to respect the setting of CONFIG_SYS_DDR_SDRAM_BASE
> Use __ilog2 instead of writing the code to compute it
> Disable unused CS configs
> Ensure ddrlaw.bar is configured
> 
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Kim Phillips <kim.phillips@freescale.com>
> ---
> Changes for v2:
>  - Changed from CONFIG_SYS_DDR_CS_CONFIG to CONFIG_SYS_DDR_CS[x]_CONFIG where [x] is the actual CS used
>  - Cleaup code that uses the csbnds associated with the DDR_CS_CONFIG
> 
>  board/freescale/mpc8313erdb/sdram.c       |    9 +++++-
>  board/freescale/mpc8349emds/mpc8349emds.c |   26 +++++++++----------
>  board/freescale/mpc8349itx/mpc8349itx.c   |   26 ++++++++++---------
>  board/freescale/mpc8360emds/mpc8360emds.c |   39 +++++++++++++++++------------
>  board/sbc8349/sbc8349.c                   |   26 +++++++++----------
>  board/ve8313/ve8313.c                     |    9 +++++-
>  include/configs/MPC8313ERDB.h             |    2 +-
>  include/configs/MPC8349EMDS.h             |    2 +-
>  include/configs/MPC8349ITX.h              |    2 +-
>  include/configs/MPC8360EMDS.h             |    3 +-
>  include/configs/sbc8349.h                 |    2 +-
>  include/configs/ve8313.h                  |    2 +-
>  12 files changed, 82 insertions(+), 66 deletions(-)

Checkpatch says:

total: 8 errors, 19 warnings, 245 lines checked

Please clean up and resubmit.  Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Every revolutionary idea - in science, politics, art, or  whatever  -
evokes three stages of reaction in a hearer:
  1. It is completely impossible - don't waste my time.
  2. It is possible, but it is not worth doing.
  3. I said it was a good idea all along.

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

* [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code
  2011-09-14  1:10   ` Kim Phillips
@ 2011-10-06 21:53     ` Wolfgang Denk
  2011-10-06 22:02     ` Wolfgang Denk
  1 sibling, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2011-10-06 21:53 UTC (permalink / raw)
  To: u-boot

Dear Kim Phillips,

In message <20110913201006.2c0d3fa1.kim.phillips@freescale.com> you wrote:
> On Tue, 16 Aug 2011 19:48:13 -0500
> Joe Hershberger <joe.hershberger@ni.com> wrote:
> 
> > Rename CONFIG_SYS_DDR_CONFIG to include which CS it is configuring
> > Cleanup the setting of the csnbds to respect the setting of CONFIG_SYS_DDR_SDRAM_BASE
> > Use __ilog2 instead of writing the code to compute it
> > Disable unused CS configs
> > Ensure ddrlaw.bar is configured
> > 
> > Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> > Cc: Joe Hershberger <joe.hershberger@gmail.com>
> > Cc: Kim Phillips <kim.phillips@freescale.com>
> 
> applied, thanks.

Please undo.

You might want to run checkpatch over the stuff before applying it.
Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Hegel was right when he said that we learn from history that man  can
never learn anything from history.              - George Bernard Shaw

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

* [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG
  2011-08-10 22:33 [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Joe Hershberger
  2011-08-17  0:48 ` [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code Joe Hershberger
@ 2011-10-06 22:02 ` Wolfgang Denk
  2011-10-12  2:31   ` Joe Hershberger
  1 sibling, 1 reply; 8+ messages in thread
From: Wolfgang Denk @ 2011-10-06 22:02 UTC (permalink / raw)
  To: u-boot

Dear Joe Hershberger,

In message <1313015637-5160-1-git-send-email-joe.hershberger@ni.com> you wrote:
> The register this is written to is named ddr.cs_config, so name the #define similarly to reduce confusion
> 
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Kim Phillips <kim.phillips@freescale.com>
> ---
>  board/freescale/mpc8313erdb/sdram.c       |    2 +-
>  board/freescale/mpc8349emds/mpc8349emds.c |    2 +-
>  board/freescale/mpc8349itx/mpc8349itx.c   |    2 +-
>  board/freescale/mpc8360emds/mpc8360emds.c |    4 ++--
>  board/sbc8349/sbc8349.c                   |    2 +-
>  board/ve8313/ve8313.c                     |    2 +-
>  include/configs/MPC8313ERDB.h             |    2 +-
>  include/configs/MPC8349EMDS.h             |    2 +-
>  include/configs/MPC8349ITX.h              |    2 +-
>  include/configs/MPC8360EMDS.h             |    2 +-
>  include/configs/sbc8349.h                 |    2 +-
>  include/configs/ve8313.h                  |    2 +-
>  12 files changed, 13 insertions(+), 13 deletions(-)

Checkpatch says:

total: 2 errors, 4 warnings, 98 lines checked

Please clean up and resubmit.  Thanks.


Seems your're trying to break the record for the highest number of
rejects due to never running checkpatch :-(

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
SW engineering is a race between programmers trying  to  make  better
idiot-proof programs and the universe producing greater idiots.

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

* [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code
  2011-09-14  1:10   ` Kim Phillips
  2011-10-06 21:53     ` Wolfgang Denk
@ 2011-10-06 22:02     ` Wolfgang Denk
  1 sibling, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2011-10-06 22:02 UTC (permalink / raw)
  To: u-boot

Dear Kim Phillips,

In message <20110913201006.2c0d3fa1.kim.phillips@freescale.com> you wrote:
> On Tue, 16 Aug 2011 19:48:13 -0500
> Joe Hershberger <joe.hershberger@ni.com> wrote:
> 
> > Rename CONFIG_SYS_DDR_CONFIG to include which CS it is configuring
> > Cleanup the setting of the csnbds to respect the setting of CONFIG_SYS_DDR_SDRAM_BASE
> > Use __ilog2 instead of writing the code to compute it
> > Disable unused CS configs
> > Ensure ddrlaw.bar is configured
> > 
> > Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> > Cc: Joe Hershberger <joe.hershberger@gmail.com>
> > Cc: Kim Phillips <kim.phillips@freescale.com>
> 
> applied, thanks.

Please undo.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It's certainly  convenient  the  way  the  crime  (or  condition)  of
stupidity   carries   with   it  its  own  punishment,  automatically
admisistered without remorse, pity, or prejudice. :-)
         -- Tom Christiansen in <559seq$ag1$1@csnews.cs.colorado.edu>

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

* [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG
  2011-10-06 22:02 ` [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Wolfgang Denk
@ 2011-10-12  2:31   ` Joe Hershberger
  0 siblings, 0 replies; 8+ messages in thread
From: Joe Hershberger @ 2011-10-12  2:31 UTC (permalink / raw)
  To: u-boot

On Thu, Oct 6, 2011 at 5:02 PM, Wolfgang Denk <wd@denx.de> wrote:
> Dear Joe Hershberger,
>
> Seems your're trying to break the record for the highest number of
> rejects due to never running checkpatch :-(

Many appologies for neglecting this step.

I've changed all of the include/config/*.h files for mpc83xx targets
to be checkpatch compliant and rebased my patches on that.  Coming
soon...

Again, sorry for the churn that I've caused.  I'll be more diligent in
the future.

-Joe

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

end of thread, other threads:[~2011-10-12  2:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-10 22:33 [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Joe Hershberger
2011-08-17  0:48 ` [U-Boot] [PATCH v2] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG and cleanup DDR csbnds code Joe Hershberger
2011-09-14  1:10   ` Kim Phillips
2011-10-06 21:53     ` Wolfgang Denk
2011-10-06 22:02     ` Wolfgang Denk
2011-10-06 21:52   ` Wolfgang Denk
2011-10-06 22:02 ` [U-Boot] [PATCH] powerpc/mpc83xx: Rename CONFIG_SYS_DDR_CONFIG to CONFIG_SYS_DDR_CS_CONFIG Wolfgang Denk
2011-10-12  2:31   ` Joe Hershberger

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.