[U-Boot] [PATCH 6/6] i.mx: i.mx6q: Add the initial support for i.mx6q ARM2 board

Stefano Babic sbabic at denx.de
Mon Nov 14 12:36:09 CET 2011


On 11/14/2011 10:55 AM, Jason Hui wrote:
> On Mon, Nov 14, 2011 at 5:25 PM, Stefano Babic <sbabic at denx.de> wrote:
>> On 11/12/2011 11:36 AM, Jason Liu wrote:
>>> Add the initial support for Freescale i.MX6Q Armadillo2 board
>>> Support: MMC boot from slot 0/1, debug UART(UART4), usdhc.
>>>
>>> Signed-off-by: Jason Liu <jason.hui at linaro.org>
>>
>> Hi Jason,
>>
>> is mx6qarm2 the official Freescale name ?
> 
> Yes, this is the official name.

Ok, fine.

> 
>>
>>> +#ifdef CONFIG_FSL_ESDHC
>>> +struct fsl_esdhc_cfg usdhc_cfg[2] = {
>>> +     {USDHC3_BASE_ADDR, 1},
>>> +     {USDHC4_BASE_ADDR, 1},
>>> +};
>>> +
>>> +int board_mmc_getcd(u8 *cd, struct mmc *mmc)
>>> +{
>>> +     struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
>>> +
>>> +     if (cfg->esdhc_base == USDHC3_BASE_ADDR)
>>> +             *cd = gpio_get_value(107); /*GPIO6_11*/
>>> +     else /* Don't have the CD GPIO pin on board */
>>> +             *cd = 0;
>>
>> Is it the logic inverted ? If you return always zero, there is no Card
>> in the slot for the MMC framework and there is no attempt to read it. It
>> is working on USDHC4 ?
> 
> The framework flow is as the following. The logic is ok.
> 

I know it - this means that in case of USDHC4, card detect is read
directly from the controller ?

> 
> As the comments before for Fabio, I will drop the MACH_TYPE setting since i.mx6q
> linux kernel will go device tree and there is no-need for machine type now.

Ok

> 
>>
>>> +     /* address of boot parameters */
>>> +     gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
>>> +
>>> +     /*
>>> +      * Need re-initialization again since base is in BSS
>>> +      * After relocation, base will be clear to zero.
>>> +      */
>>> +     imx_iomux_v3_init((void *)IOMUXC_BASE_ADDR);
>>
>> However, this is a trick. As general rule, we must not use BSS before
>> relocation. Is there no other way to do this ?
> 
> There is no other way for it since we need uart early before the relocation.
> If you have other way, I really appreciate it.

The two things are not correlated - most IMXs (and other SOCs, too) set
up the multiplexer t0o get the console working. I am asking myself why
do you need that the base address for the iomuxc is dynamic.


void imx_iomux_v3_init(void *iomux_v3_base)
{
	base = iomux_v3_base;
}


But then you initialize it with a constant - can iomux_v3_base be set to
a different address ?

Why cannot you use (or get) the base address in the iomuxv3 code from
imx-regs.h ? Or am I missing something ?

>>
>> Ethernet is not yet working, right ? How many Ethernet has this board ?
> 
> yes,I will remove the last line. Only the 1Gbit ENET support on this board.

Ok, understood.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list