Hi Alex, Please see below for some (delayed) review comments.
On Mon, 17 Mar 2008 11:31:42 +0100 Alex <[EMAIL PROTECTED]> wrote: > I corrected the patch. I tried to run MAKEALL, but it fails, as I don't have > all those cross-compilers > installed. Am I missing something? Do I need to install them, or what is the > correct procedure? You can run MAKEALL for one particular architecture by doing CROSS_COMPILE=<target>- ./MAKEALL <arch> where <arch> can be a major architecture (e.g. ppc, arm, etc.) or a subarchitecture/platform (e.g. 4xx, ARM9, etc.) > diff -Naur old/u-boot-avr32/board/miromico/hammerhead/eth.c > new/u-boot-avr32/board/miromico/hammerhead/eth.c > --- old/u-boot-avr32/board/miromico/hammerhead/eth.c 1970-01-01 > 01:00:00.000000000 +0100 > +++ new/u-boot-avr32/board/miromico/hammerhead/eth.c 2008-03-14 > 16:06:35.000000000 +0100 > +extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr); Hrm...we should really move this to a separate header, but let's wait until the current discussions reach some sort of conclusion. > +#ifdef CONFIG_CMD_NET > +void board_eth_initialize(bd_t *bi) > +{ > + macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]); > +} > +#endif > diff -Naur old/u-boot-avr32/board/miromico/hammerhead/hammerhead.c > new/u-boot-avr32/board/miromico/hammerhead/hammerhead.c > --- old/u-boot-avr32/board/miromico/hammerhead/hammerhead.c 1970-01-01 > 01:00:00.000000000 +0100 > +++ new/u-boot-avr32/board/miromico/hammerhead/hammerhead.c 2008-03-14 > 15:34:22.000000000 +0100 > + /* Select GCLK3 peripheral function. We'll need it as clock output > + * for ethernet PHY. */ There's a bit of whitespace damage here and there, as others have pointed out. > +void board_init_info(void) > +{ > + gd->bd->bi_phy_id[0] = 0x01; > +} We should probably get rid of this function. Don't worry about it for now though. > diff -Naur old/u-boot-avr32/board/miromico/hammerhead/u-boot.lds > new/u-boot-avr32/board/miromico/hammerhead/u-boot.lds > --- old/u-boot-avr32/board/miromico/hammerhead/u-boot.lds 1970-01-01 > 01:00:00.000000000 +0100 > +++ new/u-boot-avr32/board/miromico/hammerhead/u-boot.lds 2008-03-14 > 14:57:37.000000000 +0100 > + . = ALIGN(32); > + __flashprog_start = .; > + .flashprog : { > + *(.flashprog) > + } > + . = ALIGN(32); > + __flashprog_end = .; I don't think this block is needed since you're using the CFI flash driver. It should probably be culled from the ATNGW100 linker script too. > diff -Naur old/u-boot-avr32/cpu/at32ap/at32ap700x/gpio.c > new/u-boot-avr32/cpu/at32ap/at32ap700x/gpio.c > --- old/u-boot-avr32/cpu/at32ap/at32ap700x/gpio.c 2008-03-17 > 10:23:49.000000000 +0100 > +++ new/u-boot-avr32/cpu/at32ap/at32ap700x/gpio.c 2008-03-17 > 10:10:37.000000000 +0100 > @@ -142,3 +142,14 @@ > gpio_select_periph_A(GPIO_PIN_PA15, 0); /* DATA3 */ > } > #endif > + > +#ifdef CONFIG_HAMMERHEAD > +/* > + * Hammerhead board uses GCLK3 (Periph A on PB29) as 25MHz clock output > + * for ethernet PHY. > + */ > +void gpio_enable_gclk3(void) > +{ > + gpio_select_periph_A(GPIO_PIN_PB29, 0); /* GCLK3 */ > +} > +#endif Please drop the #ifdef. --gc-sections will take care of it. > diff -Naur old/u-boot-avr32/cpu/at32ap/cpu.c new/u-boot-avr32/cpu/at32ap/cpu.c > --- old/u-boot-avr32/cpu/at32ap/cpu.c 2008-03-17 10:23:49.000000000 +0100 > +++ new/u-boot-avr32/cpu/at32ap/cpu.c 2008-03-14 15:43:09.000000000 +0100 > @@ -81,6 +81,16 @@ > #endif > } > > +#ifdef CONFIG_HAMMERHEAD > +static void gclk_init(void) > +{ > + /* Hammerhead boards uses GCLK3 as 25MHz output to ethernet PHY */ > + > + /* Enable GCLK3 with no input divider, from OSC0 (crystal) */ > + sm_writel( PM_GCCTRL3, SM_BIT(CEN) ); > +} > +#endif Hmm...could you turn it into something more generic, like void gclk_enable(unsigned int id) and call it from the board code? Then you could get rid of the #ifdefs and let --gc-sections remove it if it turns out to be unused. > @@ -105,6 +115,10 @@ > p += CFG_ICACHE_LINESZ) > asm volatile("cache %0, 0x02" : "=m"(*p) :: "memory"); Hmm...another piece of code we can get rid of. This is unrelated to your patch though. > +#ifdef CONFIG_HAMMERHEAD > + gclk_init(); > +#endif Please remove this if you follow my suggestion above. > diff -Naur old/u-boot-avr32/cpu/at32ap/sm.h new/u-boot-avr32/cpu/at32ap/sm.h > --- old/u-boot-avr32/cpu/at32ap/sm.h 2008-03-17 10:23:49.000000000 +0100 > +++ new/u-boot-avr32/cpu/at32ap/sm.h 2008-03-14 15:51:10.000000000 +0100 > @@ -21,7 +21,16 @@ > #define SM_PM_IMR 0x0048 > #define SM_PM_ISR 0x004c > #define SM_PM_ICR 0x0050 > -#define SM_PM_GCCTRL 0x0060 > + > +#define SM_PM_GCCTRL0 0x0060 > +#define SM_PM_GCCTRL1 0x0064 > +#define SM_PM_GCCTRL2 0x0068 > +#define SM_PM_GCCTRL3 0x006c > +#define SM_PM_GCCTRL4 0x0070 > +#define SM_PM_GCCTRL5 0x0074 > +#define SM_PM_GCCTRL6 0x0078 > +#define SM_PM_GCCTRL7 0x007c Why not #define SM_PM_GCCTRL(x) (0x0060 + 4 * (x)) perhaps as a separate patch? > diff -Naur old/u-boot-avr32/net/eth.c new/u-boot-avr32/net/eth.c > --- old/u-boot-avr32/net/eth.c 2008-03-17 10:23:50.000000000 +0100 > +++ new/u-boot-avr32/net/eth.c 2008-03-17 10:11:33.000000000 +0100 > @@ -64,6 +64,7 @@ > extern int mcffec_initialize(bd_t*); > extern int mcdmafec_initialize(bd_t*); > extern int at91cap9_eth_initialize(bd_t *); > +extern int board_eth_initialize(bd_t *); > > #ifdef CONFIG_API > extern void (*push_packet)(volatile void *, int); > @@ -287,6 +288,9 @@ > #if defined(CONFIG_AT91CAP9) > at91cap9_eth_initialize(bis); > #endif > +#if defined(CONFIG_HAMMERHEAD) > + board_eth_initialize(bis); > +#endif We probably want something more generic-sounding like CONFIG_HAS_BOARD_ETH_INITIALIZE so that boards can migrate over to the new API one by one. But I'll leave it to Ben to decide how to do this. Haavard ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users