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
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users