On 1/24/12, Matthias Fuchs <matthias.fu...@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. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot