[U-Boot] [RFC] mx28: Fix reboot from the kernel

Matthias Fuchs matthias.fuchs at esd.eu
Wed Jan 25 15:21:48 CET 2012


On 24.01.2012 17:23, Fabio Estevam wrote:
> When running Linux on a mx28evk and issuing a 'reboot'command the following behaviour is observed:
> 
> root at freescale /$ reboot                                                        
> starting pid 329, tty '': '/etc/rc.d/rcS stop'                                  
> root at freescale /$ Stopping inetd:                                               
> Terminated                                                                      
> Unmounting filesystems                                                          
> umount: tmpfs busy - remounted read-only                                        
> chown: /home/user/.rhosts: Read-only file system                                
> chown: /home/user: Read-only file system                                        
> chown: /home/user: Read-only file system                                        
> cat: can't open '/proc/devices': No such file or directory                      
> The system is going down NOW!                                                   
> Sent SIGTERM to all processes                                                   
> Sent SIGKILL to all processes                                                   
> Requesting system reboot                                                        
> [   24.240000] Restarting system.                                               
>                                                                           
> U-Boot 2011.12-06887-g586ab2f-dirty (Jan 24 2012 - 12:58:50)                    
>                                                                                 
> Freescale i.MX28 family                                                         
> DRAM:  0
> 
> , and then U-boot hangs.
> 
> Calling mx28_power_init() prior to mxs_iomux_setup_multiple_pads() fixes the problem and
> make U-boot to re-start succesfully.

Hmm, I did not observe that issue on my board.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> This patch fixes the reboot issue, but I am not able to provide a good explanation for it, so
> I am marking it as RFC.
> 
>  arch/arm/cpu/arm926ejs/mx28/spl_boot.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/mx28/spl_boot.c b/arch/arm/cpu/arm926ejs/mx28/spl_boot.c
> index dfb8309..0e57252 100644
> --- 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();
>  }
Without an explanation I woutld not accept this patch.

So when adding "some" instructions before mx28_mem_init() you could
check for the first steps in that function are and if really delaying
the first instructions or same later stuff helps. Perhaps this brings us
a clue.

I will see if your reordering has any impact on my "USB recovery boot
issue".

Matthias


More information about the U-Boot mailing list