summaryrefslogtreecommitdiff
path: root/board/freescale/mx25_3stack
diff options
context:
space:
mode:
authorTerry Lv <r65388@freescale.com>2009-10-29 19:19:00 +0800
committerTerry Lv <r65388@freescale.com>2009-11-03 18:22:03 +0800
commitba816f983f5dac44d9f4461906b9bc0101237ac8 (patch)
tree52d3b83aa1cc146b88933f75b0a65c2dc813ea28 /board/freescale/mx25_3stack
parent3227c278048e6b13397d9d0793e77e703649d7de (diff)
downloadu-boot-imx-ba816f983f5dac44d9f4461906b9bc0101237ac8.zip
u-boot-imx-ba816f983f5dac44d9f4461906b9bc0101237ac8.tar.gz
u-boot-imx-ba816f983f5dac44d9f4461906b9bc0101237ac8.tar.bz2
u-boot v2009.08 sd/mmc support.
Signed-off-by: Terry Lv <r65388@freescale.com>
Diffstat (limited to 'board/freescale/mx25_3stack')
-rw-r--r--board/freescale/mx25_3stack/config.mk2
-rw-r--r--board/freescale/mx25_3stack/mx25_3stack.c23
2 files changed, 18 insertions, 7 deletions
diff --git a/board/freescale/mx25_3stack/config.mk b/board/freescale/mx25_3stack/config.mk
index 4c401e7..083613a 100644
--- a/board/freescale/mx25_3stack/config.mk
+++ b/board/freescale/mx25_3stack/config.mk
@@ -1 +1,3 @@
+LDSCRIPT := $(SRCTREE)/board/$(VENDOR)/$(BOARD)/u-boot.lds
+
TEXT_BASE = 0x83F00000
diff --git a/board/freescale/mx25_3stack/mx25_3stack.c b/board/freescale/mx25_3stack/mx25_3stack.c
index b33eaa1..f79b1b9 100644
--- a/board/freescale/mx25_3stack/mx25_3stack.c
+++ b/board/freescale/mx25_3stack/mx25_3stack.c
@@ -35,7 +35,6 @@
DECLARE_GLOBAL_DATA_PTR;
static u32 system_rev;
-volatile u32 *esdhc_base_pointer;
u32 get_board_rev(void)
{
@@ -67,9 +66,11 @@ int dram_init(void)
return 0;
}
-#ifdef CONFIG_FSL_MMC
+#ifdef CONFIG_CMD_MMC
-int sdhc_init(void)
+u32 *imx_esdhc_base_addr;
+
+int esdhc_gpio_init(void)
{
u32 interface_esdhc = 0, val = 0;
@@ -77,7 +78,7 @@ int sdhc_init(void)
switch (interface_esdhc) {
case 0:
- esdhc_base_pointer = (volatile u32 *)MMC_SDHC1_BASE;
+ imx_esdhc_base_addr = (u32 *)MMC_SDHC1_BASE;
/* Pins */
writel(0x10, IOMUXC_BASE + 0x190); /* SD1_CMD */
writel(0x10, IOMUXC_BASE + 0x194); /* SD1_CLK */
@@ -114,7 +115,7 @@ int sdhc_init(void)
writel(val, GPIO1_BASE + GPIO_GDIR);
break;
case 1:
- esdhc_base_pointer = (volatile u32 *)MMC_SDHC2_BASE;
+ imx_esdhc_base_addr = (u32 *)MMC_SDHC2_BASE;
/* Pins */
writel(0x16, IOMUXC_BASE + 0x0e8); /* LD8 (SD1_CMD) */
writel(0x16, IOMUXC_BASE + 0x0ec); /* LD9 (SD1_CLK) */
@@ -144,6 +145,14 @@ int sdhc_init(void)
}
return 0;
}
+
+int board_mmc_init(void)
+{
+ if (!esdhc_gpio_init())
+ return fsl_esdhc_mmc_init(gd->bd);
+ else
+ return -1;
+}
#endif
int board_init(void)
@@ -264,8 +273,8 @@ int checkboard(void)
int board_eth_init(bd_t *bis)
{
int rc = -ENODEV;
-#if defined(CONFIG_DRIVER_SMC911X)
- rc = smc911x_initialize(bis);
+#if defined(CONFIG_SMC911X)
+ rc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
#endif
return rc;
}