[U-Boot-Users] [PATCH] Add MIMC200 board - now uses board_eth_init()
Mark Jackson
mpfj at mimc.co.uk
Tue Jul 29 11:40:26 CEST 2008
Haavard Skinnemoen wrote:
> Mark Jackson <mpfj at mimc.co.uk> wrote:
>> The MIMC200 board is based on Atmel's NGW100 dev kit,
>> but with an extra 8MByte FLASH and 128KByte FRAM.
>
> Do you have a link with some more information about the board?
Not at this moment ... it's still under development, so to speak.
> I also think your mailer mangles whitespace. Thunderbird can apparently
> be fixed; please see the instructions here:
>
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/email-clients.txt
I'll fix this.
>> board/atmel/mimc200/Makefile | 40 +++++++++
>> board/atmel/mimc200/config.mk | 3 +
>> board/atmel/mimc200/mimc200.c | 158 ++++++++++++++++++++++++++++++++++++
>> board/atmel/mimc200/u-boot.lds | 73 +++++++++++++++++
>
> Is this really an Atmel board? Note that the directory under "board" is
> supposed to indicate the _board_ vendor, not the chip vendor.
Urm ... no, I'll create a new vendor directory.
>> --- a/cpu/at32ap/at32ap700x/clk.c
>> +++ b/cpu/at32ap/at32ap700x/clk.c
>> @@ -65,4 +65,12 @@ void clk_init(void)
>> /* Use PLL0 as main clock */
>> sm_writel(PM_MCCTRL, SM_BIT(PLLSEL));
>> #endif
>> +
>> +#ifdef CONFIG_MIMC200
>> + // enable gclk outputs
>> + //AVR32_PM.gcctrl[0] = 0x0004; /* LVDS at 10MHz */
>> + sm_writel(PM_GCCTRL, 0x00000004);
>> + //AVR32_PM.gcctrl[1] = 0x0216; /* Ethernet at 25MHz if PLL running */
>> + //sm_writel(PM_GCCTRL + 4, 0x00000216);
>> +#endif
>
> Please define a gclk_init() function in your board file and move this
> stuff there. That's what Hammerhead ended up doing.
>
> The gclk_init() hook isn't in mainline yet. I'll create a "next" branch
> that you can base your work on in the mean time.
I've just moved it to my main board setup code.
>> +#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
>
> I'd prefer a more generic define here...or possibly some sort of
> parameter that can be passed from the board code. Let's leave that for
> later though -- this is fine for now.
Again, I've moved this to my board setup code.
>> +#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
>
> Hmm, ok, I guess you currently don't have much choice but put to those
> here. Let's make a mental note that this should be improved later.
I've actually removed this, since the extra chips contain no boot-related info / code.
>> void serial_putc(char c)
>> {
>> +#if defined(CONFIG_MIMC200_DBGLINK)
>> + // only output serial data if DEBUG link connected
>> + // this is connected to PIOE_21
>> + if (gpio_get_value(GPIO_PIN_PE21) == 0)
>> + {
>> +#endif
>
> As others have noted, this is pretty ugly. There must be a better way
> to do this...but I don't know exactly how. Moving this test to a
> separate function and providing a dummy stub for the case when
> CONFIG_MIMC200_DBGLINK is not set might be a good first step. Something like
>
<snip>
>
> Alternatively, we could do some tricks involving weak functions here
> and move the actual test into the board code.
Is there any way I can tell u-boot (on-the-fly) to enable / disable any comms output ?
If so, I could just check the "debug" link in my boot code, and adjust the u-boot comms accordingly.
> Thanks for posting this, but please Cc me when posting new avr32 board
> patches. I think I missed you first submission.
No problems. Thanks for the comments.
Mark
More information about the U-Boot
mailing list