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

From: Naveen Krishna CH ch.naveen@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.
Signed-off-by: Naveen Krishna Ch ch.naveen@samsung.com --- Changes since V1:
1. The CONFIG_BOOTP* and Net config Macros are removed from config header. Comments from Ben Warren are fixed 2. The GPIO configuration is modified & Macro and Function are renamed. Comments from Minkyu Kang are fixedChanges since V2
Changes since V2: 1. GPIO configurations function has been implemented.
Changes since V3: 1. Comments from Minkyu Kang are fixed.
board/samsung/smdkc100/smdkc100.c | 39 +++++++++++++++++++++++++++++++++++++ include/configs/smdkc100.h | 12 ++++++++++- 2 files changed, 50 insertions(+), 1 deletions(-)
diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c index 15a1a27..4fc802e 100644 --- a/board/samsung/smdkc100/smdkc100.c +++ b/board/samsung/smdkc100/smdkc100.c @@ -23,10 +23,40 @@ */
#include <common.h> +#include <asm/io.h> +#include <asm/arch/smc.h> +#include <asm/arch/gpio.h> + DECLARE_GLOBAL_DATA_PTR;
+/* + * Miscellaneous platform dependent initialisations + */ +static void smc9115_pre_init(void) +{ + u32 tmp; + u32 smc_bw_conf, smc_bc_conf; + + struct s5pc100_gpio *const gpio = + (struct s5pc100_gpio *)S5PC100_GPIO_BASE; + + /* gpio configuration GPK0CON */ + gpio_cfg_pin(&gpio->gpio_k0, CONFIG_ENV_SROM_BANK, GPIO_FUNC(2)); + + /* Ethernet needs bus width of 16 bits */ + smc_bw_conf = SMC_DATA16_WIDTH(CONFIG_ENV_SROM_BANK); + smc_bc_conf = SMC_BC_TACS(0x0) | SMC_BC_TCOS(0x4) | SMC_BC_TACC(0xe) + | SMC_BC_TCOH(0x1) | SMC_BC_TAH(0x4) + | SMC_BC_TACP(0x6) | SMC_BC_PMC(0x0); + + /* Select and configure the SROMC bank */ + s5pc1xx_config_sromc(CONFIG_ENV_SROM_BANK, smc_bw_conf, smc_bc_conf); +} + 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 +79,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 f12fea3..c8abad6 100644 --- a/include/configs/smdkc100.h +++ b/include/configs/smdkc100.h @@ -83,7 +83,6 @@ #undef CONFIG_CMD_FLASH #undef CONFIG_CMD_IMLS #undef CONFIG_CMD_NAND -#undef CONFIG_CMD_NET
#define CONFIG_CMD_CACHE #define CONFIG_CMD_REGINFO @@ -235,4 +234,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 */
participants (1)
-
ch.naveen@samsung.com