On Sep 23, 2009, at 1:39 PM, Tom wrote: > Olof Johansson wrote: >> Add setup for ethernet on Tobi, allowing kernel/ramdisk to be loaded >> over tftp. >> Based on the omap3 evm code. I added a new highlevel define for Tobi >> to avoid having it dependent on CMD_NET (which would seem backward in >> this case). >> Signed-off-by: Olof Johansson <o...@lixom.net> >> --- >> This version of the patch fixes whitespace comments from WD, and >> includes >> fixes for the build warnings that Dirk's patch also silenced. >> board/overo/overo.c | 62 +++++++++++++++++++++++++++++++ >> ++++++++++ >> board/overo/overo.h | 37 ++++++++++++++++++++++++ >> include/configs/omap3_overo.h | 23 ++++++++++++++- >> 3 files changed, 120 insertions(+), 2 deletions(-) >> diff --git a/board/overo/overo.c b/board/overo/overo.c >> index dd6d286..7d87e52 100644 >> --- a/board/overo/overo.c >> +++ b/board/overo/overo.c >> @@ -29,13 +29,19 @@ >> * MA 02111-1307 USA >> */ >> #include <common.h> >> +#include <netdev.h> >> #include <twl4030.h> >> #include <asm/io.h> >> #include <asm/arch/mux.h> >> +#include <asm/arch/mem.h> >> #include <asm/arch/sys_proto.h> >> #include <asm/mach-types.h> >> #include "overo.h" >> +#if defined(CONFIG_OMAP3_OVERO_TOBI) >> +static void setup_net_chip(void); >> +#endif >> + >> /* >> * Routine: board_init >> * Description: Early hardware init. >> @@ -62,6 +68,10 @@ int misc_init_r(void) >> twl4030_power_init(); >> twl4030_led_init(); >> +#if defined(CONFIG_OMAP3_OVERO_TOBI) >> + setup_net_chip(); >> +#endif >> + >> dieid_num_r(); >> return 0; >> @@ -76,4 +86,56 @@ int misc_init_r(void) >> void set_muxconf_regs(void) >> { >> MUX_OVERO(); >> +#if defined(CONFIG_OMAP3_OVERO_TOBI) >> + MUX_OVERO_TOBI(); >> +#endif >> +} >> + >> +#if defined(CONFIG_OMAP3_OVERO_TOBI) >> +/* >> + * Routine: setup_net_chip >> + * Description: Setting up the configuration GPMC registers >> specific to the >> + * Ethernet hardware. >> + */ >> +static void setup_net_chip(void) >> +{ >> + struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE; >> + struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE; >> + >> + /* Configure GPMC registers */ >> + writel(NET_GPMC_CONFIG1, &gpmc_cfg->cs[5].config1); >> + writel(NET_GPMC_CONFIG2, &gpmc_cfg->cs[5].config2); >> + writel(NET_GPMC_CONFIG3, &gpmc_cfg->cs[5].config3); >> + writel(NET_GPMC_CONFIG4, &gpmc_cfg->cs[5].config4); >> + writel(NET_GPMC_CONFIG5, &gpmc_cfg->cs[5].config5); >> + writel(NET_GPMC_CONFIG6, &gpmc_cfg->cs[5].config6); >> + writel(NET_GPMC_CONFIG7, &gpmc_cfg->cs[5].config7); >> + >> + /* Enable off mode for NWE in PADCONF_GPMC_NWE register */ >> + writew(readw(&ctrl_base ->gpmc_nwe) | 0x0E00, &ctrl_base- >> >gpmc_nwe); >> + /* Enable off mode for NOE in PADCONF_GPMC_NADV_ALE register */ >> + writew(readw(&ctrl_base->gpmc_noe) | 0x0E00, &ctrl_base->gpmc_noe); >> + /* Enable off mode for ALE in PADCONF_GPMC_NADV_ALE register */ >> + writew(readw(&ctrl_base->gpmc_nadv_ale) | 0x0E00, >> + &ctrl_base->gpmc_nadv_ale); >> + >> + /* Make GPIO 64 as output pin */ >> + writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe); >> + >> + /* Now send a pulse on the GPIO pin */ >> + writel(GPIO0, &gpio3_base->setdataout); >> + udelay(1); >> + writel(GPIO0, &gpio3_base->cleardataout); >> + udelay(1); >> + writel(GPIO0, &gpio3_base->setdataout); > > Use the omap gpio interface described in README.omap3 >
Seriously, this code is a 1:1 replica from the evm code. Obviously that code was good enough to merge. -Olof _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot