[U-Boot] [PATCH V2 3/3] SAMSUNG: SMDKC100: Adds ethernet support.

Naveen Krishna Ch ch.naveen at samsung.com
Wed Feb 10 06:10:15 CET 2010


From: Naveen Krishna CH <ch.naveen at samsung.com>

Add setup for ethernet on SMDKC100, allowing kernel/ramdisk to be
loaded over tftp.

The preinit function will configure GPIO (GPK0CON) & SROMC to look
for environment in SROM Bank 3.

Changes since v1:

1. Removed the CONFIG_BOOTP_* and Net config macros from board header file
   as per comments from Ben Warren.

Signed-off-by: Naveen Krishna Ch <ch.naveen <at> samsung.com>
---
 board/samsung/smdkc100/smdkc100.c |   37 +++++++++++++++++++++++++++++++++++++
 include/configs/smdkc100.h        |   13 ++++++++++++-
 2 files changed, 49 insertions(+), 1 deletions(-)

diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c
index 15a1a27..6e50f14 100644
--- a/board/samsung/smdkc100/smdkc100.c
+++ b/board/samsung/smdkc100/smdkc100.c
@@ -23,10 +23,38 @@
  */
 
 #include <common.h>
+#include <asm/io.h>
+#include <asm/arch/mem.h>
+
+#define GPK0CON_OFFSET          0x2A0
+#define GPK0CON                 (S5PC100_GPIO_BASE + GPK0CON_OFFSET)
+
 DECLARE_GLOBAL_DATA_PTR;
 
+/*
+ * Miscellaneous platform dependent initialisations
+ */
+static void smc9115_pre_init(void)
+{
+	u32 tmp;
+	u32 smc_bw_conf;
+
+	/* gpio configuration */
+	tmp = __raw_readl(GPK0CON);
+	tmp &= ~(0xf << CONFIG_ENV_SROM_BANK * 4);
+	tmp |=  (0x2 << CONFIG_ENV_SROM_BANK * 4);
+	__raw_writel(tmp, GPK0CON);
+
+	/* Ethernet needs bus width of 16 bits */
+	smc_bw_conf = SROM_DATA16_WIDTH(CONFIG_ENV_SROM_BANK);
+
+	/* Select and configure the SROMC bank */
+	config_sromc(CONFIG_ENV_SROM_BANK, smc_bw_conf, SMC_BC_X_CON);
+}
+
 int board_init(void)
 {
+	smc9115_pre_init();
 	gd->bd->bi_arch_number = MACH_TYPE_SMDKC100;
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
@@ -49,3 +77,12 @@ int checkboard(void)
 	return 0;
 }
 #endif
+
+int board_eth_init(bd_t *bis)
+{
+	int rc = 0;
+#ifdef CONFIG_SMC911X
+	rc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
+#endif
+	return rc;
+}
diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
index a8ba052..eceb93f 100644
--- a/include/configs/smdkc100.h
+++ b/include/configs/smdkc100.h
@@ -83,7 +83,7 @@
 #undef CONFIG_CMD_FLASH
 #undef CONFIG_CMD_IMLS
 #undef CONFIG_CMD_NAND
-#undef CONFIG_CMD_NET
+#define CONFIG_CMD_NET		/* bootp, tftpboot, rarpboot */
 
 #define CONFIG_CMD_CACHE
 #define CONFIG_CMD_REGINFO
@@ -235,4 +235,15 @@
 
 #define CONFIG_DOS_PARTITION		1
 
+/*
+ * Ethernet Contoller driver
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_NET_MULTI
+#define CONFIG_SMC911X   	1	/* we have a SMC9115 on-board	*/
+#define CONFIG_SMC911X_16_BIT	1	/* SMC911X_16_BIT Mode		*/
+#define CONFIG_SMC911X_BASE	0x98800300	/* SMC911X Drive Base	*/
+#define CONFIG_ENV_SROM_BANK	3	/* Select SROM Bank-3 for Ethernet*/
+#endif /* CONFIG_CMD_NET */
+
 #endif	/* __CONFIG_H */
-- 
1.6.6



More information about the U-Boot mailing list