[U-Boot-Users] [PATCH] Add MIMC200 board - now uses board_eth_init()
Mark Jackson
mpfj at mimc.co.uk
Tue Jul 29 10:52:12 CEST 2008
Ben Warren wrote:
> C++ style comments are not allowed. Please fix them all.
>
> <snip>
>
Okay.
>
> The prototype is:
>
> int board_eth_init(bd_t *);
>
> You'll need to return 0 if you can't get anything useful from
> macb_eth_initialize();
>
> <snip>
>
Okay.
>
> It's frowned upon to conditionally compile board-specific code in CPU
> files. Can this be done in your board code?
>
I'll give it a go !!
>
>> diff --git a/cpu/at32ap/at32ap700x/gpio.c b/cpu/at32ap/at32ap700x/gpio.c
>> index 56ba2f9..7c6679d 100644
>> --- a/cpu/at32ap/at32ap700x/gpio.c
>> +++ b/cpu/at32ap/at32ap700x/gpio.c
>> @@ -104,8 +104,10 @@ void gpio_enable_macb0(void)
>> gpio_select_periph_A(GPIO_PIN_PC11, 0); /* RXD2 */
>> gpio_select_periph_A(GPIO_PIN_PC12, 0); /* RXD3 */
>> gpio_select_periph_A(GPIO_PIN_PC14, 0); /* RXCK */
>> +#ifndef CONFIG_MIMC200
>> gpio_select_periph_A(GPIO_PIN_PC18, 0); /* SPD */
>> #endif
>> +#endif
>> }
>>
>> void gpio_enable_macb1(void)
>> @@ -129,8 +131,10 @@ void gpio_enable_macb1(void)
>> gpio_select_periph_B(GPIO_PIN_PC29, 0); /* RXD2 */
>> gpio_select_periph_B(GPIO_PIN_PC30, 0); /* RXD3 */
>> gpio_select_periph_B(GPIO_PIN_PC24, 0); /* RXCK */
>> +#ifndef CONFIG_MIMC200
>> gpio_select_periph_B(GPIO_PIN_PD15, 0); /* SPD */
>> #endif
>> +#endif
>> }
>> #endif
>>
Should I just provide my own *complete* alternatives to these functions ?
>> diff --git a/cpu/at32ap/cpu.c b/cpu/at32ap/cpu.c
>> index 0ba8361..8985b68 100644
>> --- a/cpu/at32ap/cpu.c
>> +++ b/cpu/at32ap/cpu.c
>> @@ -56,6 +56,20 @@ int cpu_init(void)
>> hsmc3_writel(PULSE0, 0x0b0a0906);
>> hsmc3_writel(SETUP0, 0x00010002);
>>
>> +#ifdef CONFIG_MIMC200
>> + // setup Data Flash chip select (NCS2)
>> + hsmc3_writel(MODE2, 0x20121003);
>> + hsmc3_writel(CYCLE2, 0x000a0009);
>> + hsmc3_writel(PULSE2, 0x0a060806);
>> + hsmc3_writel(SETUP2, 0x00030102);
>> +
>> + // setup FRAM chip select (NCS3)
>> + hsmc3_writel(MODE3, 0x10120001);
>> + hsmc3_writel(CYCLE3, 0x001e001d);
>> + hsmc3_writel(PULSE3, 0x08040704);
>> + hsmc3_writel(SETUP3, 0x02050204);
>> +#endif
>> +
>> clk_init();
>>
Okay ... this can probably go in my board setup file.
>> /* Update the CPU speed according to the PLL configuration */
>> diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c
>> index f35b997..9e131c0 100644
>> --- a/drivers/serial/atmel_usart.c
>> +++ b/drivers/serial/atmel_usart.c
>> @@ -21,6 +21,9 @@
>> #include <asm/io.h>
>> #include <asm/arch/clk.h>
>> #include <asm/arch/memory-map.h>
>> +#if defined(CONFIG_MIMC200_DBGLINK)
>> +#include <asm/arch/gpio.h>
>> +#endif
>>
>>
> This is definitely uncool. Don't pollute common code with your debug stuff.
>
Right ... this one's got me stumped. This *isn't* debug code.
In standard operation, the standard u-boot comms port will drive (e.g.)
a printer, and we don't want any u-boot messages being printed out every
time the unit reboots.
*But* we do want to be able to use this port for normal u-boot operation
when units are returned for calibration / testing / repair / etc,
So we have an external link that is meant to disconnect all comms
traffic from u-boot.
I didn't want to use u-boot's "slient boot" options, since they're
hard-coded at compile time. The only place I could think to this was to
modify the atmel_usart.c file as above.
How else should I do it ?
> Looking forward to V3
>
Me too !!
Mark
More information about the U-Boot
mailing list