[U-Boot] [PATCH V2 6/6] arm: mx5: Add support for DENX M53EVK

Benoît Thébaudeau
2013-04-21T19:46:41Z

Dear Marek Vasut,

On Sunday, April 21, 2013 9:12:31 PM, Marek Vasut wrote:
> Dear Beno?t Th?baudeau,
>
> > Dear Marek Vasut,
> >
> > On Sunday, April 21, 2013 5:52:27 PM, Marek Vasut wrote:
> > > Add basic support for the DENX M53EVK board. Currently supported is:
> > > MMC (incl. booting)
> >
> > ^
> > Can you clarify this, please?
>
> Use u-boot.imx for SD booting as usual.
>
> > spl_boot_device() points only to NAND, so
> > you're clearly talking about hardware MMC boot, and not about hardware
> > NAND boot followed by SPL payload fetched from MMC. But MMC boot does not
> > need SPL here, in which case you will have to generate a simple
> > u-boot.imx, or you will rather want to use u-boot-with-spl.imx for SD
> > (NAND header dropped to leave room for MBR). And in the latter case, why
> > have spl_boot_device() point to NAND for MMC boot?
>
> No, regular u-boot.imx will be used for SD boot.

OK. So this will require to call make with u-boot.imx as the explicit target.
Should this be documented somewhere, perhaps in a README file for this board?

Another solution would be, like for woodburn, to have an sd-specific config:
- m53evk_nand_config would define CONFIG_SPL from boards.cfg, so
u-boot-with-nand-spl.imx would be generated.
- mx53evk_sd_config would not define CONFIG_SPL from boards.cfg, so u-boot.imx
would be generated.
And CONFIG_SPL would be removed from m53evk.h.

Or, change the various config.mk in order to build u-boot.imx even if CONFIG_SPL
is defined, which would be useless for some boards, but useful here in order to
avoid having 2 configs for almost the same build, while still not having to
explicitly give a make target.

> > > NAND (incl. booting)
> > > Ethernet, I2C, USB, SATA, RTC.
> > >
> > > Signed-off-by: Marek Vasut <marex@denx.de>
> > > Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
> > > Cc: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> > > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > > Cc: Scott Wood <scottwood@freescale.com>
> > > Cc: Stefano Babic <sbabic@denx.de>
> > > Cc: Tom Rini <trini@ti.com>
> > > Cc: Wolfgang Denk <wd@denx.de>
> > > ---
>
> [...]
>
> > > +static void m53_set_nand(void)
> > > +{
> > > + u32 i;
> > > +
> > > + #define M4IF_GENP_WEIM_MM 0x00000001
> > > + #define WEIM_GCR2_MUX16_BYP_GRANT 0x00001000
> > > +
> > > + /* NAND flash is muxed on ATA pins */
> > > + setbits_le32(M4IF_BASE_ADDR + 0xc, M4IF_GENP_WEIM_MM);
> >
> > This should be clrbits_le32().
>
> Why?

Because I mistakenly assumed (without checking, and even without reading your
comment above) that the NFC pins used on this board were muxed on EIM like for
mx53ard. So your patch is correct here. ;)

> > > +
> > > + /* Wait for Grant/Ack sequence (see EIM_CSnGCR2:MUX16_BYP_GRANT) */
> > > + for (i = 0x4; i < 0x94; i += 0x18)
> > > + clrbits_le32(WEIM_BASE_ADDR + i, WEIM_GCR2_MUX16_BYP_GRANT);
> > > +
> > > + mxc_set_clock(0, 33, MXC_NFC_CLK);
> > > + enable_nfc_clk(1);
> > > +}
>
> [...]

Best regards,
Beno?t