On 11/14/2011 10:55 AM, Jason Hui wrote: > On Mon, Nov 14, 2011 at 5:25 PM, Stefano Babic <sba...@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....@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: off...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot