[U-Boot] [PATCH 3/3] SAMSUNG: SMDKC100: Adds ethernet support.
Ben Warren
biggerbadderben at gmail.com
Tue Feb 9 15:52:42 CET 2010
Naveen,
On Tue, Feb 9, 2010 at 1:38 AM, Naveen Krishna Ch <ch.naveen at samsung.com>wrote:
> 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.
>
> Signed-off-by: Naveen Krishna Ch <ch.naveen <at> 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 <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..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
> +
>
Please remove all of these. If you don't know why, search the archives.
It's only been discussed 10000 times or so.
> +/*
> + * 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 */
>
regards,
Ben
More information about the U-Boot
mailing list