[U-Boot] [PATCH/RFC] mx28: print bootmode with cpuinfo

Fabio Estevam festevam at gmail.com
Tue Jan 24 16:12:14 CET 2012


On 1/24/12, Matthias Fuchs <matthias.fuchs at esd.eu> wrote:

>> - One patch that touches the HW_DIGCTRL_SCRATCH register (this part is
>> what fixed the RAM size retrievel after a "reboot" in the kernel
> And what is this part? I was not aware of this issue. What exactly part
> of my patch fixes this issue?

I started removing all the pieces of your patch and then I noticed
that the part below was responsible for making the "reboot" command in
Linux to work:

  void mx28_common_spl_init(const iomux_cfg_t *iomux_setup,
                        const unsigned int iomux_size)
 {
+       uint32_t bm = readl(0x80018910) & 0xf;
+       writel(bm, HW_DIGCTRL_SCRATCH0);
+       writel(bm, HW_DIGCTRL_SCRATCH1);
+
        mxs_iomux_setup_multiple_pads(iomux_setup, iomux_size);
        mx28_power_init();
        mx28_mem_init();

I also noticed that even if I replace these lines with a
early_delay(1) it also makes "reboot" to work fine.

It looks like we need something to be executed before the
mxs_iomux_setup_multiple_pads

The patch below works fine:

--- a/arch/arm/cpu/arm926ejs/mx28/spl_boot.c
+++ b/arch/arm/cpu/arm926ejs/mx28/spl_boot.c
@@ -49,8 +49,8 @@ void early_delay(int delay)
 void mx28_common_spl_init(const iomux_cfg_t *iomux_setup,
                        const unsigned int iomux_size)
 {
-       mxs_iomux_setup_multiple_pads(iomux_setup, iomux_size);
        mx28_power_init();
+       mxs_iomux_setup_multiple_pads(iomux_setup, iomux_size);
        mx28_mem_init();
        mx28_power_wait_pswitch();
 }

,though I don't have a good explanation for it right now.


More information about the U-Boot mailing list