From mboxrd@z Thu Jan 1 00:00:00 1970 From: Naveen Krishna Ch Date: Tue, 9 Feb 2010 18:38:22 +0900 Subject: [U-Boot] [PATCH 3/3] SAMSUNG: SMDKC100: Adds ethernet support. In-Reply-To: <1265707341-25956-1-git-send-email-ch.naveen@samsung.com> References: <1265707341-25956-1-git-send-email-ch.naveen@samsung.com> Message-ID: <1265708302-15743-1-git-send-email-ch.naveen@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Naveen Krishna CH 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. Signed-off-by: Naveen Krishna Ch samsung.com> --- board/samsung/smdkc100/smdkc100.c | 37 +++++++++++++++++++++++++++++++++++++ include/configs/smdkc100.h | 30 +++++++++++++++++++++++++++++- 2 files changed, 66 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 +#include +#include + +#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..3de9da1 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,32 @@ #define CONFIG_DOS_PARTITION 1 +/* + * BOOTP options + */ +#define CONFIG_BOOTP_SUBNETMASK +#define CONFIG_BOOTP_GATEWAY +#define CONFIG_BOOTP_HOSTNAME +#define CONFIG_BOOTP_BOOTPATH + +/* + * Net Configurations + */ +#define CONFIG_ETHADDR 00 : 40 : 5c : 26 : 0a : 5b +#define CONFIG_NETMASK 255.255.255.0 +#define CONFIG_IPADDR 192.168.0.20 +#define CONFIG_SERVERIP 192.168.0.10 +#define CONFIG_GATEWAYIP 192.168.0.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