[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