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

Fabio Estevam fabio.estevam at freescale.com
Tue Jan 24 17:23:12 CET 2012


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.

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();
 }
-- 
1.7.1




More information about the U-Boot mailing list