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

Benoît Thébaudeau
2013-04-19T12:54:56Z

Dear Marek Vasut,

On Friday, April 19, 2013 1:44:57 PM, Marek Vasut wrote:
> Dear Beno?t Th?baudeau,
>
> [...]
>
> > > +static void setup_iomux_nand(void)
> > > +{
> > > + mxc_request_iomux(MX53_PIN_NANDF_WE_B, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_NANDF_RE_B, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_NANDF_CLE, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_NANDF_ALE, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_NANDF_WP_B, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_NANDF_RB0, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_NANDF_CS0, IOMUX_CONFIG_ALT0);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA0, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA1, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA2, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA3, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA4, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA5, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA6, IOMUX_CONFIG_ALT3);
> > > + mxc_request_iomux(MX53_PIN_ATA_DATA7, IOMUX_CONFIG_ALT3);
> > > +
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_WE_B, PAD_CTL_DRV_HIGH);
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_RE_B, PAD_CTL_DRV_HIGH);
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_CLE, PAD_CTL_DRV_HIGH);
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_ALE, PAD_CTL_DRV_HIGH);
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_WP_B, PAD_CTL_PUE_PULL |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_RB0, PAD_CTL_PUE_PULL |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_NANDF_CS0, PAD_CTL_DRV_HIGH);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA0, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA1, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA2, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA3, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA4, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA5, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA6, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > + mxc_iomux_set_pad(MX53_PIN_ATA_DATA7, PAD_CTL_DRV_HIGH |
> > > + PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE);
> > > +}
> >
> > Like for 5/6, why is this function needed? When booting from NAND
>
> Where did you get the information the board can only boot from NAND? Did I
> mistakenly present it somewhere like that please?

No, it's just suggested by the series, e.g. because imximage.cfg is
NAND-specific.

> Anyway, no, it can also boot from SD and USB at least.

Then it's fine.

> > the boot
> > ROM sets the NAND pads appropriately itself (see 7.5.2.4), so unless it
> > reverts those changes to the IOMUX reset values afterwards, there is no
> > need to set the NAND IOMUX again. It's not as if the board were using NAND
> > after having been booted from another source (like mx53ard does).
>
> I want to use NAND when booted from other sources, yes.

OK.

> > Or perhaps you are planning to add more boot sources later, in which case
> > there are configs missing for M4IF and WEIM (see mx53ard's
> > setup_iomux_nand()).
>
> Yes, but even without this configuration, the NAND works perfectly well when
> booted from SD. Am I missing something here?

It's just a matter of precaution. If you think that you can't rely on the auto
IOMUX or clock setup by the boot ROM, the same applies to M4IF and WEIM.

Best regards,
Beno?t